Function at 0x5204a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5afd72
mov eax, dword fs:[0]
push eax
sub esp, 0xec
mov eax, dword [0x62700c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xf4], eax
mov dword [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx + 0x14], 0
mov word [ecx], 0
mov dword [ecx + 0xc], 0x64
mov dword [ecx + 0x10], 0x7d0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0xf
mov byte [ebp - 0x88], 0
mov byte [ebp - 4], 1
mov edi, dword [sym.imp.libxml2.dll_xmlGetProp]
push 0x5e7824
push esi
mov byte [ebp - 0xa1], 0
call edi
add esp, 8
mov dword [ebp - 0xe0], eax
test eax, eax
jne 0x520597
lea eax, [ebp - 0x70]
mov edx, 0x5e782c
push eax
mov ecx, esi
call fcn.00593b40
add esp, 4
test al, al
jne 0x5205f3
mov byte [ebp - 0xa1], al
jmp 0x523066
lea edx, [ebp - 0x88]
mov ecx, eax
call fcn.0058d130
test al, al
jne 0x5205da
mov edx, dword [ebp - 0xe0]
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0xac], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5205c0
sub ecx, dword [ebp - 0xac]
push ecx
push edx
lea ecx, [ebp - 0x88]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xe0]
mov eax, dword [eax]
call eax
add esp, 4
mov byte [ebp - 0xa1], 1
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
push 0x5e7810
push esi
mov byte [ebp - 4], 2
call edi
mov edi, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 8
mov dword [ebp - 0xac], eax
test eax, eax
jne 0x52065f
push 0x5e7818
push esi
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xac], eax
test eax, eax
je 0x520695
push eax
call edi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xac]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ecx]
call ecx
jmp 0x520677
push eax
call edi
push dword [ebp - 0xac]
mov dword [ebp - 0xa8], eax
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
mov eax, dword [eax]
call eax
mov ecx, dword [ebp - 0xc8]
mov eax, 1
add esp, 8
cmp dword [ebp - 0xa8], eax
cmovg eax, dword [ebp - 0xa8]
mov dword [ecx + 0x10], eax
push 0x5e7800
push esi
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xac], eax
test eax, eax
je 0x5206ed
push eax
call edi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xac]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xa8]
add esp, 8
test eax, eax
js 0x5206d9
cmp eax, 0x64
jle 0x5206e4
mov eax, 0x64
mov dword [ebp - 0xa8], eax
mov ecx, dword [ebp - 0xc8]
mov dword [ecx + 0xc], eax
push 0x5e7808
push esi
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xac], eax
test eax, eax
je 0x520749
push eax
call edi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xac]
mov dword [ebp - 0xe0], eax
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xe0]
add esp, 8
test eax, eax
jns 0x520730
xor eax, eax
jmp 0x52073a
mov ecx, 0x16
cmp eax, ecx
cmovg eax, ecx
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xa8], eax
mov dword [ecx + 0x14], eax
push 0x5e79b4
push esi
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xac], eax
test eax, eax
je 0x52078f
push eax
call edi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
mov esi, eax
push dword [ebp - 0xac]
mov dword [ebp - 0xa8], esi
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xc8]
add esp, 8
mov dword [eax + 4], esi
mov esi, dword [ebp - 0xb4]
push 0x5e79b8
push esi
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xac], eax
test eax, eax
je 0x5207d1
push eax
call edi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
mov esi, eax
push dword [ebp - 0xac]
mov dword [ebp - 0xa8], esi
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xc8]
add esp, 8
mov dword [eax + 8], esi
jmp 0x5207d7
mov eax, dword [ebp - 0xc8]
mov esi, dword [eax + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0xac], eax
cdq
mov ecx, eax
mov eax, esi
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0x520807
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xac]
mov dword [ecx + 4], esi
mov dword [ecx + 8], eax
mov eax, dword [0x63136c]
mov dword [ebp - 0xe0], eax
mov eax, dword [eax + 0x74]
mov esi, dword [eax]
cmp esi, eax
je 0x5208a3
nop
cmp dword [ebp - 0x5c], 0x10
lea ecx, [ebp - 0x70]
mov eax, dword [esi + 0x14]
cmovae ecx, dword [ebp - 0x70]
add eax, 0x70
cmp dword [eax + 0x14], 0x10
jb 0x520839
mov eax, dword [eax]
push ecx
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x520897
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x520874
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x520870
nop word [eax + eax]
cmp esi, dword [eax + 8]
jne 0x520870
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x520860
mov esi, eax
jmp 0x52088a
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x52088a
nop
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x520880
mov eax, dword [ebp - 0xe0]
cmp esi, dword [eax + 0x74]
jne 0x520820
jmp 0x5208a3
mov eax, dword [esi + 0x14]
test eax, eax
je 0x5208a3
add eax, 0x30
jne 0x5208bb
mov ecx, dword [ebp - 0xe0]
lea eax, [ebp - 0x70]
push eax
call fcn.0057cef0
test eax, eax
je 0x5208c9
add eax, 0x78
je 0x5208c9
mov ecx, dword [ebp - 0xc8]
mov dword [ecx + 0x18], eax
jmp 0x522fe6
cmp byte [ebp - 0xa1], 0
mov esi, dword [ebp - 0xc8]
mov byte [ebp - 0xe0], 0
mov byte [ebp - 0xf8], 0
mov dword [esi + 0x18], 0
je 0x520c2d
mov edi, dword [ebp - 0xb4]
lea eax, [ebp - 0x58]
push eax
mov edx, 0x5e79a0
mov ecx, edi
call fcn.00593b40
add esp, 4
test al, al
je 0x52092a
sub esp, 0x18
lea eax, [ebp - 0x58]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
mov byte [ebp - 0xf8], al
lea eax, [ebp - 0x58]
mov edx, str.target
push eax
mov ecx, edi
call fcn.00593b40
add esp, 4
test al, al
je 0x52095d
sub esp, 0x18
lea eax, [ebp - 0x58]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
mov byte [ebp - 0xe0], al
push 0x34
call fcn.0045afb5
add esp, 4
mov dword [ebp - 0xbc], eax
push dword [ebp - 0xf8]
mov byte [ebp - 4], 3
mov ecx, eax
push dword [ebp - 0xe0]
push 0
call fcn.0057ca50
mov byte [ebp - 4], 2
lea edx, [ebp - 0xa0]
mov ecx, dword [0x63136c]
mov edi, eax
push 1
push edx
mov dword [ebp - 0xb4], edi
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
push 9
push 0x5e798c
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.00406140
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
sub esp, 0x18
mov byte [ebp - 4], 5
mov esi, esp
lea eax, [ebp - 0x88]
mov dword [ebp - 0xbc], esi
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x74], 0x10
push dword [ebp - 0x78]
cmovae eax, dword [ebp - 0x88]
push eax
call fcn.00406140
mov dword [esi], 0
lea ecx, [ebp - 0x40]
mov dword [esi + 0x10], 0
mov edx, 2
mov dword [esi + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [esi], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esi + 0x10], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
call fcn.005934e0
add esp, 0x18
push eax
mov ecx, edi
mov byte [ebp - 4], 6
call fcn.0045f220
test al, al
lea ecx, [ebp - 0x40]
sete byte [ebp - 0xa1]
call fcn.00405b30
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x10
jb 0x520ab9
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x520aaf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x520aaf
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0045b34b
add esp, 8
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 2
call fcn.00405b30
cmp byte [ebp - 0xa1], 0
je 0x520afb
test edi, edi
je 0x520aef
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax]
mov byte [ebp - 0xa1], 0
jmp 0x522fed
mov esi, dword [0x62708c]
inc esi
mov dword [0x62708c], esi
cmp esi, 0x14
jle 0x520b1d
lea eax, [esi - 1]
add edi, 0x30
mov dword [0x62708c], eax
jmp 0x520bb5
test esi, esi
jns 0x520b3f
push 0x107
push str.C:UsersGabrielDocumentsGit3777_srcluascript.h
push str.m_scriptEnvIndex___0__m_scriptEnvIndex___21
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov esi, dword [0x62708c]
add esp, 0xc
mov edi, dword [0x631324]
imul eax, esi, 0x4c
mov dword [ebp - 0xac], edi
lea eax, [eax + 0x6313c0]
mov dword [ebp - 0xf4], eax
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.00443000
mov eax, dword [ebp - 0x2c]
mov ecx, dword [0x6319fc]
cmp byte [eax + 0xd], 0
jne 0x520b7e
cmp edi, dword [eax + 0x10]
jae 0x520b80
mov eax, ecx
cmp eax, ecx
je 0x520b89
mov eax, dword [eax + 0x14]
jmp 0x520b8b
xor eax, eax
mov ecx, dword [ebp - 0xb4]
mov dword [ecx + 0x30], eax
lea edi, [ecx + 0x30]
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0xc], 0
test esi, esi
js 0x520bbb
mov ecx, eax
call fcn.00511500
dec dword [0x62708c]
mov ecx, dword [ebp - 0xb4]
mov eax, dword [edi]
test eax, eax
jne 0x520bd3
mov eax, dword [ecx]
push 1
call dword [eax]
mov byte [ebp - 0xa1], 0
jmp 0x522fed
mov ecx, dword [ebp - 0xc8]
movd xmm0, dword [ecx + 4]
movd xmm1, dword [ecx + 8]
cvtdq2pd xmm0, xmm0
mov dword [eax + 0x44], 3
mov dword [eax + 0x88], 0
mov dword [eax + 0x8c], 0
cvtdq2pd xmm1, xmm1
movsd qword [eax + 0x48], xmm0
xorps xmm0, xmm0
movsd qword [eax + 0x50], xmm0
movsd qword [eax + 0x58], xmm1
movups xmmword [eax + 0x60], xmm0
movups xmmword [eax + 0x70], xmm0
movsd qword [eax + 0x80], xmm0
jmp 0x522fce
push 0x98
call fcn.0045afb5
add esp, 4
mov dword [ebp - 0xbc], eax
mov ecx, eax
mov byte [ebp - 4], 7
call fcn.0046aec0
mov byte [ebp - 4], 2
mov byte [esi], 1
mov esi, dword [ebp - 0xb4]
push str.length
push esi
mov dword [ebp - 0xb0], eax
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xac], eax
test eax, eax
je 0x520d2e
push eax
call edi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xac]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xa8], eax
mov ecx, dword [ecx]
call ecx
add esp, 8
cmp dword [ebp - 0xb8], 0
jle 0x520d2e
lea eax, [ebp - 0xa8]
mov dword [ebp - 0xdc], 3
push eax
mov edx, str.spread
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x520ce1
mov eax, dword [ebp - 0xa8]
xor ecx, ecx
test eax, eax
cmovg ecx, eax
mov dword [ebp - 0xdc], ecx
push 0x10
call fcn.0045afb5
add esp, 4
mov dword [ebp - 0xbc], eax
mov ecx, eax
mov byte [ebp - 4], 8
call fcn.00442270
push dword [ebp - 0xdc]
mov esi, eax
mov byte [ebp - 4], 2
push dword [ebp - 0xb8]
mov ecx, esi
call fcn.00467080
mov ecx, dword [ebp - 0xb0]
push esi
call fcn.004422c0
mov esi, dword [ebp - 0xb4]
mov byte [ebp - 0xf8], 1
push 0x5e7984
push esi
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xac], eax
test eax, eax
je 0x520dec
push eax
call edi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xac]
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xa8], eax
mov ecx, dword [ecx]
call ecx
lea eax, [ebp - 0xa8]
mov edx, 0x5e796c
push eax
mov ecx, esi
call fcn.00592d40
add esp, 0xc
test al, al
je 0x520d92
cmp dword [ebp - 0xa8], 0
setne byte [ebp - 0xe0]
push 0x10
call fcn.0045afb5
add esp, 4
mov dword [ebp - 0xbc], eax
mov ecx, eax
mov byte [ebp - 4], 9
call fcn.00442270
push dword [ebp - 0xdc]
mov ecx, eax
mov dword [ebp - 0xac], eax
mov byte [ebp - 4], 2
call fcn.00466e30
mov eax, dword [ebp - 0xb0]
mov ecx, dword [eax + 0x90]
test ecx, ecx
je 0x520de0
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xac]
mov dword [eax + 0x90], ecx
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x28]
call fcn.00593ff0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], 0x10
mov edx, dword [ebp - 0x18]
cmovae ecx, dword [ebp - 0x28]
setae byte [ebp - 0xa1]
push 5
push 0x5e7974
call fcn.00407d80
add esp, 8
test al, al
jne 0x522893
cmp byte [ebp - 0xa1], al
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
cmovne ecx, dword [ebp - 0x28]
push 8
push 0x5e7958
call fcn.00407d80
add esp, 8
test al, al
jne 0x522893
cmp byte [ebp - 0xa1], al
lea ecx, [ebp - 0x28]
mov edi, dword [ebp - 0x28]
mov edx, dword [ebp - 0x18]
cmovne ecx, edi
push 8
push 0x5e7a00
call fcn.00407d80
add esp, 8
test al, al
je 0x520e82
mov edi, dword [ebp - 0xb0]
mov byte [edi + 8], 1
jmp 0x522bc5
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 5
cmovne ecx, edi
push 0x5e79e8
call fcn.00407d80
add esp, 8
test al, al
je 0x520ebd
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov dword [esi + 0x14], 0x100
jmp 0x522bd8
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 4
cmovne ecx, edi
push 0x5e79f0
call fcn.00407d80
add esp, 8
test al, al
je 0x520ef8
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov dword [esi + 0x14], 8
jmp 0x522bd8
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 6
cmovne ecx, edi
push 0x5e79d8
call fcn.00407d80
add esp, 8
test al, al
je 0x520f33
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov dword [esi + 0x14], 2
jmp 0x522bd8
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 6
cmovne ecx, edi
push 0x5e79e0
call fcn.00407d80
add esp, 8
test al, al
jne 0x52287b
cmp byte [ebp - 0xa1], al
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 5
cmovne ecx, edi
push 0x5e79cc
call fcn.00407d80
add esp, 8
test al, al
jne 0x52287b
cmp byte [ebp - 0xa1], al
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 3
cmovne ecx, edi
push 0x5e79d4
call fcn.00407d80
add esp, 8
test al, al
je 0x520fba
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov dword [esi + 0x14], 0x200
jmp 0x522bd8
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 4
cmovne ecx, edi
push 0x5e79bc
call fcn.00407d80
add esp, 8
test al, al
je 0x520ff5
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov dword [esi + 0x14], 0x400
jmp 0x522bd8
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 5
cmovne ecx, edi
push 0x5e79c4
call fcn.00407d80
add esp, 8
test al, al
je 0x521030
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov dword [esi + 0x14], 0x800
jmp 0x522bd8
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 9
cmovne ecx, edi
push 0x5e7ab8
call fcn.00407d80
add esp, 8
test al, al
je 0x52106b
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov dword [esi + 0x14], 0x20
jmp 0x522bd8
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 9
cmovne ecx, edi
push 0x5e7ac4
call fcn.00407d80
add esp, 8
test al, al
je 0x5210a6
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov dword [esi + 0x14], 0x40
jmp 0x522bd8
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 7
cmovne ecx, edi
push 0x5e7aa8
call fcn.00407d80
add esp, 8
test al, al
je 0x52111a
lea eax, [ebp - 0xa8]
mov edx, 0x5e7ab0
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x521103
mov edi, dword [ebp - 0xb0]
xor eax, eax
cmp dword [ebp - 0xa8], eax
setne al
mov dword [edi + 0x14], 0x80
mov byte [edi + 0xe], al
jmp 0x522bcc
mov edi, dword [ebp - 0xb0]
xor eax, eax
mov dword [edi + 0x14], 0x80
mov byte [edi + 0xe], al
jmp 0x522bcc
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 9
cmovne ecx, edi
push 0x5e7a94
call fcn.00407d80
add esp, 8
test al, al
je 0x521151
mov ecx, dword [ebp - 0xb0]
push 0x10
push 1
call fcn.00469f60
jmp 0x522bcc
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 5
cmovne ecx, edi
push 0x5e7aa0
call fcn.00407d80
add esp, 8
test al, al
je 0x5216c3
lea eax, [ebp - 0xa8]
mov dword [ebp - 0xdc], 0
push eax
mov edx, 0x5e7a80
mov ecx, esi
mov edi, 0x2710
call fcn.00592d40
test al, al
mov edx, 0x5e7a8c
lea eax, [ebp - 0xa8]
mov ecx, esi
cmovne edi, dword [ebp - 0xa8]
mov dword [ebp - 0xbc], edi
mov edi, 2
push eax
call fcn.00592d40
test al, al
mov edx, str.speedchange
lea eax, [ebp - 0xa8]
mov ecx, esi
cmovne edi, dword [ebp - 0xa8]
push eax
mov dword [ebp - 0xb8], edi
call fcn.00592d40
add esp, 0xc
test al, al
je 0x521202
mov ecx, 0xfffffc18
cmp dword [ebp - 0xa8], ecx
cmovg ecx, dword [ebp - 0xa8]
mov dword [ebp - 0xdc], ecx
xor edi, edi
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], edi
mov byte [ebp - 4], 0xb
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xa8], eax
test eax, eax
je 0x5215cf
mov esi, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
nop dword [eax]
push 0x5e7a78
push dword [eax + 8]
call dword [sym.imp.libxml2.dll_xmlStrcmp]
add esp, 8
test eax, eax
jne 0x5215b8
push 0x5e7a5c
push dword [ebp - 0xa8]
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xac], eax
test eax, eax
je 0x521441
push eax
call esi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
mov esi, eax
push dword [ebp - 0xac]
mov ecx, dword [ecx]
call ecx
xor eax, eax
mov dword [ebp - 0xe7], 0
push 0x5e7a64
push dword [ebp - 0xa8]
mov word [ebp - 0xea], ax
mov byte [ebp - 0xe8], al
mov word [ebp - 0xec], si
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 0x10
mov dword [ebp - 0xac], eax
test eax, eax
je 0x5212ec
push eax
call esi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xac]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xc4]
add esp, 8
mov byte [ebp - 0xe8], al
push 0x5e7a4c
push dword [ebp - 0xa8]
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x521332
push eax
call esi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xc4]
mov dword [ebp - 0xac], eax
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xac]
add esp, 8
mov byte [ebp - 0xe7], al
push 0x5e7a54
push dword [ebp - 0xa8]
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x521378
push eax
call esi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xc4]
mov dword [ebp - 0xac], eax
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xac]
add esp, 8
mov byte [ebp - 0xe6], al
push 0x5e7a3c
push dword [ebp - 0xa8]
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x5213be
push eax
call esi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xc4]
mov dword [ebp - 0xac], eax
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xac]
add esp, 8
mov byte [ebp - 0xe5], al
push 0x5e7a44
push dword [ebp - 0xa8]
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x521404
push eax
call esi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xc4]
mov dword [ebp - 0xac], eax
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xac]
add esp, 8
mov byte [ebp - 0xe4], al
cmp edi, dword [ebp - 0x2c]
je 0x521428
movq xmm0, qword [ebp - 0xec]
mov ax, word [ebp - 0xe4]
movq qword [edi], xmm0
mov word [edi + 8], ax
add edi, 0xa
mov dword [ebp - 0x30], edi
jmp 0x52143b
lea eax, [ebp - 0xec]
push eax
push edi
lea ecx, [ebp - 0x34]
call fcn.0040f4b0
mov edi, dword [ebp - 0x30]
mov esi, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
push 0x5e7b40
push dword [ebp - 0xa8]
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xc4], eax
test eax, eax
jne 0x52149c
push 0x5e7b48
push dword [ebp - 0xa8]
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x521514
push eax
call esi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xc4]
mov dword [ebp - 0xac], eax
mov ecx, dword [ecx]
call ecx
jmp 0x5214b4
push eax
call esi
push dword [ebp - 0xc4]
mov dword [ebp - 0xac], eax
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
mov eax, dword [eax]
call eax
xor eax, eax
mov dword [ebp - 0xd3], 0
add esp, 8
mov word [ebp - 0xd8], ax
mov byte [ebp - 0xd4], al
mov eax, dword [ebp - 0xac]
mov word [ebp - 0xd6], ax
cmp edi, dword [ebp - 0x2c]
je 0x521501
movq xmm0, qword [ebp - 0xd8]
mov ax, word [ebp - 0xd0]
movq qword [edi], xmm0
mov word [edi + 8], ax
add edi, 0xa
mov dword [ebp - 0x30], edi
jmp 0x521514
lea eax, [ebp - 0xd8]
push eax
push edi
lea ecx, [ebp - 0x34]
call fcn.0040f4b0
mov edi, dword [ebp - 0x30]
push 0x5e7b30
push dword [ebp - 0xa8]
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xac], eax
test eax, eax
je 0x5215b8
lea edx, [ebp - 0x58]
mov ecx, eax
call fcn.0058d130
test al, al
jne 0x52156c
mov edx, dword [ebp - 0xac]
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0xc4], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x521555
sub ecx, dword [ebp - 0xc4]
push ecx
push edx
lea ecx, [ebp - 0x58]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xac]
mov eax, dword [eax]
call eax
add esp, 4
lea eax, [ebp - 0x58]
push eax
call fcn.00523a60
test eax, eax
je 0x5215b8
add eax, 0x14
cmp edi, dword [ebp - 0x2c]
je 0x5215ab
movq xmm0, qword [eax]
movq qword [edi], xmm0
mov ax, word [eax + 8]
mov word [edi + 8], ax
add edi, 0xa
mov dword [ebp - 0x30], edi
jmp 0x5215b8
push eax
push edi
lea ecx, [ebp - 0x34]
call fcn.0040f4b0
mov edi, dword [ebp - 0x30]
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x521230
cmp dword [ebp - 0xdc], 0
mov edx, 0x20
jle 0x5215f7
cmp dword [ebp - 0xb8], 2
mov edx, 0x10
jne 0x52160e
mov dword [ebp - 0xb8], 0
jmp 0x52160e
mov eax, dword [ebp - 0xb8]
mov ecx, 1
cmp eax, 2
cmove eax, ecx
mov dword [ebp - 0xb8], eax
push 0
push 0x62e974
push 0x62ea60
push 0
push 0
push 0
push ecx
push dword [ebp - 0xbc]
xor ecx, ecx
call fcn.0046eab0
add esp, 0x10
push eax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
test esi, esi
je 0x5216b2
movd xmm0, dword [ebp - 0xdc]
cvtdq2pd xmm0, xmm0
mov dword [esi + 0x40], 0
mov dword [esi + 0x48], 0
divsd xmm0, qword [0x601400]
cvtpd2ps xmm1, xmm0
movss dword [esi + 0x3c], xmm1
movss dword [esi + 0x44], xmm1
cmp dword [ebp - 0x34], edi
je 0x52168a
sub esp, 0xc
lea eax, [ebp - 0x34]
mov ecx, esp
push eax
call fcn.0040f080
mov ecx, esi
call fcn.00445400
mov edi, dword [ebp - 0xb0]
lea eax, [ebp - 0xbc]
push eax
mov dword [ebp - 0xbc], esi
lea ecx, [edi + 0x3c]
call fcn.0040e6d0
cmp dword [ebp - 0xb8], 0
setne al
mov byte [edi + 0xe], al
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xa
call fcn.0040f1e0
jmp 0x522bcc
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 6
cmovne ecx, edi
push 0x5e7b38
call fcn.00407d80
add esp, 8
test al, al
je 0x521d3f
xor edi, edi
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], edi
mov byte [ebp - 4], 0xc
mov esi, dword [esi + 0xc]
mov dword [ebp - 0xac], esi
test esi, esi
je 0x521a4e
nop
push 0x5e7b20
push dword [esi + 8]
call dword [sym.imp.libxml2.dll_xmlStrcmp]
add esp, 8
test eax, eax
jne 0x521a3d
push 0x5e7b28
push esi
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x52191b
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
mov esi, eax
push dword [ebp - 0xbc]
mov dword [ebp - 0xa8], esi
mov ecx, dword [ecx]
call ecx
xor eax, eax
mov word [ebp - 0xec], si
mov esi, dword [ebp - 0xac]
push 0x5e7b10
push esi
mov dword [ebp - 0xe7], 0
mov word [ebp - 0xea], ax
mov byte [ebp - 0xe8], al
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 0x10
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x5217d0
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xbc]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xa8]
add esp, 8
mov byte [ebp - 0xe8], al
push 0x5e7b18
push esi
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x521815
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xbc]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xa8]
add esp, 8
mov byte [ebp - 0xe7], al
push 0x5e7b00
push esi
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x52185a
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xbc]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xa8]
add esp, 8
mov byte [ebp - 0xe6], al
push 0x5e7b08
push esi
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x52189f
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xbc]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xa8]
add esp, 8
mov byte [ebp - 0xe5], al
push 0x5e7af0
push esi
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x5218e4
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xbc]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xa8]
add esp, 8
mov byte [ebp - 0xe4], al
cmp edi, dword [ebp - 0x2c]
je 0x521908
movq xmm0, qword [ebp - 0xec]
mov ax, word [ebp - 0xe4]
movq qword [edi], xmm0
mov word [edi + 8], ax
add edi, 0xa
mov dword [ebp - 0x30], edi
jmp 0x52191b
lea eax, [ebp - 0xec]
push eax
push edi
lea ecx, [ebp - 0x34]
call fcn.0040f4b0
mov edi, dword [ebp - 0x30]
push 0x5e7af8
push esi
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xbc], eax
test eax, eax
jne 0x521970
push 0x5e7ae0
push esi
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x5219ec
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xbc]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ecx]
call ecx
jmp 0x52198c
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
push dword [ebp - 0xbc]
mov dword [ebp - 0xa8], eax
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
mov eax, dword [eax]
call eax
xor eax, eax
mov dword [ebp - 0xd3], 0
add esp, 8
mov word [ebp - 0xd8], ax
mov byte [ebp - 0xd4], al
mov eax, dword [ebp - 0xa8]
mov word [ebp - 0xd6], ax
cmp edi, dword [ebp - 0x2c]
je 0x5219d9
movq xmm0, qword [ebp - 0xd8]
mov ax, word [ebp - 0xd0]
movq qword [edi], xmm0
mov word [edi + 8], ax
add edi, 0xa
mov dword [ebp - 0x30], edi
jmp 0x5219ec
lea eax, [ebp - 0xd8]
push eax
push edi
lea ecx, [ebp - 0x34]
call fcn.0040f4b0
mov edi, dword [ebp - 0x30]
lea eax, [ebp - 0x58]
mov edx, 0x5e7ae8
push eax
mov ecx, esi
call fcn.00593b40
add esp, 4
test al, al
je 0x521a3d
lea eax, [ebp - 0x58]
push eax
call fcn.00523a60
test eax, eax
je 0x521a3d
add eax, 0x14
cmp edi, dword [ebp - 0x2c]
je 0x521a30
movq xmm0, qword [eax]
movq qword [edi], xmm0
mov ax, word [eax + 8]
mov word [edi + 8], ax
add edi, 0xa
mov dword [ebp - 0x30], edi
jmp 0x521a3d
push eax
push edi
lea ecx, [ebp - 0x34]
call fcn.0040f4b0
mov edi, dword [ebp - 0x30]
mov esi, dword [esi + 0x18]
mov dword [ebp - 0xac], esi
test esi, esi
jne 0x521710
mov esi, dword [ebp - 0xb4]
cmp dword [ebp - 0x34], edi
jne 0x521c69
lea eax, [ebp - 0xa8]
mov edx, 0x5e7ad0
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x521ba2
xor eax, eax
mov byte [ebp - 0xc9], 0
mov word [ebp - 0xd6], ax
mov edx, 0x5e7ad8
mov byte [ebp - 0xef], al
mov ecx, esi
mov byte [ebp - 0xee], al
mov byte [ebp - 0xed], al
mov byte [ebp - 0xa1], al
mov ax, word [ebp - 0xa8]
mov word [ebp - 0xd8], ax
lea eax, [ebp - 0xa8]
push eax
call fcn.00592d40
movzx ecx, byte [ebp - 0xa8]
test al, al
movzx edx, byte [ebp - 0xa1]
lea eax, [ebp - 0xa8]
cmovne edx, ecx
mov ecx, esi
mov byte [ebp - 0xd4], dl
mov edx, 0x5e7bd4
push eax
call fcn.00592d40
movzx ecx, byte [ebp - 0xa8]
test al, al
movzx edx, byte [ebp - 0xed]
lea eax, [ebp - 0xa8]
cmovne edx, ecx
mov ecx, esi
mov byte [ebp - 0xd3], dl
mov edx, 0x5e7bdc
push eax
call fcn.00592d40
movzx ecx, byte [ebp - 0xa8]
test al, al
movzx edx, byte [ebp - 0xee]
lea eax, [ebp - 0xa8]
cmovne edx, ecx
mov ecx, esi
mov byte [ebp - 0xd2], dl
mov edx, 0x5e7bc4
push eax
call fcn.00592d40
movzx ecx, byte [ebp - 0xa8]
test al, al
movzx edx, byte [ebp - 0xef]
lea eax, [ebp - 0xa8]
cmovne edx, ecx
mov ecx, esi
mov byte [ebp - 0xd1], dl
mov edx, 0x5e7bcc
push eax
call fcn.00592d40
movzx ecx, byte [ebp - 0xa8]
add esp, 0x14
movzx edx, byte [ebp - 0xc9]
test al, al
lea eax, [ebp - 0xd8]
cmovne edx, ecx
lea ecx, [ebp - 0x34]
push eax
mov byte [ebp - 0xd0], dl
call fcn.0040f030
mov edi, dword [ebp - 0x30]
lea eax, [ebp - 0xa8]
mov edx, 0x5e7bb4
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x521bd6
lea eax, [ebp - 0xa8]
mov edx, 0x5e7bbc
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x521c0f
xor eax, eax
mov dword [ebp - 0xd3], 0
mov word [ebp - 0xd8], ax
lea ecx, [ebp - 0x34]
mov byte [ebp - 0xd4], al
mov ax, word [ebp - 0xa8]
mov word [ebp - 0xd6], ax
lea eax, [ebp - 0xd8]
push eax
call fcn.0040f030
mov edi, dword [ebp - 0x30]
lea eax, [ebp - 0x58]
mov edx, 0x5e7ba0
push eax
mov ecx, esi
call fcn.00593b40
add esp, 4
test al, al
je 0x521c60
lea eax, [ebp - 0x58]
push eax
call fcn.00523a60
test eax, eax
je 0x521c60
add eax, 0x14
cmp edi, dword [ebp - 0x2c]
je 0x521c53
movq xmm0, qword [eax]
movq qword [edi], xmm0
mov ax, word [eax + 8]
mov word [edi + 8], ax
add edi, 0xa
mov dword [ebp - 0x30], edi
jmp 0x521c60
push eax
push edi
lea ecx, [ebp - 0x34]
call fcn.0040f4b0
mov edi, dword [ebp - 0x30]
cmp dword [ebp - 0x34], edi
je 0x5216b2
lea eax, [ebp - 0xa8]
mov edx, 0x5e7ba8
push eax
mov ecx, esi
mov edi, 0x2710
call fcn.00592d40
test al, al
mov dword [ebp - 0xac], 0
lea eax, [ebp - 0xa8]
mov edx, str.self
cmovne edi, dword [ebp - 0xa8]
mov ecx, esi
push eax
call fcn.00592d40
add esp, 8
test al, al
je 0x521cbf
xor eax, eax
cmp dword [ebp - 0xa8], eax
setne al
mov dword [ebp - 0xac], eax
push 0
push 0x62e9dc
push 0x62ea60
push 0
push 0
push 0
push ecx
push edi
mov edx, 0x40
xor ecx, ecx
call fcn.0046eab0
add esp, 0x10
push eax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
test esi, esi
je 0x5216b2
sub esp, 0xc
lea eax, [ebp - 0x34]
mov ecx, esp
push eax
call fcn.0040f080
mov ecx, esi
call fcn.00445400
mov edi, dword [ebp - 0xb0]
lea eax, [ebp - 0xbc]
push eax
mov dword [ebp - 0xbc], esi
lea ecx, [edi + 0x3c]
call fcn.0040e6d0
mov eax, dword [ebp - 0xac]
lea ecx, [ebp - 0x34]
mov byte [edi + 0xe], al
mov byte [ebp - 4], 0xa
call fcn.0040f1e0
jmp 0x522bcc
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 9
cmovne ecx, edi
push 0x5e7b94
call fcn.00407d80
add esp, 8
test al, al
je 0x521e04
lea eax, [ebp - 0xa8]
mov edx, 0x5e7b78
push eax
mov ecx, esi
mov edi, 0x2710
call fcn.00592d40
test al, al
mov dword [ebp - 0xac], 0
lea eax, [ebp - 0xa8]
mov edx, 0x5e7b84
cmovne edi, dword [ebp - 0xa8]
mov ecx, esi
push eax
call fcn.00592d40
add esp, 8
test al, al
je 0x521dbc
xor eax, eax
cmp dword [ebp - 0xa8], eax
setne al
mov dword [ebp - 0xac], eax
push 0
push 0
push ecx
push edi
mov edx, 0x80
xor ecx, ecx
call fcn.0046eab0
mov edx, eax
add esp, 0x10
test edx, edx
je 0x522bcc
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0xbc], edx
mov byte [eax + 0xe], cl
lea ecx, [ebp - 0xbc]
push ecx
lea ecx, [eax + 0x3c]
call fcn.0040e6d0
jmp 0x522bcc
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 5
cmovne ecx, edi
push 0x5e7b64
call fcn.00407d80
add esp, 8
test al, al
je 0x521e8e
mov edi, dword [ebp - 0xb4]
lea eax, [ebp - 0xa8]
push eax
mov edx, 0x5e7b6c
mov ecx, edi
mov esi, 0x2710
call fcn.00592d40
add esp, 4
mov edx, 0x800
test al, al
cmovne esi, dword [ebp - 0xa8]
push 0
push 0
push ecx
push esi
xor ecx, ecx
call fcn.0046eab0
add esp, 0x10
test eax, eax
je 0x522bd2
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ecx + 0x3c]
call fcn.0040e6d0
jmp 0x522bd2
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 6
cmovne ecx, edi
push 0x5e7b50
call fcn.00407d80
add esp, 8
test al, al
jne 0x522371
cmp byte [ebp - 0xa1], al
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 0xa
cmovne ecx, edi
push 0x5e7b58
call fcn.00407d80
add esp, 8
test al, al
jne 0x522371
cmp byte [ebp - 0xa1], al
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 9
cmovne ecx, edi
push 0x5e7e18
call fcn.00407d80
add esp, 8
test al, al
je 0x521f15
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov dword [esi + 0x18], 0x5d4
jmp 0x522bd8
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 0xb
cmovne ecx, edi
push 0x5e7e24
call fcn.00407d80
add esp, 8
test al, al
je 0x521f50
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov dword [esi + 0x18], 0x5d8
jmp 0x522bd8
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 0xb
cmovne ecx, edi
push 0x5e7dfc
call fcn.00407d80
add esp, 8
test al, al
je 0x521f8b
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov dword [esi + 0x18], 0x5d7
jmp 0x522bd8
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 0xd
cmovne ecx, edi
push 0x5e7e08
call fcn.00407d80
add esp, 8
test al, al
jne 0x522158
cmp byte [ebp - 0xa1], al
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 0xf
cmovne ecx, edi
push 0x5e7ddc
call fcn.00407d80
add esp, 8
test al, al
jne 0x522158
cmp byte [ebp - 0xa1], al
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 0xe
cmovne ecx, edi
push 0x5e7dec
call fcn.00407d80
add esp, 8
test al, al
jne 0x522158
cmp byte [ebp - 0xa1], al
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 0xf
cmovne ecx, edi
push 0x5e7dbc
call fcn.00407d80
add esp, 8
test al, al
jne 0x522158
cmp byte [ebp - 0xa1], al
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 0xe
cmovne ecx, edi
push 0x5e7dcc
call fcn.00407d80
add esp, 8
test al, al
jne 0x522158
cmp byte [ebp - 0xa1], al
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 0xf
cmovne ecx, edi
push 0x5e7d9c
call fcn.00407d80
add esp, 8
test al, al
jne 0x522158
cmp byte [ebp - 0xa1], al
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 0xe
cmovne ecx, edi
push 0x5e7dac
call fcn.00407d80
add esp, 8
test al, al
jne 0x522158
cmp byte [ebp - 0xa1], al
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 0xf
cmovne ecx, edi
push 0x5e7d78
call fcn.00407d80
add esp, 8
test al, al
jne 0x522158
push str.strength
lea ecx, [ebp - 0x28]
call fcn.00407150
test al, al
jne 0x522bcc
push 0x5e7ec4
lea ecx, [ebp - 0x28]
call fcn.00407150
test al, al
jne 0x522bcc
mov ecx, dword [ebp - 0xb0]
test ecx, ecx
je 0x5220f6
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, str._Error___Monsters::deserializeSpell_
call fcn.004064c0
mov edx, dword [ebp - 0xf4]
mov ecx, eax
call fcn.004066b0
mov edx, str.___Unknown_spell_name:
mov ecx, eax
call fcn.004064c0
cmp dword [ebp - 0x5c], 0x10
lea edx, [ebp - 0x70]
push 0x406700
push dword [ebp - 0x60]
cmovae edx, dword [ebp - 0x70]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
lea ecx, [ebp - 0x28]
call fcn.00405b30
mov byte [ebp - 0xa1], 0
jmp 0x522fed
cmp byte [ebp - 0xa1], 0
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push 0x11
cmovne ecx, edi
mov dword [ebp - 0xb8], 0
push str.physicalcondition
call fcn.00407d80
add esp, 8
test al, al
je 0x522199
mov dword [ebp - 0xb8], 8
mov edi, 0x1388
jmp 0x5222ba
push 0x5e7d58
lea ecx, [ebp - 0x28]
call fcn.00407150
test al, al
je 0x5221be
mov dword [ebp - 0xb8], 2
mov edi, 0x2710
jmp 0x5222ba
push 0x5e7d68
lea ecx, [ebp - 0x28]
call fcn.00407150
test al, al
je 0x5221e3
mov dword [ebp - 0xb8], 4
mov edi, 0x2710
jmp 0x5222ba
push str.earthcondition
lea ecx, [ebp - 0x28]
call fcn.00407150
test al, al
je 0x522208
mov dword [ebp - 0xb8], 1
mov edi, 0x2710
jmp 0x5222ba
push 0x5e7f2c
lea ecx, [ebp - 0x28]
call fcn.00407150
test al, al
je 0x52222d
mov dword [ebp - 0xb8], 0x40000
mov edi, 0x2710
jmp 0x5222ba
push 0x5e7efc
lea ecx, [ebp - 0x28]
call fcn.00407150
test al, al
je 0x52224f
mov dword [ebp - 0xb8], 0x100000
mov edi, 0x2710
jmp 0x5222ba
push str.dazzlecondition
lea ecx, [ebp - 0x28]
call fcn.00407150
test al, al
je 0x522271
mov dword [ebp - 0xb8], 0x80000
mov edi, 0x2710
jmp 0x5222ba
push 0x5e7edc
lea ecx, [ebp - 0x28]
call fcn.00407150
test al, al
je 0x522293
mov dword [ebp - 0xb8], 0x8000
mov edi, 0x1388
jmp 0x5222ba
push 0x5e7eec
lea ecx, [ebp - 0x28]
call fcn.00407150
test al, al
je 0x5222b5
mov dword [ebp - 0xb8], 1
mov edi, 0x1388
jmp 0x5222ba
mov edi, 0x7d0
lea eax, [ebp - 0xa8]
mov edx, str.tick
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x5222df
mov eax, dword [ebp - 0xa8]
test eax, eax
cmovg edi, eax
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ecx + 4]
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0xac], eax
mov eax, dword [ecx + 8]
mov ecx, esi
cdq
xor eax, edx
sub eax, edx
mov edx, str.start
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0xa8]
push eax
call fcn.00592d40
mov ecx, dword [ebp - 0xac]
add esp, 4
test al, al
je 0x522333
mov eax, dword [ebp - 0xa8]
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
cmovl eax, ecx
jmp 0x522335
xor eax, eax
push edi
push eax
push ecx
push dword [ebp - 0xbc]
push dword [ebp - 0xb8]
call fcn.005230c0
test eax, eax
je 0x522bcc
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ecx + 0x3c]
call fcn.0040e6d0
jmp 0x522bcc
lea eax, [ebp - 0xa8]
mov edx, 0x5e7c68
push eax
mov ecx, esi
mov edi, 0x2710
call fcn.00592d40
test al, al
mov edx, str.subid
lea eax, [ebp - 0xa8]
mov ecx, esi
cmovne edi, dword [ebp - 0xa8]
push eax
call fcn.00592d40
test al, al
mov edx, 0x5e7c58
mov eax, 0
mov ecx, esi
cmovne eax, dword [ebp - 0xa8]
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0xa8]
push eax
mov dword [ebp - 0xa8], 0
call fcn.00592d40
add esp, 0xc
test al, al
je 0x5223e7
mov esi, 0x13
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, 0x5e7c60
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x52240b
mov esi, 0x14
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, 0x5e7c4c
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x52242f
mov esi, 0x15
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, 0x5e7c54
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x522453
mov esi, 0x17
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, 0x5e7c38
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x522477
mov esi, 0x16
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, 0x5e7c40
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x522806
lea eax, [ebp - 0xa8]
mov edx, 0x5e7c24
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x522806
lea eax, [ebp - 0xa8]
mov edx, 0x5e7c2c
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x5227ff
lea eax, [ebp - 0xa8]
mov edx, 0x5e7c14
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x5227ff
lea eax, [ebp - 0xa8]
mov edx, 0x5e7c1c
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x5227f8
lea eax, [ebp - 0xa8]
mov edx, 0x5e7bfc
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x5227f8
lea eax, [ebp - 0xa8]
mov edx, 0x5e7c04
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x52254f
mov esi, 0x23
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, 0x5e7be4
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x522573
mov esi, 0x24
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, 0x5e7bf0
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x522597
mov esi, 0x25
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, 0x5e7d3c
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x5225bb
mov esi, 0x27
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, 0x5e7d48
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x5225df
mov esi, 0x26
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, 0x5e7d20
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x5227f1
lea eax, [ebp - 0xa8]
mov edx, 0x5e7d30
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x5227f1
lea eax, [ebp - 0xa8]
mov edx, 0x5e7cfc
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x5227ea
lea eax, [ebp - 0xa8]
mov edx, 0x5e7d10
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x5227ea
lea eax, [ebp - 0xa8]
mov edx, 0x5e7ce0
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x5227e3
lea eax, [ebp - 0xa8]
mov edx, 0x5e7cf0
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x5227e3
lea eax, [ebp - 0xa8]
mov edx, 0x5e7ccc
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x5226b7
mov esi, 0x1f
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, 0x5e7cd8
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x5226db
mov esi, 0x20
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, 0x5e7cb8
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x5226ff
mov esi, 0x21
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, 0x5e7cc0
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x5227dc
lea eax, [ebp - 0xa8]
mov edx, 0x5e7c98
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x5227dc
lea eax, [ebp - 0xa8]
mov edx, str.maxhealthPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x52275f
mov esi, 0x1f
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, str.maxmanaPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x522783
mov esi, 0x20
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, 0x5e7c8c
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x5227a4
mov esi, 0x21
jmp 0x52280b
lea eax, [ebp - 0xa8]
mov edx, str.magiclevelPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x5227dc
lea eax, [ebp - 0xa8]
mov edx, str.maglevelPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x522bcc
mov esi, 0x22
jmp 0x52280b
mov esi, 0x2a
jmp 0x52280b
mov esi, 0x29
jmp 0x52280b
mov esi, 0x28
jmp 0x52280b
mov esi, 0x1a
jmp 0x52280b
mov esi, 0x19
jmp 0x52280b
mov esi, 0x18
cmp dword [ebp - 0xbc], 0
mov edx, 0x20000
push 0
push 0x62e9b8
push 0x62ea60
push 0
setne al
push 0
movzx eax, al
push eax
push ecx
push edi
xor ecx, ecx
call fcn.0046eab0
add esp, 0x10
push eax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov edi, eax
add esp, 0x14
test edi, edi
je 0x522bcc
push dword [ebp - 0xa8]
mov edx, dword [edi]
mov ecx, edi
push esi
call dword [edx + 0x1c]
mov ecx, dword [ebp - 0xb0]
lea eax, [ebp - 0xbc]
push eax
mov dword [ebp - 0xbc], edi
lea ecx, [ecx + 0x3c]
call fcn.0040e6d0
jmp 0x522bcc
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov dword [esi + 0x14], 4
jmp 0x522bd8
push 0x5e7964
push esi
mov dword [ebp - 0xac], 0
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x522966
push eax
call edi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
push dword [ebp - 0xbc]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ecx]
call ecx
lea eax, [ebp - 0xac]
mov edx, 0x5e7944
push eax
mov ecx, esi
call fcn.00592d40
add esp, 0xc
test al, al
je 0x522966
movd xmm2, dword [ebp - 0xc4]
sub esp, 8
movd xmm0, dword [ebp - 0xac]
mov eax, dword [ebp - 0xc8]
cvtdq2pd xmm2, xmm2
mov dword [eax + 4], 0
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm2
mulsd xmm2, qword [0x601338]
mulsd xmm1, qword [0x601300]
mulsd xmm1, xmm0
addsd xmm1, xmm2
movsd qword [ebp - 0xc0], xmm1
fld qword [ebp - 0xc0]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
mov ecx, dword [ebp - 0xc8]
add esp, 8
fstp qword [ebp - 0xc0]
cvttsd2si eax, qword [ebp - 0xc0]
neg eax
mov dword [ecx + 8], eax
mov eax, 0x2710
mov dword [ebp - 0xdc], eax
xor eax, eax
push 0x5e794c
push esi
mov dword [ebp - 0xb8], eax
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xbc], eax
test eax, eax
jne 0x522af2
lea eax, [ebp - 0xa8]
mov edx, 0x5e7934
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x5229bf
mov dword [ebp - 0xb8], 2
jmp 0x522b17
lea eax, [ebp - 0xa8]
mov edx, 0x5e793c
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x5229e8
mov dword [ebp - 0xb8], 4
jmp 0x522b17
lea eax, [ebp - 0xa8]
mov edx, 0x5e7a2c
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x522a11
mov dword [ebp - 0xb8], 1
jmp 0x522b17
lea eax, [ebp - 0xa8]
mov edx, 0x5e7a34
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x522a3b
mov eax, 0x40000
mov dword [ebp - 0xb8], eax
jmp 0x522b17
lea eax, [ebp - 0xa8]
mov edx, str.dazzle
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x522a65
mov eax, 0x80000
mov dword [ebp - 0xb8], eax
jmp 0x522b17
lea eax, [ebp - 0xa8]
mov edx, 0x5e7a24
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x522a8f
mov eax, 0x100000
mov dword [ebp - 0xb8], eax
jmp 0x522b17
lea eax, [ebp - 0xa8]
mov edx, 0x5e7a0c
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x522ac1
mov eax, 0x8000
mov dword [ebp - 0xb8], eax
mov eax, 0x1388
mov dword [ebp - 0xdc], eax
jmp 0x522b17
lea eax, [ebp - 0xa8]
mov edx, 0x5e7a14
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x522b17
mov eax, 0x1388
mov dword [ebp - 0xb8], 1
mov dword [ebp - 0xdc], eax
jmp 0x522b17
push eax
call edi
push dword [ebp - 0xbc]
mov dword [ebp - 0xa8], eax
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
mov eax, dword [eax]
call eax
add esp, 8
mov dword [ebp - 0xb8], 8
mov eax, dword [ebp - 0xa8]
cdq
xor eax, edx
sub eax, edx
push 0x5e79f8
push esi
mov dword [ebp - 0xc4], eax
call dword [sym.imp.libxml2.dll_xmlGetProp]
add esp, 8
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x522b66
push eax
call edi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
mov esi, eax
push dword [ebp - 0xbc]
mov ecx, dword [ecx]
call ecx
mov ecx, dword [ebp - 0xdc]
add esp, 8
test esi, esi
cmovg ecx, esi
jmp 0x522b6c
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x522ba8
push ecx
mov ecx, dword [ebp - 0xc4]
push 0
push ecx
push ecx
push eax
call fcn.005230c0
mov edi, dword [ebp - 0xb0]
test eax, eax
je 0x522bae
mov dword [ebp - 0xbc], eax
lea ecx, [edi + 0x3c]
lea eax, [ebp - 0xbc]
push eax
call fcn.0040e6d0
jmp 0x522bae
mov edi, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xc8]
mov byte [esi + 1], 1
mov dword [esi + 0x14], 1
mov word [edi + 8], 0x101
mov dword [edi + 0x14], 1
mov edi, dword [ebp - 0xb4]
mov esi, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xc8]
push 0x34
movd xmm0, dword [eax + 4]
movd xmm1, dword [eax + 8]
cvtdq2pd xmm0, xmm0
mov dword [esi + 0x44], 3
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 0
cvtdq2pd xmm1, xmm1
movsd qword [esi + 0x48], xmm0
xorps xmm0, xmm0
movsd qword [esi + 0x50], xmm0
movsd qword [esi + 0x58], xmm1
movups xmmword [esi + 0x60], xmm0
movups xmmword [esi + 0x70], xmm0
movsd qword [esi + 0x80], xmm0
call fcn.0045afb5
add esp, 4
mov dword [ebp - 0xbc], eax
push dword [ebp - 0xf8]
mov byte [ebp - 4], 0xd
mov ecx, eax
push dword [ebp - 0xe0]
push esi
call fcn.0057ca50
mov dword [ebp - 0xb4], eax
mov byte [ebp - 4], 0xa
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x522fc6
push str.attribute
push dword [eax + 8]
call dword [sym.imp.libxml2.dll_xmlStrcmp]
add esp, 8
test eax, eax
jne 0x522faf
mov edi, dword [sym.imp.libxml2.dll_xmlGetProp]
push 0x5e7e74
push dword [ebp - 0xb8]
call edi
mov esi, eax
add esp, 8
test esi, esi
jne 0x522ca9
xor al, al
jmp 0x522ce2
lea edx, [ebp - 0x58]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x522cd3
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x522cc0
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x58]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
add esp, 4
mov al, 1
test al, al
je 0x522faf
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x40]
call fcn.00593ff0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x30]
setae byte [ebp - 0xc9]
cmovae ecx, eax
cmp edx, 0xb
jne 0x522e33
mov edx, str.shooteffect
mov esi, 7
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x522d34
add ecx, 4
add edx, 4
sub esi, 4
jae 0x522d23
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x522d5b
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x522d5b
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x522d5b
cmp esi, 0xffffffff
je 0x522d57
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x522d5b
xor eax, eax
jmp 0x522d60
sbb eax, eax
or eax, 1
test eax, eax
jne 0x522e2d
push 0x5e7e60
push dword [ebp - 0xb8]
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x522f77
lea edx, [ebp - 0x58]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x522da8
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x522d95
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x58]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
add esp, 4
lea ecx, [ebp - 0x58]
call fcn.0058ffb0
cmp eax, 0xffff
je 0x522dd2
mov ecx, dword [ebp - 0xb0]
mov dword [ecx + 0x30], eax
jmp 0x522f77
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, str._Warning___Monsters::deserializeSpell_
call fcn.004064c0
mov esi, dword [ebp - 0xf4]
mov edx, esi
cmp dword [esi + 0x14], 0x10
jb 0x522df2
mov edx, dword [esi]
push dword [esi + 0x10]
mov ecx, eax
call fcn.004073f0
mov edx, str.___Unknown_shootEffect:
add esp, 4
mov ecx, eax
call fcn.004064c0
cmp dword [ebp - 0x44], 0x10
lea edx, [ebp - 0x58]
push 0x406700
push dword [ebp - 0x48]
cmovae edx, dword [ebp - 0x58]
mov ecx, eax
call fcn.004073f0
add esp, 4
jmp 0x522f6f
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x30]
cmp byte [ebp - 0xc9], 0
lea ecx, [ebp - 0x40]
cmovne ecx, eax
cmp edx, 0xa
jne 0x522f36
mov edx, str.areaeffect
mov esi, 6
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x522e64
add ecx, 4
add edx, 4
sub esi, 4
jae 0x522e53
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x522e8b
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x522e8b
cmp esi, 0xfffffffe
je 0x522e87
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x522e8b
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x522e8b
xor eax, eax
jmp 0x522e90
sbb eax, eax
or eax, 1
test eax, eax
jne 0x522f36
push 0x5e80b4
push dword [ebp - 0xb8]
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x522f77
lea edx, [ebp - 0x58]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x522ed8
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x522ec5
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x58]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
add esp, 4
lea ecx, [ebp - 0x58]
call fcn.005900a0
cmp eax, 0xffff
je 0x522f02
mov ecx, dword [ebp - 0xb0]
mov dword [ecx + 0x28], eax
jmp 0x522f77
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e8080
call fcn.004064c0
mov esi, dword [ebp - 0xf4]
mov edx, esi
cmp dword [esi + 0x14], 0x10
jb 0x522f22
mov edx, dword [esi]
push dword [esi + 0x10]
mov ecx, eax
call fcn.004073f0
mov edx, str.___Unknown_areaEffect:
jmp 0x522e01
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, str._Warning___Monsters::deserializeSpells__Effect_type__
call fcn.004064c0
cmp dword [ebp - 0x44], 0x10
lea edx, [ebp - 0x58]
push dword [ebp - 0x48]
cmovae edx, dword [ebp - 0x58]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e801c
mov ecx, eax
push 0x406700
call fcn.004064c0
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0x10
jb 0x522faf
mov edx, dword [ebp - 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x522fa5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x520aa9
push ecx
push edx
call fcn.0045b34b
add esp, 8
mov eax, dword [ebp - 0xb8]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xb8], eax
test eax, eax
jne 0x522c70
lea ecx, [ebp - 0x28]
call fcn.00405b30
mov ecx, dword [ebp - 0xb4]
lea eax, [ecx + 0x28]
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [eax + 0x18], ecx
mov byte [ebp - 0xa1], 1
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x523021
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x523017
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52308c
push ecx
push edx
call fcn.0045b34b
add esp, 8
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
cmp ecx, 0x10
jb 0x523066
mov edx, dword [ebp - 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x52305c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52308c
push ecx
push edx
call fcn.0045b34b
add esp, 8
mov ecx, dword [ebp - 0x5c]
cmp ecx, 0x10
jb 0x52309c
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x523092
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x523092
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0045b34b
add esp, 8
mov al, byte [ebp - 0xa1]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0045ad9e
mov esp, ebp
pop ebp
ret 0xc