;Imports of scr_vm:
	extern _Z26Scr_RemoveThreadNotifyNamej
	extern _Z20RemoveObjectVariablejj
	extern _Z12GetArraySizej
	extern _Z14RemoveVariablejj
	extern _Z8MT_Allocii
	extern scrVarPub
	extern _Z16GetParentLocalIdj
	extern _Z14AddRefToObjectj
	extern _Z16RemoveRefToValuei13VariableUnion
	extern _Z14Scr_KillThreadj
	extern _Z17RemoveRefToObjectj
	extern _Z7MT_FreePvi
	extern _Z21Scr_SetThreadWaitTimejj
	extern _Z11GetVariablejj
	extern _Z8GetArrayj
	extern _Z20GetNewObjectVariablejj
	extern _Z19SetNewVariableValuejP13VariableValue
	extern _Z18FindObjectVariablejj
	extern _Z14Scr_StopThreadj
	extern _Z23Scr_SetThreadNotifyNamejj
	extern _Z14GetNewVariablejj
	extern _Z11Scr_GetSelfj
	extern _Z10FindObjectj
	extern _Z23GetVariableValueAddressj
	extern _Z12FindVariablejj
	extern _Z15FindLastSiblingj
	extern _Z12Scr_GetVarIdj
	extern _Z20GetVariableKeyObjectj
	extern _Z12GetValueTypej
	extern _Z13AddRefToValuei13VariableUnion
	extern _Z16Scr_EvalEqualityP13VariableValueS0_
	extern _Z10MT_Reallocii
	extern _Z15FindPrevSiblingj
	extern _Z12RuntimeErrorPKcjS0_S0_
	extern memcpy
	extern _Z19Scr_KillEndonThreadj
	extern _Z15GetStartLocalIdj
	extern _Z13GetObjectTypej
	extern _Z23Scr_GetThreadNotifyNamej
	extern _Z21Scr_GetThreadWaitTimej
	extern _Z17Scr_ClearWaitTimej
	extern _Z20GetSafeParentLocalIdj
	extern setjmp
	extern _Z25Scr_GetVariableFieldIndexjj
	extern scrCompilePub
	extern _Z9Sys_ErrorPKcz
	extern var_typename
	extern _Z2vaPKcz
	extern _Z16AllocChildThreadjj
	extern _Z11AllocThreadj
	extern _Z27GetNewObjectVariableReversejj
	extern _Z21Scr_DumpScriptThreadsv
	extern _Z30Scr_DumpScriptVariablesDefaultv
	extern _Z21Scr_EvalVariableFieldj
	extern _Z10Scr_EvalOrP13VariableValueS0_
	extern _Z13IsFieldObjectj
	extern _Z21Scr_FindVariableFieldjj
	extern _Z16Scr_EvalVariablej
	extern _Z13Scr_EvalArrayP13VariableValueS0_
	extern _Z16SetVariableValuejP13VariableValue
	extern _Z16Scr_EvalArrayRefj
	extern _Z17IsValidArrayIndexj
	extern _Z17SL_AddRefToStringj
	extern _Z18RemoveNextVariablej
	extern _Z18ClearVariableFieldjjP13VariableValue
	extern _Z10ClearArrayjP13VariableValue
	extern _Z14Scr_AllocArrayv
	extern _Z19Scr_EvalFieldObjectjP13VariableValue
	extern _Z18Scr_EvalInequalityP13VariableValueS0_
	extern _Z12Scr_EvalLessP13VariableValueS0_
	extern _Z15Scr_EvalGreaterP13VariableValueS0_
	extern _Z17Scr_EvalLessEqualP13VariableValueS0_
	extern _Z20Scr_EvalGreaterEqualP13VariableValueS0_
	extern _Z17Scr_EvalShiftLeftP13VariableValueS0_
	extern _Z18Scr_EvalShiftRightP13VariableValueS0_
	extern _Z12Scr_EvalPlusP13VariableValueS0_
	extern _Z13Scr_EvalMinusP13VariableValueS0_
	extern _Z16Scr_EvalMultiplyP13VariableValueS0_
	extern _Z14Scr_EvalDivideP13VariableValueS0_
	extern _Z11Scr_EvalModP13VariableValueS0_
	extern _Z17Scr_EvalSizeValueP13VariableValue
	extern _Z17GetObjectVariablejj
	extern _Z20SL_RemoveRefToStringj
	extern _Z22Scr_EvalVariableObjectj
	extern _Z12Scr_CastBoolP13VariableValue
	extern _Z15Scr_EvalBoolNotP13VariableValue
	extern _Z22Scr_EvalBoolComplementP13VariableValue
	extern _Z12Scr_EvalExOrP13VariableValueS0_
	extern _Z16Sys_Millisecondsv
	extern _Z11Scr_EvalAndP13VariableValueS0_
	extern _Z12FindEntityIdij
	extern _Z14Scr_CastVectorP13VariableValue
	extern _Z18ClearVariableValuej
	extern _Z21SetVariableFieldValuejP13VariableValue
	extern floorf
	extern _Z24GetVariableIndexInternaljj
	extern _Z19RemoveVariableValuejj
	extern _Z10I_strncpyzPcPKci
	extern _Z21GetArrayVariableIndexjj
	extern _Z14Com_PrintErroriPKcz
	extern _Z20Scr_PrintPrevCodePosiPKcj
	extern _Z24GetInternalVariableIndexj
	extern _Z18Scr_GetEntityIdRefj
	extern _Z16Com_PrintWarningiPKcz
	extern _Z10GetObjectAj
	extern longjmp
	extern _Z16FindFirstSiblingj
	extern _Z12Scr_GetAnimsj
	extern _Z13XAnimGetAnimsPK11XAnimTree_s
	extern _Z25XAnimGetAnimTreeDebugNamePK7XAnim_s
	extern _Z21XAnimGetAnimDebugNamePK7XAnim_sj
	extern _Z18Scr_FreeEntityListv
	extern _Z18SafeRemoveVariablejj
	extern _Z19GetNewArrayVariablejj
	extern _Z21Scr_ShutdownVariablesv
	extern _Z9FreeValuej
	extern _Z12SL_GetStringPKcj
	extern _Z11AllocObjectv
	extern _Z15Scr_AllocVectorPKf
	extern _Z18SL_ConvertToStringj
	extern _Z20Scr_IsInOpcodeMemoryPKc
	extern _Z15Scr_GetEntityIdij
	extern _Z14Scr_CastStringP13VariableValue
	extern _Z19Scr_CastDebugStringP13VariableValue
	extern _Z20Scr_FreeGameVariablei
	extern _Z11ClearObjectj
	extern _Z22RemoveRefToEmptyObjectj
	extern _Z15Scr_FreeObjectsv
	extern _Z16Scr_InitClassMapv
	extern _Z10AllocValuev
	extern scrAnimPub
	extern _Z15FindNextSiblingj
	extern _Z18Scr_SetObjectFieldjii
	extern tolower

;Exports of scr_vm:
	global scrVmGlob
	global thread_count
	global gFs
	global caseCount
	global opcode
	global error_message
	global _Z23VM_CancelNotifyInternaljjjjj
	global _Z15VM_ArchiveStackv
	global _Z17VM_TerminateStackjjP19VariableStackBuffer
	global _Z12VM_TrimStackjP19VariableStackBufferh
	global _Z18Scr_CancelWaittillj
	global _Z9VM_NotifyjjP13VariableValue
	global _Z18VM_ExecuteInternalv
	global _Z9VM_Resumej
	global _Z10VM_ExecutejPKcj
	global _Z10Scr_AddInti
	global _Z10Scr_GetIntj
	global _Z11Scr_AddAnim10scr_anim_s
	global _Z11Scr_AddBooli
	global _Z11Scr_Cleanupv
	global _Z11Scr_GetAnimjP11XAnimTree_s
	global _Z11Scr_GetTypej
	global _Z11Scr_IncTimev
	global _Z12Scr_AddArrayv
	global _Z12Scr_AddFloatf
	global _Z12Scr_GetFloatj
	global _Z12Scr_Settingsiii
	global _Z12Scr_Shutdownv
	global _Z13Scr_AddObjectj
	global _Z13Scr_AddStringPKc
	global _Z13Scr_AddStructv
	global _Z13Scr_AddVectorPKf
	global _Z13Scr_GetObjectj
	global _Z13Scr_GetStringj
	global _Z13Scr_GetVectorjPf
	global _Z13Scr_MakeArrayv
	global _Z13Scr_NotifyNumijjj
	global _Z14Scr_AddIStringPKc
	global _Z14Scr_ExecThreadij
	global _Z14Scr_FreeThreadt
	global _Z14Scr_GetIStringj
	global _Z14Scr_InitSystemi
	global _Z14Scr_ParamErrorjPKc
	global _Z14Scr_SetLoadingi
	global _Z15Scr_GetNumParamv
	global _Z15Scr_GetTypeNamej
	global _Z15Scr_ObjectErrorPKc
	global _Z15VM_CancelNotifyjj
	global _Z16Scr_AddEntityNumij
	global _Z16Scr_AddUndefinedv
	global _Z16Scr_GetEntityRefj
	global _Z16Scr_ResetTimeoutv
	global _Z17Scr_AddExecThreadij
	global _Z17Scr_TerminalErrorPKc
	global _Z18Scr_AddConstStringj
	global _Z18Scr_GetConstStringj
	global _Z18Scr_GetDebugStringj
	global _Z18Scr_GetNextCodeposP13VariableValuePKciiPj
	global _Z18Scr_GetPointerTypej
	global _Z18Scr_IsSystemActiveh
	global _Z18Scr_SetStructFieldjj
	global _Z18Scr_ShutdownSystemhi
	global _Z18Scr_TraverseScriptPKc
	global _Z19SetEntityFieldValuejiiP13VariableValue
	global _Z20Scr_CancelNotifyListj
	global _Z20Scr_ExecEntThreadNumijij
	global _Z21Scr_ClearErrorMessagev
	global _Z21Scr_RunCurrentThreadsv
	global _Z23Scr_GetNumScriptThreadsv
	global _Z25Scr_AddArrayStringIndexedj
	global _Z25Scr_SetDynamicEntityFieldijj
	global _Z27Scr_GetConstLowercaseStringj
	global _Z29Scr_GetConstStringIncludeNullj
	global _Z8Scr_Initv
	global _Z9Scr_ErrorPKc
	global g_EndPos
	global scrVmPub
	global g_script_error
	global g_script_error_level


SECTION .text


;VM_CancelNotifyInternal(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)
_Z23VM_CancelNotifyInternaljjjjj:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov [ebp-0x1c], eax
	mov ebx, edx
	mov [ebp-0x20], ecx
	mov esi, [ebp+0x8]
	mov edi, [ebp+0xc]
	mov [esp], edx
	call _Z26Scr_RemoveThreadNotifyNamej
	mov [esp+0x4], ebx
	mov [esp], esi
	call _Z20RemoveObjectVariablejj
	mov [esp], esi
	call _Z12GetArraySizej
	test eax, eax
	jz _Z23VM_CancelNotifyInternaljjjjj_10
_Z23VM_CancelNotifyInternaljjjjj_20:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z23VM_CancelNotifyInternaljjjjj_10:
	mov [esp+0x4], edi
	mov eax, [ebp-0x20]
	mov [esp], eax
	call _Z14RemoveVariablejj
	mov eax, [ebp-0x20]
	mov [esp], eax
	call _Z12GetArraySizej
	test eax, eax
	jnz _Z23VM_CancelNotifyInternaljjjjj_20
	mov dword [ebp+0xc], 0x18000
	mov eax, [ebp-0x1c]
	mov [ebp+0x8], eax
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z14RemoveVariablejj


;VM_ArchiveStack()
_Z15VM_ArchiveStackv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x3c
	mov eax, [gFs+0xc]
	mov [ebp-0x20], eax
	sub eax, [gFs+0x10]
	sar eax, 0x3
	mov [ebp-0x2c], eax
	lea esi, [eax+eax*4]
	lea ebx, [esi+0xb]
	mov dword [esp+0x4], 0x1
	mov [esp], ebx
	call _Z8MT_Allocii
	mov [ebp-0x28], eax
	mov edx, [gFs+0x4]
	mov [ebp-0x24], edx
	mov [eax+0x8], dx
	movzx edx, word [ebp-0x2c]
	mov [eax+0x4], dx
	mov [eax+0x6], bx
	mov eax, [gFs]
	mov edx, [ebp-0x28]
	mov [edx], eax
	mov eax, scrVarPub
	mov eax, [eax+0x14]
	mov [edx+0xa], al
	mov eax, [gFs+0x8]
	shl eax, 0x2
	sub [scrVmPub], eax
	lea eax, [edx+esi+0xb]
	mov ebx, [ebp-0x2c]
	test ebx, ebx
	jz _Z15VM_ArchiveStackv_10
	mov esi, eax
	lea edi, [eax-0x4]
	mov dword [ebp-0x1c], 0x0
	mov ebx, [ebp-0x20]
	jmp _Z15VM_ArchiveStackv_20
_Z15VM_ArchiveStackv_30:
	mov eax, [ebx]
	mov [esi-0x4], eax
	mov eax, [ebx+0x4]
	mov [esi-0x5], al
	sub ebx, 0x8
	add dword [ebp-0x1c], 0x1
	sub esi, 0x5
	sub edi, 0x5
	mov edx, [ebp-0x2c]
	cmp [ebp-0x1c], edx
	jz _Z15VM_ArchiveStackv_10
_Z15VM_ArchiveStackv_20:
	cmp dword [ebx+0x4], 0x7
	jnz _Z15VM_ArchiveStackv_30
	sub dword [scrVmPub+0x8], 0x1
	mov edx, [scrVmPub+0xc]
	lea eax, [edx-0x18]
	mov [scrVmPub+0xc], eax
	mov eax, [edx-0x18]
	mov [edi], eax
	mov eax, [scrVmPub+0xc]
	mov eax, [eax+0x8]
	shl eax, 0x2
	sub [scrVmPub], eax
	mov eax, [ebp-0x24]
	mov [esp], eax
	call _Z16GetParentLocalIdj
	mov [ebp-0x24], eax
	mov eax, [ebx+0x4]
	mov [esi-0x5], al
	sub ebx, 0x8
	add dword [ebp-0x1c], 0x1
	sub esi, 0x5
	sub edi, 0x5
	mov edx, [ebp-0x2c]
	cmp [ebp-0x1c], edx
	jnz _Z15VM_ArchiveStackv_20
_Z15VM_ArchiveStackv_10:
	sub dword [scrVmPub+0x8], 0x1
	sub dword [scrVmPub+0xc], 0x18
	mov eax, [ebp-0x24]
	mov [esp], eax
	call _Z14AddRefToObjectj
	mov edx, [ebp-0x24]
	mov [gFs+0x4], edx
	mov eax, [ebp-0x28]
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
	nop


;VM_TerminateStack(unsigned int, unsigned int, VariableStackBuffer*)
_Z17VM_TerminateStackjjP19VariableStackBuffer:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x4c
	mov [ebp-0x3c], eax
	mov [ebp-0x40], edx
	mov [ebp-0x44], ecx
	movzx edx, word [ecx+0x4]
	movzx eax, dx
	mov [ebp-0x2c], eax
	movzx esi, word [ecx+0x8]
	lea eax, [eax+eax*4]
	mov ecx, [ebp-0x44]
	lea ebx, [ecx+eax+0xb]
	test dx, dx
	jz _Z17VM_TerminateStackjjP19VariableStackBuffer_10
	mov edi, [ebp-0x2c]
	mov dword [ebp-0x30], 0x0
	jmp _Z17VM_TerminateStackjjP19VariableStackBuffer_20
_Z17VM_TerminateStackjjP19VariableStackBuffer_30:
	mov edx, [ebp-0x38]
	mov [esp+0x4], edx
	movzx eax, al
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	add dword [ebp-0x30], 0x1
	mov eax, [ebp-0x30]
	cmp [ebp-0x2c], eax
	jz _Z17VM_TerminateStackjjP19VariableStackBuffer_10
_Z17VM_TerminateStackjjP19VariableStackBuffer_20:
	mov eax, [ebx-0x4]
	mov [ebp-0x38], eax
	sub ebx, 0x5
	movzx eax, byte [ebx]
	sub edi, 0x1
	cmp al, 0x7
	jnz _Z17VM_TerminateStackjjP19VariableStackBuffer_30
	mov [esp], esi
	call _Z16GetParentLocalIdj
	mov [ebp-0x34], eax
	mov [esp], esi
	call _Z14Scr_KillThreadj
	mov [esp], esi
	call _Z17RemoveRefToObjectj
	cmp [ebp-0x3c], esi
	jz _Z17VM_TerminateStackjjP19VariableStackBuffer_40
	mov esi, [ebp-0x34]
	add dword [ebp-0x30], 0x1
	mov eax, [ebp-0x30]
	cmp [ebp-0x2c], eax
	jnz _Z17VM_TerminateStackjjP19VariableStackBuffer_20
_Z17VM_TerminateStackjjP19VariableStackBuffer_10:
	mov [esp], esi
	call _Z14Scr_KillThreadj
	mov [esp], esi
	call _Z17RemoveRefToObjectj
	mov edx, [ebp-0x44]
	movzx eax, word [edx+0x6]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z7MT_FreePvi
_Z17VM_TerminateStackjjP19VariableStackBuffer_50:
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z17VM_TerminateStackjjP19VariableStackBuffer_40:
	mov byte [ebx], 0x0
	mov ecx, scrVarPub
	mov eax, [ecx+0x14]
	mov [esp+0x4], eax
	mov eax, [ebp-0x40]
	mov [esp], eax
	call _Z21Scr_SetThreadWaitTimejj
	mov ecx, [ebp-0x38]
	mov edx, [ebp-0x44]
	mov [edx], ecx
	movzx eax, word [ebp-0x34]
	mov [edx+0x8], ax
	lea eax, [edi+0x1]
	mov [edx+0x4], ax
	mov dword [ebp-0x1c], 0xa
	mov [ebp-0x20], edx
	mov edx, scrVarPub
	mov eax, [edx+0x14]
	mov [esp+0x4], eax
	mov eax, [edx+0x18]
	mov [esp], eax
	call _Z11GetVariablejj
	mov [esp], eax
	call _Z8GetArrayj
	mov ecx, [ebp-0x40]
	mov [esp+0x4], ecx
	mov [esp], eax
	call _Z20GetNewObjectVariablejj
	lea edx, [ebp-0x20]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z19SetNewVariableValuejP13VariableValue
	jmp _Z17VM_TerminateStackjjP19VariableStackBuffer_50
	nop


;VM_TrimStack(unsigned int, VariableStackBuffer*, unsigned char)
_Z12VM_TrimStackjP19VariableStackBufferh:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x4c
	mov [ebp-0x38], eax
	mov [ebp-0x3c], edx
	mov [ebp-0x3d], cl
	mov eax, edx
	movzx edx, word [edx+0x4]
	movzx ecx, dx
	mov [ebp-0x2c], ecx
	movzx edi, word [eax+0x8]
	lea eax, [ecx+ecx*4]
	mov ecx, [ebp-0x3c]
	lea esi, [ecx+eax+0xb]
	test dx, dx
	jz _Z12VM_TrimStackjP19VariableStackBufferh_10
	mov eax, [ebp-0x2c]
	mov [ebp-0x34], eax
	mov dword [ebp-0x30], 0x0
	jmp _Z12VM_TrimStackjP19VariableStackBufferh_20
_Z12VM_TrimStackjP19VariableStackBufferh_30:
	mov [esp+0x4], edx
	movzx eax, al
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	add dword [ebp-0x30], 0x1
	mov ecx, [ebp-0x30]
	cmp [ebp-0x2c], ecx
	jz _Z12VM_TrimStackjP19VariableStackBufferh_10
_Z12VM_TrimStackjP19VariableStackBufferh_20:
	mov edx, [esi-0x4]
	sub esi, 0x5
	movzx eax, byte [esi]
	sub dword [ebp-0x34], 0x1
	cmp al, 0x7
	jnz _Z12VM_TrimStackjP19VariableStackBufferh_30
	mov [esp+0x4], edi
	mov eax, scrVarPub
	mov eax, [eax+0x1c]
	mov [esp], eax
	call _Z18FindObjectVariablejj
	test eax, eax
	jnz _Z12VM_TrimStackjP19VariableStackBufferh_40
	mov [esp], edi
	call _Z16GetParentLocalIdj
	mov ebx, eax
	mov [esp], edi
	call _Z14Scr_KillThreadj
	mov [esp], edi
	call _Z17RemoveRefToObjectj
	mov edi, ebx
	add dword [ebp-0x30], 0x1
	mov ecx, [ebp-0x30]
	cmp [ebp-0x2c], ecx
	jnz _Z12VM_TrimStackjP19VariableStackBufferh_20
_Z12VM_TrimStackjP19VariableStackBufferh_10:
	cmp byte [ebp-0x3d], 0x0
	jnz _Z12VM_TrimStackjP19VariableStackBufferh_50
_Z12VM_TrimStackjP19VariableStackBufferh_60:
	mov edx, [ebp-0x38]
	mov [esp], edx
	call _Z14Scr_KillThreadj
	mov ecx, [ebp-0x38]
	mov [esp], ecx
	call _Z17RemoveRefToObjectj
	mov edx, [ebp-0x3c]
	movzx eax, word [edx+0x6]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z7MT_FreePvi
_Z12VM_TrimStackjP19VariableStackBufferh_70:
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z12VM_TrimStackjP19VariableStackBufferh_50:
	mov dword [esp+0x4], 0x18001
	mov eax, [ebp-0x38]
	mov [esp], eax
	call _Z14RemoveVariablejj
	jmp _Z12VM_TrimStackjP19VariableStackBufferh_60
_Z12VM_TrimStackjP19VariableStackBufferh_40:
	mov edx, [ebp-0x3c]
	mov [edx+0x8], di
	mov eax, [ebp-0x34]
	add eax, 0x1
	mov [edx+0x4], ax
	mov [esp], edi
	call _Z14Scr_StopThreadj
	cmp byte [ebp-0x3d], 0x0
	jnz _Z12VM_TrimStackjP19VariableStackBufferh_70
	mov dword [esp+0x4], 0x0
	mov ecx, [ebp-0x38]
	mov [esp], ecx
	call _Z23Scr_SetThreadNotifyNamejj
	mov eax, [ebp-0x3c]
	mov dword [eax], 0x0
	mov dword [ebp-0x1c], 0xa
	mov [ebp-0x20], eax
	mov dword [esp+0x4], 0x18001
	mov edx, [ebp-0x38]
	mov [esp], edx
	call _Z14GetNewVariablejj
	lea edx, [ebp-0x20]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z19SetNewVariableValuejP13VariableValue
	jmp _Z12VM_TrimStackjP19VariableStackBufferh_70


;Scr_CancelWaittill(unsigned int)
_Z18Scr_CancelWaittillj:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x1c
	mov esi, eax
	mov [esp], eax
	call _Z11Scr_GetSelfj
	mov edi, eax
	mov [esp+0x4], eax
	mov edx, scrVarPub
	mov eax, [edx+0x1c]
	mov [esp], eax
	call _Z18FindObjectVariablejj
	mov [esp], eax
	call _Z10FindObjectj
	mov ebx, eax
	mov [esp+0x4], esi
	mov [esp], eax
	call _Z18FindObjectVariablejj
	mov [esp], eax
	call _Z23GetVariableValueAddressj
	mov [esp+0x4], esi
	mov eax, [eax]
	mov [esp], eax
	call _Z15VM_CancelNotifyjj
	mov [esp+0x4], esi
	mov [esp], ebx
	call _Z20RemoveObjectVariablejj
	mov [esp], ebx
	call _Z12GetArraySizej
	test eax, eax
	jnz _Z18Scr_CancelWaittillj_10
	mov [esp+0x4], edi
	mov edx, scrVarPub
	mov eax, [edx+0x1c]
	mov [esp], eax
	call _Z20RemoveObjectVariablejj
_Z18Scr_CancelWaittillj_10:
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
	nop
	add [eax], al


;VM_Notify(unsigned int, unsigned int, VariableValue*)
_Z9VM_NotifyjjP13VariableValue:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0xac
	mov [ebp-0x90], eax
	mov [ebp-0x94], edx
	mov [ebp-0x98], ecx
	mov dword [esp+0x4], 0x18000
	mov [esp], eax
	call _Z12FindVariablejj
	test eax, eax
	jnz _Z9VM_NotifyjjP13VariableValue_10
_Z9VM_NotifyjjP13VariableValue_20:
	add esp, 0xac
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z9VM_NotifyjjP13VariableValue_10:
	mov [esp], eax
	call _Z10FindObjectj
	mov [ebp-0x3c], eax
	mov eax, [ebp-0x94]
	mov [esp+0x4], eax
	mov edx, [ebp-0x3c]
	mov [esp], edx
	call _Z12FindVariablejj
	test eax, eax
	jz _Z9VM_NotifyjjP13VariableValue_20
	mov [esp], eax
	call _Z10FindObjectj
	mov [ebp-0x40], eax
	mov [esp], eax
	call _Z14AddRefToObjectj
	mov eax, scrVarPub
	mov byte [eax+0x8], 0x1
	mov [ebp-0xa0], eax
_Z9VM_NotifyjjP13VariableValue_130:
	mov ecx, [ebp-0x40]
	mov [esp], ecx
	call _Z15FindLastSiblingj
	mov [ebp-0x74], eax
	test eax, eax
	jz _Z9VM_NotifyjjP13VariableValue_30
	mov edi, eax
_Z9VM_NotifyjjP13VariableValue_170:
	mov [esp], edi
	call _Z12Scr_GetVarIdj
	mov ebx, eax
	mov [esp], eax
	call _Z20GetVariableKeyObjectj
	mov [ebp-0x8c], eax
	mov [esp], eax
	call _Z11Scr_GetSelfj
	mov [ebp-0x7c], eax
	mov [esp+0x4], eax
	mov edx, [ebp-0xa0]
	mov eax, [edx+0x1c]
	mov [esp], eax
	call _Z18FindObjectVariablejj
	mov [esp], eax
	call _Z10FindObjectj
	mov [ebp-0x78], eax
	mov [esp], ebx
	call _Z12GetValueTypej
	test eax, eax
	jz _Z9VM_NotifyjjP13VariableValue_40
	mov [esp], ebx
	call _Z23GetVariableValueAddressj
	mov eax, [eax]
	mov [ebp-0x88], eax
	mov ecx, [eax]
	cmp byte [ecx-0x1], 0x77
	jnz _Z9VM_NotifyjjP13VariableValue_50
	movzx edx, byte [ecx]
	movsx ebx, dl
	mov esi, eax
	movzx eax, word [eax+0x4]
	sub eax, ebx
	lea eax, [eax+eax*4]
	lea esi, [esi+eax+0xb]
	test dl, dl
	jz _Z9VM_NotifyjjP13VariableValue_60
	mov edi, [ebp-0x98]
	cmp dword [edi+0x4], 0x8
	jz _Z9VM_NotifyjjP13VariableValue_70
	sub ebx, 0x1
	mov [ebp-0x4c], ebx
	movzx edx, byte [esi]
	movzx eax, dl
	mov [ebp-0x24], eax
	cmp dl, 0x8
	jz _Z9VM_NotifyjjP13VariableValue_80
	sub edi, 0x4
	mov [ebp-0x54], edi
	mov edi, [ebp-0x98]
	xor ebx, ebx
_Z9VM_NotifyjjP13VariableValue_110:
	mov ecx, [ebp-0x4c]
	sub ecx, ebx
	mov [ebp-0x50], ecx
	mov eax, [esi+0x1]
	mov [ebp-0x28], eax
	add esi, 0x5
	mov [esp+0x4], eax
	mov eax, [ebp-0x24]
	mov [esp], eax
	call _Z13AddRefToValuei13VariableUnion
	mov eax, [edi]
	mov edx, [edi+0x4]
	mov [ebp-0x20], eax
	mov [ebp-0x1c], edx
	mov eax, [ebp-0x20]
	mov [esp+0x4], eax
	mov eax, [ebp-0x1c]
	mov [esp], eax
	call _Z13AddRefToValuei13VariableUnion
	lea eax, [ebp-0x20]
	mov [esp+0x4], eax
	lea edx, [ebp-0x28]
	mov [esp], edx
	call _Z16Scr_EvalEqualityP13VariableValueS0_
	mov eax, scrVarPub
	mov ecx, [eax+0xc]
	test ecx, ecx
	jnz _Z9VM_NotifyjjP13VariableValue_90
	mov eax, [ebp-0x28]
	test eax, eax
	jz _Z9VM_NotifyjjP13VariableValue_100
	sub edi, 0x8
	cmp [ebp-0x4c], ebx
	jz _Z9VM_NotifyjjP13VariableValue_80
	mov eax, [ebp-0x54]
	cmp dword [eax], 0x8
	jz _Z9VM_NotifyjjP13VariableValue_70
	movzx edx, byte [esi]
	movzx eax, dl
	mov [ebp-0x24], eax
	add ebx, 0x1
	sub dword [ebp-0x54], 0x8
	cmp dl, 0x8
	jnz _Z9VM_NotifyjjP13VariableValue_110
	mov eax, [ebp-0x88]
	mov ecx, [eax]
	mov esi, eax
_Z9VM_NotifyjjP13VariableValue_190:
	add ecx, 0x1
	mov [esi], ecx
	mov esi, 0x1
_Z9VM_NotifyjjP13VariableValue_280:
	mov dword [ebp-0x2c], 0xa
	mov edi, [ebp-0x88]
	mov [ebp-0x30], edi
	mov edx, scrVarPub
	mov eax, [edx+0x14]
	mov [esp+0x4], eax
	mov eax, [edx+0x18]
	mov [esp], eax
	call _Z11GetVariablejj
	mov [esp], eax
	call _Z8GetArrayj
	mov ecx, [ebp-0x8c]
	mov [esp+0x4], ecx
	mov [esp], eax
	call _Z20GetNewObjectVariablejj
	mov ebx, eax
	lea eax, [ebp-0x30]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z19SetNewVariableValuejP13VariableValue
	mov [esp], ebx
	call _Z23GetVariableValueAddressj
	mov [ebp-0x44], eax
	mov edi, [ebp-0x94]
	mov [esp+0x4], edi
	mov eax, [ebp-0x40]
	mov [esp], eax
	mov ecx, [ebp-0x3c]
	mov edx, [ebp-0x8c]
	mov eax, [ebp-0x90]
	call _Z23VM_CancelNotifyInternaljjjjj
	mov edx, [ebp-0x8c]
	mov [esp+0x4], edx
	mov ecx, [ebp-0x78]
	mov [esp], ecx
	call _Z20RemoveObjectVariablejj
	mov edi, [ebp-0x78]
	mov [esp], edi
	call _Z12GetArraySizej
	test eax, eax
	jz _Z9VM_NotifyjjP13VariableValue_120
_Z9VM_NotifyjjP13VariableValue_180:
	mov ecx, scrVarPub
	mov eax, [ecx+0x14]
	mov [esp+0x4], eax
	mov edi, [ebp-0x8c]
	mov [esp], edi
	call _Z21Scr_SetThreadWaitTimejj
	mov eax, esi
	test al, al
	jnz _Z9VM_NotifyjjP13VariableValue_130
	mov edx, [ebp-0x88]
	movzx edx, word [edx+0x4]
	mov [ebp-0x84], edx
	mov edx, [ebp-0x98]
	sub edx, 0x4
	mov edi, [ebp-0x98]
	mov esi, [ebp-0x84]
_Z9VM_NotifyjjP13VariableValue_140:
	add esi, 0x1
	sub edi, 0x8
	mov eax, [edx]
	sub edx, 0x8
	cmp eax, 0x8
	jnz _Z9VM_NotifyjjP13VariableValue_140
	mov ecx, [ebp-0x84]
	lea ecx, [ecx+ecx*4]
	mov [ebp-0x9c], ecx
	lea eax, [esi+esi*4+0xb]
	mov [ebp-0x80], eax
	mov [esp+0x4], eax
	mov edx, [ebp-0x88]
	movzx eax, word [edx+0x6]
	mov [esp], eax
	call _Z10MT_Reallocii
	test eax, eax
	jz _Z9VM_NotifyjjP13VariableValue_150
	mov eax, [ebp-0x88]
_Z9VM_NotifyjjP13VariableValue_220:
	mov [eax+0x4], si
	mov edx, [ebp-0x9c]
	lea ebx, [eax+edx+0xb]
	sub esi, [ebp-0x84]
	mov [ebp-0x48], esi
	lea esi, [edi+0x8]
	xor edi, edi
_Z9VM_NotifyjjP13VariableValue_160:
	mov eax, [esi]
	mov [esp+0x4], eax
	mov eax, [esi+0x4]
	mov [esp], eax
	call _Z13AddRefToValuei13VariableUnion
	mov eax, [esi+0x4]
	mov [ebx], al
	mov eax, [esi]
	mov [ebx+0x1], eax
	add ebx, 0x5
	add edi, 0x1
	add esi, 0x8
	cmp [ebp-0x48], edi
	jnz _Z9VM_NotifyjjP13VariableValue_160
	jmp _Z9VM_NotifyjjP13VariableValue_130
_Z9VM_NotifyjjP13VariableValue_70:
	mov edx, [ebp-0x74]
	mov [esp], edx
	call _Z15FindPrevSiblingj
	mov [ebp-0x74], eax
_Z9VM_NotifyjjP13VariableValue_210:
	mov eax, [ebp-0x74]
	test eax, eax
	jz _Z9VM_NotifyjjP13VariableValue_30
_Z9VM_NotifyjjP13VariableValue_200:
	mov edi, [ebp-0x74]
	jmp _Z9VM_NotifyjjP13VariableValue_170
_Z9VM_NotifyjjP13VariableValue_120:
	mov eax, [ebp-0x7c]
	mov [esp+0x4], eax
	mov edx, scrVarPub
	mov eax, [edx+0x1c]
	mov [esp], eax
	call _Z20RemoveObjectVariablejj
	jmp _Z9VM_NotifyjjP13VariableValue_180
_Z9VM_NotifyjjP13VariableValue_80:
	mov edx, [ebp-0x88]
	mov ecx, [edx]
	mov esi, edx
	jmp _Z9VM_NotifyjjP13VariableValue_190
_Z9VM_NotifyjjP13VariableValue_90:
	mov esi, [ebp-0x88]
	mov edx, [esi]
	mov eax, [scrVmGlob+0x10]
	mov [esp+0xc], eax
	mov [esp+0x8], ecx
	movsx eax, byte [edx]
	sub eax, [ebp-0x50]
	add eax, 0x3
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z12RuntimeErrorPKcjS0_S0_
	mov edi, scrVarPub
	mov dword [edi+0xc], 0x0
	mov dword [scrVmGlob+0x10], 0x0
	mov dword [edi+0x10], 0x0
	mov eax, [ebp-0x74]
	mov [esp], eax
	call _Z15FindPrevSiblingj
	mov [ebp-0x74], eax
	mov eax, [ebp-0x74]
	test eax, eax
	jnz _Z9VM_NotifyjjP13VariableValue_200
_Z9VM_NotifyjjP13VariableValue_30:
	mov ecx, [ebp-0x40]
	mov [esp], ecx
	call _Z17RemoveRefToObjectj
	mov eax, scrVarPub
	mov byte [eax+0x8], 0x0
	add esp, 0xac
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z9VM_NotifyjjP13VariableValue_100:
	mov esi, [ebp-0x74]
	mov [esp], esi
	call _Z15FindPrevSiblingj
	mov [ebp-0x74], eax
	jmp _Z9VM_NotifyjjP13VariableValue_210
_Z9VM_NotifyjjP13VariableValue_150:
	mov dword [esp+0x4], 0x1
	mov ecx, [ebp-0x80]
	mov [esp], ecx
	call _Z8MT_Allocii
	mov ebx, eax
	movzx eax, word [ebp-0x80]
	mov [ebx+0x6], ax
	mov edx, [ebp-0x88]
	mov eax, [edx]
	mov [ebx], eax
	movzx eax, word [edx+0x8]
	mov [ebx+0x8], ax
	lea edx, [ebx+0xb]
	mov eax, [ebp-0x88]
	add eax, 0xb
	mov ecx, [ebp-0x9c]
	mov [esp+0x8], ecx
	mov [esp+0x4], eax
	mov [esp], edx
	call memcpy
	mov edx, [ebp-0x88]
	movzx eax, word [edx+0x6]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z7MT_FreePvi
	mov ecx, [ebp-0x44]
	mov [ecx], ebx
	mov [ebp-0x88], ebx
	mov eax, ebx
	jmp _Z9VM_NotifyjjP13VariableValue_220
_Z9VM_NotifyjjP13VariableValue_40:
	mov ecx, [ebp-0x94]
	mov [esp+0x4], ecx
	mov esi, [ebp-0x40]
	mov [esp], esi
	mov ecx, [ebp-0x3c]
	mov edx, [ebp-0x8c]
	mov eax, [ebp-0x90]
	call _Z23VM_CancelNotifyInternaljjjjj
	mov edi, [ebp-0x8c]
	mov [esp], edi
	call _Z19Scr_KillEndonThreadj
	mov [esp+0x4], edi
	mov eax, [ebp-0x78]
	mov [esp], eax
	call _Z20RemoveObjectVariablejj
	mov edx, [ebp-0x78]
	mov [esp], edx
	call _Z12GetArraySizej
	test eax, eax
	jz _Z9VM_NotifyjjP13VariableValue_230
_Z9VM_NotifyjjP13VariableValue_310:
	mov edi, [ebp-0x7c]
	mov [esp], edi
	call _Z15GetStartLocalIdj
	mov [ebp-0x60], eax
	mov [esp], eax
	call _Z13GetObjectTypej
	cmp eax, 0xf
	jz _Z9VM_NotifyjjP13VariableValue_240
	cmp eax, 0x10
	jz _Z9VM_NotifyjjP13VariableValue_250
	cmp eax, 0xe
	jnz _Z9VM_NotifyjjP13VariableValue_130
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jz _Z9VM_NotifyjjP13VariableValue_130
	lea eax, [ebx+ebx*2]
	mov edx, [eax*8+scrVmPub+0x24]
	cmp [ebp-0x7c], edx
	jnz _Z9VM_NotifyjjP13VariableValue_260
	mov esi, ebx
_Z9VM_NotifyjjP13VariableValue_350:
	lea eax, [ebx+ebx*2]
	lea eax, [eax*8+scrVmPub+0x20]
_Z9VM_NotifyjjP13VariableValue_270:
	mov dword [eax], g_EndPos
	sub ebx, 0x1
	sub eax, 0x18
	cmp ebx, esi
	jge _Z9VM_NotifyjjP13VariableValue_270
	jmp _Z9VM_NotifyjjP13VariableValue_130
_Z9VM_NotifyjjP13VariableValue_50:
	mov edx, [ebp-0x98]
	cmp dword [edx+0x4], 0x8
	setz cl
	mov esi, ecx
	jmp _Z9VM_NotifyjjP13VariableValue_280
_Z9VM_NotifyjjP13VariableValue_60:
	mov esi, [ebp-0x88]
	jmp _Z9VM_NotifyjjP13VariableValue_190
_Z9VM_NotifyjjP13VariableValue_240:
	mov edx, [ebp-0x60]
	mov [esp], edx
	call _Z23Scr_GetThreadNotifyNamej
	movzx ecx, ax
	mov [ebp-0x6c], ecx
	test ax, ax
	jz _Z9VM_NotifyjjP13VariableValue_290
	mov esi, [ebp-0x60]
	mov [esp], esi
	call _Z11Scr_GetSelfj
	mov [ebp-0x70], eax
	mov [esp+0x4], eax
	mov edi, [ebp-0xa0]
	mov eax, [edi+0x1c]
	mov [esp], eax
	call _Z18FindObjectVariablejj
	mov [esp], eax
	call _Z10FindObjectj
	mov ebx, eax
	mov [esp+0x4], esi
	mov [esp], eax
	call _Z18FindObjectVariablejj
	mov [esp], eax
	call _Z23GetVariableValueAddressj
	mov edi, [eax]
	mov dword [esp+0x4], 0x18000
	mov [esp], edi
	call _Z12FindVariablejj
	mov [esp], eax
	call _Z10FindObjectj
	mov [ebp-0x68], eax
	mov eax, [ebp-0x6c]
	mov [esp+0x4], eax
	mov edx, [ebp-0x68]
	mov [esp], edx
	call _Z12FindVariablejj
	mov [esp], eax
	call _Z10FindObjectj
	mov esi, eax
	mov ecx, [ebp-0x60]
	mov [esp+0x4], ecx
	mov [esp], eax
	call _Z18FindObjectVariablejj
	mov [esp], eax
	call _Z23GetVariableValueAddressj
	mov eax, [eax]
	mov [ebp-0x64], eax
	mov eax, [ebp-0x6c]
	mov [esp+0x4], eax
	mov [esp], esi
	mov ecx, [ebp-0x68]
	mov edx, [ebp-0x60]
	mov eax, edi
	call _Z23VM_CancelNotifyInternaljjjjj
	mov edx, [ebp-0x60]
	mov [esp+0x4], edx
	mov [esp], ebx
	call _Z20RemoveObjectVariablejj
	mov [esp], ebx
	call _Z12GetArraySizej
	test eax, eax
	jz _Z9VM_NotifyjjP13VariableValue_300
_Z9VM_NotifyjjP13VariableValue_330:
	mov ecx, [ebp-0x64]
	mov edx, [ebp-0x60]
	mov eax, [ebp-0x7c]
	call _Z17VM_TerminateStackjjP19VariableStackBuffer
	jmp _Z9VM_NotifyjjP13VariableValue_130
_Z9VM_NotifyjjP13VariableValue_230:
	mov ecx, [ebp-0x7c]
	mov [esp+0x4], ecx
	mov esi, [ebp-0xa0]
	mov eax, [esi+0x1c]
	mov [esp], eax
	call _Z20RemoveObjectVariablejj
	jmp _Z9VM_NotifyjjP13VariableValue_310
_Z9VM_NotifyjjP13VariableValue_250:
	mov eax, [ebp-0x60]
	mov [esp], eax
	call _Z21Scr_GetThreadWaitTimej
	mov esi, eax
	mov edx, [ebp-0x60]
	mov [esp], edx
	call _Z17Scr_ClearWaitTimej
	mov [esp+0x4], esi
	mov ecx, [ebp-0xa0]
	mov eax, [ecx+0x18]
	mov [esp], eax
	call _Z12FindVariablejj
	mov [esp], eax
	call _Z10FindObjectj
	mov ebx, eax
	mov edi, [ebp-0x60]
	mov [esp+0x4], edi
	mov [esp], eax
	call _Z18FindObjectVariablejj
	mov [esp], eax
	call _Z23GetVariableValueAddressj
	mov edi, [eax]
	mov eax, [ebp-0x60]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z20RemoveObjectVariablejj
	mov [esp], ebx
	call _Z12GetArraySizej
	test eax, eax
	jnz _Z9VM_NotifyjjP13VariableValue_320
	mov edx, [ebp-0xa0]
	cmp esi, [edx+0x14]
	jz _Z9VM_NotifyjjP13VariableValue_320
	mov [esp+0x4], esi
	mov eax, [edx+0x18]
	mov [esp], eax
	call _Z14RemoveVariablejj
_Z9VM_NotifyjjP13VariableValue_320:
	mov ecx, edi
	mov edx, [ebp-0x60]
	mov eax, [ebp-0x7c]
	call _Z17VM_TerminateStackjjP19VariableStackBuffer
	jmp _Z9VM_NotifyjjP13VariableValue_130
_Z9VM_NotifyjjP13VariableValue_290:
	mov dword [esp+0x4], 0x18001
	mov edi, [ebp-0x60]
	mov [esp], edi
	call _Z12FindVariablejj
	mov [esp], eax
	call _Z23GetVariableValueAddressj
	mov eax, [eax]
	mov [ebp-0x64], eax
	mov dword [esp+0x4], 0x18001
	mov [esp], edi
	call _Z14RemoveVariablejj
	jmp _Z9VM_NotifyjjP13VariableValue_330
_Z9VM_NotifyjjP13VariableValue_260:
	lea eax, [ebx-0x1]
	mov [ebp-0x58], eax
	lea eax, [eax+eax*2]
	lea eax, [eax*8+scrVmPub+0x20]
	mov [ebp-0x5c], eax
	mov edi, ebx
	mov esi, ebx
_Z9VM_NotifyjjP13VariableValue_340:
	sub esi, 0x1
	mov [esp], edx
	call _Z20GetSafeParentLocalIdj
	test eax, eax
	cmovz edi, esi
	mov eax, ebx
	sub eax, [ebp-0x58]
	sub eax, 0x1
	cmp eax, esi
	jz _Z9VM_NotifyjjP13VariableValue_130
	mov eax, [ebp-0x5c]
	mov edx, [eax+0x4]
	sub eax, 0x18
	mov [ebp-0x5c], eax
	cmp edx, [ebp-0x7c]
	jnz _Z9VM_NotifyjjP13VariableValue_340
	cmp esi, edi
	jg _Z9VM_NotifyjjP13VariableValue_130
	mov ebx, edi
	jmp _Z9VM_NotifyjjP13VariableValue_350
_Z9VM_NotifyjjP13VariableValue_300:
	mov ecx, [ebp-0x70]
	mov [esp+0x4], ecx
	mov esi, [ebp-0xa0]
	mov eax, [esi+0x1c]
	mov [esp], eax
	call _Z20RemoveObjectVariablejj
	jmp _Z9VM_NotifyjjP13VariableValue_330
	nop


;VM_ExecuteInternal()
_Z18VM_ExecuteInternalv:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x4c
	add dword [g_script_error_level], 0x1
	mov dword [ebp-0x34], 0x0
	mov dword [ebp-0x3c], 0x0
	mov dword [ebp-0x38], 0x0
	mov dword [ebp-0x2c], 0x0
	mov dword [ebp-0x30], 0x0
_Z18VM_ExecuteInternalv_1760:
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call setjmp
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_10
_Z18VM_ExecuteInternalv_810:
	mov ecx, [gFs]
_Z18VM_ExecuteInternalv_40:
	movzx eax, byte [ecx]
	mov [opcode], eax
	lea edx, [ecx+0x1]
	mov [gFs], edx
	cmp eax, 0x86
	ja _Z18VM_ExecuteInternalv_20
_Z18VM_ExecuteInternalv_30:
	jmp dword [eax*4+_Z18VM_ExecuteInternalv_jumptab_0]
_Z18VM_ExecuteInternalv_3710:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x8
	mov ecx, [gFs]
	movzx eax, byte [ecx]
	mov [opcode], eax
	lea edx, [ecx+0x1]
	mov [gFs], edx
	cmp eax, 0x86
	jbe _Z18VM_ExecuteInternalv_30
_Z18VM_ExecuteInternalv_20:
	mov ecx, edx
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3520:
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z11Scr_GetSelfj
	mov [ebp-0x34], eax
_Z18VM_ExecuteInternalv_1150:
	mov eax, [gFs]
	movzx edx, word [eax]
	add eax, 0x2
	mov [gFs], eax
	mov [esp+0x4], edx
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z25Scr_GetVariableFieldIndexjj
	mov [ebp-0x3c], eax
	mov [esp], eax
	call _Z12Scr_GetVarIdj
	mov [ebp-0x38], eax
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3720:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x8
_Z18VM_ExecuteInternalv_3730:
	cmp dword [scrVmPub+0x8], 0x1e
	jle _Z18VM_ExecuteInternalv_50
	mov ebx, scrVarPub
	mov edi, [ebx+0xc]
	test edi, edi
	jz _Z18VM_ExecuteInternalv_60
_Z18VM_ExecuteInternalv_2410:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_70
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_80
_Z18VM_ExecuteInternalv_70:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_90
_Z18VM_ExecuteInternalv_2040:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_90:
	mov eax, [gFs+0xc]
	cmp dword [eax+0x4], 0x9
	jnz _Z18VM_ExecuteInternalv_100
	cmp dword [scrVmPub+0x8], 0x1e
	jle _Z18VM_ExecuteInternalv_110
	mov ebx, scrVarPub
	mov dword [ebx+0x10], 0x1
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z18VM_ExecuteInternalv_120
_Z18VM_ExecuteInternalv_2610:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_130
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_140
_Z18VM_ExecuteInternalv_130:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_150
_Z18VM_ExecuteInternalv_2190:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_150:
	mov eax, [gFs+0xc]
_Z18VM_ExecuteInternalv_100:
	mov edx, [eax+0x4]
	mov eax, var_typename
	mov eax, [eax+edx*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s_is_not_a_funct
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov edi, [ebx+0xc]
	test edi, edi
	jz _Z18VM_ExecuteInternalv_160
_Z18VM_ExecuteInternalv_2360:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_170
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_180
_Z18VM_ExecuteInternalv_170:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_190
_Z18VM_ExecuteInternalv_1860:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_190:
	mov edx, [gFs+0xc]
	cmp dword [edx+0x4], 0x1
	jnz _Z18VM_ExecuteInternalv_200
	cmp dword [scrVmPub+0x8], 0x1e
	jg _Z18VM_ExecuteInternalv_210
	mov eax, [gFs+0x4]
	mov [esp+0x4], eax
	mov eax, [edx]
	mov [esp], eax
	call _Z16AllocChildThreadjj
	mov [gFs+0x4], eax
	sub dword [gFs+0xc], 0x8
_Z18VM_ExecuteInternalv_1770:
	mov edx, [gFs]
	mov eax, [scrVmPub+0xc]
	mov [eax], edx
	mov edx, [scrVmPub+0xc]
	mov eax, [edx]
	mov ecx, [eax]
	add eax, 0x4
	mov [edx], eax
	mov [gFs], ecx
_Z18VM_ExecuteInternalv_530:
	mov edx, [gFs+0x8]
	mov eax, [scrVmPub+0xc]
	mov [eax+0x8], edx
	mov dword [gFs+0x8], 0x0
	add dword [scrVmPub+0x8], 0x1
	mov edx, [scrVmPub+0xc]
	add edx, 0x18
	mov [scrVmPub+0xc], edx
	mov eax, [gFs+0x4]
	mov [edx+0x4], eax
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3690:
	sub eax, 0x45
	mov [scrVmPub+0x1c], eax
_Z18VM_ExecuteInternalv_1400:
	mov ecx, [gFs+0xc]
	lea eax, [ecx-0x8]
	mov [scrVmPub+0x10], eax
	mov eax, [gFs]
	movzx edx, word [eax]
	add eax, 0x2
	mov [gFs], eax
	mov esi, edx
	cmp dword [ecx+0x4], 0x1
	jz _Z18VM_ExecuteInternalv_220
	mov eax, ecx
_Z18VM_ExecuteInternalv_1820:
	mov ebx, [eax+0x4]
	mov eax, [eax]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z16RemoveRefToValuei13VariableUnion
	mov esi, scrVarPub
	mov dword [esi+0x10], 0xffffffff
	mov eax, var_typename
	mov eax, [eax+ebx*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s_is_not_an_enti
	call _Z2vaPKcz
	mov edi, [esi+0xc]
	test edi, edi
	jz _Z18VM_ExecuteInternalv_230
_Z18VM_ExecuteInternalv_2380:
	cmp byte [esi+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_240
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_250
_Z18VM_ExecuteInternalv_240:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_260
_Z18VM_ExecuteInternalv_1900:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_260:
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
	cmp edx, 0x5
	jz _Z18VM_ExecuteInternalv_270
	cmp edx, 0x6
	jnz _Z18VM_ExecuteInternalv_280
	mov eax, [eax]
	lea eax, [eax+eax*4]
	shl eax, 0x2
	mov [ebp-0x30], eax
_Z18VM_ExecuteInternalv_1650:
	mov esi, eax
_Z18VM_ExecuteInternalv_1630:
	cmp esi, 0xfffffe
	ja _Z18VM_ExecuteInternalv_290
	mov eax, [ebp-0x30]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_300
_Z18VM_ExecuteInternalv_2010:
	mov ebx, scrVarPub
	add esi, [ebx+0x14]
	and esi, 0xffffff
	mov [ebp-0x30], esi
	sub dword [gFs+0xc], 0x8
	mov dword [ebp-0x24], 0xa
	call _Z15VM_ArchiveStackv
	mov [ebp-0x28], eax
	mov eax, [ebp-0x30]
	mov [esp+0x4], eax
	mov eax, [ebx+0x18]
	mov [esp], eax
	call _Z11GetVariablejj
	mov [esp], eax
	call _Z8GetArrayj
	mov edx, [gFs+0x4]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z20GetNewObjectVariablejj
	lea edx, [ebp-0x28]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z19SetNewVariableValuejP13VariableValue
	mov eax, [ebp-0x30]
	mov [esp+0x4], eax
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z21Scr_SetThreadWaitTimejj
	jmp _Z18VM_ExecuteInternalv_310
_Z18VM_ExecuteInternalv_1250:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov [esp], ecx
	call _Z16RemoveRefToValuei13VariableUnion
	mov eax, [gFs+0xc]
	sub eax, 0x8
	mov [gFs+0xc], eax
	mov edx, [eax+0xc]
	mov eax, var_typename
	mov eax, [eax+edx*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s_is_not_a_funct
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov edi, [ebx+0xc]
	test edi, edi
	jz _Z18VM_ExecuteInternalv_320
_Z18VM_ExecuteInternalv_2640:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_330
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18VM_ExecuteInternalv_330
	cmp byte [ebx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_340
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_340:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z18VM_ExecuteInternalv_350
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_1840:
	cmp dword [scrVmPub+0x8], 0x1e
	jle _Z18VM_ExecuteInternalv_360
	mov ebx, scrVarPub
	mov dword [ebx+0x10], 0x1
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z18VM_ExecuteInternalv_370
_Z18VM_ExecuteInternalv_2440:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_380
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_390
_Z18VM_ExecuteInternalv_380:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_400
_Z18VM_ExecuteInternalv_2090:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_400:
	mov eax, [gFs+0xc]
	cmp dword [eax+0x4], 0x9
	jnz _Z18VM_ExecuteInternalv_410
	cmp dword [scrVmPub+0x8], 0x1e
	jle _Z18VM_ExecuteInternalv_420
	mov ebx, scrVarPub
	mov dword [ebx+0x10], 0x1
	mov edi, [ebx+0xc]
	test edi, edi
	jz _Z18VM_ExecuteInternalv_430
_Z18VM_ExecuteInternalv_2620:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_440
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_450
_Z18VM_ExecuteInternalv_440:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_460
_Z18VM_ExecuteInternalv_2290:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_460:
	mov eax, [gFs+0xc]
_Z18VM_ExecuteInternalv_410:
	mov edx, [eax+0x4]
	mov eax, var_typename
	mov eax, [eax+edx*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s_is_not_a_funct
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z18VM_ExecuteInternalv_470
_Z18VM_ExecuteInternalv_2400:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_480
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_490
_Z18VM_ExecuteInternalv_480:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_500
_Z18VM_ExecuteInternalv_1950:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_500:
	mov eax, [gFs+0xc]
	cmp dword [eax+0x4], 0x1
	jnz _Z18VM_ExecuteInternalv_510
	cmp dword [scrVmPub+0x8], 0x1e
	jg _Z18VM_ExecuteInternalv_520
	mov eax, [eax]
	mov [esp], eax
	call _Z11AllocThreadj
	mov [gFs+0x4], eax
	sub dword [gFs+0xc], 0x8
_Z18VM_ExecuteInternalv_1910:
	mov edx, [gFs]
	mov eax, [scrVmPub+0xc]
	mov [eax], edx
	mov edx, [gFs+0x10]
	mov eax, [scrVmPub+0xc]
	mov [eax+0x10], edx
	mov edx, [scrVmPub+0xc]
	mov eax, [edx]
	mov ecx, [eax]
	add eax, 0x4
	mov [edx], eax
	mov [gFs], ecx
_Z18VM_ExecuteInternalv_2070:
	mov ecx, [gFs+0xc]
	mov ebx, [scrVmPub+0xc]
	mov eax, [ebx]
	mov edx, [eax]
	add eax, 0x4
	mov [ebx], eax
	shl edx, 0x3
	sub ecx, edx
	mov [gFs+0x10], ecx
	mov edx, ecx
_Z18VM_ExecuteInternalv_1500:
	mov eax, [scrVmPub+0xc]
	mov [eax+0xc], edx
	mov edx, [edx+0x4]
	mov eax, [scrVmPub+0xc]
	mov [eax+0x14], edx
	mov eax, [gFs+0x10]
	mov dword [eax+0x4], 0x8
	add dword [thread_count], 0x1
	jmp _Z18VM_ExecuteInternalv_530
_Z18VM_ExecuteInternalv_290:
	mov ebx, scrVarPub
	mov dword [ebx+0x10], 0x2
	mov eax, [ebp-0x30]
	test eax, eax
	js _Z18VM_ExecuteInternalv_540
	mov edi, [ebx+0xc]
	test edi, edi
	jz _Z18VM_ExecuteInternalv_550
_Z18VM_ExecuteInternalv_2450:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_560
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_570
_Z18VM_ExecuteInternalv_560:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_580
_Z18VM_ExecuteInternalv_2130:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	mov ebx, scrVarPub
_Z18VM_ExecuteInternalv_540:
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z18VM_ExecuteInternalv_590
_Z18VM_ExecuteInternalv_1680:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_600
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_610
_Z18VM_ExecuteInternalv_600:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_620
_Z18VM_ExecuteInternalv_1970:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_620:
	mov dword [ebp-0x24], 0xa
	call _Z15VM_ArchiveStackv
	mov [ebp-0x28], eax
	mov ebx, scrVarPub
	mov eax, [ebx+0x14]
	mov [esp+0x4], eax
	mov eax, [ebx+0x18]
	mov [esp], eax
	call _Z11GetVariablejj
	mov [esp], eax
	call _Z8GetArrayj
	mov edx, [gFs+0x4]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z27GetNewObjectVariableReversejj
	lea edx, [ebp-0x28]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z19SetNewVariableValuejP13VariableValue
	mov eax, [ebx+0x14]
	mov [esp+0x4], eax
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z21Scr_SetThreadWaitTimejj
_Z18VM_ExecuteInternalv_310:
	mov eax, [gFs+0x10]
	mov dword [eax+0xc], 0x0
_Z18VM_ExecuteInternalv_1550:
	mov eax, [thread_count]
	test eax, eax
	jz _Z18VM_ExecuteInternalv_630
	sub eax, 0x1
	mov [thread_count], eax
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z17RemoveRefToObjectj
	mov edx, [scrVmPub+0xc]
	mov eax, [edx]
	mov [gFs], eax
	mov eax, [edx+0x4]
	mov [gFs+0x4], eax
	mov eax, [edx+0x8]
	mov [gFs+0x8], eax
	mov ecx, [edx+0xc]
	mov [gFs+0xc], ecx
	mov eax, [edx+0x10]
	mov [gFs+0x10], eax
	mov eax, [edx+0x14]
	mov [ecx+0x4], eax
	add dword [gFs+0xc], 0x8
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3120:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x6
	mov eax, [gFs]
	movzx eax, byte [eax]
	neg eax
	mov edx, [gFs+0xc]
	mov [edx], eax
_Z18VM_ExecuteInternalv_4140:
	add dword [gFs], 0x1
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_1370:
	mov ebx, [scrVmGlob+0x14]
	test ebx, ebx
	jnz _Z18VM_ExecuteInternalv_640
	cmp byte [scrVmPub+0x15], 0x0
	jz _Z18VM_ExecuteInternalv_650
	call _Z21Scr_DumpScriptThreadsv
	call _Z30Scr_DumpScriptVariablesDefaultv
	mov byte [scrVmPub+0x16], 0x1
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z18VM_ExecuteInternalv_660
_Z18VM_ExecuteInternalv_2710:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_670
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18VM_ExecuteInternalv_670
	cmp byte [ebx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_680
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_680:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_2330:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_2340:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, [ebp-0x38]
	mov [esp], eax
	call _Z21Scr_EvalVariableFieldj
	mov [ebx+0x8], eax
	mov [ebx+0xc], edx
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
	cmp edx, 0x6
	jz _Z18VM_ExecuteInternalv_690
	mov eax, var_typename
	mov eax, [eax+edx*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring__must_be_applied
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov edi, [ebx+0xc]
	test edi, edi
	jz _Z18VM_ExecuteInternalv_700
_Z18VM_ExecuteInternalv_2630:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_710
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_720
_Z18VM_ExecuteInternalv_710:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_730
_Z18VM_ExecuteInternalv_2170:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_730:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, [ebp-0x38]
	mov [esp], eax
	call _Z21Scr_EvalVariableFieldj
	mov [ebx+0x8], eax
	mov [ebx+0xc], edx
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
	cmp edx, 0x6
	jz _Z18VM_ExecuteInternalv_740
	mov eax, var_typename
	mov eax, [eax+edx*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring__must_be_applied1
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z18VM_ExecuteInternalv_750
_Z18VM_ExecuteInternalv_2420:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_760
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_770
_Z18VM_ExecuteInternalv_760:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_780
_Z18VM_ExecuteInternalv_2060:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_780:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z10Scr_EvalOrP13VariableValueS0_
_Z18VM_ExecuteInternalv_800:
	sub dword [gFs+0xc], 0x8
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_1010:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x0
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3480:
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z11Scr_GetSelfj
	mov [ebp-0x34], eax
	mov [esp], eax
	call _Z13IsFieldObjectj
	test al, al
	jz _Z18VM_ExecuteInternalv_790
_Z18VM_ExecuteInternalv_3490:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, [gFs]
	movzx edx, word [eax]
	add eax, 0x2
	mov [gFs], eax
	mov [esp+0x4], edx
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z21Scr_FindVariableFieldjj
	mov [ebx+0x8], eax
	mov [ebx+0xc], edx
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3380:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, [gFs]
	movzx edx, byte [eax]
	shl edx, 0x2
	mov eax, [scrVmPub]
	sub eax, edx
	mov eax, [eax]
	mov [esp], eax
	call _Z16Scr_EvalVariablej
	mov [ebx+0x8], eax
	mov [ebx+0xc], edx
	add dword [gFs], 0x1
_Z18VM_ExecuteInternalv_3390:
	mov edx, [gFs+0xc]
	lea eax, [edx-0x8]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z13Scr_EvalArrayP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3540:
	mov ebx, [scrVmPub]
	lea eax, [ebx+0x4]
	mov [scrVmPub], eax
	add dword [gFs+0x8], 0x1
	mov eax, [gFs]
	movzx edx, word [eax]
	add eax, 0x2
	mov [gFs], eax
	mov [esp+0x4], edx
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z14GetNewVariablejj
	mov [ebx+0x4], eax
_Z18VM_ExecuteInternalv_3550:
	mov eax, [gFs+0xc]
	cmp dword [eax+0x4], 0x8
	jz _Z18VM_ExecuteInternalv_810
_Z18VM_ExecuteInternalv_980:
	mov [esp+0x4], eax
	mov eax, [scrVmPub]
	mov eax, [eax]
	mov [esp], eax
	call _Z16SetVariableValuejP13VariableValue
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3640:
	movzx ebx, word [edx]
	lea eax, [ecx+0x3]
	mov [gFs], eax
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z11Scr_GetSelfj
	mov [ebp-0x34], eax
	mov [esp+0x4], ebx
	mov [esp], eax
	call _Z25Scr_GetVariableFieldIndexjj
	mov [ebp-0x3c], eax
	mov [esp], eax
	call _Z12Scr_GetVarIdj
	mov [ebp-0x38], eax
_Z18VM_ExecuteInternalv_3620:
	mov edi, [ebp-0x3c]
	test edi, edi
	jz _Z18VM_ExecuteInternalv_820
	mov eax, [gFs+0xc]
	mov esi, [eax+0x4]
	test esi, esi
	jz _Z18VM_ExecuteInternalv_830
	mov [esp+0x4], eax
	mov eax, [ebp-0x38]
	mov [esp], eax
	call _Z16SetVariableValuejP13VariableValue
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3590:
	mov eax, [gFs+0xc]
	cmp dword [eax+0x4], 0x8
	jz _Z18VM_ExecuteInternalv_840
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z18VM_ExecuteInternalv_850
_Z18VM_ExecuteInternalv_2600:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_860
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_870
_Z18VM_ExecuteInternalv_860:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_880
_Z18VM_ExecuteInternalv_2270:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_880:
	mov eax, [scrVmPub]
	mov eax, [eax]
	mov [ebp-0x38], eax
_Z18VM_ExecuteInternalv_1120:
	mov dword [ebp-0x3c], 0x0
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_1490:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov [esp], ecx
	call _Z16RemoveRefToValuei13VariableUnion
	mov eax, [gFs+0xc]
	sub eax, 0x8
	mov [gFs+0xc], eax
	mov edx, [eax+0xc]
	mov eax, var_typename
	mov eax, [eax+edx*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s_is_not_a_funct
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z18VM_ExecuteInternalv_890
_Z18VM_ExecuteInternalv_2650:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_900
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18VM_ExecuteInternalv_900
	cmp byte [ebx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_910
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_910:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z18VM_ExecuteInternalv_350
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_1870:
	mov eax, [gFs+0xc]
	mov edx, [eax]
	mov [esp+0x4], edx
	mov eax, [eax+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_1510:
	lea eax, [ecx+0x2]
	mov [gFs], eax
	mov ecx, eax
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3420:
	mov eax, [ebp-0x38]
_Z18VM_ExecuteInternalv_1390:
	mov [esp], eax
	call _Z16Scr_EvalArrayRefj
	mov [ebp-0x34], eax
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
	cmp edx, 0x6
	jz _Z18VM_ExecuteInternalv_920
_Z18VM_ExecuteInternalv_1040:
	cmp edx, 0x2
	jz _Z18VM_ExecuteInternalv_930
	mov eax, var_typename
	mov eax, [eax+edx*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s_is_not_an_arra
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov edx, [ebx+0xc]
	test edx, edx
	jz _Z18VM_ExecuteInternalv_940
_Z18VM_ExecuteInternalv_2370:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_950
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_960
_Z18VM_ExecuteInternalv_950:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_970
_Z18VM_ExecuteInternalv_1930:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_970:
	mov eax, [ebp-0x3c]
_Z18VM_ExecuteInternalv_1670:
	mov [esp], eax
	call _Z12Scr_GetVarIdj
	mov [ebp-0x38], eax
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3650:
	mov eax, [gFs+0xc]
	jmp _Z18VM_ExecuteInternalv_980
_Z18VM_ExecuteInternalv_3660:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	movzx edx, byte [edx]
	shl edx, 0x2
	mov eax, [scrVmPub]
	sub eax, edx
	mov eax, [eax]
	mov [esp], eax
	call _Z16SetVariableValuejP13VariableValue
	add dword [gFs], 0x1
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3670:
	sub eax, 0x3e
	mov [scrVmPub+0x1c], eax
_Z18VM_ExecuteInternalv_1020:
	mov eax, [gFs]
	movzx ecx, word [eax]
	add eax, 0x2
	mov [gFs], eax
	mov edx, [scrVmPub+0xc]
	mov [edx], eax
	mov eax, [gFs+0xc]
	mov [scrVmPub+0x10], eax
	mov eax, scrCompilePub
	call dword [eax+ecx*4+0x20034]
_Z18VM_ExecuteInternalv_2390:
	mov edx, [scrVmPub+0x10]
	mov [gFs+0xc], edx
	mov eax, [scrVmPub+0xc]
	mov eax, [eax]
	mov [gFs], eax
	mov esi, [scrVmPub+0x1c]
	test esi, esi
	jz _Z18VM_ExecuteInternalv_990
	mov dword [scrVmPub+0x1c], 0x0
	lea eax, [esi*8]
	sub edx, eax
	mov [scrVmPub+0x10], edx
	xor ebx, ebx
_Z18VM_ExecuteInternalv_1000:
	mov eax, [gFs+0xc]
	mov edx, [eax]
	mov [esp+0x4], edx
	mov eax, [eax+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	sub dword [gFs+0xc], 0x8
	add ebx, 0x1
	cmp esi, ebx
	jnz _Z18VM_ExecuteInternalv_1000
_Z18VM_ExecuteInternalv_990:
	mov ebx, [scrVmPub+0x18]
	test ebx, ebx
	jz _Z18VM_ExecuteInternalv_1010
	mov dword [scrVmPub+0x18], 0x0
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3680:
	movzx eax, byte [edx]
	mov [scrVmPub+0x1c], eax
	add dword [gFs], 0x1
	jmp _Z18VM_ExecuteInternalv_1020
_Z18VM_ExecuteInternalv_3630:
	mov ebx, [gFs+0xc]
	movzx eax, word [edx]
	lea edx, [ecx+0x3]
	mov [gFs], edx
	mov [esp+0x4], eax
	mov eax, scrVarPub
	mov eax, [eax+0x28]
_Z18VM_ExecuteInternalv_1030:
	mov [esp], eax
	call _Z11GetVariablejj
	mov [esp+0x4], ebx
	mov [esp], eax
	call _Z16SetVariableValuejP13VariableValue
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3610:
	mov ebx, [gFs+0xc]
	movzx eax, word [edx]
	lea edx, [ecx+0x3]
	mov [gFs], edx
	mov [esp+0x4], eax
	mov eax, scrVarPub
	mov eax, [eax+0x20]
	jmp _Z18VM_ExecuteInternalv_1030
_Z18VM_ExecuteInternalv_3410:
	movzx eax, byte [edx]
	shl eax, 0x2
	mov edx, [scrVmPub]
	sub edx, eax
	mov edx, [edx]
	mov [ebp-0x38], edx
	lea eax, [ecx+0x2]
	mov [gFs], eax
	mov eax, edx
	mov [esp], eax
	call _Z16Scr_EvalArrayRefj
	mov [ebp-0x34], eax
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
	cmp edx, 0x6
	jnz _Z18VM_ExecuteInternalv_1040
_Z18VM_ExecuteInternalv_920:
	mov eax, [eax]
	mov [esp], eax
	call _Z17IsValidArrayIndexj
	test al, al
	jnz _Z18VM_ExecuteInternalv_1050
	mov eax, [gFs+0xc]
	mov eax, [eax]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_array_index_d_ou
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov esi, [ebx+0xc]
	test esi, esi
	jz _Z18VM_ExecuteInternalv_1060
_Z18VM_ExecuteInternalv_2700:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_1070
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18VM_ExecuteInternalv_1070
	cmp byte [ebx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_1080
	mov eax, 0x1
	mov ebx, [scrVmGlob+0x14]
	test ebx, ebx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_1080:
	mov ecx, [scrVmPub+0x8]
	test ecx, ecx
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_1090
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_3150:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x6
_Z18VM_ExecuteInternalv_1110:
	mov eax, [gFs]
	mov edx, [eax]
	add eax, 0x4
	mov [gFs], eax
	mov eax, [gFs+0xc]
	mov [eax], edx
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3160:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x5
	mov eax, [gFs]
	mov edx, [eax]
	add eax, 0x4
	mov [gFs], eax
	mov eax, [gFs+0xc]
	mov [eax], edx
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3170:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x2
_Z18VM_ExecuteInternalv_1100:
	mov eax, [gFs]
	movzx edx, word [eax]
	add eax, 0x2
	mov [gFs], eax
	mov eax, [gFs+0xc]
	mov [eax], edx
	mov eax, [gFs+0xc]
	mov eax, [eax]
	mov [esp], eax
	call _Z17SL_AddRefToStringj
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3180:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x3
	jmp _Z18VM_ExecuteInternalv_1100
_Z18VM_ExecuteInternalv_3190:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x4
	mov edx, [gFs]
	lea eax, [edx+0xc]
	mov [gFs], eax
	mov eax, [gFs+0xc]
	mov [eax], edx
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3200:
	mov eax, scrVarPub
	mov eax, [eax+0x20]
	mov [ebp-0x34], eax
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3210:
	mov eax, scrVarPub
	mov eax, [eax+0x28]
	mov [ebp-0x34], eax
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3220:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x1
	mov ebx, [gFs+0xc]
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z11Scr_GetSelfj
	mov [ebx], eax
_Z18VM_ExecuteInternalv_1430:
	mov eax, [gFs+0xc]
	mov eax, [eax]
	mov [esp], eax
	call _Z14AddRefToObjectj
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3110:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x6
	mov eax, [gFs]
	movzx edx, byte [eax]
	mov eax, [gFs+0xc]
	mov [eax], edx
	add dword [gFs], 0x1
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3130:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x6
	mov eax, [gFs]
	movzx edx, word [eax]
	add eax, 0x2
	mov [gFs], eax
	mov eax, [gFs+0xc]
	mov [eax], edx
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3140:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x6
	mov eax, [gFs]
	movzx edx, word [eax]
	add eax, 0x2
	mov [gFs], eax
	neg edx
	mov eax, [gFs+0xc]
	mov [eax], edx
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3100:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x6
	mov eax, [gFs+0xc]
	mov dword [eax], 0x0
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3230:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x1
	mov ecx, scrVarPub
	mov edx, [ecx+0x20]
	mov eax, [gFs+0xc]
	mov [eax], edx
	mov eax, [ecx+0x20]
	mov [esp], eax
	call _Z14AddRefToObjectj
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3240:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, scrVarPub
	mov eax, [eax+0x24]
_Z18VM_ExecuteInternalv_1140:
	mov [esp], eax
	call _Z16Scr_EvalVariablej
	mov [ebx+0x8], eax
	mov [ebx+0xc], edx
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3250:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x1
	mov ecx, scrVarPub
	mov edx, [ecx+0x28]
	mov eax, [gFs+0xc]
	mov [eax], edx
	mov eax, [ecx+0x28]
	mov [esp], eax
	call _Z14AddRefToObjectj
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3260:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0xb
	jmp _Z18VM_ExecuteInternalv_1110
_Z18VM_ExecuteInternalv_3270:
	mov eax, scrVarPub
	mov eax, [eax+0x24]
	mov [ebp-0x38], eax
	jmp _Z18VM_ExecuteInternalv_1120
_Z18VM_ExecuteInternalv_3280:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x9
	jmp _Z18VM_ExecuteInternalv_1110
_Z18VM_ExecuteInternalv_3290:
	mov ebx, [scrVmPub]
	lea eax, [ebx+0x4]
	mov [scrVmPub], eax
	add dword [gFs+0x8], 0x1
	mov eax, [gFs]
	movzx edx, word [eax]
	add eax, 0x2
	mov [gFs], eax
	mov [esp+0x4], edx
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z14GetNewVariablejj
	mov [ebx+0x4], eax
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3300:
	movzx esi, byte [edx]
	lea eax, [ecx+0x2]
	mov [gFs], eax
	mov eax, esi
	movzx edx, al
	lea eax, [edx*4]
	sub [scrVmPub], eax
	sub [gFs+0x8], edx
	mov eax, esi
	test al, al
	jz _Z18VM_ExecuteInternalv_810
	xor ebx, ebx
_Z18VM_ExecuteInternalv_1130:
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z18RemoveNextVariablej
	sub bl, 0x1
	mov eax, esi
	add al, bl
	jnz _Z18VM_ExecuteInternalv_1130
	jmp _Z18VM_ExecuteInternalv_810
_Z18VM_ExecuteInternalv_3310:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, [scrVmPub]
	mov eax, [eax]
	jmp _Z18VM_ExecuteInternalv_1140
_Z18VM_ExecuteInternalv_3350:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, [scrVmPub]
	mov eax, [eax-0x10]
	jmp _Z18VM_ExecuteInternalv_1140
_Z18VM_ExecuteInternalv_3360:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, [scrVmPub]
	mov eax, [eax-0x14]
	jmp _Z18VM_ExecuteInternalv_1140
_Z18VM_ExecuteInternalv_3370:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, [gFs]
	movzx edx, byte [eax]
	shl edx, 0x2
	mov eax, [scrVmPub]
	sub eax, edx
	mov eax, [eax]
	mov [esp], eax
	call _Z16Scr_EvalVariablej
	mov [ebx+0x8], eax
	mov [ebx+0xc], edx
	add dword [gFs], 0x1
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3330:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, [scrVmPub]
	mov eax, [eax-0x8]
	jmp _Z18VM_ExecuteInternalv_1140
_Z18VM_ExecuteInternalv_3340:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, [scrVmPub]
	mov eax, [eax-0xc]
	jmp _Z18VM_ExecuteInternalv_1140
_Z18VM_ExecuteInternalv_3320:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, [scrVmPub]
	mov eax, [eax-0x4]
	jmp _Z18VM_ExecuteInternalv_1140
_Z18VM_ExecuteInternalv_3500:
	mov eax, scrVarPub
	mov eax, [eax+0x20]
	mov [ebp-0x34], eax
	jmp _Z18VM_ExecuteInternalv_1150
_Z18VM_ExecuteInternalv_3470:
	mov eax, scrVarPub
	mov eax, [eax+0x28]
	mov [ebp-0x34], eax
_Z18VM_ExecuteInternalv_1240:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, [gFs]
	movzx edx, word [eax]
	add eax, 0x2
	mov [gFs], eax
	mov [esp+0x4], edx
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z12FindVariablejj
	jmp _Z18VM_ExecuteInternalv_1140
_Z18VM_ExecuteInternalv_4060:
	mov eax, [edx]
	lea eax, [ecx+eax+0x5]
	mov [gFs], eax
	movzx edx, word [eax]
	add eax, 0x2
	mov [gFs], eax
	mov [caseCount], edx
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
	cmp edx, 0x2
	jz _Z18VM_ExecuteInternalv_1160
	cmp edx, 0x6
	jz _Z18VM_ExecuteInternalv_1170
	mov eax, var_typename
	mov eax, [eax+edx*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_cannot_switch_on
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov edx, [ebx+0xc]
	test edx, edx
	jz _Z18VM_ExecuteInternalv_1180
_Z18VM_ExecuteInternalv_2670:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_1190
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18VM_ExecuteInternalv_1190
	cmp byte [ebx+0x6], 0x0
	jnz _Z18VM_ExecuteInternalv_1200
_Z18VM_ExecuteInternalv_2470:
	mov esi, [scrVmPub+0x8]
	test esi, esi
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z18VM_ExecuteInternalv_350
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_1580:
	mov esi, [caseCount]
	test esi, esi
	jz _Z18VM_ExecuteInternalv_800
	mov ecx, esi
	xor ebx, ebx
_Z18VM_ExecuteInternalv_1220:
	mov eax, [gFs]
	mov edi, [eax]
	lea edx, [eax+0x4]
	mov [gFs], edx
	mov edx, [eax+0x4]
	add eax, 0x8
	mov [gFs], eax
	cmp [ebp-0x2c], edi
	jz _Z18VM_ExecuteInternalv_1210
	sub ecx, 0x1
	add ebx, 0x1
	cmp esi, ebx
	jnz _Z18VM_ExecuteInternalv_1220
	mov [caseCount], ecx
	test edi, edi
	jnz _Z18VM_ExecuteInternalv_800
	mov [gFs], edx
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3530:
	movzx eax, word [edx]
	lea edx, [ecx+0x3]
	mov [gFs], edx
	mov edx, [gFs+0xc]
	mov [esp+0x8], edx
	mov [esp+0x4], eax
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z18ClearVariableFieldjjP13VariableValue
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3510:
	mov eax, scrVarPub
	mov eax, [eax+0x28]
	mov [ebp-0x34], eax
	jmp _Z18VM_ExecuteInternalv_1150
_Z18VM_ExecuteInternalv_3430:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	mov eax, [ebp-0x38]
	mov [esp], eax
	call _Z10ClearArrayjP13VariableValue
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3440:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
	mov dword [eax+0x4], 0x1
	mov ebx, [gFs+0xc]
	call _Z14Scr_AllocArrayv
	mov [ebx], eax
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3450:
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z11Scr_GetSelfj
	mov [ebp-0x34], eax
	mov [esp], eax
	call _Z13IsFieldObjectj
	test al, al
	jnz _Z18VM_ExecuteInternalv_810
_Z18VM_ExecuteInternalv_2950:
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z13GetObjectTypej
	mov edx, eax
	jmp _Z18VM_ExecuteInternalv_1230
_Z18VM_ExecuteInternalv_3460:
	mov eax, scrVarPub
	mov eax, [eax+0x20]
	mov [ebp-0x34], eax
	jmp _Z18VM_ExecuteInternalv_1240
_Z18VM_ExecuteInternalv_3600:
	movzx eax, byte [edx]
	shl eax, 0x2
	mov edx, [scrVmPub]
	sub edx, eax
	mov edx, [edx]
	mov [ebp-0x38], edx
	lea eax, [ecx+0x2]
	mov [gFs], eax
	mov dword [ebp-0x3c], 0x0
	mov ecx, eax
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3760:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	mov eax, scrVarPub
	mov eax, [eax+0x30]
	mov [esp], eax
	call _Z19Scr_EvalFieldObjectjP13VariableValue
	mov [ebp-0x34], eax
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3740:
	mov edx, [gFs+0xc]
	mov ecx, [edx+0x4]
	cmp ecx, 0x9
	jnz _Z18VM_ExecuteInternalv_1250
	mov ebx, [edx]
	lea eax, [edx-0x8]
	mov [gFs+0xc], eax
	cmp dword [eax+0x4], 0x1
	jnz _Z18VM_ExecuteInternalv_510
	cmp dword [scrVmPub+0x8], 0x1e
	jg _Z18VM_ExecuteInternalv_520
	mov eax, [gFs+0x4]
	mov [esp+0x4], eax
	mov eax, [edx-0x8]
	mov [esp], eax
	call _Z16AllocChildThreadjj
	mov [gFs+0x4], eax
	sub dword [gFs+0xc], 0x8
	mov edx, [gFs]
	mov eax, [scrVmPub+0xc]
	mov [eax], edx
	mov [gFs], ebx
	jmp _Z18VM_ExecuteInternalv_530
_Z18VM_ExecuteInternalv_4130:
	movzx eax, word [edx]
	lea edx, [ecx+0x3]
	mov [gFs], edx
	mov [esp+0x4], eax
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z12FindVariablejj
	mov [ebp-0x38], eax
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_1120
	mov ebx, scrVarPub
	mov eax, [ebx+0xc]
	test eax, eax
	jz _Z18VM_ExecuteInternalv_1260
_Z18VM_ExecuteInternalv_2660:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_1270
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18VM_ExecuteInternalv_1270
	cmp byte [ebx+0x6], 0x0
	jnz _Z18VM_ExecuteInternalv_1280
_Z18VM_ExecuteInternalv_2480:
	mov esi, [scrVmPub+0x8]
	test esi, esi
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z18VM_ExecuteInternalv_350
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_1570:
	mov dword [ebp-0x3c], 0x0
	mov dword [ebp-0x38], 0x0
	add dword [gFs], 0x1
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_4090:
	sub dword [g_script_error_level], 0x1
	xor eax, eax
_Z18VM_ExecuteInternalv_2750:
	add esp, 0x4c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z18VM_ExecuteInternalv_3900:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z18Scr_EvalInequalityP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3910:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z12Scr_EvalLessP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3920:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z15Scr_EvalGreaterP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3930:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z17Scr_EvalLessEqualP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3940:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z20Scr_EvalGreaterEqualP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3950:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z17Scr_EvalShiftLeftP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3960:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z18Scr_EvalShiftRightP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3970:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z12Scr_EvalPlusP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3980:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z13Scr_EvalMinusP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3990:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z16Scr_EvalMultiplyP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_4000:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z14Scr_EvalDivideP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_4010:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z11Scr_EvalModP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_4020:
	mov eax, [gFs+0xc]
	mov [esp], eax
	call _Z17Scr_EvalSizeValueP13VariableValue
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_4030:
	mov eax, [gFs+0xc]
	cmp dword [eax+0x4], 0x1
	jnz _Z18VM_ExecuteInternalv_510
	mov eax, [eax]
	mov [esp], eax
	call _Z13IsFieldObjectj
	test al, al
	jz _Z18VM_ExecuteInternalv_1290
	mov edx, [gFs+0xc]
	mov eax, [edx]
	mov [ebp-0x20], eax
	lea eax, [edx-0x8]
	mov [gFs+0xc], eax
	cmp dword [eax+0x4], 0x2
	jnz _Z18VM_ExecuteInternalv_1300
	mov esi, [edx-0x8]
	lea eax, [edx-0x10]
	mov [gFs+0xc], eax
	mov dword [ebp-0x24], 0xa
	call _Z15VM_ArchiveStackv
	mov [ebp-0x28], eax
	mov dword [esp+0x4], 0x18000
	mov eax, [ebp-0x20]
	mov [esp], eax
	call _Z11GetVariablejj
	mov [esp], eax
	call _Z8GetArrayj
	mov [esp+0x4], esi
	mov [esp], eax
	call _Z11GetVariablejj
	mov [esp], eax
	call _Z8GetArrayj
	mov edx, [gFs+0x4]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z20GetNewObjectVariablejj
	lea edx, [ebp-0x28]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z19SetNewVariableValuejP13VariableValue
	mov dword [ebp-0x1c], 0x1
	mov ebx, [gFs+0x4]
	mov [esp], ebx
	call _Z11Scr_GetSelfj
	mov [esp+0x4], eax
	mov eax, scrVarPub
	mov eax, [eax+0x1c]
	mov [esp], eax
	call _Z17GetObjectVariablejj
	mov [esp], eax
	call _Z8GetArrayj
	mov [esp+0x4], ebx
	mov [esp], eax
	call _Z20GetNewObjectVariablejj
	lea edx, [ebp-0x20]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z19SetNewVariableValuejP13VariableValue
	mov [esp+0x4], esi
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z23Scr_SetThreadNotifyNamejj
	jmp _Z18VM_ExecuteInternalv_310
_Z18VM_ExecuteInternalv_4040:
	mov eax, [gFs+0xc]
	cmp dword [eax+0x4], 0x1
	jnz _Z18VM_ExecuteInternalv_510
	mov esi, [eax]
	mov [esp], esi
	call _Z13IsFieldObjectj
	test al, al
	jz _Z18VM_ExecuteInternalv_1290
	mov edx, [gFs+0xc]
	lea eax, [edx-0x8]
	mov [gFs+0xc], eax
	cmp dword [eax+0x4], 0x2
	jnz _Z18VM_ExecuteInternalv_1310
	mov ebx, [edx-0x8]
	lea ecx, [edx-0x10]
	mov [gFs+0xc], ecx
	mov edx, [gFs]
	mov eax, [scrVmPub+0xc]
	mov [eax], edx
	mov edx, ebx
	mov eax, esi
	call _Z9VM_NotifyjjP13VariableValue
	mov eax, [scrVmPub+0xc]
	mov eax, [eax]
	mov [gFs], eax
	mov [esp], esi
	call _Z17RemoveRefToObjectj
	mov [esp], ebx
	call _Z20SL_RemoveRefToStringj
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
	cmp edx, 0x8
	jz _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_1320:
	mov eax, [eax]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z16RemoveRefToValuei13VariableUnion
	mov eax, [gFs+0xc]
	sub eax, 0x8
	mov [gFs+0xc], eax
	mov edx, [eax+0x4]
	cmp edx, 0x8
	jnz _Z18VM_ExecuteInternalv_1320
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_4050:
	mov eax, [gFs+0xc]
	cmp dword [eax+0x4], 0x1
	jnz _Z18VM_ExecuteInternalv_200
	mov eax, [eax]
	mov [esp], eax
	call _Z13IsFieldObjectj
	test al, al
	jz _Z18VM_ExecuteInternalv_1330
	mov eax, [gFs+0xc]
	cmp dword [eax-0x4], 0x2
	jnz _Z18VM_ExecuteInternalv_1340
	mov esi, [eax-0x8]
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z14AddRefToObjectj
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z11AllocThreadj
	mov ebx, eax
	mov dword [esp+0x4], 0x18000
	mov eax, [gFs+0xc]
	mov eax, [eax]
	mov [esp], eax
	call _Z11GetVariablejj
	mov [esp], eax
	call _Z8GetArrayj
	mov [esp+0x4], esi
	mov [esp], eax
	call _Z11GetVariablejj
	mov [esp], eax
	call _Z8GetArrayj
	mov [esp+0x4], ebx
	mov [esp], eax
	call _Z17GetObjectVariablejj
	mov [esp], ebx
	call _Z17RemoveRefToObjectj
	mov dword [ebp-0x1c], 0x1
	mov eax, [gFs+0xc]
	mov eax, [eax]
	mov [ebp-0x20], eax
	mov eax, [gFs+0x4]
	mov [esp+0x4], eax
	mov eax, scrVarPub
	mov eax, [eax+0x1c]
	mov [esp], eax
	call _Z17GetObjectVariablejj
	mov [esp], eax
	call _Z8GetArrayj
	mov [esp+0x4], ebx
	mov [esp], eax
	call _Z20GetNewObjectVariablejj
	lea edx, [ebp-0x20]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z19SetNewVariableValuejP13VariableValue
	mov [esp+0x4], esi
	mov [esp], ebx
	call _Z23Scr_SetThreadNotifyNamejj
	sub dword [gFs+0xc], 0x10
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3770:
	movzx eax, byte [edx]
	shl eax, 0x2
	mov edx, [scrVmPub]
	sub edx, eax
	mov eax, [edx]
	mov [esp], eax
	call _Z22Scr_EvalVariableObjectj
	mov [ebp-0x34], eax
	add dword [gFs], 0x1
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3780:
	mov eax, [gFs+0xc]
	mov [esp], eax
	call _Z12Scr_CastBoolP13VariableValue
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3790:
	mov eax, [gFs+0xc]
	mov [esp], eax
	call _Z15Scr_EvalBoolNotP13VariableValue
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3800:
	mov eax, [gFs+0xc]
	mov [esp], eax
	call _Z22Scr_EvalBoolComplementP13VariableValue
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3810:
	mov eax, [gFs+0xc]
	mov [esp], eax
	call _Z12Scr_CastBoolP13VariableValue
	mov eax, [gFs]
	movzx edx, word [eax]
	lea ecx, [eax+0x2]
	mov [gFs], ecx
	mov eax, [gFs+0xc]
	mov eax, [eax]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_1350:
	lea eax, [ecx+edx]
	mov [gFs], eax
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3820:
	mov eax, [gFs+0xc]
	mov [esp], eax
	call _Z12Scr_CastBoolP13VariableValue
	mov eax, [gFs]
	movzx edx, word [eax]
	lea ecx, [eax+0x2]
	mov [gFs], ecx
	mov eax, [gFs+0xc]
	mov eax, [eax]
	test eax, eax
	jz _Z18VM_ExecuteInternalv_800
	jmp _Z18VM_ExecuteInternalv_1350
_Z18VM_ExecuteInternalv_3830:
	mov eax, [gFs+0xc]
	mov [esp], eax
	call _Z12Scr_CastBoolP13VariableValue
	mov eax, [gFs]
	movzx edx, word [eax]
	lea ecx, [eax+0x2]
	mov [gFs], ecx
	mov eax, [gFs+0xc]
	mov edi, [eax]
	test edi, edi
	jnz _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_1360:
	lea eax, [ecx+edx]
	mov [gFs], eax
	mov ecx, eax
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3840:
	mov eax, [gFs+0xc]
	mov [esp], eax
	call _Z12Scr_CastBoolP13VariableValue
	mov eax, [gFs]
	movzx edx, word [eax]
	lea ecx, [eax+0x2]
	mov [gFs], ecx
	mov eax, [gFs+0xc]
	mov esi, [eax]
	test esi, esi
	jz _Z18VM_ExecuteInternalv_800
	jmp _Z18VM_ExecuteInternalv_1360
_Z18VM_ExecuteInternalv_3870:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z12Scr_EvalExOrP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3850:
	lea eax, [ecx+0x5]
	add eax, [edx]
	mov [gFs], eax
	mov ecx, eax
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3860:
	call _Z16Sys_Millisecondsv
	sub eax, [scrVmGlob+0x18]
	cmp eax, 0x9c3
	jg _Z18VM_ExecuteInternalv_1370
	mov eax, [gFs]
	lea edx, [eax+0x2]
	movzx eax, word [eax]
	sub edx, eax
	mov [gFs], edx
	mov ecx, edx
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3580:
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
	cmp edx, 0x7
	jz _Z18VM_ExecuteInternalv_810
_Z18VM_ExecuteInternalv_1380:
	mov eax, [eax]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z16RemoveRefToValuei13VariableUnion
	mov eax, [gFs+0xc]
	sub eax, 0x8
	mov [gFs+0xc], eax
	mov edx, [eax+0x4]
	cmp edx, 0x7
	jnz _Z18VM_ExecuteInternalv_1380
	jmp _Z18VM_ExecuteInternalv_810
_Z18VM_ExecuteInternalv_3400:
	mov eax, [scrVmPub]
	mov eax, [eax]
	mov [ebp-0x38], eax
	jmp _Z18VM_ExecuteInternalv_1390
_Z18VM_ExecuteInternalv_3700:
	movzx eax, byte [edx]
	mov [scrVmPub+0x1c], eax
	add dword [gFs], 0x1
	jmp _Z18VM_ExecuteInternalv_1400
_Z18VM_ExecuteInternalv_3080:
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z20GetSafeParentLocalIdj
	mov ebx, eax
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z14Scr_KillThreadj
	mov eax, [gFs+0x8]
	shl eax, 0x2
	sub [scrVmPub], eax
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
	cmp edx, 0x7
	jz _Z18VM_ExecuteInternalv_1410
_Z18VM_ExecuteInternalv_1420:
	mov eax, [eax]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z16RemoveRefToValuei13VariableUnion
	mov eax, [gFs+0xc]
	sub eax, 0x8
	mov [gFs+0xc], eax
	mov edx, [eax+0x4]
	cmp edx, 0x7
	jnz _Z18VM_ExecuteInternalv_1420
_Z18VM_ExecuteInternalv_1410:
	sub dword [scrVmPub+0x8], 0x1
	sub dword [scrVmPub+0xc], 0x18
	test ebx, ebx
	jz _Z18VM_ExecuteInternalv_310
	mov eax, [gFs+0xc]
	mov dword [eax+0x4], 0x0
_Z18VM_ExecuteInternalv_1880:
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z17RemoveRefToObjectj
	mov edx, [scrVmPub+0xc]
	mov eax, [edx]
	mov [gFs], eax
	mov eax, [edx+0x8]
	mov [gFs+0x8], eax
	mov [gFs+0x4], ebx
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3880:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z11Scr_EvalAndP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_3890:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	sub eax, 0x8
	mov [esp], eax
	call _Z16Scr_EvalEqualityP13VariableValueS0_
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_4110:
	mov ecx, [gFs+0xc]
	lea eax, [ecx+0x8]
	mov [gFs+0xc], eax
	mov eax, [gFs]
	movzx edx, word [eax]
	add eax, 0x2
	mov [gFs], eax
	mov [ecx+0x8], edx
_Z18VM_ExecuteInternalv_1480:
	mov eax, [gFs+0xc]
_Z18VM_ExecuteInternalv_1440:
	mov dword [eax+0x4], 0x1
	jmp _Z18VM_ExecuteInternalv_1430
_Z18VM_ExecuteInternalv_4120:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, [gFs]
	movzx edx, word [eax]
	add eax, 0x2
	mov [gFs], eax
	mov [esp+0x4], edx
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z12FindVariablejj
	jmp _Z18VM_ExecuteInternalv_1140
_Z18VM_ExecuteInternalv_4100:
	mov ebx, [gFs+0xc]
	lea eax, [ebx+0x8]
	mov [gFs+0xc], eax
	mov eax, [gFs]
	mov ecx, [eax]
	lea edx, [eax+0x4]
	mov [gFs], edx
	mov edx, [eax+0x4]
	add eax, 0x8
	mov [gFs], eax
	mov [esp+0x4], ecx
	mov [esp], edx
	call _Z12FindEntityIdij
	mov [ebx+0x8], eax
	mov eax, [gFs+0xc]
	mov ebx, [eax]
	test ebx, ebx
	jnz _Z18VM_ExecuteInternalv_1440
	mov dword [eax+0x4], 0x0
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z18VM_ExecuteInternalv_1450
_Z18VM_ExecuteInternalv_2690:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_1460
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18VM_ExecuteInternalv_1460
	cmp byte [ebx+0x6], 0x0
	jnz _Z18VM_ExecuteInternalv_1470
_Z18VM_ExecuteInternalv_2490:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z18VM_ExecuteInternalv_350
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z18VM_ExecuteInternalv_1480
_Z18VM_ExecuteInternalv_3750:
	mov edx, [gFs+0xc]
	mov ecx, [edx+0x4]
	cmp ecx, 0x9
	jnz _Z18VM_ExecuteInternalv_1490
	mov esi, [edx]
	lea eax, [edx-0x8]
	mov [gFs+0xc], eax
	cmp dword [eax+0x4], 0x1
	jnz _Z18VM_ExecuteInternalv_510
	cmp dword [scrVmPub+0x8], 0x1e
	jg _Z18VM_ExecuteInternalv_520
	mov eax, [edx-0x8]
	mov [esp], eax
	call _Z11AllocThreadj
	mov [gFs+0x4], eax
	mov ebx, [gFs+0xc]
	sub ebx, 0x8
	mov [gFs+0xc], ebx
	mov edx, [gFs]
	mov eax, [scrVmPub+0xc]
	mov [eax], edx
	mov edx, [gFs+0x10]
	mov eax, [scrVmPub+0xc]
	mov [eax+0x10], edx
	mov [gFs], esi
	mov ecx, [scrVmPub+0xc]
	mov eax, [ecx]
	mov edx, [eax]
	add eax, 0x4
	mov [ecx], eax
	shl edx, 0x3
	sub ebx, edx
	mov [gFs+0x10], ebx
	mov edx, ebx
	jmp _Z18VM_ExecuteInternalv_1500
_Z18VM_ExecuteInternalv_3560:
	mov eax, [gFs+0xc]
	cmp dword [eax+0x4], 0x8
	jz _Z18VM_ExecuteInternalv_1510
_Z18VM_ExecuteInternalv_1560:
	mov [esp+0x4], eax
	movzx eax, byte [edx]
	shl eax, 0x2
	mov edx, [scrVmPub]
	sub edx, eax
	mov eax, [edx]
	mov [esp], eax
	call _Z16SetVariableValuejP13VariableValue
	add dword [gFs], 0x1
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_4070:
	movzx eax, word [edx]
	mov [caseCount], eax
	lea eax, [ecx+eax*8+0x3]
	mov [gFs], eax
	mov ecx, eax
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_4080:
	mov eax, [gFs+0xc]
	sub eax, 0x10
	mov [gFs+0xc], eax
	mov [esp], eax
	call _Z14Scr_CastVectorP13VariableValue
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_3090:
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z20GetSafeParentLocalIdj
	mov ebx, eax
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z14Scr_KillThreadj
	mov eax, [gFs+0x8]
	shl eax, 0x2
	sub [scrVmPub], eax
	mov ecx, [gFs+0xc]
	mov eax, [ecx]
	mov edx, [ecx+0x4]
	mov [ebp-0x20], eax
	mov [ebp-0x1c], edx
	lea eax, [ecx-0x8]
	mov [gFs+0xc], eax
	mov edx, [eax+0x4]
	cmp edx, 0x7
	jz _Z18VM_ExecuteInternalv_1520
_Z18VM_ExecuteInternalv_1530:
	mov eax, [eax]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z16RemoveRefToValuei13VariableUnion
	mov eax, [gFs+0xc]
	sub eax, 0x8
	mov [gFs+0xc], eax
	mov edx, [eax+0x4]
	cmp edx, 0x7
	jnz _Z18VM_ExecuteInternalv_1530
_Z18VM_ExecuteInternalv_1520:
	sub dword [scrVmPub+0x8], 0x1
	sub dword [scrVmPub+0xc], 0x18
	test ebx, ebx
	jnz _Z18VM_ExecuteInternalv_1540
	mov eax, [ebp-0x20]
	mov edx, [ebp-0x1c]
	mov ecx, [gFs+0xc]
	mov [ecx+0x8], eax
	mov [ecx+0xc], edx
	jmp _Z18VM_ExecuteInternalv_1550
_Z18VM_ExecuteInternalv_3570:
	mov eax, [gFs+0xc]
	cmp dword [eax+0x4], 0x7
	jnz _Z18VM_ExecuteInternalv_1560
	movzx eax, byte [edx]
	shl eax, 0x2
	mov edx, [scrVmPub]
	sub edx, eax
	mov eax, [edx]
	mov [esp], eax
	call _Z18ClearVariableValuej
	add dword [gFs], 0x1
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_1270:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_1570
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z18VM_ExecuteInternalv_1570
_Z18VM_ExecuteInternalv_1190:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_1580
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z18VM_ExecuteInternalv_1580
_Z18VM_ExecuteInternalv_1460:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_1480
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z18VM_ExecuteInternalv_1480
_Z18VM_ExecuteInternalv_740:
	sub dword [eax], 0x1
_Z18VM_ExecuteInternalv_2020:
	add dword [gFs], 0x1
_Z18VM_ExecuteInternalv_820:
	mov eax, [gFs+0xc]
	mov [esp+0x4], eax
	mov eax, [ebp-0x38]
	mov [esp], eax
	call _Z21SetVariableFieldValuejP13VariableValue
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_280:
	mov ebx, scrVarPub
	mov dword [ebx+0x10], 0x2
	mov eax, [eax+0x4]
	mov edx, var_typename
	mov eax, [edx+eax*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_type_s_is_not_a_
	call _Z2vaPKcz
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z18VM_ExecuteInternalv_1590
_Z18VM_ExecuteInternalv_2460:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_1600
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_1610
_Z18VM_ExecuteInternalv_1600:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_1620
_Z18VM_ExecuteInternalv_2110:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_1620:
	mov esi, [ebp-0x30]
	jmp _Z18VM_ExecuteInternalv_1630
_Z18VM_ExecuteInternalv_270:
	movss xmm0, dword [eax]
	movss [ebp-0x40], xmm0
	ucomiss xmm0, [_float_0_00000000]
	jp _Z18VM_ExecuteInternalv_1640
	jb _Z18VM_ExecuteInternalv_580
_Z18VM_ExecuteInternalv_1640:
	mulss xmm0, [_float_20_00000000]
	addss xmm0, [_float_0_50000000]
	movss [esp], xmm0
	call floorf
	fstp dword [ebp-0x44]
	cvttss2si eax, [ebp-0x44]
	mov [ebp-0x30], eax
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_1650
	movss xmm0, dword [ebp-0x40]
	ucomiss xmm0, [_float_0_00000000]
	jp _Z18VM_ExecuteInternalv_1660
	jnz _Z18VM_ExecuteInternalv_1660
	mov dword [ebp-0x30], 0x0
	xor esi, esi
	jmp _Z18VM_ExecuteInternalv_1630
_Z18VM_ExecuteInternalv_930:
	mov eax, [eax]
	mov [esp+0x4], eax
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z24GetVariableIndexInternaljj
	mov [ebp-0x3c], eax
	mov eax, [gFs+0xc]
	mov eax, [eax]
	mov [esp], eax
	call _Z20SL_RemoveRefToStringj
	mov eax, [ebp-0x3c]
	jmp _Z18VM_ExecuteInternalv_1670
_Z18VM_ExecuteInternalv_830:
	mov eax, [ebp-0x3c]
	mov [esp+0x4], eax
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z19RemoveVariableValuejj
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_580:
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jnz _Z18VM_ExecuteInternalv_1680
_Z18VM_ExecuteInternalv_590:
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_negative_wait_is
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_1680
_Z18VM_ExecuteInternalv_520:
	mov ebx, scrVarPub
	mov dword [ebx+0x10], 0x1
	mov edi, [ebx+0xc]
	test edi, edi
	jnz _Z18VM_ExecuteInternalv_1690
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_script_stack_ove
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
_Z18VM_ExecuteInternalv_1690:
	cmp byte [ebx+0x8], 0x0
	jz _Z18VM_ExecuteInternalv_1700
_Z18VM_ExecuteInternalv_2970:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_510
_Z18VM_ExecuteInternalv_2990:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_510:
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
_Z18VM_ExecuteInternalv_2830:
	mov eax, scrVarPub
	mov dword [eax+0x10], 0x2
_Z18VM_ExecuteInternalv_1230:
	mov eax, var_typename
	mov eax, [eax+edx*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s_is_not_an_obje
	call _Z2vaPKcz
	mov edx, eax
	mov eax, scrVarPub
	mov ebx, [eax+0xc]
	test ebx, ebx
	jz _Z18VM_ExecuteInternalv_1710
_Z18VM_ExecuteInternalv_3070:
	mov edx, scrVarPub
	cmp byte [edx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_1720
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_1730
_Z18VM_ExecuteInternalv_1720:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_10
_Z18VM_ExecuteInternalv_3010:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_10:
	mov eax, [opcode]
	sub eax, 0x21
	cmp eax, 0x63
	ja _Z18VM_ExecuteInternalv_1740
	jmp dword [eax*4+_Z18VM_ExecuteInternalv_jumptab_1]
_Z18VM_ExecuteInternalv_2540:
	jl _Z18VM_ExecuteInternalv_1750
_Z18VM_ExecuteInternalv_1740:
	mov ebx, scrVarPub
_Z18VM_ExecuteInternalv_2550:
	mov eax, [scrVmGlob+0x10]
	mov [esp+0xc], eax
	mov eax, [ebx+0xc]
	mov [esp+0x8], eax
	mov eax, [ebx+0x10]
	mov [esp+0x4], eax
	mov eax, [gFs]
	mov [esp], eax
	call _Z12RuntimeErrorPKcjS0_S0_
	mov dword [ebx+0xc], 0x0
	mov dword [scrVmGlob+0x10], 0x0
	mov dword [ebx+0x10], 0x0
	mov eax, [opcode]
	sub eax, 0x1f
	cmp eax, 0x65
	ja _Z18VM_ExecuteInternalv_1760
	jmp dword [eax*4+_Z18VM_ExecuteInternalv_jumptab_2]
_Z18VM_ExecuteInternalv_50:
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z11Scr_GetSelfj
	mov ebx, eax
	mov [esp], eax
	call _Z14AddRefToObjectj
	mov eax, [gFs+0x4]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z16AllocChildThreadjj
	mov [gFs+0x4], eax
	jmp _Z18VM_ExecuteInternalv_1770
_Z18VM_ExecuteInternalv_220:
	mov ecx, [ecx]
	mov [ebp-0x34], ecx
	mov [esp], ecx
	call _Z13GetObjectTypej
	cmp eax, 0x14
	jz _Z18VM_ExecuteInternalv_1780
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z13GetObjectTypej
	mov ebx, eax
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z17RemoveRefToObjectj
	mov esi, scrVarPub
	mov dword [esi+0x10], 0xffffffff
	mov eax, var_typename
	mov eax, [eax+ebx*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s_is_not_an_enti
	call _Z2vaPKcz
	mov ecx, [esi+0xc]
	test ecx, ecx
	jz _Z18VM_ExecuteInternalv_1790
_Z18VM_ExecuteInternalv_2680:
	cmp byte [esi+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_1800
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18VM_ExecuteInternalv_1800
	cmp byte [esi+0x6], 0x0
	jnz _Z18VM_ExecuteInternalv_1810
_Z18VM_ExecuteInternalv_2500:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z18VM_ExecuteInternalv_350
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_1830:
	mov eax, [gFs+0xc]
	jmp _Z18VM_ExecuteInternalv_1820
_Z18VM_ExecuteInternalv_1800:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_1830
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z18VM_ExecuteInternalv_1830
_Z18VM_ExecuteInternalv_330:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_1840
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z18VM_ExecuteInternalv_1840
_Z18VM_ExecuteInternalv_180:
	cmp byte [ebx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_1850
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_1850:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_1860
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_900:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_1870
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z18VM_ExecuteInternalv_1870
_Z18VM_ExecuteInternalv_1540:
	mov eax, [ebp-0x20]
	mov edx, [ebp-0x1c]
	mov ecx, [gFs+0xc]
	mov [ecx], eax
	mov [ecx+0x4], edx
	jmp _Z18VM_ExecuteInternalv_1880
_Z18VM_ExecuteInternalv_250:
	cmp byte [esi+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_1890
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_1890:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_1900
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_360:
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z11Scr_GetSelfj
	mov ebx, eax
	mov [esp], eax
	call _Z14AddRefToObjectj
	mov [esp], ebx
	call _Z11AllocThreadj
	mov [gFs+0x4], eax
	jmp _Z18VM_ExecuteInternalv_1910
_Z18VM_ExecuteInternalv_1070:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_1050
_Z18VM_ExecuteInternalv_1090:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_1050:
	mov eax, [gFs+0xc]
	mov eax, [eax]
	mov [esp+0x4], eax
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z21GetArrayVariableIndexjj
	mov [ebp-0x3c], eax
	jmp _Z18VM_ExecuteInternalv_1670
_Z18VM_ExecuteInternalv_960:
	cmp byte [ebx+0x6], 0x0
	jnz _Z18VM_ExecuteInternalv_1920
_Z18VM_ExecuteInternalv_2150:
	mov esi, [scrVmPub+0x8]
	test esi, esi
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_1930
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_490:
	cmp byte [ebx+0x6], 0x0
	jnz _Z18VM_ExecuteInternalv_1940
_Z18VM_ExecuteInternalv_2140:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_1950
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_610:
	cmp byte [ebx+0x6], 0x0
	jnz _Z18VM_ExecuteInternalv_1960
_Z18VM_ExecuteInternalv_2200:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_1970
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_2350:
	mov eax, [gFs+0xc]
	mov eax, [eax]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_switch_index_d_o
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov esi, [ebx+0xc]
	test esi, esi
	jz _Z18VM_ExecuteInternalv_1980
_Z18VM_ExecuteInternalv_3020:
	cmp byte [ebx+0x8], 0x0
	jz _Z18VM_ExecuteInternalv_1990
_Z18VM_ExecuteInternalv_2510:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_2000
_Z18VM_ExecuteInternalv_2530:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_2000:
	mov eax, [gFs+0xc]
_Z18VM_ExecuteInternalv_1160:
	mov eax, [eax]
	mov [ebp-0x2c], eax
	mov [esp], eax
	call _Z20SL_RemoveRefToStringj
	jmp _Z18VM_ExecuteInternalv_1580
_Z18VM_ExecuteInternalv_300:
	call _Z16Sys_Millisecondsv
	mov [scrVmGlob+0x18], eax
	jmp _Z18VM_ExecuteInternalv_2010
_Z18VM_ExecuteInternalv_690:
	add dword [eax], 0x1
	jmp _Z18VM_ExecuteInternalv_2020
_Z18VM_ExecuteInternalv_110:
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z11Scr_GetSelfj
	mov ebx, eax
	mov [esp], eax
	call _Z14AddRefToObjectj
	mov eax, [gFs+0x4]
	mov [esp+0x4], eax
	mov [esp], ebx
	call _Z16AllocChildThreadjj
	mov [gFs+0x4], eax
	mov edx, [gFs]
	mov eax, [scrVmPub+0xc]
	mov [eax], edx
	mov eax, [gFs+0xc]
	mov edx, [eax]
	mov [gFs], edx
	sub eax, 0x8
	mov [gFs+0xc], eax
	jmp _Z18VM_ExecuteInternalv_530
_Z18VM_ExecuteInternalv_80:
	cmp byte [ebx+0x6], 0x0
	jnz _Z18VM_ExecuteInternalv_2030
_Z18VM_ExecuteInternalv_2210:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_2040
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_770:
	cmp byte [ebx+0x6], 0x0
	jnz _Z18VM_ExecuteInternalv_2050
_Z18VM_ExecuteInternalv_2220:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_2060
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_420:
	mov esi, [eax]
	sub eax, 0x8
	mov [gFs+0xc], eax
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z11Scr_GetSelfj
	mov ebx, eax
	mov [esp], eax
	call _Z14AddRefToObjectj
	mov [esp], ebx
	call _Z11AllocThreadj
	mov [gFs+0x4], eax
	mov edx, [gFs]
	mov eax, [scrVmPub+0xc]
	mov [eax], edx
	mov edx, [gFs+0x10]
	mov eax, [scrVmPub+0xc]
	mov [eax+0x10], edx
	mov [gFs], esi
	jmp _Z18VM_ExecuteInternalv_2070
_Z18VM_ExecuteInternalv_840:
	mov dword [eax+0x4], 0x7
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_390:
	cmp byte [ebx+0x6], 0x0
	jnz _Z18VM_ExecuteInternalv_2080
_Z18VM_ExecuteInternalv_2300:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_2090
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_1610:
	cmp byte [ebx+0x6], 0x0
	jnz _Z18VM_ExecuteInternalv_2100
_Z18VM_ExecuteInternalv_2320:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_2110
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_570:
	cmp byte [ebx+0x6], 0x0
	jnz _Z18VM_ExecuteInternalv_2120
_Z18VM_ExecuteInternalv_2310:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_2130
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_1940:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z18VM_ExecuteInternalv_2140
_Z18VM_ExecuteInternalv_1920:
	mov eax, 0x1
	mov edi, [scrVmGlob+0x14]
	test edi, edi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z18VM_ExecuteInternalv_2150
_Z18VM_ExecuteInternalv_720:
	cmp byte [ebx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_2160
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_2160:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_2170
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_140:
	cmp byte [ebx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_2180
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_2180:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_2190
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_1960:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z18VM_ExecuteInternalv_2200
_Z18VM_ExecuteInternalv_2030:
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z18VM_ExecuteInternalv_2210
_Z18VM_ExecuteInternalv_2050:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z18VM_ExecuteInternalv_2220
_Z18VM_ExecuteInternalv_650:
	mov dword [esp+0x4], _cstring_script_runtime_e
	mov dword [esp], 0x17
	call _Z14Com_PrintErroriPKcz
	mov dword [esp+0x8], 0x0
	mov eax, [gFs]
	mov [esp+0x4], eax
	mov dword [esp], 0x17
	call _Z20Scr_PrintPrevCodePosiPKcj
	call _Z16Sys_Millisecondsv
	mov [scrVmGlob+0x18], eax
	mov eax, [gFs+0x4]
_Z18VM_ExecuteInternalv_2250:
	mov [esp], eax
	call _Z20GetSafeParentLocalIdj
	mov ebx, eax
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z14Scr_KillThreadj
	mov eax, [gFs+0x8]
	shl eax, 0x2
	sub [scrVmPub], eax
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
	cmp edx, 0x7
	jz _Z18VM_ExecuteInternalv_2230
_Z18VM_ExecuteInternalv_2240:
	mov eax, [eax]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z16RemoveRefToValuei13VariableUnion
	mov eax, [gFs+0xc]
	sub eax, 0x8
	mov [gFs+0xc], eax
	mov edx, [eax+0x4]
	cmp edx, 0x7
	jnz _Z18VM_ExecuteInternalv_2240
_Z18VM_ExecuteInternalv_2230:
	sub dword [scrVmPub+0x8], 0x1
	sub dword [scrVmPub+0xc], 0x18
	test ebx, ebx
	jz _Z18VM_ExecuteInternalv_310
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z17RemoveRefToObjectj
	mov edx, [scrVmPub+0xc]
	mov eax, [edx]
	mov [gFs], eax
	mov eax, [edx+0x8]
	mov [gFs+0x8], eax
	mov [gFs+0x4], ebx
	sub dword [gFs+0xc], 0x8
	mov eax, ebx
	jmp _Z18VM_ExecuteInternalv_2250
_Z18VM_ExecuteInternalv_870:
	cmp byte [ebx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_2260
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_2260:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_2270
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_450:
	cmp byte [ebx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_2280
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_2280:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_2290
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_2080:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z18VM_ExecuteInternalv_2300
_Z18VM_ExecuteInternalv_1660:
	mov dword [ebp-0x30], 0x1
	mov esi, 0x1
	jmp _Z18VM_ExecuteInternalv_1630
_Z18VM_ExecuteInternalv_2120:
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z18VM_ExecuteInternalv_2310
_Z18VM_ExecuteInternalv_2100:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z18VM_ExecuteInternalv_2320
_Z18VM_ExecuteInternalv_670:
	cmp byte [scrVmPub+0x16], 0x0
	jnz _Z18VM_ExecuteInternalv_2330
	jmp _Z18VM_ExecuteInternalv_2340
_Z18VM_ExecuteInternalv_1170:
	mov eax, [eax]
	mov [esp], eax
	call _Z17IsValidArrayIndexj
	test al, al
	jz _Z18VM_ExecuteInternalv_2350
	mov eax, [gFs+0xc]
	mov eax, [eax]
	mov [esp], eax
	call _Z24GetInternalVariableIndexj
	mov [ebp-0x2c], eax
	jmp _Z18VM_ExecuteInternalv_1580
_Z18VM_ExecuteInternalv_160:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2360
_Z18VM_ExecuteInternalv_940:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2370
_Z18VM_ExecuteInternalv_1210:
	mov [caseCount], ecx
	mov [gFs], edx
	jmp _Z18VM_ExecuteInternalv_800
_Z18VM_ExecuteInternalv_230:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [esi+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2380
_Z18VM_ExecuteInternalv_1780:
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z18Scr_GetEntityIdRefj
	mov ebx, eax
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z17RemoveRefToObjectj
	mov edx, [gFs]
	mov eax, [scrVmPub+0xc]
	mov [eax], edx
	mov eax, scrCompilePub
	mov eax, [eax+esi*4+0x20034]
	mov [esp], ebx
	call eax
	jmp _Z18VM_ExecuteInternalv_2390
_Z18VM_ExecuteInternalv_640:
	mov dword [esp+0x4], _cstring_script_runtime_w
	mov dword [esp], 0x17
	call _Z16Com_PrintWarningiPKcz
	mov dword [esp+0x8], 0x0
	mov eax, [gFs]
	mov [esp+0x4], eax
	mov dword [esp], 0x17
	call _Z20Scr_PrintPrevCodePosiPKcj
	mov edx, [gFs]
	lea eax, [edx+0x2]
	movzx edx, word [edx]
	sub eax, edx
	mov [gFs], eax
	call _Z16Sys_Millisecondsv
	mov [scrVmGlob+0x18], eax
	mov ecx, [gFs]
	jmp _Z18VM_ExecuteInternalv_40
_Z18VM_ExecuteInternalv_470:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2400
_Z18VM_ExecuteInternalv_60:
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_script_stack_ove
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2410
_Z18VM_ExecuteInternalv_750:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2420
_Z18VM_ExecuteInternalv_4260:
	mov esi, [scrVmPub+0x1c]
	test esi, esi
	jz _Z18VM_ExecuteInternalv_2430
_Z18VM_ExecuteInternalv_4270:
	mov eax, [gFs+0xc]
	mov edx, [eax]
	mov [esp+0x4], edx
	mov eax, [eax+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov dword [scrVmPub+0x1c], 0x0
_Z18VM_ExecuteInternalv_2430:
	sub dword [gFs+0xc], 0x8
	jmp _Z18VM_ExecuteInternalv_1760
_Z18VM_ExecuteInternalv_370:
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_script_stack_ove
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2440
_Z18VM_ExecuteInternalv_550:
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_wait_is_too_long
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2450
_Z18VM_ExecuteInternalv_1590:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2460
_Z18VM_ExecuteInternalv_1200:
	mov eax, 0x1
	mov edi, [scrVmGlob+0x14]
	test edi, edi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z18VM_ExecuteInternalv_2470
_Z18VM_ExecuteInternalv_1280:
	mov eax, 0x1
	mov edi, [scrVmGlob+0x14]
	test edi, edi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z18VM_ExecuteInternalv_2480
_Z18VM_ExecuteInternalv_1470:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z18VM_ExecuteInternalv_2490
_Z18VM_ExecuteInternalv_1810:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z18VM_ExecuteInternalv_2500
_Z18VM_ExecuteInternalv_1990:
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18VM_ExecuteInternalv_2510
	cmp byte [ebx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_2520
	mov eax, 0x1
	mov ebx, [scrVmGlob+0x14]
	test ebx, ebx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_2520:
	mov ecx, [scrVmPub+0x8]
	test ecx, ecx
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_2530
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_4180:
	mov ecx, scrVarPub
	mov edx, [ecx+0x10]
	cmp edx, 0x0
	jle _Z18VM_ExecuteInternalv_2540
	mov eax, [scrVmPub+0x1c]
	sub eax, edx
	add eax, 0x2
	mov [ecx+0x10], eax
	mov ebx, scrVarPub
	jmp _Z18VM_ExecuteInternalv_2550
_Z18VM_ExecuteInternalv_4170:
	mov ecx, scrVarPub
	mov edx, [ecx+0x10]
	test edx, edx
	jle _Z18VM_ExecuteInternalv_2560
	mov eax, [scrVmPub+0x1c]
	sub eax, edx
	add eax, 0x1
	mov [ecx+0x10], eax
	mov ebx, scrVarPub
	jmp _Z18VM_ExecuteInternalv_2550
_Z18VM_ExecuteInternalv_4150:
	mov eax, scrVarPub
	mov edx, [eax+0x10]
	test edx, edx
	js _Z18VM_ExecuteInternalv_2570
	mov ebx, eax
	jmp _Z18VM_ExecuteInternalv_2550
_Z18VM_ExecuteInternalv_4160:
	mov eax, scrVarPub
	mov dword [eax+0x10], 0x0
	mov ebx, eax
	jmp _Z18VM_ExecuteInternalv_2550
_Z18VM_ExecuteInternalv_4400:
	mov ebx, [caseCount]
	test ebx, ebx
	jz _Z18VM_ExecuteInternalv_2580
	xor ecx, ecx
_Z18VM_ExecuteInternalv_2590:
	mov eax, [gFs]
	mov esi, [eax]
	lea edx, [eax+0x4]
	mov [gFs], edx
	mov edx, [eax+0x4]
	add eax, 0x8
	mov [gFs], eax
	add ecx, 0x1
	cmp ebx, ecx
	jnz _Z18VM_ExecuteInternalv_2590
	mov dword [caseCount], 0x0
	test esi, esi
	jnz _Z18VM_ExecuteInternalv_2580
	mov [gFs], edx
_Z18VM_ExecuteInternalv_2580:
	mov eax, [gFs+0xc]
	mov edx, [eax]
	mov [esp+0x4], edx
	mov eax, [eax+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	jmp _Z18VM_ExecuteInternalv_2430
_Z18VM_ExecuteInternalv_850:
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_function_called_
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2600
_Z18VM_ExecuteInternalv_120:
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_script_stack_ove
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2610
_Z18VM_ExecuteInternalv_430:
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_script_stack_ove
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2620
_Z18VM_ExecuteInternalv_700:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2630
_Z18VM_ExecuteInternalv_320:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2640
_Z18VM_ExecuteInternalv_890:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2650
_Z18VM_ExecuteInternalv_1260:
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_cannot_create_a_
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2660
_Z18VM_ExecuteInternalv_1180:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2670
_Z18VM_ExecuteInternalv_1790:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [esi+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2680
_Z18VM_ExecuteInternalv_1450:
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_unknown_object
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2690
_Z18VM_ExecuteInternalv_1060:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2700
_Z18VM_ExecuteInternalv_660:
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_potential_infini
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2710
_Z18VM_ExecuteInternalv_2570:
	mov dword [eax+0x10], 0x1
	mov ebx, scrVarPub
	jmp _Z18VM_ExecuteInternalv_2550
_Z18VM_ExecuteInternalv_4340:
	add dword [gFs], 0x1
_Z18VM_ExecuteInternalv_4210:
	mov ebx, scrVarPub
	mov eax, [ebx+0x30]
	mov [esp], eax
	call _Z18ClearVariableValuej
	mov eax, [ebx+0x30]
	mov [esp], eax
	call _Z10GetObjectAj
	mov [ebp-0x34], eax
	jmp _Z18VM_ExecuteInternalv_1760
_Z18VM_ExecuteInternalv_4310:
	add dword [gFs], 0x4
_Z18VM_ExecuteInternalv_4320:
	mov eax, [gFs]
	mov edx, [eax]
	add eax, 0x4
	mov [gFs], eax
	mov esi, edx
	test edx, edx
	jnz _Z18VM_ExecuteInternalv_2720
_Z18VM_ExecuteInternalv_3060:
	mov eax, [gFs+0xc]
	add eax, 0x8
	mov [gFs+0xc], eax
_Z18VM_ExecuteInternalv_2730:
	mov dword [eax+0x4], 0x0
	jmp _Z18VM_ExecuteInternalv_1760
_Z18VM_ExecuteInternalv_4290:
	add dword [gFs], 0x4
_Z18VM_ExecuteInternalv_4300:
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
	cmp edx, 0x8
	jz _Z18VM_ExecuteInternalv_2730
_Z18VM_ExecuteInternalv_2740:
	mov eax, [eax]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z16RemoveRefToValuei13VariableUnion
	mov eax, [gFs+0xc]
	sub eax, 0x8
	mov [gFs+0xc], eax
	mov edx, [eax+0x4]
	cmp edx, 0x8
	jnz _Z18VM_ExecuteInternalv_2740
	jmp _Z18VM_ExecuteInternalv_2730
_Z18VM_ExecuteInternalv_4370:
	add dword [gFs], 0x1
_Z18VM_ExecuteInternalv_4380:
	mov eax, [gFs+0xc]
	mov edx, [eax]
	mov [esp+0x4], edx
	mov eax, [eax+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	sub dword [gFs+0xc], 0x8
	jmp _Z18VM_ExecuteInternalv_2580
_Z18VM_ExecuteInternalv_2560:
	mov ebx, ecx
	jmp _Z18VM_ExecuteInternalv_2550
_Z18VM_ExecuteInternalv_4200:
	mov ebx, scrVarPub
	mov eax, [ebx+0x30]
	mov [esp], eax
	call _Z18ClearVariableValuej
	mov ebx, [ebx+0x30]
	mov [ebp-0x38], ebx
	mov dword [ebp-0x3c], 0x0
	jmp _Z18VM_ExecuteInternalv_2580
_Z18VM_ExecuteInternalv_630:
	sub dword [g_script_error_level], 0x1
	mov eax, [gFs+0x4]
	jmp _Z18VM_ExecuteInternalv_2750
_Z18VM_ExecuteInternalv_4190:
	mov edx, [gFs+0xc]
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov eax, [gFs+0xc]
	lea edx, [eax-0x8]
	mov [gFs+0xc], edx
	mov eax, [eax-0x8]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
_Z18VM_ExecuteInternalv_4220:
	mov eax, [gFs+0xc]
	mov dword [eax+0x4], 0x0
	jmp _Z18VM_ExecuteInternalv_1760
_Z18VM_ExecuteInternalv_4230:
	mov ebx, scrVarPub
	mov eax, [ebx+0x30]
	mov [esp], eax
	call _Z18ClearVariableValuej
	mov ebx, [ebx+0x30]
	mov [ebp-0x38], ebx
	mov dword [ebp-0x3c], 0x0
	jmp _Z18VM_ExecuteInternalv_1760
_Z18VM_ExecuteInternalv_1340:
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jnz _Z18VM_ExecuteInternalv_2760
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_first_parameter_
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
_Z18VM_ExecuteInternalv_2760:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_2770
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_2780
_Z18VM_ExecuteInternalv_2770:
	cmp byte [scrVmPub+0x16], 0x0
	jnz _Z18VM_ExecuteInternalv_2790
_Z18VM_ExecuteInternalv_1330:
	mov eax, [gFs+0xc]
	mov eax, [eax]
	mov [esp], eax
	call _Z13GetObjectTypej
	mov edx, eax
_Z18VM_ExecuteInternalv_2930:
	mov eax, scrVarPub
	mov dword [eax+0x10], 0x1
	jmp _Z18VM_ExecuteInternalv_1230
_Z18VM_ExecuteInternalv_2780:
	cmp byte [ebx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_2800
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_2800:
	mov edi, [scrVmPub+0x8]
	test edi, edi
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_2790:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z18VM_ExecuteInternalv_1330
_Z18VM_ExecuteInternalv_1310:
	add eax, 0x8
	mov [gFs+0xc], eax
	mov ebx, scrVarPub
	mov dword [ebx+0x10], 0x1
	mov edi, [ebx+0xc]
	test edi, edi
	jnz _Z18VM_ExecuteInternalv_2810
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_first_parameter_1
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
_Z18VM_ExecuteInternalv_2810:
	cmp byte [ebx+0x8], 0x0
	jz _Z18VM_ExecuteInternalv_2820
_Z18VM_ExecuteInternalv_2840:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18VM_ExecuteInternalv_1290
_Z18VM_ExecuteInternalv_2860:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18VM_ExecuteInternalv_1290:
	mov eax, [gFs+0xc]
	mov eax, [eax]
	mov [esp], eax
	call _Z13GetObjectTypej
	mov edx, eax
	jmp _Z18VM_ExecuteInternalv_2830
_Z18VM_ExecuteInternalv_2820:
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18VM_ExecuteInternalv_2840
	cmp byte [ebx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_2850
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_2850:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_2860
_Z18VM_ExecuteInternalv_350:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z18VM_ExecuteInternalv_4280:
	mov ebx, [scrVmPub+0x1c]
	test ebx, ebx
	jnz _Z18VM_ExecuteInternalv_2870
_Z18VM_ExecuteInternalv_2880:
	mov eax, [scrVmPub+0x10]
	add eax, 0x8
	mov [gFs+0xc], eax
	jmp _Z18VM_ExecuteInternalv_2730
_Z18VM_ExecuteInternalv_2870:
	mov edx, [scrVmPub+0x10]
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	sub dword [scrVmPub+0x10], 0x8
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_2870
	jmp _Z18VM_ExecuteInternalv_2880
_Z18VM_ExecuteInternalv_210:
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jnz _Z18VM_ExecuteInternalv_2890
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_script_stack_ove
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
_Z18VM_ExecuteInternalv_2890:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18VM_ExecuteInternalv_2900
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18VM_ExecuteInternalv_2910
_Z18VM_ExecuteInternalv_2900:
	cmp byte [scrVmPub+0x16], 0x0
	jnz _Z18VM_ExecuteInternalv_2920
_Z18VM_ExecuteInternalv_200:
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
	jmp _Z18VM_ExecuteInternalv_2930
_Z18VM_ExecuteInternalv_2910:
	cmp byte [ebx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_2940
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_2940:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_2920:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z18VM_ExecuteInternalv_200
_Z18VM_ExecuteInternalv_1300:
	mov [gFs+0xc], edx
	mov ebx, scrVarPub
	mov dword [ebx+0x10], 0x3
	mov eax, [ebx+0xc]
	test eax, eax
	jnz _Z18VM_ExecuteInternalv_2810
	mov dword [esp+0x8], 0x400
	mov dword [esp+0x4], _cstring_first_parameter_2
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_2810
_Z18VM_ExecuteInternalv_790:
	add dword [gFs+0xc], 0x8
	add dword [gFs], 0x2
	jmp _Z18VM_ExecuteInternalv_2950
_Z18VM_ExecuteInternalv_4330:
	mov ebx, scrVarPub
	mov eax, [ebx+0x30]
	mov [esp], eax
	call _Z18ClearVariableValuej
	mov eax, [ebx+0x30]
	mov [esp], eax
	call _Z10GetObjectAj
	mov [ebp-0x34], eax
	jmp _Z18VM_ExecuteInternalv_2430
_Z18VM_ExecuteInternalv_4350:
	add dword [gFs], 0x2
	jmp _Z18VM_ExecuteInternalv_2430
_Z18VM_ExecuteInternalv_4390:
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
	cmp edx, 0x8
	jz _Z18VM_ExecuteInternalv_2580
_Z18VM_ExecuteInternalv_2960:
	mov eax, [eax]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z16RemoveRefToValuei13VariableUnion
	mov eax, [gFs+0xc]
	sub eax, 0x8
	mov [gFs+0xc], eax
	mov edx, [eax+0x4]
	cmp edx, 0x8
	jnz _Z18VM_ExecuteInternalv_2960
	jmp _Z18VM_ExecuteInternalv_2580
_Z18VM_ExecuteInternalv_1700:
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18VM_ExecuteInternalv_2970
	cmp byte [ebx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_2980
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_2980:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_2990
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_4360:
	mov eax, [gFs]
	lea edx, [eax+0x2]
	movzx eax, word [eax]
	sub edx, eax
	mov [gFs], edx
	jmp _Z18VM_ExecuteInternalv_1760
_Z18VM_ExecuteInternalv_4240:
	mov edi, [scrVmPub+0x1c]
	test edi, edi
	jz _Z18VM_ExecuteInternalv_1760
	mov dword [scrVmPub+0x1c], 0x0
	jmp _Z18VM_ExecuteInternalv_1760
_Z18VM_ExecuteInternalv_1730:
	cmp byte [edx+0x6], 0x0
	jz _Z18VM_ExecuteInternalv_3000
	mov eax, 0x1
	mov ebx, [scrVmGlob+0x14]
	test ebx, ebx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18VM_ExecuteInternalv_3000:
	mov ecx, [scrVmPub+0x8]
	test ecx, ecx
	jnz _Z18VM_ExecuteInternalv_350
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18VM_ExecuteInternalv_3010
	jmp _Z18VM_ExecuteInternalv_350
_Z18VM_ExecuteInternalv_1980:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_3020
_Z18VM_ExecuteInternalv_4250:
	mov eax, [gFs+0xc]
	mov edx, [eax+0x4]
	cmp edx, 0x8
	jz _Z18VM_ExecuteInternalv_3030
_Z18VM_ExecuteInternalv_3040:
	mov eax, [eax]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z16RemoveRefToValuei13VariableUnion
	mov eax, [gFs+0xc]
	sub eax, 0x8
	mov [gFs+0xc], eax
	mov edx, [eax+0x4]
	cmp edx, 0x8
	jnz _Z18VM_ExecuteInternalv_3040
_Z18VM_ExecuteInternalv_3030:
	mov dword [eax+0x4], 0x7
	jmp _Z18VM_ExecuteInternalv_1760
_Z18VM_ExecuteInternalv_2720:
	xor ebx, ebx
_Z18VM_ExecuteInternalv_3050:
	mov eax, [gFs+0xc]
	mov edx, [eax]
	mov [esp+0x4], edx
	mov eax, [eax+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	sub dword [gFs+0xc], 0x8
	add ebx, 0x1
	cmp esi, ebx
	jnz _Z18VM_ExecuteInternalv_3050
	jmp _Z18VM_ExecuteInternalv_3060
_Z18VM_ExecuteInternalv_1710:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], edx
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov eax, scrVarPub
	mov dword [eax+0xc], error_message
	jmp _Z18VM_ExecuteInternalv_3070
_Z18VM_ExecuteInternalv_1750:
	mov dword [ecx+0x10], 0x1
	mov ebx, scrVarPub
	jmp _Z18VM_ExecuteInternalv_2550
	
	
_Z18VM_ExecuteInternalv_jumptab_0:
	dd _Z18VM_ExecuteInternalv_3080
	dd _Z18VM_ExecuteInternalv_3090
	dd _Z18VM_ExecuteInternalv_1010
	dd _Z18VM_ExecuteInternalv_3100
	dd _Z18VM_ExecuteInternalv_3110
	dd _Z18VM_ExecuteInternalv_3120
	dd _Z18VM_ExecuteInternalv_3130
	dd _Z18VM_ExecuteInternalv_3140
	dd _Z18VM_ExecuteInternalv_3150
	dd _Z18VM_ExecuteInternalv_3160
	dd _Z18VM_ExecuteInternalv_3170
	dd _Z18VM_ExecuteInternalv_3180
	dd _Z18VM_ExecuteInternalv_3190
	dd _Z18VM_ExecuteInternalv_3200
	dd _Z18VM_ExecuteInternalv_3210
	dd _Z18VM_ExecuteInternalv_3220
	dd _Z18VM_ExecuteInternalv_3230
	dd _Z18VM_ExecuteInternalv_3240
	dd _Z18VM_ExecuteInternalv_3250
	dd _Z18VM_ExecuteInternalv_3260
	dd _Z18VM_ExecuteInternalv_3270
	dd _Z18VM_ExecuteInternalv_3280
	dd _Z18VM_ExecuteInternalv_3290
	dd _Z18VM_ExecuteInternalv_3300
	dd _Z18VM_ExecuteInternalv_3310
	dd _Z18VM_ExecuteInternalv_3320
	dd _Z18VM_ExecuteInternalv_3330
	dd _Z18VM_ExecuteInternalv_3340
	dd _Z18VM_ExecuteInternalv_3350
	dd _Z18VM_ExecuteInternalv_3360
	dd _Z18VM_ExecuteInternalv_3370
	dd _Z18VM_ExecuteInternalv_3380
	dd _Z18VM_ExecuteInternalv_3390
	dd _Z18VM_ExecuteInternalv_3400
	dd _Z18VM_ExecuteInternalv_3410
	dd _Z18VM_ExecuteInternalv_3420
	dd _Z18VM_ExecuteInternalv_3430
	dd _Z18VM_ExecuteInternalv_3440
	dd _Z18VM_ExecuteInternalv_3450
	dd _Z18VM_ExecuteInternalv_3460
	dd _Z18VM_ExecuteInternalv_3470
	dd _Z18VM_ExecuteInternalv_3480
	dd _Z18VM_ExecuteInternalv_3490
	dd _Z18VM_ExecuteInternalv_3500
	dd _Z18VM_ExecuteInternalv_3510
	dd _Z18VM_ExecuteInternalv_3520
	dd _Z18VM_ExecuteInternalv_1150
	dd _Z18VM_ExecuteInternalv_3530
	dd _Z18VM_ExecuteInternalv_3540
	dd _Z18VM_ExecuteInternalv_3550
	dd _Z18VM_ExecuteInternalv_3560
	dd _Z18VM_ExecuteInternalv_3570
	dd _Z18VM_ExecuteInternalv_3580
	dd _Z18VM_ExecuteInternalv_3590
	dd _Z18VM_ExecuteInternalv_880
	dd _Z18VM_ExecuteInternalv_3600
	dd _Z18VM_ExecuteInternalv_3610
	dd _Z18VM_ExecuteInternalv_3620
	dd _Z18VM_ExecuteInternalv_3630
	dd _Z18VM_ExecuteInternalv_3640
	dd _Z18VM_ExecuteInternalv_3650
	dd _Z18VM_ExecuteInternalv_3660
	dd _Z18VM_ExecuteInternalv_3670
	dd _Z18VM_ExecuteInternalv_3670
	dd _Z18VM_ExecuteInternalv_3670
	dd _Z18VM_ExecuteInternalv_3670
	dd _Z18VM_ExecuteInternalv_3670
	dd _Z18VM_ExecuteInternalv_3670
	dd _Z18VM_ExecuteInternalv_3680
	dd _Z18VM_ExecuteInternalv_3690
	dd _Z18VM_ExecuteInternalv_3690
	dd _Z18VM_ExecuteInternalv_3690
	dd _Z18VM_ExecuteInternalv_3690
	dd _Z18VM_ExecuteInternalv_3690
	dd _Z18VM_ExecuteInternalv_3690
	dd _Z18VM_ExecuteInternalv_3700
	dd _Z18VM_ExecuteInternalv_260
	dd _Z18VM_ExecuteInternalv_620
	dd _Z18VM_ExecuteInternalv_3710
	dd _Z18VM_ExecuteInternalv_3720
	dd _Z18VM_ExecuteInternalv_3730
	dd _Z18VM_ExecuteInternalv_90
	dd _Z18VM_ExecuteInternalv_190
	dd _Z18VM_ExecuteInternalv_3740
	dd _Z18VM_ExecuteInternalv_1840
	dd _Z18VM_ExecuteInternalv_400
	dd _Z18VM_ExecuteInternalv_500
	dd _Z18VM_ExecuteInternalv_3750
	dd _Z18VM_ExecuteInternalv_1870
	dd _Z18VM_ExecuteInternalv_3760
	dd _Z18VM_ExecuteInternalv_3770
	dd _Z18VM_ExecuteInternalv_3780
	dd _Z18VM_ExecuteInternalv_3790
	dd _Z18VM_ExecuteInternalv_3800
	dd _Z18VM_ExecuteInternalv_3810
	dd _Z18VM_ExecuteInternalv_3820
	dd _Z18VM_ExecuteInternalv_3830
	dd _Z18VM_ExecuteInternalv_3840
	dd _Z18VM_ExecuteInternalv_3850
	dd _Z18VM_ExecuteInternalv_3860
	dd _Z18VM_ExecuteInternalv_2340
	dd _Z18VM_ExecuteInternalv_730
	dd _Z18VM_ExecuteInternalv_780
	dd _Z18VM_ExecuteInternalv_3870
	dd _Z18VM_ExecuteInternalv_3880
	dd _Z18VM_ExecuteInternalv_3890
	dd _Z18VM_ExecuteInternalv_3900
	dd _Z18VM_ExecuteInternalv_3910
	dd _Z18VM_ExecuteInternalv_3920
	dd _Z18VM_ExecuteInternalv_3930
	dd _Z18VM_ExecuteInternalv_3940
	dd _Z18VM_ExecuteInternalv_3950
	dd _Z18VM_ExecuteInternalv_3960
	dd _Z18VM_ExecuteInternalv_3970
	dd _Z18VM_ExecuteInternalv_3980
	dd _Z18VM_ExecuteInternalv_3990
	dd _Z18VM_ExecuteInternalv_4000
	dd _Z18VM_ExecuteInternalv_4010
	dd _Z18VM_ExecuteInternalv_4020
	dd _Z18VM_ExecuteInternalv_4030
	dd _Z18VM_ExecuteInternalv_4030
	dd _Z18VM_ExecuteInternalv_4040
	dd _Z18VM_ExecuteInternalv_4050
	dd _Z18VM_ExecuteInternalv_3710
	dd _Z18VM_ExecuteInternalv_4060
	dd _Z18VM_ExecuteInternalv_4070
	dd _Z18VM_ExecuteInternalv_4080
	dd _Z18VM_ExecuteInternalv_810
	dd _Z18VM_ExecuteInternalv_4090
	dd _Z18VM_ExecuteInternalv_4100
	dd _Z18VM_ExecuteInternalv_4110
	dd _Z18VM_ExecuteInternalv_4120
	dd _Z18VM_ExecuteInternalv_4130
	dd _Z18VM_ExecuteInternalv_4140
	dd _Z18VM_ExecuteInternalv_1510
_Z18VM_ExecuteInternalv_jumptab_1:
	dd _Z18VM_ExecuteInternalv_4150
	dd _Z18VM_ExecuteInternalv_4150
	dd _Z18VM_ExecuteInternalv_4150
	dd _Z18VM_ExecuteInternalv_4150
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_4160
	dd _Z18VM_ExecuteInternalv_4160
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_4160
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_4160
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_4160
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_4170
	dd _Z18VM_ExecuteInternalv_4170
	dd _Z18VM_ExecuteInternalv_4170
	dd _Z18VM_ExecuteInternalv_4170
	dd _Z18VM_ExecuteInternalv_4170
	dd _Z18VM_ExecuteInternalv_4170
	dd _Z18VM_ExecuteInternalv_4170
	dd _Z18VM_ExecuteInternalv_4180
	dd _Z18VM_ExecuteInternalv_4180
	dd _Z18VM_ExecuteInternalv_4180
	dd _Z18VM_ExecuteInternalv_4180
	dd _Z18VM_ExecuteInternalv_4180
	dd _Z18VM_ExecuteInternalv_4180
	dd _Z18VM_ExecuteInternalv_4180
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_4160
	dd _Z18VM_ExecuteInternalv_4160
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_1740
	dd _Z18VM_ExecuteInternalv_4150
_Z18VM_ExecuteInternalv_jumptab_2:
	dd _Z18VM_ExecuteInternalv_4190
	dd _Z18VM_ExecuteInternalv_4190
	dd _Z18VM_ExecuteInternalv_4200
	dd _Z18VM_ExecuteInternalv_4200
	dd _Z18VM_ExecuteInternalv_4200
	dd _Z18VM_ExecuteInternalv_2580
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_4210
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_4220
	dd _Z18VM_ExecuteInternalv_4220
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_4230
	dd _Z18VM_ExecuteInternalv_4230
	dd _Z18VM_ExecuteInternalv_4240
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_4250
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_4260
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_4270
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_4280
	dd _Z18VM_ExecuteInternalv_4280
	dd _Z18VM_ExecuteInternalv_4280
	dd _Z18VM_ExecuteInternalv_4280
	dd _Z18VM_ExecuteInternalv_4280
	dd _Z18VM_ExecuteInternalv_4280
	dd _Z18VM_ExecuteInternalv_4280
	dd _Z18VM_ExecuteInternalv_4280
	dd _Z18VM_ExecuteInternalv_4280
	dd _Z18VM_ExecuteInternalv_4280
	dd _Z18VM_ExecuteInternalv_4280
	dd _Z18VM_ExecuteInternalv_4280
	dd _Z18VM_ExecuteInternalv_4280
	dd _Z18VM_ExecuteInternalv_4280
	dd _Z18VM_ExecuteInternalv_2580
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_4290
	dd _Z18VM_ExecuteInternalv_4290
	dd _Z18VM_ExecuteInternalv_4300
	dd _Z18VM_ExecuteInternalv_4290
	dd _Z18VM_ExecuteInternalv_4300
	dd _Z18VM_ExecuteInternalv_4310
	dd _Z18VM_ExecuteInternalv_4320
	dd _Z18VM_ExecuteInternalv_4310
	dd _Z18VM_ExecuteInternalv_4320
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_4330
	dd _Z18VM_ExecuteInternalv_4340
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_4350
	dd _Z18VM_ExecuteInternalv_4350
	dd _Z18VM_ExecuteInternalv_4350
	dd _Z18VM_ExecuteInternalv_4350
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_4360
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_2430
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_4370
	dd _Z18VM_ExecuteInternalv_4380
	dd _Z18VM_ExecuteInternalv_4390
	dd _Z18VM_ExecuteInternalv_4380
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_4400
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_1760
	dd _Z18VM_ExecuteInternalv_4200


;VM_Resume(unsigned int)
_Z9VM_Resumej:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x3c
	mov [ebp-0x34], eax
	call _Z16Sys_Millisecondsv
	mov [scrVmGlob+0x18], eax
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z14AddRefToObjectj
	mov dword [gFs+0x10], scrVmPub+0x320
	mov dword [thread_count], 0x0
	mov edx, [ebp-0x34]
	mov [esp], edx
	call _Z16FindFirstSiblingj
	mov ebx, eax
	test eax, eax
	jz _Z9VM_Resumej_10
_Z9VM_Resumej_100:
	mov [esp], eax
	call _Z20GetVariableKeyObjectj
	mov [ebp-0x30], eax
	mov [esp], ebx
	call _Z23GetVariableValueAddressj
	mov eax, [eax]
	mov [ebp-0x2c], eax
	mov ecx, [ebp-0x30]
	mov [esp+0x4], ecx
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z20RemoveObjectVariablejj
	mov ecx, [ebp-0x2c]
	mov edx, [ecx]
	mov eax, [scrVmPub+0xc]
	mov [eax], edx
	add dword [scrVmPub+0x8], 0x1
	add dword [scrVmPub+0xc], 0x18
	movzx eax, word [ecx+0x4]
	movzx edx, ax
	mov [ebp-0x28], edx
	mov ecx, [ebp-0x2c]
	add ecx, 0xb
	test ax, ax
	jnz _Z9VM_Resumej_20
	mov edx, scrVmPub+0x320
_Z9VM_Resumej_140:
	mov ecx, [ebp-0x2c]
	mov eax, [ecx]
	mov [gFs], eax
	mov [gFs+0xc], edx
	movzx esi, word [ecx+0x8]
	mov [gFs+0x4], esi
	mov eax, [ebp-0x30]
	mov [esp], eax
	call _Z17Scr_ClearWaitTimej
	mov eax, [scrVmPub+0x8]
	lea edx, [eax+eax*2]
	mov [edx*8+scrVmPub+0x24], esi
	sub eax, 0x1
	mov [ebp-0x1c], eax
	jnz _Z9VM_Resumej_30
	mov edx, eax
_Z9VM_Resumej_190:
	add edx, 0x1
	mov [ebp-0x20], edx
	cmp edx, [scrVmPub+0x8]
	jz _Z9VM_Resumej_40
	lea eax, [edx+edx*2]
	lea eax, [eax*8+scrVmPub+0x20]
	mov [ebp-0x24], eax
	mov ecx, eax
	jmp _Z9VM_Resumej_50
_Z9VM_Resumej_60:
	xor eax, eax
	mov ecx, [ebp-0x24]
	mov [ecx+0x8], eax
	add dword [ebp-0x20], 0x1
	add ecx, 0x18
	mov [ebp-0x24], ecx
	mov eax, [ebp-0x20]
	cmp eax, [scrVmPub+0x8]
	jz _Z9VM_Resumej_40
_Z9VM_Resumej_50:
	mov eax, [ecx+0x4]
	mov [esp], eax
	call _Z15FindLastSiblingj
	mov esi, eax
	test eax, eax
	jz _Z9VM_Resumej_60
	xor edi, edi
_Z9VM_Resumej_70:
	mov ebx, [scrVmPub]
	lea eax, [ebx+0x4]
	mov [scrVmPub], eax
	mov [esp], esi
	call _Z12Scr_GetVarIdj
	mov [ebx+0x4], eax
	add edi, 0x1
	mov [esp], esi
	call _Z15FindPrevSiblingj
	mov esi, eax
	test eax, eax
	jnz _Z9VM_Resumej_70
	mov eax, edi
	mov ecx, [ebp-0x24]
	mov [ecx+0x8], eax
	add dword [ebp-0x20], 0x1
	add ecx, 0x18
	mov [ebp-0x24], ecx
	mov eax, [ebp-0x20]
	cmp eax, [scrVmPub+0x8]
	jnz _Z9VM_Resumej_50
_Z9VM_Resumej_40:
	mov eax, [gFs+0x4]
	mov [esp], eax
	call _Z15FindLastSiblingj
	mov esi, eax
	test eax, eax
	jnz _Z9VM_Resumej_80
	xor eax, eax
_Z9VM_Resumej_170:
	mov [gFs+0x8], eax
	mov eax, scrVarPub
	movzx eax, byte [eax+0x14]
	mov edx, [ebp-0x2c]
	cmp al, [edx+0xa]
	jz _Z9VM_Resumej_90
	call _Z16Sys_Millisecondsv
	mov [scrVmGlob+0x18], eax
	mov ecx, [ebp-0x2c]
_Z9VM_Resumej_150:
	movzx eax, word [ecx+0x6]
	mov [esp+0x4], eax
	mov [esp], ecx
	call _Z7MT_FreePvi
	call _Z18VM_ExecuteInternalv
	mov [esp], eax
	call _Z17RemoveRefToObjectj
	mov eax, [scrVmPub+0x328]
	mov [esp+0x4], eax
	mov eax, [scrVmPub+0x32c]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [ebp-0x34]
	mov [esp], edx
	call _Z16FindFirstSiblingj
	mov ebx, eax
	test eax, eax
	jnz _Z9VM_Resumej_100
_Z9VM_Resumej_10:
	mov eax, [ebp-0x34]
	mov [esp], eax
	call _Z17RemoveRefToObjectj
	mov eax, scrVarPub
	mov eax, [eax+0x30]
	mov [esp], eax
	call _Z18ClearVariableValuej
	mov dword [scrVmPub+0x10], scrVmPub+0x320
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z9VM_Resumej_20:
	mov esi, scrVmPub+0x32c
	mov ebx, [ebp-0x2c]
	add ebx, 0xc
	xor edi, edi
	jmp _Z9VM_Resumej_110
_Z9VM_Resumej_130:
	mov eax, [ecx+0x1]
	mov [esi-0x4], eax
	add ecx, 0x5
	add edi, 0x1
	add esi, 0x8
	add ebx, 0x5
	cmp [ebp-0x28], edi
	jz _Z9VM_Resumej_120
_Z9VM_Resumej_110:
	movzx edx, byte [ecx]
	movzx eax, dl
	mov [esi], eax
	cmp dl, 0x7
	jnz _Z9VM_Resumej_130
	mov edx, [ebx]
	mov eax, [scrVmPub+0xc]
	mov [eax], edx
	add dword [scrVmPub+0x8], 0x1
	add dword [scrVmPub+0xc], 0x18
	add ecx, 0x5
	add edi, 0x1
	add esi, 0x8
	add ebx, 0x5
	cmp [ebp-0x28], edi
	jnz _Z9VM_Resumej_110
_Z9VM_Resumej_120:
	lea edx, [edi*8+scrVmPub+0x320]
	jmp _Z9VM_Resumej_140
_Z9VM_Resumej_90:
	mov ecx, edx
	jmp _Z9VM_Resumej_150
_Z9VM_Resumej_80:
	xor edi, edi
_Z9VM_Resumej_160:
	mov ebx, [scrVmPub]
	lea eax, [ebx+0x4]
	mov [scrVmPub], eax
	mov [esp], esi
	call _Z12Scr_GetVarIdj
	mov [ebx+0x4], eax
	add edi, 0x1
	mov [esp], esi
	call _Z15FindPrevSiblingj
	mov esi, eax
	test eax, eax
	jnz _Z9VM_Resumej_160
	mov eax, edi
	jmp _Z9VM_Resumej_170
_Z9VM_Resumej_30:
	lea eax, [eax+eax*2]
	lea ebx, [eax*8+scrVmPub+0x20]
	xor edi, edi
_Z9VM_Resumej_180:
	mov [esp], esi
	call _Z16GetParentLocalIdj
	mov esi, eax
	mov [ebx+0x4], eax
	add edi, 0x1
	sub ebx, 0x18
	cmp [ebp-0x1c], edi
	jnz _Z9VM_Resumej_180
	mov dword [ebp-0x1c], 0x0
	mov edx, [ebp-0x1c]
	jmp _Z9VM_Resumej_190
	nop


;VM_Execute(unsigned int, char const*, unsigned int)
_Z10VM_ExecutejPKcj:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x3c
	mov [ebp-0x34], eax
	mov [ebp-0x38], edx
	mov ebx, ecx
	mov edi, [scrVmPub+0x1c]
	test edi, edi
	jnz _Z10VM_ExecutejPKcj_10
	mov edx, [scrVmPub+0x10]
_Z10VM_ExecutejPKcj_80:
	lea eax, [ebx*8]
	mov esi, edx
	sub esi, eax
	mov edi, [scrVmPub+0x18]
	sub edi, ebx
	mov eax, [scrVmPub+0x8]
	cmp eax, 0x1d
	jg _Z10VM_ExecutejPKcj_20
	mov edx, [gFs+0x10]
	mov [ebp-0x1c], edx
	mov edx, [gFs+0xc]
	mov [ebp-0x20], edx
	mov edx, [gFs+0x8]
	mov [ebp-0x24], edx
	mov edx, [gFs+0x4]
	mov [ebp-0x28], edx
	mov edx, [gFs]
	mov [ebp-0x2c], edx
	mov edx, [thread_count]
	mov [ebp-0x30], edx
	mov edx, [ebp-0x34]
	mov [gFs+0x4], edx
	mov [gFs+0x10], esi
	test eax, eax
	jnz _Z10VM_ExecutejPKcj_30
_Z10VM_ExecutejPKcj_50:
	mov eax, [scrVmPub+0xc]
	mov edx, [ebp-0x38]
	mov [eax], edx
	add dword [scrVmPub+0x8], 0x1
	mov eax, [scrVmPub+0xc]
	add eax, 0x18
	mov [scrVmPub+0xc], eax
	mov edx, [ebp-0x34]
	mov [eax+0x4], edx
	mov ebx, [esi+0x4]
	mov dword [esi+0x4], 0x8
	mov dword [scrVmPub+0x18], 0x0
	mov eax, [scrVmPub+0x10]
	mov [gFs+0xc], eax
	mov eax, [ebp-0x38]
	mov [gFs], eax
	mov dword [gFs+0x8], 0x0
	mov dword [thread_count], 0x0
	call _Z18VM_ExecuteInternalv
	mov [ebp-0x34], eax
	mov edx, [ebp-0x1c]
	mov [gFs+0x10], edx
	mov eax, [ebp-0x20]
	mov [gFs+0xc], eax
	mov edx, [ebp-0x24]
	mov [gFs+0x8], edx
	mov eax, [ebp-0x28]
	mov [gFs+0x4], eax
	mov edx, [ebp-0x2c]
	mov [gFs], edx
	mov eax, [ebp-0x30]
	mov [thread_count], eax
	mov [esi+0x4], ebx
	lea edx, [esi+0x8]
	mov [scrVmPub+0x10], edx
	lea eax, [edi+0x1]
	mov [scrVmPub+0x18], eax
	mov eax, scrVarPub
	mov eax, [eax+0x30]
	mov [esp], eax
	call _Z18ClearVariableValuej
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jz _Z10VM_ExecutejPKcj_40
	sub eax, 0x1
	mov [scrVmPub+0x8], eax
	sub dword [scrVmPub+0xc], 0x18
_Z10VM_ExecutejPKcj_40:
	mov eax, [ebp-0x34]
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z10VM_ExecutejPKcj_30:
	add eax, 0x1
	mov [scrVmPub+0x8], eax
	mov eax, [scrVmPub+0xc]
	add eax, 0x18
	mov [scrVmPub+0xc], eax
	mov dword [eax+0x4], 0x0
	jmp _Z10VM_ExecutejPKcj_50
_Z10VM_ExecutejPKcj_20:
	mov edx, [ebp-0x34]
	mov [esp], edx
	call _Z14Scr_KillThreadj
	lea eax, [edi+0x1]
	mov [scrVmPub+0x18], eax
	test edi, edi
	jnz _Z10VM_ExecutejPKcj_60
	mov edx, [scrVmPub+0x10]
_Z10VM_ExecutejPKcj_100:
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	mov dword [eax+0x4], 0x0
	mov dword [esp+0xc], 0x0
	mov dword [esp+0x8], _cstring_script_stack_ove
	mov dword [esp+0x4], 0x0
	mov eax, [ebp-0x38]
	mov [esp], eax
	call _Z12RuntimeErrorPKcjS0_S0_
	mov eax, [ebp-0x34]
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z10VM_ExecutejPKcj_10:
	mov edx, [scrVmPub+0x10]
_Z10VM_ExecutejPKcj_70:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z10VM_ExecutejPKcj_70
	jmp _Z10VM_ExecutejPKcj_80
_Z10VM_ExecutejPKcj_60:
	xor ebx, ebx
	mov edx, [scrVmPub+0x10]
_Z10VM_ExecutejPKcj_90:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	add ebx, 0x1
	cmp edi, ebx
	jnz _Z10VM_ExecutejPKcj_90
	jmp _Z10VM_ExecutejPKcj_100
	add [eax], al


;Scr_AddInt(int)
_Z10Scr_AddInti:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov eax, [scrVmPub+0x1c]
	test eax, eax
	jnz _Z10Scr_AddInti_10
	mov edx, [scrVmPub+0x10]
	cmp edx, [scrVmPub+0x4]
	jz _Z10Scr_AddInti_20
_Z10Scr_AddInti_40:
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x6
	mov edx, [ebp+0x8]
	mov eax, [scrVmPub+0x10]
	mov [eax], edx
	leave
	ret
_Z10Scr_AddInti_10:
	mov edx, [scrVmPub+0x10]
_Z10Scr_AddInti_30:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z10Scr_AddInti_30
	cmp edx, [scrVmPub+0x4]
	jnz _Z10Scr_AddInti_40
_Z10Scr_AddInti_20:
	mov dword [esp], _cstring_internal_script_
	call _Z9Sys_ErrorPKcz
	mov edx, [scrVmPub+0x10]
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x6
	mov edx, [ebp+0x8]
	mov eax, [scrVmPub+0x10]
	mov [eax], edx
	leave
	ret


;Scr_GetInt(unsigned int)
_Z10Scr_GetIntj:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov ecx, [ebp+0x8]
	cmp [scrVmPub+0x1c], ecx
	jbe _Z10Scr_GetIntj_10
	lea eax, [ecx*8]
	mov edx, [scrVmPub+0x10]
	sub edx, eax
	cmp dword [edx+0x4], 0x6
	jz _Z10Scr_GetIntj_20
	lea ebx, [ecx+0x1]
	mov esi, scrVarPub
	mov [esi+0x10], ebx
	mov eax, [edx+0x4]
	mov edx, var_typename
	mov eax, [edx+eax*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_type_s_is_not_an
	call _Z2vaPKcz
	mov edx, [esi+0xc]
	test edx, edx
	jz _Z10Scr_GetIntj_30
_Z10Scr_GetIntj_150:
	cmp byte [esi+0x8], 0x0
	jnz _Z10Scr_GetIntj_40
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z10Scr_GetIntj_40
	cmp byte [esi+0x6], 0x0
	jnz _Z10Scr_GetIntj_50
_Z10Scr_GetIntj_140:
	mov ecx, [scrVmPub+0x8]
	test ecx, ecx
	jnz _Z10Scr_GetIntj_60
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z10Scr_GetIntj_60
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z10Scr_GetIntj_110:
	mov [esp+0x4], ebx
	mov dword [esp], _cstring_parameter_d_does
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov edx, [ebx+0xc]
	test edx, edx
	jz _Z10Scr_GetIntj_70
_Z10Scr_GetIntj_130:
	cmp byte [ebx+0x8], 0x0
	jnz _Z10Scr_GetIntj_80
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z10Scr_GetIntj_80
	cmp byte [ebx+0x6], 0x0
	jz _Z10Scr_GetIntj_90
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z10Scr_GetIntj_90:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z10Scr_GetIntj_60
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z10Scr_GetIntj_100
_Z10Scr_GetIntj_60:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z10Scr_GetIntj_20:
	mov eax, [edx]
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z10Scr_GetIntj_40:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z10Scr_GetIntj_110
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z10Scr_GetIntj_110
_Z10Scr_GetIntj_80:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z10Scr_GetIntj_120
_Z10Scr_GetIntj_100:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z10Scr_GetIntj_120:
	xor eax, eax
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z10Scr_GetIntj_10:
	lea ebx, [ecx+0x1]
	jmp _Z10Scr_GetIntj_110
_Z10Scr_GetIntj_70:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z10Scr_GetIntj_130
_Z10Scr_GetIntj_50:
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z10Scr_GetIntj_140
_Z10Scr_GetIntj_30:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [esi+0xc], error_message
	jmp _Z10Scr_GetIntj_150
	nop


;Scr_AddAnim(scr_anim_s)
_Z11Scr_AddAnim10scr_anim_s:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov eax, [scrVmPub+0x1c]
	test eax, eax
	jnz _Z11Scr_AddAnim10scr_anim_s_10
	mov edx, [scrVmPub+0x10]
	cmp edx, [scrVmPub+0x4]
	jz _Z11Scr_AddAnim10scr_anim_s_20
_Z11Scr_AddAnim10scr_anim_s_40:
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0xb
	mov edx, [ebp+0x8]
	mov eax, [scrVmPub+0x10]
	mov [eax], edx
	leave
	ret
_Z11Scr_AddAnim10scr_anim_s_10:
	mov edx, [scrVmPub+0x10]
_Z11Scr_AddAnim10scr_anim_s_30:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z11Scr_AddAnim10scr_anim_s_30
	cmp edx, [scrVmPub+0x4]
	jnz _Z11Scr_AddAnim10scr_anim_s_40
_Z11Scr_AddAnim10scr_anim_s_20:
	mov dword [esp], _cstring_internal_script_
	call _Z9Sys_ErrorPKcz
	mov edx, [scrVmPub+0x10]
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0xb
	mov edx, [ebp+0x8]
	mov eax, [scrVmPub+0x10]
	mov [eax], edx
	leave
	ret


;Scr_AddBool(int)
_Z11Scr_AddBooli:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov eax, [scrVmPub+0x1c]
	test eax, eax
	jnz _Z11Scr_AddBooli_10
	mov edx, [scrVmPub+0x10]
	cmp edx, [scrVmPub+0x4]
	jz _Z11Scr_AddBooli_20
_Z11Scr_AddBooli_40:
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x6
	mov edx, [ebp+0x8]
	mov eax, [scrVmPub+0x10]
	mov [eax], edx
	leave
	ret
_Z11Scr_AddBooli_10:
	mov edx, [scrVmPub+0x10]
_Z11Scr_AddBooli_30:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z11Scr_AddBooli_30
	cmp edx, [scrVmPub+0x4]
	jnz _Z11Scr_AddBooli_40
_Z11Scr_AddBooli_20:
	mov dword [esp], _cstring_internal_script_
	call _Z9Sys_ErrorPKcz
	mov edx, [scrVmPub+0x10]
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x6
	mov edx, [ebp+0x8]
	mov eax, [scrVmPub+0x10]
	mov [eax], edx
	leave
	ret


;Scr_Cleanup()
_Z11Scr_Cleanupv:
	push ebp
	mov ebp, esp
	mov eax, scrVarPub
	mov byte [eax+0x8], 0x0
	pop ebp
	ret


;Scr_GetAnim(unsigned int, XAnimTree_s*)
_Z11Scr_GetAnimjP11XAnimTree_s:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov eax, [ebp+0x8]
	cmp [scrVmPub+0x1c], eax
	jbe _Z11Scr_GetAnimjP11XAnimTree_s_10
	shl eax, 0x3
	mov edi, [scrVmPub+0x10]
	sub edi, eax
	mov edx, [edi+0x4]
	cmp edx, 0xb
	jz _Z11Scr_GetAnimjP11XAnimTree_s_20
	mov eax, var_typename
	mov eax, [eax+edx*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_type_s_is_not_an1
	call _Z2vaPKcz
	mov edx, scrVarPub
	mov [edx+0xc], eax
_Z11Scr_GetAnimjP11XAnimTree_s_110:
	mov eax, [edi]
	mov [esp+0x4], eax
	mov eax, [edi+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov dword [edi+0x4], 0x0
	mov ebx, [ebp+0x8]
	add ebx, 0x1
	mov ecx, scrVarPub
	mov [ecx+0x10], ebx
	cmp byte [ecx+0x8], 0x0
	jnz _Z11Scr_GetAnimjP11XAnimTree_s_30
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z11Scr_GetAnimjP11XAnimTree_s_30
	cmp byte [ecx+0x6], 0x0
	jz _Z11Scr_GetAnimjP11XAnimTree_s_40
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z11Scr_GetAnimjP11XAnimTree_s_40:
	mov edi, [scrVmPub+0x8]
	test edi, edi
	jnz _Z11Scr_GetAnimjP11XAnimTree_s_50
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z11Scr_GetAnimjP11XAnimTree_s_50
	mov eax, [ecx+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z11Scr_GetAnimjP11XAnimTree_s_120:
	mov [esp+0x4], ebx
	mov dword [esp], _cstring_parameter_d_does
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov esi, [ebx+0xc]
	test esi, esi
	jz _Z11Scr_GetAnimjP11XAnimTree_s_60
_Z11Scr_GetAnimjP11XAnimTree_s_140:
	cmp byte [ebx+0x8], 0x0
	jnz _Z11Scr_GetAnimjP11XAnimTree_s_70
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z11Scr_GetAnimjP11XAnimTree_s_70
	cmp byte [ebx+0x6], 0x0
	jz _Z11Scr_GetAnimjP11XAnimTree_s_80
	mov eax, 0x1
	mov ebx, [scrVmGlob+0x14]
	test ebx, ebx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z11Scr_GetAnimjP11XAnimTree_s_80:
	mov ecx, [scrVmPub+0x8]
	test ecx, ecx
	jnz _Z11Scr_GetAnimjP11XAnimTree_s_50
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z11Scr_GetAnimjP11XAnimTree_s_90
_Z11Scr_GetAnimjP11XAnimTree_s_50:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z11Scr_GetAnimjP11XAnimTree_s_20:
	mov esi, [edi]
	mov ecx, [ebp+0xc]
	test ecx, ecx
	jz _Z11Scr_GetAnimjP11XAnimTree_s_100
	mov edx, esi
	shr edx, 0x10
	mov [ebp-0x24], edx
	mov [esp], edx
	call _Z12Scr_GetAnimsj
	mov ebx, eax
	mov eax, [ebp+0xc]
	mov [esp], eax
	call _Z13XAnimGetAnimsPK11XAnimTree_s
	cmp ebx, eax
	jz _Z11Scr_GetAnimjP11XAnimTree_s_100
	mov edx, [ebp+0xc]
	mov [esp], edx
	call _Z13XAnimGetAnimsPK11XAnimTree_s
	mov [esp], eax
	call _Z25XAnimGetAnimTreeDebugNamePK7XAnim_s
	mov [ebp-0x20], eax
	mov eax, [ebp-0x24]
	mov [esp], eax
	call _Z12Scr_GetAnimsj
	mov [esp], eax
	call _Z25XAnimGetAnimTreeDebugNamePK7XAnim_s
	mov [ebp-0x1c], eax
	movzx ebx, si
	mov edx, [ebp-0x24]
	mov [esp], edx
	call _Z12Scr_GetAnimsj
	mov [esp+0x4], ebx
	mov [esp], eax
	call _Z21XAnimGetAnimDebugNamePK7XAnim_sj
	mov edx, [ebp-0x20]
	mov [esp+0xc], edx
	mov edx, [ebp-0x1c]
	mov [esp+0x8], edx
	mov [esp+0x4], eax
	mov dword [esp], _cstring_anim_s_in_animtr
	call _Z2vaPKcz
	mov edx, scrVarPub
	mov [edx+0xc], eax
	jmp _Z11Scr_GetAnimjP11XAnimTree_s_110
_Z11Scr_GetAnimjP11XAnimTree_s_30:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z11Scr_GetAnimjP11XAnimTree_s_120
	mov eax, [ecx+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z11Scr_GetAnimjP11XAnimTree_s_120
_Z11Scr_GetAnimjP11XAnimTree_s_70:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z11Scr_GetAnimjP11XAnimTree_s_130
_Z11Scr_GetAnimjP11XAnimTree_s_90:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z11Scr_GetAnimjP11XAnimTree_s_130:
	xor esi, esi
_Z11Scr_GetAnimjP11XAnimTree_s_100:
	mov eax, esi
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z11Scr_GetAnimjP11XAnimTree_s_10:
	mov ebx, eax
	add ebx, 0x1
	jmp _Z11Scr_GetAnimjP11XAnimTree_s_120
_Z11Scr_GetAnimjP11XAnimTree_s_60:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z11Scr_GetAnimjP11XAnimTree_s_140


;Scr_GetType(unsigned int)
_Z11Scr_GetTypej:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov eax, [ebp+0x8]
	cmp [scrVmPub+0x1c], eax
	jbe _Z11Scr_GetTypej_10
	lea edx, [eax*8]
	mov eax, [scrVmPub+0x10]
	sub eax, edx
	mov eax, [eax+0x4]
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z11Scr_GetTypej_10:
	add eax, 0x1
	mov [esp+0x4], eax
	mov dword [esp], _cstring_parameter_d_does
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z11Scr_GetTypej_20
_Z11Scr_GetTypej_80:
	cmp byte [ebx+0x8], 0x0
	jnz _Z11Scr_GetTypej_30
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z11Scr_GetTypej_30
	cmp byte [ebx+0x6], 0x0
	jnz _Z11Scr_GetTypej_40
_Z11Scr_GetTypej_70:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z11Scr_GetTypej_50
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z11Scr_GetTypej_50
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z11Scr_GetTypej_60:
	xor eax, eax
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z11Scr_GetTypej_30:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z11Scr_GetTypej_60
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z11Scr_GetTypej_60
_Z11Scr_GetTypej_40:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z11Scr_GetTypej_70
_Z11Scr_GetTypej_50:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z11Scr_GetTypej_20:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z11Scr_GetTypej_80


;Scr_IncTime()
_Z11Scr_IncTimev:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov ebx, scrVarPub
	mov edx, [ebx+0x18]
	test edx, edx
	jnz _Z11Scr_IncTimev_10
_Z11Scr_IncTimev_20:
	call _Z18Scr_FreeEntityListv
	mov edx, scrVarPub
	mov eax, [edx+0x14]
	add eax, 0x1
	and eax, 0xffffff
	mov [edx+0x14], eax
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z11Scr_IncTimev_10:
	mov eax, [ebx+0x14]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z12FindVariablejj
	test eax, eax
	jz _Z11Scr_IncTimev_20
	mov [esp], eax
	call _Z10FindObjectj
	call _Z9VM_Resumej
	mov eax, [ebx+0x14]
	mov [esp+0x4], eax
	mov eax, [ebx+0x18]
	mov [esp], eax
	call _Z18SafeRemoveVariablejj
	call _Z18Scr_FreeEntityListv
	mov edx, scrVarPub
	mov eax, [edx+0x14]
	add eax, 0x1
	and eax, 0xffffff
	mov [edx+0x14], eax
	add esp, 0x14
	pop ebx
	pop ebp
	ret


;Scr_AddArray()
_Z12Scr_AddArrayv:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov edx, [scrVmPub+0x10]
	lea eax, [edx-0x8]
	mov [scrVmPub+0x10], eax
	sub dword [scrVmPub+0x18], 0x1
	mov eax, [edx-0x8]
	mov [esp], eax
	call _Z12GetArraySizej
	mov [esp+0x4], eax
	mov eax, [scrVmPub+0x10]
	mov eax, [eax]
	mov [esp], eax
	call _Z19GetNewArrayVariablejj
	mov edx, [scrVmPub+0x10]
	add edx, 0x8
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z19SetNewVariableValuejP13VariableValue
	leave
	ret


;Scr_AddFloat(float)
_Z12Scr_AddFloatf:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov eax, [scrVmPub+0x1c]
	test eax, eax
	jnz _Z12Scr_AddFloatf_10
	mov edx, [scrVmPub+0x10]
	cmp edx, [scrVmPub+0x4]
	jz _Z12Scr_AddFloatf_20
_Z12Scr_AddFloatf_40:
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x5
	mov edx, [ebp+0x8]
	mov eax, [scrVmPub+0x10]
	mov [eax], edx
	leave
	ret
_Z12Scr_AddFloatf_10:
	mov edx, [scrVmPub+0x10]
_Z12Scr_AddFloatf_30:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z12Scr_AddFloatf_30
	cmp edx, [scrVmPub+0x4]
	jnz _Z12Scr_AddFloatf_40
_Z12Scr_AddFloatf_20:
	mov dword [esp], _cstring_internal_script_
	call _Z9Sys_ErrorPKcz
	mov edx, [scrVmPub+0x10]
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x5
	mov edx, [ebp+0x8]
	mov eax, [scrVmPub+0x10]
	mov [eax], edx
	leave
	ret


;Scr_GetFloat(unsigned int)
_Z12Scr_GetFloatj:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x20
	mov ecx, [ebp+0x8]
	cmp [scrVmPub+0x1c], ecx
	jbe _Z12Scr_GetFloatj_10
	lea eax, [ecx*8]
	mov edx, [scrVmPub+0x10]
	sub edx, eax
	mov eax, [edx+0x4]
	cmp eax, 0x5
	jz _Z12Scr_GetFloatj_20
	cmp eax, 0x6
	jnz _Z12Scr_GetFloatj_30
	cvtsi2ss xmm0, dword [edx]
	movss [ebp-0xc], xmm0
	fld dword [ebp-0xc]
	add esp, 0x20
	pop ebx
	pop esi
	pop ebp
	ret
_Z12Scr_GetFloatj_20:
	fld dword [edx]
	add esp, 0x20
	pop ebx
	pop esi
	pop ebp
	ret
_Z12Scr_GetFloatj_10:
	lea ebx, [ecx+0x1]
_Z12Scr_GetFloatj_120:
	mov [esp+0x4], ebx
	mov dword [esp], _cstring_parameter_d_does
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov edx, [ebx+0xc]
	test edx, edx
	jz _Z12Scr_GetFloatj_40
_Z12Scr_GetFloatj_170:
	cmp byte [ebx+0x8], 0x0
	jnz _Z12Scr_GetFloatj_50
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z12Scr_GetFloatj_50
	cmp byte [ebx+0x6], 0x0
	jz _Z12Scr_GetFloatj_60
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z12Scr_GetFloatj_60:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z12Scr_GetFloatj_70
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z12Scr_GetFloatj_80
_Z12Scr_GetFloatj_70:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z12Scr_GetFloatj_50:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z12Scr_GetFloatj_90
_Z12Scr_GetFloatj_80:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z12Scr_GetFloatj_90:
	fldz
	add esp, 0x20
	pop ebx
	pop esi
	pop ebp
	ret
_Z12Scr_GetFloatj_30:
	lea ebx, [ecx+0x1]
	mov esi, scrVarPub
	mov [esi+0x10], ebx
	mov eax, [edx+0x4]
	mov edx, var_typename
	mov eax, [edx+eax*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_type_s_is_not_a_
	call _Z2vaPKcz
	mov edx, [esi+0xc]
	test edx, edx
	jz _Z12Scr_GetFloatj_100
_Z12Scr_GetFloatj_180:
	cmp byte [esi+0x8], 0x0
	jz _Z12Scr_GetFloatj_110
_Z12Scr_GetFloatj_130:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z12Scr_GetFloatj_120
_Z12Scr_GetFloatj_150:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z12Scr_GetFloatj_120
_Z12Scr_GetFloatj_110:
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z12Scr_GetFloatj_130
	cmp byte [esi+0x6], 0x0
	jnz _Z12Scr_GetFloatj_140
_Z12Scr_GetFloatj_160:
	mov ecx, [scrVmPub+0x8]
	test ecx, ecx
	jnz _Z12Scr_GetFloatj_70
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z12Scr_GetFloatj_70
	jmp _Z12Scr_GetFloatj_150
_Z12Scr_GetFloatj_140:
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z12Scr_GetFloatj_160
_Z12Scr_GetFloatj_40:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z12Scr_GetFloatj_170
_Z12Scr_GetFloatj_100:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [esi+0xc], error_message
	jmp _Z12Scr_GetFloatj_180
	nop


;Scr_Settings(int, int, int)
_Z12Scr_Settingsiii:
	push ebp
	mov ebp, esp
	mov eax, scrVarPub
	mov ecx, [ebp+0x8]
	test ecx, ecx
	setnz byte [eax+0x6]
	mov edx, [ebp+0xc]
	test edx, edx
	setnz byte [eax+0x7]
	mov eax, [ebp+0x10]
	test eax, eax
	setnz byte [scrVmPub+0x15]
	pop ebp
	ret


;Scr_Shutdown()
_Z12Scr_Shutdownv:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov ebx, scrVarPub
	cmp byte [ebx+0x34], 0x0
	jz _Z12Scr_Shutdownv_10
	mov byte [ebx+0x34], 0x0
	mov eax, [ebx+0x30]
	test eax, eax
	jnz _Z12Scr_Shutdownv_20
	add esp, 0x14
	pop ebx
	pop ebp
	jmp _Z21Scr_ShutdownVariablesv
_Z12Scr_Shutdownv_20:
	mov [esp], eax
	call _Z9FreeValuej
	mov dword [ebx+0x30], 0x0
	add esp, 0x14
	pop ebx
	pop ebp
	jmp _Z21Scr_ShutdownVariablesv
_Z12Scr_Shutdownv_10:
	add esp, 0x14
	pop ebx
	pop ebp
	ret
	nop


;Scr_AddObject(unsigned int)
_Z13Scr_AddObjectj:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov ebx, [ebp+0x8]
	mov ecx, [scrVmPub+0x1c]
	test ecx, ecx
	jnz _Z13Scr_AddObjectj_10
	mov edx, [scrVmPub+0x10]
	cmp edx, [scrVmPub+0x4]
	jz _Z13Scr_AddObjectj_20
_Z13Scr_AddObjectj_40:
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x1
	mov eax, [scrVmPub+0x10]
	mov [eax], ebx
	mov [ebp+0x8], ebx
	add esp, 0x14
	pop ebx
	pop ebp
	jmp _Z14AddRefToObjectj
_Z13Scr_AddObjectj_10:
	mov edx, [scrVmPub+0x10]
_Z13Scr_AddObjectj_30:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z13Scr_AddObjectj_30
	cmp edx, [scrVmPub+0x4]
	jnz _Z13Scr_AddObjectj_40
_Z13Scr_AddObjectj_20:
	mov dword [esp], _cstring_internal_script_
	call _Z9Sys_ErrorPKcz
	mov edx, [scrVmPub+0x10]
	jmp _Z13Scr_AddObjectj_40
	nop


;Scr_AddString(char const*)
_Z13Scr_AddStringPKc:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov ebx, [scrVmPub+0x1c]
	test ebx, ebx
	jnz _Z13Scr_AddStringPKc_10
	mov edx, [scrVmPub+0x10]
	cmp edx, [scrVmPub+0x4]
	jz _Z13Scr_AddStringPKc_20
_Z13Scr_AddStringPKc_40:
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x2
	mov ebx, [scrVmPub+0x10]
	mov dword [esp+0x4], 0x0
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z12SL_GetStringPKcj
	mov [ebx], eax
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z13Scr_AddStringPKc_10:
	mov edx, [scrVmPub+0x10]
_Z13Scr_AddStringPKc_30:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z13Scr_AddStringPKc_30
	cmp edx, [scrVmPub+0x4]
	jnz _Z13Scr_AddStringPKc_40
_Z13Scr_AddStringPKc_20:
	mov dword [esp], _cstring_internal_script_
	call _Z9Sys_ErrorPKcz
	mov edx, [scrVmPub+0x10]
	jmp _Z13Scr_AddStringPKc_40


;Scr_AddStruct()
_Z13Scr_AddStructv:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	call _Z11AllocObjectv
	mov ebx, eax
	mov eax, [scrVmPub+0x1c]
	test eax, eax
	jnz _Z13Scr_AddStructv_10
	mov edx, [scrVmPub+0x10]
	cmp edx, [scrVmPub+0x4]
	jz _Z13Scr_AddStructv_20
_Z13Scr_AddStructv_40:
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x1
	mov eax, [scrVmPub+0x10]
	mov [eax], ebx
	mov [esp], ebx
	call _Z14AddRefToObjectj
	mov [esp], ebx
	call _Z17RemoveRefToObjectj
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z13Scr_AddStructv_10:
	mov edx, [scrVmPub+0x10]
_Z13Scr_AddStructv_30:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z13Scr_AddStructv_30
	cmp edx, [scrVmPub+0x4]
	jnz _Z13Scr_AddStructv_40
_Z13Scr_AddStructv_20:
	mov dword [esp], _cstring_internal_script_
	call _Z9Sys_ErrorPKcz
	mov edx, [scrVmPub+0x10]
	jmp _Z13Scr_AddStructv_40


;Scr_AddVector(float const*)
_Z13Scr_AddVectorPKf:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov eax, [scrVmPub+0x1c]
	test eax, eax
	jnz _Z13Scr_AddVectorPKf_10
	mov edx, [scrVmPub+0x10]
	cmp edx, [scrVmPub+0x4]
	jz _Z13Scr_AddVectorPKf_20
_Z13Scr_AddVectorPKf_40:
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x4
	mov ebx, [scrVmPub+0x10]
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z15Scr_AllocVectorPKf
	mov [ebx], eax
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z13Scr_AddVectorPKf_10:
	mov edx, [scrVmPub+0x10]
_Z13Scr_AddVectorPKf_30:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z13Scr_AddVectorPKf_30
	cmp edx, [scrVmPub+0x4]
	jnz _Z13Scr_AddVectorPKf_40
_Z13Scr_AddVectorPKf_20:
	mov dword [esp], _cstring_internal_script_
	call _Z9Sys_ErrorPKcz
	mov edx, [scrVmPub+0x10]
	jmp _Z13Scr_AddVectorPKf_40
	nop


;Scr_GetObject(unsigned int)
_Z13Scr_GetObjectj:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov ecx, [ebp+0x8]
	cmp [scrVmPub+0x1c], ecx
	jbe _Z13Scr_GetObjectj_10
	lea eax, [ecx*8]
	mov edx, [scrVmPub+0x10]
	sub edx, eax
	cmp dword [edx+0x4], 0x1
	jz _Z13Scr_GetObjectj_20
	lea ebx, [ecx+0x1]
	mov esi, scrVarPub
	mov [esi+0x10], ebx
	mov eax, [edx+0x4]
	mov edx, var_typename
	mov eax, [edx+eax*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_type_s_is_not_an2
	call _Z2vaPKcz
	mov ecx, [esi+0xc]
	test ecx, ecx
	jz _Z13Scr_GetObjectj_30
_Z13Scr_GetObjectj_150:
	cmp byte [esi+0x8], 0x0
	jnz _Z13Scr_GetObjectj_40
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z13Scr_GetObjectj_40
	cmp byte [esi+0x6], 0x0
	jnz _Z13Scr_GetObjectj_50
_Z13Scr_GetObjectj_140:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z13Scr_GetObjectj_60
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z13Scr_GetObjectj_60
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z13Scr_GetObjectj_110:
	mov [esp+0x4], ebx
	mov dword [esp], _cstring_parameter_d_does
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov esi, [ebx+0xc]
	test esi, esi
	jz _Z13Scr_GetObjectj_70
_Z13Scr_GetObjectj_130:
	cmp byte [ebx+0x8], 0x0
	jnz _Z13Scr_GetObjectj_80
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z13Scr_GetObjectj_80
	cmp byte [ebx+0x6], 0x0
	jz _Z13Scr_GetObjectj_90
	mov eax, 0x1
	mov ebx, [scrVmGlob+0x14]
	test ebx, ebx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z13Scr_GetObjectj_90:
	mov ecx, [scrVmPub+0x8]
	test ecx, ecx
	jnz _Z13Scr_GetObjectj_60
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z13Scr_GetObjectj_100
_Z13Scr_GetObjectj_60:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z13Scr_GetObjectj_20:
	mov eax, [edx]
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z13Scr_GetObjectj_40:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z13Scr_GetObjectj_110
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z13Scr_GetObjectj_110
_Z13Scr_GetObjectj_80:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z13Scr_GetObjectj_120
_Z13Scr_GetObjectj_100:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z13Scr_GetObjectj_120:
	xor eax, eax
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z13Scr_GetObjectj_10:
	lea ebx, [ecx+0x1]
	jmp _Z13Scr_GetObjectj_110
_Z13Scr_GetObjectj_70:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z13Scr_GetObjectj_130
_Z13Scr_GetObjectj_50:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z13Scr_GetObjectj_140
_Z13Scr_GetObjectj_30:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [esi+0xc], error_message
	jmp _Z13Scr_GetObjectj_150


;Scr_GetString(unsigned int)
_Z13Scr_GetStringj:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z18Scr_GetConstStringj
	mov [ebp+0x8], eax
	leave
	jmp _Z18SL_ConvertToStringj


;Scr_GetVector(unsigned int, float*)
_Z13Scr_GetVectorjPf:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov ecx, [ebp+0x8]
	mov ebx, [ebp+0xc]
	cmp [scrVmPub+0x1c], ecx
	jbe _Z13Scr_GetVectorjPf_10
	lea eax, [ecx*8]
	mov edx, [scrVmPub+0x10]
	sub edx, eax
	cmp dword [edx+0x4], 0x4
	jz _Z13Scr_GetVectorjPf_20
	lea ebx, [ecx+0x1]
	mov esi, scrVarPub
	mov [esi+0x10], ebx
	mov eax, [edx+0x4]
	mov edx, var_typename
	mov eax, [edx+eax*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_type_s_is_not_a_1
	call _Z2vaPKcz
	mov ecx, [esi+0xc]
	test ecx, ecx
	jz _Z13Scr_GetVectorjPf_30
_Z13Scr_GetVectorjPf_150:
	cmp byte [esi+0x8], 0x0
	jnz _Z13Scr_GetVectorjPf_40
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z13Scr_GetVectorjPf_40
	cmp byte [esi+0x6], 0x0
	jnz _Z13Scr_GetVectorjPf_50
_Z13Scr_GetVectorjPf_140:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z13Scr_GetVectorjPf_60
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z13Scr_GetVectorjPf_60
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z13Scr_GetVectorjPf_110:
	mov [esp+0x4], ebx
	mov dword [esp], _cstring_parameter_d_does
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov esi, [ebx+0xc]
	test esi, esi
	jz _Z13Scr_GetVectorjPf_70
_Z13Scr_GetVectorjPf_130:
	cmp byte [ebx+0x8], 0x0
	jnz _Z13Scr_GetVectorjPf_80
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z13Scr_GetVectorjPf_80
	cmp byte [ebx+0x6], 0x0
	jz _Z13Scr_GetVectorjPf_90
	mov eax, 0x1
	mov ebx, [scrVmGlob+0x14]
	test ebx, ebx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z13Scr_GetVectorjPf_90:
	mov ecx, [scrVmPub+0x8]
	test ecx, ecx
	jnz _Z13Scr_GetVectorjPf_60
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z13Scr_GetVectorjPf_100
_Z13Scr_GetVectorjPf_60:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z13Scr_GetVectorjPf_20:
	mov edx, [edx]
	mov eax, [edx]
	mov [ebx], eax
	mov eax, [edx+0x4]
	mov [ebx+0x4], eax
	mov eax, [edx+0x8]
	mov [ebx+0x8], eax
_Z13Scr_GetVectorjPf_120:
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z13Scr_GetVectorjPf_40:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z13Scr_GetVectorjPf_110
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z13Scr_GetVectorjPf_110
_Z13Scr_GetVectorjPf_80:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z13Scr_GetVectorjPf_120
_Z13Scr_GetVectorjPf_100:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [ebp+0xc], eax
	mov dword [ebp+0x8], _cstring_s
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	jmp _Z9Sys_ErrorPKcz
_Z13Scr_GetVectorjPf_10:
	lea ebx, [ecx+0x1]
	jmp _Z13Scr_GetVectorjPf_110
_Z13Scr_GetVectorjPf_70:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z13Scr_GetVectorjPf_130
_Z13Scr_GetVectorjPf_50:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z13Scr_GetVectorjPf_140
_Z13Scr_GetVectorjPf_30:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [esi+0xc], error_message
	jmp _Z13Scr_GetVectorjPf_150
	nop


;Scr_MakeArray()
_Z13Scr_MakeArrayv:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov eax, [scrVmPub+0x1c]
	test eax, eax
	jnz _Z13Scr_MakeArrayv_10
	mov edx, [scrVmPub+0x10]
	cmp edx, [scrVmPub+0x4]
	jz _Z13Scr_MakeArrayv_20
_Z13Scr_MakeArrayv_40:
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x1
	mov ebx, [scrVmPub+0x10]
	call _Z14Scr_AllocArrayv
	mov [ebx], eax
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z13Scr_MakeArrayv_10:
	mov edx, [scrVmPub+0x10]
_Z13Scr_MakeArrayv_30:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z13Scr_MakeArrayv_30
	cmp edx, [scrVmPub+0x4]
	jnz _Z13Scr_MakeArrayv_40
_Z13Scr_MakeArrayv_20:
	mov dword [esp], _cstring_internal_script_
	call _Z9Sys_ErrorPKcz
	mov edx, [scrVmPub+0x10]
	jmp _Z13Scr_MakeArrayv_40
	add [eax], al


;Scr_NotifyNum(int, unsigned int, unsigned int, unsigned int)
_Z13Scr_NotifyNumijjj:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x1c
	mov ebx, [ebp+0x14]
	mov edx, [scrVmPub+0x1c]
	test edx, edx
	jnz _Z13Scr_NotifyNumijjj_10
	mov edx, [scrVmPub+0x10]
_Z13Scr_NotifyNumijjj_60:
	lea eax, [ebx*8]
	mov esi, edx
	sub esi, eax
	mov edi, [scrVmPub+0x18]
	sub edi, ebx
	mov eax, [ebp+0xc]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z12FindEntityIdij
	test eax, eax
	jnz _Z13Scr_NotifyNumijjj_20
_Z13Scr_NotifyNumijjj_70:
	mov edx, [scrVmPub+0x10]
	cmp esi, edx
	jz _Z13Scr_NotifyNumijjj_30
_Z13Scr_NotifyNumijjj_40:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	cmp esi, edx
	jnz _Z13Scr_NotifyNumijjj_40
_Z13Scr_NotifyNumijjj_30:
	mov [scrVmPub+0x18], edi
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z13Scr_NotifyNumijjj_10:
	mov edx, [scrVmPub+0x10]
_Z13Scr_NotifyNumijjj_50:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z13Scr_NotifyNumijjj_50
	jmp _Z13Scr_NotifyNumijjj_60
_Z13Scr_NotifyNumijjj_20:
	mov ebx, [esi+0x4]
	mov dword [esi+0x4], 0x8
	mov dword [scrVmPub+0x18], 0x0
	mov ecx, [scrVmPub+0x10]
	mov edx, [ebp+0x10]
	call _Z9VM_NotifyjjP13VariableValue
	mov [esi+0x4], ebx
	jmp _Z13Scr_NotifyNumijjj_70
	nop


;Scr_AddIString(char const*)
_Z14Scr_AddIStringPKc:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov eax, [scrVmPub+0x1c]
	test eax, eax
	jnz _Z14Scr_AddIStringPKc_10
	mov edx, [scrVmPub+0x10]
	cmp edx, [scrVmPub+0x4]
	jz _Z14Scr_AddIStringPKc_20
_Z14Scr_AddIStringPKc_40:
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x3
	mov ebx, [scrVmPub+0x10]
	mov dword [esp+0x4], 0x0
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z12SL_GetStringPKcj
	mov [ebx], eax
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z14Scr_AddIStringPKc_10:
	mov edx, [scrVmPub+0x10]
_Z14Scr_AddIStringPKc_30:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z14Scr_AddIStringPKc_30
	cmp edx, [scrVmPub+0x4]
	jnz _Z14Scr_AddIStringPKc_40
_Z14Scr_AddIStringPKc_20:
	mov dword [esp], _cstring_internal_script_
	call _Z9Sys_ErrorPKcz
	mov edx, [scrVmPub+0x10]
	jmp _Z14Scr_AddIStringPKc_40
	nop


;Scr_ExecThread(int, unsigned int)
_Z14Scr_ExecThreadij:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov esi, scrVarPub
	mov ebx, [esi+0x48]
	add ebx, [ebp+0x8]
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z14Scr_ExecThreadij_10
	call _Z16Sys_Millisecondsv
	mov [scrVmGlob+0x18], eax
_Z14Scr_ExecThreadij_10:
	mov [esp], ebx
	call _Z20Scr_IsInOpcodeMemoryPKc
	mov eax, [esi+0x20]
	mov [esp], eax
	call _Z14AddRefToObjectj
	mov eax, [esi+0x20]
	mov [esp], eax
	call _Z11AllocThreadj
	mov ecx, [ebp+0xc]
	mov edx, ebx
	call _Z10VM_ExecutejPKcj
	mov ebx, eax
	mov edx, [scrVmPub+0x10]
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov eax, [scrVmPub+0x10]
	mov dword [eax+0x4], 0x0
	sub dword [scrVmPub+0x10], 0x8
	sub dword [scrVmPub+0x18], 0x1
	movzx ebx, bx
	mov eax, ebx
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
	add [eax], al


;Scr_FreeThread(unsigned short)
_Z14Scr_FreeThreadt:
	push ebp
	mov ebp, esp
	movzx eax, word [ebp+0x8]
	mov [ebp+0x8], eax
	pop ebp
	jmp _Z17RemoveRefToObjectj


;Scr_GetIString(unsigned int)
_Z14Scr_GetIStringj:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov edx, [ebp+0x8]
	cmp edx, [scrVmPub+0x1c]
	jae _Z14Scr_GetIStringj_10
	lea eax, [edx*8]
	mov ecx, [scrVmPub+0x10]
	sub ecx, eax
	cmp dword [ecx+0x4], 0x3
	jz _Z14Scr_GetIStringj_20
	lea ebx, [edx+0x1]
	mov esi, scrVarPub
	mov [esi+0x10], ebx
	mov eax, [ecx+0x4]
	mov edx, var_typename
	mov eax, [edx+eax*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_type_s_is_not_a_2
	call _Z2vaPKcz
	mov ecx, [esi+0xc]
	test ecx, ecx
	jz _Z14Scr_GetIStringj_30
_Z14Scr_GetIStringj_150:
	cmp byte [esi+0x8], 0x0
	jnz _Z14Scr_GetIStringj_40
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z14Scr_GetIStringj_40
	cmp byte [esi+0x6], 0x0
	jnz _Z14Scr_GetIStringj_50
_Z14Scr_GetIStringj_140:
	mov esi, [scrVmPub+0x8]
	test esi, esi
	jnz _Z14Scr_GetIStringj_60
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z14Scr_GetIStringj_60
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z14Scr_GetIStringj_110:
	mov [esp+0x4], ebx
	mov dword [esp], _cstring_parameter_d_does
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z14Scr_GetIStringj_70
_Z14Scr_GetIStringj_130:
	cmp byte [ebx+0x8], 0x0
	jnz _Z14Scr_GetIStringj_80
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z14Scr_GetIStringj_80
	cmp byte [ebx+0x6], 0x0
	jz _Z14Scr_GetIStringj_90
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z14Scr_GetIStringj_90:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z14Scr_GetIStringj_60
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z14Scr_GetIStringj_100
_Z14Scr_GetIStringj_60:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z14Scr_GetIStringj_20:
	mov eax, [ecx]
	mov [ebp+0x8], eax
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	jmp _Z18SL_ConvertToStringj
_Z14Scr_GetIStringj_40:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z14Scr_GetIStringj_110
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z14Scr_GetIStringj_110
_Z14Scr_GetIStringj_80:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z14Scr_GetIStringj_120
_Z14Scr_GetIStringj_100:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z14Scr_GetIStringj_120:
	xor eax, eax
	mov [ebp+0x8], eax
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	jmp _Z18SL_ConvertToStringj
_Z14Scr_GetIStringj_10:
	lea ebx, [edx+0x1]
	jmp _Z14Scr_GetIStringj_110
_Z14Scr_GetIStringj_70:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z14Scr_GetIStringj_130
_Z14Scr_GetIStringj_50:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z14Scr_GetIStringj_140
_Z14Scr_GetIStringj_30:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [esi+0xc], error_message
	jmp _Z14Scr_GetIStringj_150


;Scr_InitSystem(int)
_Z14Scr_InitSystemi:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x4
	call _Z11AllocObjectv
	mov ebx, scrVarPub
	mov [ebx+0x18], eax
	call _Z14Scr_AllocArrayv
	mov [ebx+0x1c], eax
	call _Z11AllocObjectv
	mov [ebx+0x20], eax
	call _Z11AllocObjectv
	mov [ebx+0x28], eax
	mov dword [ebx+0x14], 0x0
	mov dword [g_script_error_level], 0xffffffff
	add esp, 0x4
	pop ebx
	pop ebp
	ret


;Scr_ParamError(unsigned int, char const*)
_Z14Scr_ParamErrorjPKc:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov edx, [ebp+0xc]
	mov ebx, scrVarPub
	mov eax, [ebp+0x8]
	add eax, 0x1
	mov [ebx+0x10], eax
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z14Scr_ParamErrorjPKc_10
_Z14Scr_ParamErrorjPKc_90:
	cmp byte [ebx+0x8], 0x0
	jnz _Z14Scr_ParamErrorjPKc_20
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z14Scr_ParamErrorjPKc_30
_Z14Scr_ParamErrorjPKc_20:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z14Scr_ParamErrorjPKc_40
_Z14Scr_ParamErrorjPKc_70:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [ebp+0xc], eax
	mov dword [ebp+0x8], _cstring_s
	add esp, 0x14
	pop ebx
	pop ebp
	jmp _Z9Sys_ErrorPKcz
_Z14Scr_ParamErrorjPKc_30:
	cmp byte [ebx+0x6], 0x0
	jnz _Z14Scr_ParamErrorjPKc_50
_Z14Scr_ParamErrorjPKc_80:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z14Scr_ParamErrorjPKc_60
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z14Scr_ParamErrorjPKc_70
_Z14Scr_ParamErrorjPKc_60:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z14Scr_ParamErrorjPKc_40:
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z14Scr_ParamErrorjPKc_50:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z14Scr_ParamErrorjPKc_80
_Z14Scr_ParamErrorjPKc_10:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], edx
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z14Scr_ParamErrorjPKc_90


;Scr_SetLoading(int)
_Z14Scr_SetLoadingi:
	push ebp
	mov ebp, esp
	mov eax, [ebp+0x8]
	mov [scrVmGlob+0x14], eax
	pop ebp
	ret
	nop


;Scr_GetNumParam()
_Z15Scr_GetNumParamv:
	push ebp
	mov ebp, esp
	mov eax, [scrVmPub+0x1c]
	pop ebp
	ret


;Scr_GetTypeName(unsigned int)
_Z15Scr_GetTypeNamej:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov eax, [ebp+0x8]
	cmp [scrVmPub+0x1c], eax
	jbe _Z15Scr_GetTypeNamej_10
	lea edx, [eax*8]
	mov eax, [scrVmPub+0x10]
	sub eax, edx
	mov edx, [eax+0x4]
	mov eax, var_typename
	mov eax, [eax+edx*4]
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z15Scr_GetTypeNamej_10:
	add eax, 0x1
	mov [esp+0x4], eax
	mov dword [esp], _cstring_parameter_d_does
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z15Scr_GetTypeNamej_20
_Z15Scr_GetTypeNamej_80:
	cmp byte [ebx+0x8], 0x0
	jnz _Z15Scr_GetTypeNamej_30
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z15Scr_GetTypeNamej_30
	cmp byte [ebx+0x6], 0x0
	jz _Z15Scr_GetTypeNamej_40
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z15Scr_GetTypeNamej_40:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z15Scr_GetTypeNamej_50
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z15Scr_GetTypeNamej_60
_Z15Scr_GetTypeNamej_50:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z15Scr_GetTypeNamej_30:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z15Scr_GetTypeNamej_70
_Z15Scr_GetTypeNamej_60:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z15Scr_GetTypeNamej_70:
	xor eax, eax
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z15Scr_GetTypeNamej_20:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z15Scr_GetTypeNamej_80


;Scr_ObjectError(char const*)
_Z15Scr_ObjectErrorPKc:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov ebx, scrVarPub
	mov dword [ebx+0x10], 0xffffffff
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z15Scr_ObjectErrorPKc_10
_Z15Scr_ObjectErrorPKc_90:
	cmp byte [ebx+0x8], 0x0
	jnz _Z15Scr_ObjectErrorPKc_20
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z15Scr_ObjectErrorPKc_30
_Z15Scr_ObjectErrorPKc_20:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z15Scr_ObjectErrorPKc_40
_Z15Scr_ObjectErrorPKc_70:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z15Scr_ObjectErrorPKc_40:
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z15Scr_ObjectErrorPKc_30:
	cmp byte [ebx+0x6], 0x0
	jnz _Z15Scr_ObjectErrorPKc_50
_Z15Scr_ObjectErrorPKc_80:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z15Scr_ObjectErrorPKc_60
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z15Scr_ObjectErrorPKc_70
_Z15Scr_ObjectErrorPKc_60:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z15Scr_ObjectErrorPKc_50:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z15Scr_ObjectErrorPKc_80
_Z15Scr_ObjectErrorPKc_10:
	mov dword [esp+0x8], 0x400
	mov eax, [ebp+0x8]
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z15Scr_ObjectErrorPKc_90
	nop


;VM_CancelNotify(unsigned int, unsigned int)
_Z15VM_CancelNotifyjj:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov eax, [ebp+0x8]
	mov [ebp-0x1c], eax
	mov esi, [ebp+0xc]
	mov dword [esp+0x4], 0x18000
	mov [esp], eax
	call _Z12FindVariablejj
	mov [esp], eax
	call _Z10FindObjectj
	mov ebx, eax
	mov [esp], esi
	call _Z23Scr_GetThreadNotifyNamej
	movzx edi, ax
	mov [esp+0x4], edi
	mov [esp], ebx
	call _Z12FindVariablejj
	mov [esp], eax
	call _Z10FindObjectj
	mov [ebp+0xc], edi
	mov [ebp+0x8], eax
	mov ecx, ebx
	mov edx, esi
	mov eax, [ebp-0x1c]
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	jmp _Z23VM_CancelNotifyInternaljjjjj


;Scr_AddEntityNum(int, unsigned int)
_Z16Scr_AddEntityNumij:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov eax, [ebp+0xc]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z15Scr_GetEntityIdij
	mov ebx, eax
	mov eax, [scrVmPub+0x1c]
	test eax, eax
	jnz _Z16Scr_AddEntityNumij_10
	mov edx, [scrVmPub+0x10]
	cmp edx, [scrVmPub+0x4]
	jz _Z16Scr_AddEntityNumij_20
_Z16Scr_AddEntityNumij_40:
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x1
	mov eax, [scrVmPub+0x10]
	mov [eax], ebx
	mov [ebp+0x8], ebx
	add esp, 0x14
	pop ebx
	pop ebp
	jmp _Z14AddRefToObjectj
_Z16Scr_AddEntityNumij_10:
	mov edx, [scrVmPub+0x10]
_Z16Scr_AddEntityNumij_30:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z16Scr_AddEntityNumij_30
	cmp edx, [scrVmPub+0x4]
	jnz _Z16Scr_AddEntityNumij_40
_Z16Scr_AddEntityNumij_20:
	mov dword [esp], _cstring_internal_script_
	call _Z9Sys_ErrorPKcz
	mov edx, [scrVmPub+0x10]
	jmp _Z16Scr_AddEntityNumij_40
	nop


;Scr_AddUndefined()
_Z16Scr_AddUndefinedv:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov edx, [scrVmPub+0x1c]
	test edx, edx
	jnz _Z16Scr_AddUndefinedv_10
	mov edx, [scrVmPub+0x10]
	cmp edx, [scrVmPub+0x4]
	jz _Z16Scr_AddUndefinedv_20
_Z16Scr_AddUndefinedv_40:
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x0
	leave
	ret
_Z16Scr_AddUndefinedv_10:
	mov edx, [scrVmPub+0x10]
_Z16Scr_AddUndefinedv_30:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z16Scr_AddUndefinedv_30
	cmp edx, [scrVmPub+0x4]
	jnz _Z16Scr_AddUndefinedv_40
_Z16Scr_AddUndefinedv_20:
	mov dword [esp], _cstring_internal_script_
	call _Z9Sys_ErrorPKcz
	mov edx, [scrVmPub+0x10]
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x0
	leave
	ret
	nop


;Scr_GetEntityRef(unsigned int)
_Z16Scr_GetEntityRefj:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	mov ebx, [ebp+0x8]
	cmp [scrVmPub+0x1c], ebx
	jbe _Z16Scr_GetEntityRefj_10
	lea eax, [ebx*8]
	mov esi, [scrVmPub+0x10]
	sub esi, eax
	cmp dword [esi+0x4], 0x1
	jz _Z16Scr_GetEntityRefj_20
	add ebx, 0x1
	mov [ebp-0x1c], ebx
	mov eax, ebx
_Z16Scr_GetEntityRefj_240:
	mov ebx, scrVarPub
	mov [ebx+0x10], eax
	mov eax, [esi+0x4]
	mov edx, var_typename
	mov eax, [edx+eax*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_type_s_is_not_an3
	call _Z2vaPKcz
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z16Scr_GetEntityRefj_30
_Z16Scr_GetEntityRefj_260:
	cmp byte [ebx+0x8], 0x0
	jnz _Z16Scr_GetEntityRefj_40
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z16Scr_GetEntityRefj_40
	cmp byte [ebx+0x6], 0x0
	jz _Z16Scr_GetEntityRefj_50
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z16Scr_GetEntityRefj_50:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z16Scr_GetEntityRefj_60
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z16Scr_GetEntityRefj_70
_Z16Scr_GetEntityRefj_60:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z16Scr_GetEntityRefj_20:
	mov edi, [esi]
	mov [esp], edi
	call _Z13GetObjectTypej
	cmp eax, 0x14
	jz _Z16Scr_GetEntityRefj_80
	add ebx, 0x1
	mov [ebp-0x1c], ebx
	mov ebx, scrVarPub
	mov eax, [ebp-0x1c]
	mov [ebx+0x10], eax
	mov [esp], edi
	call _Z13GetObjectTypej
	mov edx, var_typename
	mov eax, [edx+eax*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_type_s_is_not_an3
	call _Z2vaPKcz
	mov edx, [ebx+0xc]
	test edx, edx
	jz _Z16Scr_GetEntityRefj_90
_Z16Scr_GetEntityRefj_270:
	cmp byte [ebx+0x8], 0x0
	jnz _Z16Scr_GetEntityRefj_100
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z16Scr_GetEntityRefj_100
	cmp byte [ebx+0x6], 0x0
	jz _Z16Scr_GetEntityRefj_110
	mov eax, 0x1
	mov edi, [scrVmGlob+0x14]
	test edi, edi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z16Scr_GetEntityRefj_110:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z16Scr_GetEntityRefj_60
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z16Scr_GetEntityRefj_60
	jmp _Z16Scr_GetEntityRefj_120
_Z16Scr_GetEntityRefj_40:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z16Scr_GetEntityRefj_130
_Z16Scr_GetEntityRefj_70:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z16Scr_GetEntityRefj_130:
	mov eax, [ebp-0x1c]
_Z16Scr_GetEntityRefj_180:
	mov [esp+0x4], eax
	mov dword [esp], _cstring_parameter_d_does
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov edi, [ebx+0xc]
	test edi, edi
	jz _Z16Scr_GetEntityRefj_140
_Z16Scr_GetEntityRefj_250:
	cmp byte [ebx+0x8], 0x0
	jnz _Z16Scr_GetEntityRefj_150
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z16Scr_GetEntityRefj_160
_Z16Scr_GetEntityRefj_150:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z16Scr_GetEntityRefj_170
_Z16Scr_GetEntityRefj_200:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z16Scr_GetEntityRefj_170:
	xor ecx, ecx
	xor edx, edx
_Z16Scr_GetEntityRefj_220:
	mov eax, edx
	shl eax, 0x10
	and ebx, 0xffff
	or ebx, eax
	mov bx, cx
	mov eax, ebx
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z16Scr_GetEntityRefj_10:
	add ebx, 0x1
	mov [ebp-0x1c], ebx
	mov eax, ebx
	jmp _Z16Scr_GetEntityRefj_180
_Z16Scr_GetEntityRefj_160:
	cmp byte [ebx+0x6], 0x0
	jnz _Z16Scr_GetEntityRefj_190
_Z16Scr_GetEntityRefj_210:
	mov ecx, [scrVmPub+0x8]
	test ecx, ecx
	jnz _Z16Scr_GetEntityRefj_60
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z16Scr_GetEntityRefj_200
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z16Scr_GetEntityRefj_190:
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z16Scr_GetEntityRefj_210
_Z16Scr_GetEntityRefj_80:
	mov [esp], edi
	call _Z18Scr_GetEntityIdRefj
	mov edx, eax
	shr edx, 0x10
	mov ecx, eax
	jmp _Z16Scr_GetEntityRefj_220
_Z16Scr_GetEntityRefj_100:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z16Scr_GetEntityRefj_230
_Z16Scr_GetEntityRefj_120:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z16Scr_GetEntityRefj_230:
	mov eax, [ebp-0x1c]
	jmp _Z16Scr_GetEntityRefj_240
_Z16Scr_GetEntityRefj_140:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z16Scr_GetEntityRefj_250
_Z16Scr_GetEntityRefj_30:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z16Scr_GetEntityRefj_260
_Z16Scr_GetEntityRefj_90:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z16Scr_GetEntityRefj_270


;Scr_ResetTimeout()
_Z16Scr_ResetTimeoutv:
	push ebp
	mov ebp, esp
	sub esp, 0x8
	call _Z16Sys_Millisecondsv
	mov [scrVmGlob+0x18], eax
	leave
	ret
	add [eax], al


;Scr_AddExecThread(int, unsigned int)
_Z17Scr_AddExecThreadij:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov esi, scrVarPub
	mov ebx, [esi+0x48]
	add ebx, [ebp+0x8]
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z17Scr_AddExecThreadij_10
	call _Z16Sys_Millisecondsv
	mov [scrVmGlob+0x18], eax
_Z17Scr_AddExecThreadij_10:
	mov eax, [esi+0x20]
	mov [esp], eax
	call _Z14AddRefToObjectj
	mov eax, [esi+0x20]
	mov [esp], eax
	call _Z11AllocThreadj
	mov ecx, [ebp+0xc]
	mov edx, ebx
	call _Z10VM_ExecutejPKcj
	mov [esp], eax
	call _Z17RemoveRefToObjectj
	add dword [scrVmPub+0x1c], 0x1
	sub dword [scrVmPub+0x18], 0x1
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret


;Scr_TerminalError(char const*)
_Z17Scr_TerminalErrorPKc:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	call _Z21Scr_DumpScriptThreadsv
	call _Z30Scr_DumpScriptVariablesDefaultv
	mov byte [scrVmPub+0x16], 0x1
	mov ebx, scrVarPub
	mov eax, [ebx+0xc]
	test eax, eax
	jz _Z17Scr_TerminalErrorPKc_10
_Z17Scr_TerminalErrorPKc_90:
	cmp byte [ebx+0x8], 0x0
	jnz _Z17Scr_TerminalErrorPKc_20
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z17Scr_TerminalErrorPKc_30
_Z17Scr_TerminalErrorPKc_20:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z17Scr_TerminalErrorPKc_40
_Z17Scr_TerminalErrorPKc_70:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z17Scr_TerminalErrorPKc_40:
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z17Scr_TerminalErrorPKc_30:
	cmp byte [ebx+0x6], 0x0
	jnz _Z17Scr_TerminalErrorPKc_50
_Z17Scr_TerminalErrorPKc_80:
	mov ecx, [scrVmPub+0x8]
	test ecx, ecx
	jnz _Z17Scr_TerminalErrorPKc_60
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z17Scr_TerminalErrorPKc_70
_Z17Scr_TerminalErrorPKc_60:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z17Scr_TerminalErrorPKc_50:
	mov eax, 0x1
	mov ebx, [scrVmGlob+0x14]
	test ebx, ebx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z17Scr_TerminalErrorPKc_80
_Z17Scr_TerminalErrorPKc_10:
	mov dword [esp+0x8], 0x400
	mov eax, [ebp+0x8]
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z17Scr_TerminalErrorPKc_90
	nop
	add [eax], al


;Scr_AddConstString(unsigned int)
_Z18Scr_AddConstStringj:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov ebx, [ebp+0x8]
	mov eax, [scrVmPub+0x1c]
	test eax, eax
	jnz _Z18Scr_AddConstStringj_10
	mov edx, [scrVmPub+0x10]
	cmp edx, [scrVmPub+0x4]
	jz _Z18Scr_AddConstStringj_20
_Z18Scr_AddConstStringj_40:
	lea eax, [edx+0x8]
	mov [scrVmPub+0x10], eax
	add dword [scrVmPub+0x18], 0x1
	mov dword [eax+0x4], 0x2
	mov eax, [scrVmPub+0x10]
	mov [eax], ebx
	mov [ebp+0x8], ebx
	add esp, 0x14
	pop ebx
	pop ebp
	jmp _Z17SL_AddRefToStringj
_Z18Scr_AddConstStringj_10:
	mov edx, [scrVmPub+0x10]
_Z18Scr_AddConstStringj_30:
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov edx, [scrVmPub+0x10]
	sub edx, 0x8
	mov [scrVmPub+0x10], edx
	mov eax, [scrVmPub+0x1c]
	sub eax, 0x1
	mov [scrVmPub+0x1c], eax
	test eax, eax
	jnz _Z18Scr_AddConstStringj_30
	cmp edx, [scrVmPub+0x4]
	jnz _Z18Scr_AddConstStringj_40
_Z18Scr_AddConstStringj_20:
	mov dword [esp], _cstring_internal_script_
	call _Z9Sys_ErrorPKcz
	mov edx, [scrVmPub+0x10]
	jmp _Z18Scr_AddConstStringj_40


;Scr_GetConstString(unsigned int)
_Z18Scr_GetConstStringj:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov esi, [ebp+0x8]
	cmp [scrVmPub+0x1c], esi
	ja _Z18Scr_GetConstStringj_10
	lea ebx, [esi+0x1]
_Z18Scr_GetConstStringj_70:
	mov [esp+0x4], ebx
	mov dword [esp], _cstring_parameter_d_does
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov esi, [ebx+0xc]
	test esi, esi
	jz _Z18Scr_GetConstStringj_20
_Z18Scr_GetConstStringj_150:
	cmp byte [ebx+0x8], 0x0
	jz _Z18Scr_GetConstStringj_30
_Z18Scr_GetConstStringj_80:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18Scr_GetConstStringj_40
_Z18Scr_GetConstStringj_110:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18Scr_GetConstStringj_40:
	xor eax, eax
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z18Scr_GetConstStringj_10:
	lea eax, [esi*8]
	mov ebx, [scrVmPub+0x10]
	sub ebx, eax
	mov [esp], ebx
	call _Z14Scr_CastStringP13VariableValue
	test al, al
	jnz _Z18Scr_GetConstStringj_50
	lea ebx, [esi+0x1]
	mov ecx, scrVarPub
	mov [ecx+0x10], ebx
	cmp byte [ecx+0x8], 0x0
	jz _Z18Scr_GetConstStringj_60
_Z18Scr_GetConstStringj_120:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18Scr_GetConstStringj_70
_Z18Scr_GetConstStringj_140:
	mov eax, [ecx+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z18Scr_GetConstStringj_70
_Z18Scr_GetConstStringj_30:
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18Scr_GetConstStringj_80
	cmp byte [ebx+0x6], 0x0
	jz _Z18Scr_GetConstStringj_90
	mov eax, 0x1
	mov ebx, [scrVmGlob+0x14]
	test ebx, ebx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18Scr_GetConstStringj_90:
	mov ecx, [scrVmPub+0x8]
	test ecx, ecx
	jnz _Z18Scr_GetConstStringj_100
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18Scr_GetConstStringj_110
_Z18Scr_GetConstStringj_100:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z18Scr_GetConstStringj_50:
	mov eax, [ebx]
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z18Scr_GetConstStringj_60:
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18Scr_GetConstStringj_120
	cmp byte [ecx+0x6], 0x0
	jnz _Z18Scr_GetConstStringj_130
_Z18Scr_GetConstStringj_160:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z18Scr_GetConstStringj_100
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z18Scr_GetConstStringj_100
	jmp _Z18Scr_GetConstStringj_140
_Z18Scr_GetConstStringj_20:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18Scr_GetConstStringj_150
_Z18Scr_GetConstStringj_130:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z18Scr_GetConstStringj_160
	nop
	add [eax], al


;Scr_GetDebugString(unsigned int)
_Z18Scr_GetDebugStringj:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov eax, [ebp+0x8]
	cmp [scrVmPub+0x1c], eax
	jbe _Z18Scr_GetDebugStringj_10
	shl eax, 0x3
	mov ebx, [scrVmPub+0x10]
	sub ebx, eax
	mov [esp], ebx
	call _Z19Scr_CastDebugStringP13VariableValue
	mov eax, [ebx]
	mov [ebp+0x8], eax
	add esp, 0x14
	pop ebx
	pop ebp
	jmp _Z18SL_ConvertToStringj
_Z18Scr_GetDebugStringj_10:
	add eax, 0x1
	mov [esp+0x4], eax
	mov dword [esp], _cstring_parameter_d_does
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z18Scr_GetDebugStringj_20
_Z18Scr_GetDebugStringj_100:
	cmp byte [ebx+0x8], 0x0
	jnz _Z18Scr_GetDebugStringj_30
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z18Scr_GetDebugStringj_40
_Z18Scr_GetDebugStringj_30:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18Scr_GetDebugStringj_50
_Z18Scr_GetDebugStringj_80:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18Scr_GetDebugStringj_50:
	xor eax, eax
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z18Scr_GetDebugStringj_40:
	cmp byte [ebx+0x6], 0x0
	jnz _Z18Scr_GetDebugStringj_60
_Z18Scr_GetDebugStringj_90:
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z18Scr_GetDebugStringj_70
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18Scr_GetDebugStringj_80
_Z18Scr_GetDebugStringj_70:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z18Scr_GetDebugStringj_60:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z18Scr_GetDebugStringj_90
_Z18Scr_GetDebugStringj_20:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18Scr_GetDebugStringj_100


;Scr_GetNextCodepos(VariableValue*, char const*, int, int, unsigned int*)
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x3c
	mov ebx, [ebp+0xc]
	mov edx, [ebp+0x10]
	mov edi, [ebp+0x18]
	mov eax, [scrVmPub+0xc]
	mov eax, [eax+0x4]
	mov [edi], eax
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_50:
	lea esi, [ebx+0x1]
	cmp dword [ebp+0x14], 0x2
	jz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_10
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_40:
	cmp edx, 0x86
	ja _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	jmp dword [edx*4+_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_jumptab_0]
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20:
	mov edx, scrVarPub
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_60:
	mov dword [edx+0xc], 0x0
	mov dword [scrVmGlob+0x10], 0x0
	mov dword [edx+0x10], 0x0
	movzx eax, byte [esi]
	movsx edx, al
	cmp al, 0x39
	jz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_30
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70:
	mov eax, esi
	add esp, 0x3c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_10:
	lea eax, [edx-0x4f]
	cmp eax, 0x8
	ja _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_40
	jmp dword [eax*4+_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_jumptab_1]
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_30:
	mov ebx, esi
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_50
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_200:
	lea esi, [ebx+0x5]
	mov edx, scrVarPub
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_60
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190:
	lea esi, [ebx+0x3]
	mov edx, scrVarPub
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_60
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_320:
	mov eax, [ebp+0x8]
	cmp dword [eax+0x4], 0x1
	jnz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_40
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_300:
	cmp dword [scrVmPub+0x8], 0x1f
	jg _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_40
	mov dword [edi], 0x0
	mov esi, [esi]
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_310:
	mov eax, [ebp+0x8]
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_80:
	cmp dword [eax+0x4], 0x9
	jnz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_40
	cmp dword [scrVmPub+0x8], 0x1f
	jg _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_40
	mov dword [edi], 0x0
	mov esi, [eax]
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_330:
	mov ecx, [ebp+0x8]
	cmp dword [ecx-0x4], 0x1
	jnz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_40
	mov eax, ecx
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_80
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_250:
	mov ecx, [ebp+0x8]
	mov eax, [ecx]
	mov edx, [ecx+0x4]
	mov [ebp-0x20], eax
	mov [ebp-0x1c], edx
	mov eax, [ebp-0x20]
	mov [esp+0x4], eax
	mov eax, [ebp-0x1c]
	mov [esp], eax
	call _Z13AddRefToValuei13VariableUnion
	lea eax, [ebp-0x20]
	mov [esp], eax
	call _Z12Scr_CastBoolP13VariableValue
	movzx eax, word [esi]
	lea esi, [ebx+0x3]
	mov edx, scrVarPub
	mov ecx, [edx+0xc]
	test ecx, ecx
	jnz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_60
	mov edi, [ebp-0x20]
	test edi, edi
	jz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
	add esi, eax
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_260:
	mov eax, [esi]
	lea esi, [esi+eax+0x4]
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_270:
	lea edx, [esi+0x2]
	movzx eax, word [esi]
	mov esi, edx
	sub esi, eax
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_280:
	mov eax, [esi]
	lea eax, [esi+eax+0x4]
	lea esi, [eax+0x2]
	movzx edi, word [eax]
	movzx ebx, di
	mov edx, [ebp+0x8]
	mov eax, [edx+0x4]
	cmp eax, 0x2
	jz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_90
	cmp eax, 0x6
	jz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_100
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_130:
	lea esi, [esi+ebx*8]
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_290:
	movzx eax, word [esi]
	lea esi, [esi+eax*8+0x2]
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_170:
	cmp dword [scrVmPub+0x8], 0x1
	jg _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_110
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_120:
	xor esi, esi
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180:
	lea esi, [ebx+0x2]
	mov edx, scrVarPub
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_60
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_220:
	lea esi, [ebx+0x4]
	mov edx, scrVarPub
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_60
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_240:
	mov ecx, [ebp+0x8]
	mov eax, [ecx]
	mov edx, [ecx+0x4]
	mov [ebp-0x20], eax
	mov [ebp-0x1c], edx
	mov eax, [ebp-0x20]
	mov [esp+0x4], eax
	mov eax, [ebp-0x1c]
	mov [esp], eax
	call _Z13AddRefToValuei13VariableUnion
	lea eax, [ebp-0x20]
	mov [esp], eax
	call _Z12Scr_CastBoolP13VariableValue
	movzx eax, word [esi]
	lea esi, [ebx+0x3]
	mov edx, scrVarPub
	mov ecx, [edx+0xc]
	test ecx, ecx
	jnz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_60
	mov ebx, [ebp-0x20]
	test ebx, ebx
	jnz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
	add esi, eax
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_210:
	lea esi, [ebx+0xd]
	mov edx, scrVarPub
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_60
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_230:
	lea esi, [ebx+0x9]
	mov edx, scrVarPub
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_60
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_110:
	mov eax, [scrVmPub+0xc]
	lea edx, [eax-0x18]
	mov esi, [eax-0x18]
	cmp esi, g_EndPos
	jz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_120
	mov eax, [edx+0x4]
	mov [edi], eax
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_100:
	mov eax, [edx]
	mov [esp], eax
	call _Z17IsValidArrayIndexj
	test al, al
	jz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_130
	mov ecx, [ebp+0x8]
	mov eax, [ecx]
	mov [esp], eax
	call _Z24GetInternalVariableIndexj
	mov [ebp-0x2c], eax
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_160:
	test di, di
	jz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
	xor edx, edx
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_150:
	mov eax, esi
	mov ecx, [esi]
	add esi, 0x8
	mov eax, [eax+0x4]
	cmp [ebp-0x2c], ecx
	jz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_140
	add edx, 0x1
	cmp ebx, edx
	jnz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_150
	test ecx, ecx
	jnz _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_140:
	mov esi, eax
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_70
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_90:
	mov eax, [edx]
	mov [ebp-0x2c], eax
	jmp _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_160
	nop
	
	
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_jumptab_0:
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_170
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_170
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_200
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_200
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_210
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_200
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_200
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_220
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_220
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_200
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_200
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_200
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_230
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_200
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_230
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_200
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_240
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_250
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_240
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_250
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_260
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_270
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_280
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_290
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_20
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_230
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_190
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_180
_Z18Scr_GetNextCodeposP13VariableValuePKciiPj_jumptab_1:
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_300
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_300
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_310
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_320
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_330
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_300
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_310
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_320
	dd _Z18Scr_GetNextCodeposP13VariableValuePKciiPj_330


;Scr_GetPointerType(unsigned int)
_Z18Scr_GetPointerTypej:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov ebx, [ebp+0x8]
	cmp [scrVmPub+0x1c], ebx
	jbe _Z18Scr_GetPointerTypej_10
	lea eax, [ebx*8]
	mov edx, [scrVmPub+0x10]
	sub edx, eax
	mov ecx, [edx+0x4]
	cmp ecx, 0x1
	jz _Z18Scr_GetPointerTypej_20
	mov eax, var_typename
	mov eax, [eax+ecx*4]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_type_s_is_not_an2
	call _Z2vaPKcz
	mov esi, scrVarPub
	mov edx, [esi+0xc]
	test edx, edx
	jz _Z18Scr_GetPointerTypej_30
_Z18Scr_GetPointerTypej_140:
	cmp byte [esi+0x8], 0x0
	jnz _Z18Scr_GetPointerTypej_40
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18Scr_GetPointerTypej_40
	cmp byte [esi+0x6], 0x0
	jz _Z18Scr_GetPointerTypej_50
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18Scr_GetPointerTypej_50:
	mov ecx, [scrVmPub+0x8]
	test ecx, ecx
	jnz _Z18Scr_GetPointerTypej_60
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z18Scr_GetPointerTypej_60
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18Scr_GetPointerTypej_10:
	lea eax, [ebx+0x1]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_parameter_d_does
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov edx, [ebx+0xc]
	test edx, edx
	jz _Z18Scr_GetPointerTypej_70
_Z18Scr_GetPointerTypej_130:
	cmp byte [ebx+0x8], 0x0
	jz _Z18Scr_GetPointerTypej_80
_Z18Scr_GetPointerTypej_100:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18Scr_GetPointerTypej_90
_Z18Scr_GetPointerTypej_120:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z18Scr_GetPointerTypej_90:
	xor eax, eax
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
_Z18Scr_GetPointerTypej_80:
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z18Scr_GetPointerTypej_100
	cmp byte [ebx+0x6], 0x0
	jz _Z18Scr_GetPointerTypej_110
	mov eax, 0x1
	mov esi, [scrVmGlob+0x14]
	test esi, esi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
_Z18Scr_GetPointerTypej_110:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z18Scr_GetPointerTypej_60
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z18Scr_GetPointerTypej_120
_Z18Scr_GetPointerTypej_60:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z18Scr_GetPointerTypej_20:
	mov eax, [edx]
	mov [ebp+0x8], eax
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	jmp _Z13GetObjectTypej
_Z18Scr_GetPointerTypej_40:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z18Scr_GetPointerTypej_10
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z18Scr_GetPointerTypej_10
_Z18Scr_GetPointerTypej_70:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z18Scr_GetPointerTypej_130
_Z18Scr_GetPointerTypej_30:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [esi+0xc], error_message
	jmp _Z18Scr_GetPointerTypej_140


;Scr_IsSystemActive(unsigned char)
_Z18Scr_IsSystemActiveh:
	push ebp
	mov ebp, esp
	mov eax, scrVarPub
	mov edx, [eax+0x18]
	test edx, edx
	jz _Z18Scr_IsSystemActiveh_10
	mov eax, [eax+0xc]
	test eax, eax
	jz _Z18Scr_IsSystemActiveh_20
_Z18Scr_IsSystemActiveh_10:
	xor eax, eax
	pop ebp
	ret
_Z18Scr_IsSystemActiveh_20:
	mov eax, 0x1
	pop ebp
	ret
	nop


;Scr_SetStructField(unsigned int, unsigned int)
_Z18Scr_SetStructFieldjj:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov eax, [ebp+0xc]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z25Scr_GetVariableFieldIndexjj
	mov [esp], eax
	call _Z12Scr_GetVarIdj
	mov dword [scrVmPub+0x18], 0x0
	mov edx, [scrVmPub+0x10]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z21SetVariableFieldValuejP13VariableValue
	sub dword [scrVmPub+0x10], 0x8
	leave
	ret
	nop
	add [eax], al


;Scr_ShutdownSystem(unsigned char, int)
_Z18Scr_ShutdownSystemhi:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x2c
	call _Z18Scr_FreeEntityListv
	mov ebx, scrVarPub
	mov eax, [ebx+0x18]
	test eax, eax
	jnz _Z18Scr_ShutdownSystemhi_10
_Z18Scr_ShutdownSystemhi_50:
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z18Scr_ShutdownSystemhi_10:
	mov eax, [ebp+0xc]
	mov [esp], eax
	call _Z20Scr_FreeGameVariablei
	mov eax, [scrVmPub+0x8]
	mov [ebp-0x1c], eax
	mov dword [scrVmPub+0x8], 0x0
	mov eax, [ebx+0x18]
	mov [esp], eax
	call _Z16FindFirstSiblingj
	mov [ebp-0x20], eax
	test eax, eax
	jnz _Z18Scr_ShutdownSystemhi_20
_Z18Scr_ShutdownSystemhi_60:
	mov esi, scrVarPub
	jmp _Z18Scr_ShutdownSystemhi_30
_Z18Scr_ShutdownSystemhi_40:
	mov [esp], eax
	call _Z10FindObjectj
	mov [esp], eax
	call _Z16FindFirstSiblingj
	mov [esp], eax
	call _Z23GetVariableValueAddressj
	mov ebx, [eax]
	mov [esp], ebx
	call _Z14AddRefToObjectj
	mov [esp], ebx
	call _Z20Scr_CancelNotifyListj
	mov [esp], ebx
	call _Z17RemoveRefToObjectj
_Z18Scr_ShutdownSystemhi_30:
	mov eax, [esi+0x1c]
	mov [esp], eax
	call _Z16FindFirstSiblingj
	test eax, eax
	jnz _Z18Scr_ShutdownSystemhi_40
	mov eax, [esi+0x20]
	mov [esp], eax
	call _Z11ClearObjectj
	mov eax, [esi+0x20]
	mov [esp], eax
	call _Z22RemoveRefToEmptyObjectj
	mov dword [esi+0x20], 0x0
	mov eax, [esi+0x28]
	mov [esp], eax
	call _Z11ClearObjectj
	mov eax, [esi+0x28]
	mov [esp], eax
	call _Z22RemoveRefToEmptyObjectj
	mov dword [esi+0x28], 0x0
	mov eax, [esi+0x18]
	mov [esp], eax
	call _Z11ClearObjectj
	mov eax, [esi+0x18]
	mov [esp], eax
	call _Z22RemoveRefToEmptyObjectj
	mov dword [esi+0x18], 0x0
	mov eax, [esi+0x1c]
	mov [esp], eax
	call _Z22RemoveRefToEmptyObjectj
	mov dword [esi+0x1c], 0x0
	call _Z15Scr_FreeObjectsv
	mov eax, [ebp-0x1c]
	test eax, eax
	jz _Z18Scr_ShutdownSystemhi_50
	mov byte [esi+0x34], 0x0
	call _Z16Scr_InitClassMapv
	mov dword [scrVmPub+0x4], scrVmPub+0x4318
	mov dword [scrVmPub+0x10], scrVmPub+0x320
	mov dword [scrVmPub+0x8], 0x0
	mov dword [scrVmPub+0xc], scrVmPub+0x20
	mov dword [scrVmPub], scrVmGlob+0x18
	mov byte [esi+0x8], 0x0
	mov byte [scrVmPub+0x14], 0x0
	mov dword [esi+0xc], 0x0
	mov dword [scrVmGlob+0x10], 0x0
	mov dword [esi+0x10], 0x0
	mov byte [scrVmPub+0x16], 0x0
	mov dword [scrVmPub+0x1c], 0x0
	mov dword [scrVmPub+0x18], 0x0
	call _Z10AllocValuev
	mov [esi+0x30], eax
	mov dword [esi+0x18], 0x0
	mov dword [esi+0x1c], 0x0
	mov dword [esi+0x20], 0x0
	mov dword [esi+0x24], 0x0
	mov dword [esi+0x28], 0x0
	mov dword [esi+0x2c], 0x0
	mov dword [scrVmPub+0x324], 0x7
	mov dword [scrVmGlob+0x14], 0x0
	mov eax, scrCompilePub
	mov byte [eax+0x20020], 0x0
	mov edx, scrAnimPub
	mov byte [edx+0x418], 0x0
	mov dword [eax+0xc], 0x0
	mov dword [eax+0x8], 0x0
	mov dword [edx], 0x0
	mov dword [eax+0x14], 0x0
	mov dword [eax+0x10], 0x0
	mov byte [esi+0x34], 0x1
	add esp, 0x2c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z18Scr_ShutdownSystemhi_90:
	mov [esp], edi
	call _Z17RemoveRefToObjectj
	mov eax, [ebp-0x20]
	mov [esp], eax
	call _Z15FindNextSiblingj
	mov [ebp-0x20], eax
	test eax, eax
	jz _Z18Scr_ShutdownSystemhi_60
_Z18Scr_ShutdownSystemhi_20:
	mov [esp], eax
	call _Z10FindObjectj
	mov edi, eax
	mov [esp], eax
	call _Z14AddRefToObjectj
	jmp _Z18Scr_ShutdownSystemhi_70
_Z18Scr_ShutdownSystemhi_80:
	mov [esp], esi
	call _Z20GetVariableKeyObjectj
	mov ebx, eax
	mov [esp], esi
	call _Z23GetVariableValueAddressj
	mov esi, [eax]
	mov [esp+0x4], ebx
	mov [esp], edi
	call _Z20RemoveObjectVariablejj
	mov [esp], ebx
	call _Z17Scr_ClearWaitTimej
	mov ecx, esi
	mov edx, ebx
	mov eax, ebx
	call _Z17VM_TerminateStackjjP19VariableStackBuffer
_Z18Scr_ShutdownSystemhi_70:
	mov [esp], edi
	call _Z16FindFirstSiblingj
	mov esi, eax
	test eax, eax
	jnz _Z18Scr_ShutdownSystemhi_80
	jmp _Z18Scr_ShutdownSystemhi_90
	nop


;Scr_TraverseScript(char const*)
_Z18Scr_TraverseScriptPKc:
	push ebp
	mov ebp, esp
	mov edx, [ebp+0x8]
_Z18Scr_TraverseScriptPKc_20:
	lea ecx, [edx+0x1]
	movzx eax, byte [edx]
	cmp eax, 0x86
	ja _Z18Scr_TraverseScriptPKc_10
	jmp dword [eax*4+_Z18Scr_TraverseScriptPKc_jumptab_0]
_Z18Scr_TraverseScriptPKc_10:
	pop ebp
	ret
_Z18Scr_TraverseScriptPKc_60:
	add edx, 0x5
	jmp _Z18Scr_TraverseScriptPKc_20
_Z18Scr_TraverseScriptPKc_50:
	add edx, 0x3
	jmp _Z18Scr_TraverseScriptPKc_20
_Z18Scr_TraverseScriptPKc_80:
	add edx, 0x4
	jmp _Z18Scr_TraverseScriptPKc_20
_Z18Scr_TraverseScriptPKc_40:
	add edx, 0x2
	jmp _Z18Scr_TraverseScriptPKc_20
_Z18Scr_TraverseScriptPKc_30:
	mov edx, ecx
	jmp _Z18Scr_TraverseScriptPKc_20
_Z18Scr_TraverseScriptPKc_100:
	movzx eax, word [ecx]
	lea edx, [edx+eax*8+0x3]
	jmp _Z18Scr_TraverseScriptPKc_20
_Z18Scr_TraverseScriptPKc_70:
	add edx, 0xd
	jmp _Z18Scr_TraverseScriptPKc_20
_Z18Scr_TraverseScriptPKc_90:
	add edx, 0x9
	jmp _Z18Scr_TraverseScriptPKc_20
	nop
	
	
_Z18Scr_TraverseScriptPKc_jumptab_0:
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_40
	dd _Z18Scr_TraverseScriptPKc_40
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_60
	dd _Z18Scr_TraverseScriptPKc_60
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_70
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_60
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_60
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_40
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_40
	dd _Z18Scr_TraverseScriptPKc_40
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_40
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_40
	dd _Z18Scr_TraverseScriptPKc_40
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_40
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_40
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_80
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_80
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_60
	dd _Z18Scr_TraverseScriptPKc_60
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_60
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_90
	dd _Z18Scr_TraverseScriptPKc_60
	dd _Z18Scr_TraverseScriptPKc_90
	dd _Z18Scr_TraverseScriptPKc_60
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_40
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_60
	dd _Z18Scr_TraverseScriptPKc_50
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_60
	dd _Z18Scr_TraverseScriptPKc_100
	dd _Z18Scr_TraverseScriptPKc_30
	dd _Z18Scr_TraverseScriptPKc_10
	dd _Z18Scr_TraverseScriptPKc_10
	dd _Z18Scr_TraverseScriptPKc_10
	dd _Z18Scr_TraverseScriptPKc_10
	dd _Z18Scr_TraverseScriptPKc_10
	dd _Z18Scr_TraverseScriptPKc_10
	dd _Z18Scr_TraverseScriptPKc_40
	dd _Z18Scr_TraverseScriptPKc_40




;SetEntityFieldValue(unsigned int, int, int, VariableValue*)
_Z19SetEntityFieldValuejiiP13VariableValue:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov dword [scrVmPub+0x1c], 0x1
	mov eax, [ebp+0x14]
	mov [scrVmPub+0x10], eax
	mov eax, [ebp+0x10]
	mov [esp+0x8], eax
	mov eax, [ebp+0xc]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z18Scr_SetObjectFieldjii
	test eax, eax
	jnz _Z19SetEntityFieldValuejiiP13VariableValue_10
	mov dword [scrVmPub+0x1c], 0x0
	leave
	ret
_Z19SetEntityFieldValuejiiP13VariableValue_10:
	mov ecx, [scrVmPub+0x1c]
	test ecx, ecx
	jnz _Z19SetEntityFieldValuejiiP13VariableValue_20
	mov eax, 0x1
_Z19SetEntityFieldValuejiiP13VariableValue_30:
	leave
	ret
_Z19SetEntityFieldValuejiiP13VariableValue_20:
	mov eax, [scrVmPub+0x10]
	mov edx, [eax]
	mov [esp+0x4], edx
	mov eax, [eax+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	sub dword [scrVmPub+0x10], 0x8
	mov dword [scrVmPub+0x1c], 0x0
	mov eax, 0x1
	jmp _Z19SetEntityFieldValuejiiP13VariableValue_30


;Scr_CancelNotifyList(unsigned int)
_Z20Scr_CancelNotifyListj:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x1c
	mov edi, [ebp+0x8]
_Z20Scr_CancelNotifyListj_50:
	mov dword [esp+0x4], 0x18000
	mov [esp], edi
	call _Z12FindVariablejj
	test eax, eax
	jz _Z20Scr_CancelNotifyListj_10
_Z20Scr_CancelNotifyListj_40:
	mov [esp], eax
	call _Z10FindObjectj
	mov [esp], eax
	call _Z16FindFirstSiblingj
	test eax, eax
	jz _Z20Scr_CancelNotifyListj_10
	mov [esp], eax
	call _Z10FindObjectj
	mov [esp], eax
	call _Z16FindFirstSiblingj
	mov ebx, eax
	test eax, eax
	jz _Z20Scr_CancelNotifyListj_10
	mov [esp], eax
	call _Z20GetVariableKeyObjectj
	mov esi, eax
	mov [esp], ebx
	call _Z12GetValueTypej
	cmp eax, 0xa
	jz _Z20Scr_CancelNotifyListj_20
	mov [esp], esi
	call _Z14AddRefToObjectj
	mov eax, esi
	call _Z18Scr_CancelWaittillj
	mov [esp], esi
	call _Z11Scr_GetSelfj
	mov [esp], eax
	call _Z15GetStartLocalIdj
	mov ebx, eax
	mov dword [esp+0x4], 0x18001
	mov [esp], eax
	call _Z12FindVariablejj
	test eax, eax
	jnz _Z20Scr_CancelNotifyListj_30
_Z20Scr_CancelNotifyListj_60:
	mov [esp], esi
	call _Z19Scr_KillEndonThreadj
	mov [esp], esi
	call _Z22RemoveRefToEmptyObjectj
	mov dword [esp+0x4], 0x18000
	mov [esp], edi
	call _Z12FindVariablejj
	test eax, eax
	jnz _Z20Scr_CancelNotifyListj_40
_Z20Scr_CancelNotifyListj_10:
	add esp, 0x1c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z20Scr_CancelNotifyListj_20:
	mov [esp], ebx
	call _Z23GetVariableValueAddressj
	mov ebx, [eax]
	mov eax, esi
	call _Z18Scr_CancelWaittillj
	xor ecx, ecx
	mov edx, ebx
	mov eax, esi
	call _Z12VM_TrimStackjP19VariableStackBufferh
	jmp _Z20Scr_CancelNotifyListj_50
_Z20Scr_CancelNotifyListj_30:
	mov [esp], eax
	call _Z23GetVariableValueAddressj
	mov ecx, 0x1
	mov edx, [eax]
	mov eax, ebx
	call _Z12VM_TrimStackjP19VariableStackBufferh
	jmp _Z20Scr_CancelNotifyListj_60
	nop


;Scr_ExecEntThreadNum(int, unsigned int, int, unsigned int)
_Z20Scr_ExecEntThreadNumijij:
	push ebp
	mov ebp, esp
	push esi
	push ebx
	sub esp, 0x10
	mov eax, scrVarPub
	mov esi, [eax+0x48]
	add esi, [ebp+0x10]
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z20Scr_ExecEntThreadNumijij_10
	call _Z16Sys_Millisecondsv
	mov [scrVmGlob+0x18], eax
_Z20Scr_ExecEntThreadNumijij_10:
	mov eax, [ebp+0xc]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z15Scr_GetEntityIdij
	mov ebx, eax
	mov [esp], eax
	call _Z14AddRefToObjectj
	mov [esp], ebx
	call _Z11AllocThreadj
	mov ecx, [ebp+0x14]
	mov edx, esi
	call _Z10VM_ExecutejPKcj
	mov ebx, eax
	mov edx, [scrVmPub+0x10]
	mov eax, [edx]
	mov [esp+0x4], eax
	mov eax, [edx+0x4]
	mov [esp], eax
	call _Z16RemoveRefToValuei13VariableUnion
	mov eax, [scrVmPub+0x10]
	mov dword [eax+0x4], 0x0
	sub dword [scrVmPub+0x10], 0x8
	sub dword [scrVmPub+0x18], 0x1
	movzx ebx, bx
	mov eax, ebx
	add esp, 0x10
	pop ebx
	pop esi
	pop ebp
	ret
	nop


;Scr_ClearErrorMessage()
_Z21Scr_ClearErrorMessagev:
	push ebp
	mov ebp, esp
	mov eax, scrVarPub
	mov dword [eax+0xc], 0x0
	mov dword [scrVmGlob+0x10], 0x0
	mov dword [eax+0x10], 0x0
	pop ebp
	ret


;Scr_RunCurrentThreads()
_Z21Scr_RunCurrentThreadsv:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov ebx, scrVarPub
	mov edx, [ebx+0x18]
	test edx, edx
	jnz _Z21Scr_RunCurrentThreadsv_10
_Z21Scr_RunCurrentThreadsv_20:
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z21Scr_RunCurrentThreadsv_10:
	mov eax, [ebx+0x14]
	mov [esp+0x4], eax
	mov [esp], edx
	call _Z12FindVariablejj
	test eax, eax
	jz _Z21Scr_RunCurrentThreadsv_20
	mov [esp], eax
	call _Z10FindObjectj
	call _Z9VM_Resumej
	mov eax, [ebx+0x14]
	mov [esp+0x4], eax
	mov eax, [ebx+0x18]
	mov [esp], eax
	call _Z18SafeRemoveVariablejj
	add esp, 0x14
	pop ebx
	pop ebp
	ret


;Scr_GetNumScriptThreads()
_Z23Scr_GetNumScriptThreadsv:
	push ebp
	mov ebp, esp
	xor eax, eax
	pop ebp
	ret
	nop


;Scr_AddArrayStringIndexed(unsigned int)
_Z25Scr_AddArrayStringIndexedj:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov edx, [scrVmPub+0x10]
	lea eax, [edx-0x8]
	mov [scrVmPub+0x10], eax
	sub dword [scrVmPub+0x18], 0x1
	mov eax, [ebp+0x8]
	mov [esp+0x4], eax
	mov eax, [edx-0x8]
	mov [esp], eax
	call _Z14GetNewVariablejj
	mov edx, [scrVmPub+0x10]
	add edx, 0x8
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z19SetNewVariableValuejP13VariableValue
	leave
	ret
	add [eax], al


;Scr_SetDynamicEntityField(int, unsigned int, unsigned int)
_Z25Scr_SetDynamicEntityFieldijj:
	push ebp
	mov ebp, esp
	sub esp, 0x18
	mov eax, [ebp+0xc]
	mov [esp+0x4], eax
	mov eax, [ebp+0x8]
	mov [esp], eax
	call _Z15Scr_GetEntityIdij
	mov edx, [ebp+0x10]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z25Scr_GetVariableFieldIndexjj
	mov [esp], eax
	call _Z12Scr_GetVarIdj
	mov dword [scrVmPub+0x18], 0x0
	mov edx, [scrVmPub+0x10]
	mov [esp+0x4], edx
	mov [esp], eax
	call _Z21SetVariableFieldValuejP13VariableValue
	sub dword [scrVmPub+0x10], 0x8
	leave
	ret


;Scr_GetConstLowercaseString(unsigned int)
_Z27Scr_GetConstLowercaseStringj:
	push ebp
	mov ebp, esp
	push edi
	push esi
	push ebx
	sub esp, 0x202c
	mov ebx, [ebp+0x8]
	cmp [scrVmPub+0x1c], ebx
	ja _Z27Scr_GetConstLowercaseStringj_10
	add ebx, 0x1
_Z27Scr_GetConstLowercaseStringj_110:
	mov [esp+0x4], ebx
	mov dword [esp], _cstring_parameter_d_does
	call _Z2vaPKcz
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z27Scr_GetConstLowercaseStringj_20
_Z27Scr_GetConstLowercaseStringj_150:
	cmp byte [ebx+0x8], 0x0
	jnz _Z27Scr_GetConstLowercaseStringj_30
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z27Scr_GetConstLowercaseStringj_30
	cmp byte [ebx+0x6], 0x0
	jnz _Z27Scr_GetConstLowercaseStringj_40
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jnz _Z27Scr_GetConstLowercaseStringj_50
_Z27Scr_GetConstLowercaseStringj_140:
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z27Scr_GetConstLowercaseStringj_60
_Z27Scr_GetConstLowercaseStringj_50:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z27Scr_GetConstLowercaseStringj_30:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z27Scr_GetConstLowercaseStringj_70
_Z27Scr_GetConstLowercaseStringj_60:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z27Scr_GetConstLowercaseStringj_70:
	xor eax, eax
	add esp, 0x202c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z27Scr_GetConstLowercaseStringj_10:
	lea eax, [ebx*8]
	mov edi, [scrVmPub+0x10]
	sub edi, eax
	mov [esp], edi
	call _Z14Scr_CastStringP13VariableValue
	test al, al
	jnz _Z27Scr_GetConstLowercaseStringj_80
	add ebx, 0x1
	mov ecx, scrVarPub
	mov [ecx+0x10], ebx
	cmp byte [ecx+0x8], 0x0
	jnz _Z27Scr_GetConstLowercaseStringj_90
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jnz _Z27Scr_GetConstLowercaseStringj_90
	cmp byte [ecx+0x6], 0x0
	jnz _Z27Scr_GetConstLowercaseStringj_100
_Z27Scr_GetConstLowercaseStringj_160:
	mov esi, [scrVmPub+0x8]
	test esi, esi
	jnz _Z27Scr_GetConstLowercaseStringj_50
	cmp byte [scrVmPub+0x14], 0x0
	jnz _Z27Scr_GetConstLowercaseStringj_50
	mov eax, [ecx+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z27Scr_GetConstLowercaseStringj_110
_Z27Scr_GetConstLowercaseStringj_90:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z27Scr_GetConstLowercaseStringj_110
	mov eax, [ecx+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
	jmp _Z27Scr_GetConstLowercaseStringj_110
_Z27Scr_GetConstLowercaseStringj_80:
	mov eax, [edi]
	mov [ebp-0x201c], eax
	mov [esp], eax
	call _Z18SL_ConvertToStringj
	mov [ebp-0x2020], eax
	mov esi, 0x1
	mov ebx, eax
	jmp _Z27Scr_GetConstLowercaseStringj_120
_Z27Scr_GetConstLowercaseStringj_130:
	mov ebx, [ebp-0x2020]
_Z27Scr_GetConstLowercaseStringj_120:
	add ebx, esi
	movsx eax, byte [ebx-0x1]
	mov [esp], eax
	call tolower
	mov [esi+ebp-0x2019], al
	add esi, 0x1
	cmp byte [ebx-0x1], 0x0
	jnz _Z27Scr_GetConstLowercaseStringj_130
	mov dword [esp+0x4], 0x0
	lea eax, [ebp-0x2018]
	mov [esp], eax
	call _Z12SL_GetStringPKcj
	mov [edi], eax
	mov eax, [ebp-0x201c]
	mov [esp], eax
	call _Z20SL_RemoveRefToStringj
	mov eax, [edi]
	add esp, 0x202c
	pop ebx
	pop esi
	pop edi
	pop ebp
	ret
_Z27Scr_GetConstLowercaseStringj_40:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	mov eax, [scrVmPub+0x8]
	test eax, eax
	jz _Z27Scr_GetConstLowercaseStringj_140
	jmp _Z27Scr_GetConstLowercaseStringj_50
_Z27Scr_GetConstLowercaseStringj_20:
	mov dword [esp+0x8], 0x400
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z27Scr_GetConstLowercaseStringj_150
_Z27Scr_GetConstLowercaseStringj_100:
	mov eax, 0x1
	mov edi, [scrVmGlob+0x14]
	test edi, edi
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z27Scr_GetConstLowercaseStringj_160


;Scr_GetConstStringIncludeNull(unsigned int)
_Z29Scr_GetConstStringIncludeNullj:
	push ebp
	mov ebp, esp
	mov ecx, [ebp+0x8]
	cmp [scrVmPub+0x1c], ecx
	jbe _Z29Scr_GetConstStringIncludeNullj_10
	lea edx, [ecx*8]
	mov eax, [scrVmPub+0x10]
	sub eax, edx
	mov eax, [eax+0x4]
	test eax, eax
	jz _Z29Scr_GetConstStringIncludeNullj_20
_Z29Scr_GetConstStringIncludeNullj_10:
	mov [ebp+0x8], ecx
	pop ebp
	jmp _Z18Scr_GetConstStringj
_Z29Scr_GetConstStringIncludeNullj_20:
	xor eax, eax
	pop ebp
	ret


;Scr_Init()
_Z8Scr_Initv:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x4
	call _Z16Scr_InitClassMapv
	mov dword [scrVmPub+0x4], scrVmPub+0x4318
	mov dword [scrVmPub+0x10], scrVmPub+0x320
	mov dword [scrVmPub+0x8], 0x0
	mov dword [scrVmPub+0xc], scrVmPub+0x20
	mov dword [scrVmPub], scrVmGlob+0x18
	mov ebx, scrVarPub
	mov byte [ebx+0x8], 0x0
	mov byte [scrVmPub+0x14], 0x0
	mov dword [ebx+0xc], 0x0
	mov dword [scrVmGlob+0x10], 0x0
	mov dword [ebx+0x10], 0x0
	mov byte [scrVmPub+0x16], 0x0
	mov dword [scrVmPub+0x1c], 0x0
	mov dword [scrVmPub+0x18], 0x0
	call _Z10AllocValuev
	mov [ebx+0x30], eax
	mov dword [ebx+0x18], 0x0
	mov dword [ebx+0x1c], 0x0
	mov dword [ebx+0x20], 0x0
	mov dword [ebx+0x24], 0x0
	mov dword [ebx+0x28], 0x0
	mov dword [ebx+0x2c], 0x0
	mov dword [scrVmPub+0x324], 0x7
	mov dword [scrVmGlob+0x14], 0x0
	mov eax, scrCompilePub
	mov byte [eax+0x20020], 0x0
	mov edx, scrAnimPub
	mov byte [edx+0x418], 0x0
	mov dword [eax+0xc], 0x0
	mov dword [eax+0x8], 0x0
	mov dword [edx], 0x0
	mov dword [eax+0x14], 0x0
	mov dword [eax+0x10], 0x0
	mov byte [ebx+0x34], 0x1
	add esp, 0x4
	pop ebx
	pop ebp
	ret
	nop


;Scr_Error(char const*)
_Z9Scr_ErrorPKc:
	push ebp
	mov ebp, esp
	push ebx
	sub esp, 0x14
	mov ebx, scrVarPub
	mov ecx, [ebx+0xc]
	test ecx, ecx
	jz _Z9Scr_ErrorPKc_10
_Z9Scr_ErrorPKc_90:
	cmp byte [ebx+0x8], 0x0
	jnz _Z9Scr_ErrorPKc_20
	mov eax, scrCompilePub
	cmp byte [eax+0x20020], 0x0
	jz _Z9Scr_ErrorPKc_30
_Z9Scr_ErrorPKc_20:
	cmp byte [scrVmPub+0x16], 0x0
	jz _Z9Scr_ErrorPKc_40
_Z9Scr_ErrorPKc_70:
	mov eax, scrVarPub
	mov eax, [eax+0xc]
	mov [esp+0x4], eax
	mov dword [esp], _cstring_s
	call _Z9Sys_ErrorPKcz
_Z9Scr_ErrorPKc_40:
	add esp, 0x14
	pop ebx
	pop ebp
	ret
_Z9Scr_ErrorPKc_30:
	cmp byte [ebx+0x6], 0x0
	jnz _Z9Scr_ErrorPKc_50
_Z9Scr_ErrorPKc_80:
	mov ebx, [scrVmPub+0x8]
	test ebx, ebx
	jnz _Z9Scr_ErrorPKc_60
	cmp byte [scrVmPub+0x14], 0x0
	jz _Z9Scr_ErrorPKc_70
_Z9Scr_ErrorPKc_60:
	mov dword [esp+0x4], 0xffffffff
	mov eax, [g_script_error_level]
	lea eax, [eax+eax*8]
	lea eax, [eax*8+g_script_error]
	mov [esp], eax
	call longjmp
_Z9Scr_ErrorPKc_50:
	mov eax, 0x1
	mov edx, [scrVmGlob+0x14]
	test edx, edx
	movzx edx, byte [scrVmPub+0x16]
	cmovz eax, edx
	mov [scrVmPub+0x16], al
	jmp _Z9Scr_ErrorPKc_80
_Z9Scr_ErrorPKc_10:
	mov dword [esp+0x8], 0x400
	mov eax, [ebp+0x8]
	mov [esp+0x4], eax
	mov dword [esp], error_message
	call _Z10I_strncpyzPcPKci
	mov dword [ebx+0xc], error_message
	jmp _Z9Scr_ErrorPKc_90


;Initialized global or static variables of scr_vm:
SECTION .data
g_EndPos: dd 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0


;Initialized constant data of scr_vm:
SECTION .rdata


;Zero initialized global or static variables of scr_vm:
SECTION .bss
scrVmGlob: resb 0x201c
thread_count: resb 0x4
gFs: resb 0x14
caseCount: resb 0x4
opcode: resb 0x8
error_message: resb 0x440
scrVmPub: resb 0x4320
g_script_error: resb 0x9a0
g_script_error_level: resb 0x20


;All cstrings:
SECTION .rdata
_cstring_s:		db "%s",0
_cstring_s_is_not_a_funct:		db "%s is not a function pointer",0
_cstring_s_is_not_an_enti:		db "%s is not an entity",0
_cstring__must_be_applied:		db "++ must be applied to an int (applied to %s)",0
_cstring__must_be_applied1:		db "-- must be applied to an int (applied to %s)",0
_cstring_s_is_not_an_arra:		db "%s is not an array index",0
_cstring_array_index_d_ou:		db "array index %d out of range",0
_cstring_cannot_switch_on:		db "cannot switch on %s",0
_cstring_type_s_is_not_a_:		db "type %s is not a float",0
_cstring_negative_wait_is:		db "negative wait is not allowed",0
_cstring_script_stack_ove:		db "script stack overflow (too many embedded function calls)",0
_cstring_s_is_not_an_obje:		db "%s is not an object",0
_cstring_switch_index_d_o:		db "switch index %d out of range",0
_cstring_script_runtime_e:		db "script runtime error: potential infinite loop in script - killing thread.",0ah,0
_cstring_script_runtime_w:		db "script runtime warning: potential infinite loop in script.",0ah,0
_cstring_wait_is_too_long:		db "wait is too long",0
_cstring_function_called_:		db "function called with too many parameters",0
_cstring_cannot_create_a_:		db "cannot create a new local variable in the debugger",0
_cstring_unknown_object:		db "unknown object",0
_cstring_potential_infini:		db "potential infinite loop in script",0
_cstring_first_parameter_:		db "first parameter of endon must evaluate to a string",0
_cstring_first_parameter_1:		db "first parameter of notify must evaluate to a string",0
_cstring_first_parameter_2:		db "first parameter of waittill must evaluate to a string",0
_cstring_internal_script_:		db "Internal script stack overflow",0
_cstring_type_s_is_not_an:		db "type %s is not an int",0
_cstring_parameter_d_does:		db "parameter %d does not exist",0
_cstring_type_s_is_not_an1:		db "type %s is not an anim",0
_cstring_anim_s_in_animtr:		db "anim ",27h,"%s",27h," in animtree ",27h,"%s",27h," does not belong to the entity",27h,"s animtree ",27h,"%s",27h,0
_cstring_type_s_is_not_an2:		db "type %s is not an object",0
_cstring_type_s_is_not_a_1:		db "type %s is not a vector",0
_cstring_type_s_is_not_a_2:		db "type %s is not a localized string",0
_cstring_type_s_is_not_an3:		db "type %s is not an entity",0



;All constant floats and doubles:
SECTION .rdata
_float_0_00000000:		dd 0x0	; 0
_float_20_00000000:		dd 0x41a00000	; 20
_float_0_50000000:		dd 0x3f000000	; 0.5

