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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5afc90
mov eax, dword fs:[0]
push eax
sub esp, 0x100
mov eax, dword [0x62700c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0x104], edi
call fcn.0051cf20
test eax, eax
mov al, byte [ebp + 0x10]
je 0x51dafc
test al, al
jne 0x51dafc
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, str._Warning___Monsters::loadMonster__Duplicate_registered_monster_with_name:
call fcn.004064c0
cmp dword [edi + 0x14], 0x10
mov edx, edi
jb 0x51dadb
mov edx, dword [edi]
push 0x406700
push dword [edi + 0x10]
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_____]
mov al, 1
jmp 0x520470
mov byte [ebp - 0xf5], 1
test al, al
je 0x51db33
push edi
call fcn.0051cf20
test eax, eax
je 0x51db33
push eax
call fcn.0051d080
mov ebx, eax
mov dword [ebp - 0xe8], ebx
test ebx, ebx
je 0x51db33
mov ecx, ebx
mov byte [ebp - 0xf5], 0
call fcn.00523440
jmp 0x51db63
push 0x100
call fcn.0045afb5
add esp, 4
mov dword [ebp - 0x100], eax
mov ecx, eax
mov dword [ebp - 4], 0
call fcn.00445520
mov ebx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xe8], ebx
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x51db6d
mov eax, dword [esi]
push eax
call dword [sym.imp.libxml2.dll_xmlParseFile]
add esp, 4
mov dword [ebp - 0x100], eax
test eax, eax
jne 0x51dc2e
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, str._Warning___Monsters::loadMonster__Cannot_load_monster__
call fcn.004064c0
cmp dword [edi + 0x14], 0x10
mov edx, edi
jb 0x51db9f
mov edx, dword [edi]
push dword [edi + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, str.__file__
mov ecx, eax
call fcn.004064c0
cmp dword [esi + 0x14], 0x10
mov edx, esi
jb 0x51dbc2
mov edx, dword [esi]
push dword [esi + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e7fcc
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_____]
lea ecx, [ebp - 0x40]
call fcn.00593060
mov dword [ebp - 4], 1
mov edx, eax
cmp dword [eax + 0x14], 0x10
jb 0x51dc01
mov edx, dword [eax]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
push 0x406700
push dword [eax + 0x10]
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 - 0x40]
call fcn.00405b30
xor al, al
jmp 0x520470
push eax
mov byte [ebp - 0xe9], 1
call dword [sym.imp.libxml2.dll_xmlDocGetRootElement]
mov edi, eax
push 0x5e7f7c
push dword [edi + 8]
call dword [sym.imp.libxml2.dll_xmlStrcmp]
add esp, 0xc
test eax, eax
je 0x51dcd2
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, str._Error___Monsters::loadMonster__Malformed_monster__
call fcn.004064c0
mov ecx, dword [ebp - 0x104]
mov edx, ecx
cmp dword [ecx + 0x14], 0x10
jb 0x51dc73
mov edx, dword [ecx]
push dword [ecx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e7f3c
mov ecx, eax
call fcn.004064c0
cmp dword [esi + 0x14], 0x10
mov edx, esi
jb 0x51dc96
mov edx, dword [esi]
push dword [esi + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e7f84
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_____]
push dword [ebp - 0x100]
call dword [sym.imp.libxml2.dll_xmlFreeDoc]
add esp, 4
xor al, al
jmp 0x520470
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 2
push eax
mov edx, 0x5e8194
mov ecx, edi
call fcn.00593b40
add esp, 4
lea esi, [ebx + 0x90]
test al, al
je 0x51dd2b
lea eax, [ebp - 0x28]
cmp esi, eax
je 0x51dd32
cmp dword [ebp - 0x14], 0x10
mov ecx, esi
push dword [ebp - 0x18]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.00405890
jmp 0x51dd32
mov byte [ebp - 0xe9], 0
lea eax, [ebp - 0x28]
mov edx, 0x5e819c
push eax
mov ecx, edi
call fcn.00593b40
add esp, 4
test al, al
je 0x51dd69
lea ecx, [ebx + 0xa8]
lea eax, [ebp - 0x28]
cmp ecx, eax
je 0x51ddbe
cmp dword [ebp - 0x14], 0x10
push dword [ebp - 0x18]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.00405890
jmp 0x51ddbe
mov ecx, dword [esi + 0x10]
mov eax, bind
sub eax, ecx
cmp eax, 2
jb 0x52048e
cmp dword [esi + 0x14], 0x10
jb 0x51dd84
mov esi, dword [esi]
push ecx
push esi
push 2
push 0x5e8188
push ecx
push dword [ebp - 0x100]
lea ecx, [ebp - 0x40]
call fcn.004089e0
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebx + 0xa8]
call fcn.004086d0
lea ecx, [ebp - 0x40]
call fcn.00405b30
lea ecx, [ebx + 0xa8]
call fcn.00590750
lea eax, [ebp - 0x28]
mov edx, str.race
push eax
mov ecx, edi
call fcn.00593b40
mov esi, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
test al, al
je 0x51df80
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x40]
call fcn.00593ff0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
mov edx, dword [ebp - 0x30]
cmovae ecx, dword [ebp - 0x40]
push 5
push str.venom
call fcn.00407d80
add esp, 8
test al, al
jne 0x51df6d
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call esi
add esp, 4
cmp eax, 1
je 0x51df6d
mov edx, 0x5e8180
lea ecx, [ebp - 0x40]
call fcn.004066d0
test al, al
jne 0x51df64
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call esi
add esp, 4
cmp eax, 2
je 0x51df64
mov edx, str.undead
lea ecx, [ebp - 0x40]
call fcn.004066d0
test al, al
jne 0x51df5b
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call esi
add esp, 4
cmp eax, 3
je 0x51df5b
mov edx, 0x5e8170
lea ecx, [ebp - 0x40]
call fcn.004066d0
test al, al
jne 0x51df52
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call esi
add esp, 4
cmp eax, 4
je 0x51df52
mov edx, 0x5e815c
lea ecx, [ebp - 0x40]
call fcn.004066d0
test al, al
jne 0x51df49
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call esi
add esp, 4
cmp eax, 5
je 0x51df49
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e8114
call fcn.004064c0
mov edx, str.Unknown_race_type
mov ecx, eax
call fcn.004064c0
cmp dword [ebp - 0x14], 0x10
lea edx, [ebp - 0x28]
push dword [ebp - 0x18]
cmovae edx, dword [ebp - 0x28]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e8144
mov ecx, eax
push 0x406700
call fcn.004064c0
mov edx, dword [ebp - 0xf0]
mov ecx, eax
call fcn.004066b0
mov edx, 0x5e8164
mov ecx, eax
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_____]
jmp 0x51df74
mov dword [ebx + 0x20], 5
jmp 0x51df74
mov dword [ebx + 0x20], 4
jmp 0x51df74
mov dword [ebx + 0x20], 3
jmp 0x51df74
mov dword [ebx + 0x20], 2
jmp 0x51df74
mov dword [ebx + 0x20], 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 2
call fcn.00405b30
push 0x5e8138
push edi
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x51dfc9
push ebx
call esi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
mov esi, eax
push ebx
mov dword [ebp - 0xe0], esi
mov ecx, dword [ecx]
call ecx
mov ecx, dword [ebp - 0xe8]
mov eax, esi
mov esi, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 8
cdq
mov dword [ecx + 0x88], eax
mov dword [ecx + 0x8c], edx
push 0x5e8100
push edi
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x51e000
push ebx
call esi
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
mov esi, eax
push ebx
mov dword [ebp - 0xe0], esi
mov ecx, dword [ecx]
call ecx
mov ecx, dword [ebp - 0xe8]
add esp, 8
mov dword [ecx + 0x44], esi
push str.manacost
push edi
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x51e03e
push ebx
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 ebx
mov dword [ebp - 0xe0], esi
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xe8]
add esp, 8
mov dword [eax + 0x84], esi
lea eax, [ebp - 0x28]
mov edx, 0x5e8254
push eax
mov ecx, edi
call fcn.00593b40
add esp, 4
test al, al
je 0x51e076
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.0058e8b0
mov esi, dword [ebp - 0xe8]
add esp, 0x18
mov dword [esi + 0x24], eax
jmp 0x51e07c
mov esi, dword [ebp - 0xe8]
lea eax, [ebp - 0x28]
mov edx, 0x5e825c
push eax
mov ecx, edi
call fcn.00593b40
add esp, 4
test al, al
je 0x51e0ac
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.0058df10
add esp, 0x18
mov dword [esi + 0x28], eax
lea eax, [ebp - 0x28]
mov edx, 0x5e8244
push eax
mov ecx, edi
call fcn.00593b40
add esp, 4
test al, al
je 0x51e0dc
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.0058edc0
add esp, 0x18
mov dword [esi + 0x2c], eax
mov edi, dword [edi + 0xc]
mov dword [ebp - 0xf4], edi
test edi, edi
je 0x5203d6
nop dword [eax]
cmp byte [ebp - 0xe9], 0
je 0x5203d6
cmp dword [edi + 4], 1
jne 0x51e253
mov ebx, dword [sym.imp.libxml2.dll_xmlStrcmp]
push 0x5e824c
push dword [edi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x51e296
push 0x5e823c
push edi
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov edi, eax
add esp, 8
test edi, edi
jne 0x51e1a4
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, str._Error___Monsters::loadMonster_
call fcn.004064c0
mov edx, str.Missing_health.now
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e8224
mov ecx, eax
call fcn.004064c0
mov ecx, dword [ebp - 0xf0]
mov edx, ecx
cmp dword [ecx + 0x14], 0x10
jb 0x51e16f
mov edx, dword [ecx]
push dword [ecx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e8240
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 ebx, dword [ebp - 0xe8]
mov byte [ebp - 0xe9], 0
jmp 0x51e1ca
push edi
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 edi
mov dword [ebp - 0xe0], esi
mov ecx, dword [ecx]
call ecx
mov ebx, dword [ebp - 0xe8]
add esp, 8
mov dword [ebx + 0x3c], esi
push 0x5e8220
push dword [ebp - 0xf4]
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov edi, eax
add esp, 8
test edi, edi
jne 0x51e274
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e81d0
call fcn.004064c0
mov edx, str.Missing_health.max
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e81f8
mov ecx, eax
call fcn.004064c0
mov ebx, dword [ebp - 0xf0]
mov edx, ebx
cmp dword [ebx + 0x14], 0x10
jb 0x51e220
mov edx, dword [ebx]
push dword [ebx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e81f4
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 - 0xe9], 0
mov edi, dword [ebp - 0xf4]
mov eax, 0x18
mov edi, dword [eax + edi]
mov dword [ebp - 0xf4], edi
test edi, edi
je 0x5203d6
mov esi, dword [ebp - 0xe8]
jmp 0x51e0f0
push edi
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 edi
mov dword [ebp - 0xe0], esi
mov ecx, dword [ecx]
call ecx
add esp, 8
mov dword [ebx + 0x40], esi
jmp 0x51e24d
push str.flags
push dword [edi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x51eb12
mov ebx, dword [edi + 0xc]
test ebx, ebx
je 0x51eaf5
nop word [eax + eax]
push str.flag
push dword [ebx + 8]
call dword [sym.imp.libxml2.dll_xmlStrcmp]
add esp, 8
test eax, eax
jne 0x51eae4
push str.summonable
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51e33f
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51e314
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51e301
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
mov edi, dword [ebp - 0xe8]
add esp, 0x18
mov byte [edi + 8], al
jmp 0x51e345
mov edi, dword [ebp - 0xe8]
push 0x5e8358
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51e3a6
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51e383
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51e370
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
mov byte [edi + 0xb], al
push str.hostile
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51e406
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51e3e3
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51e3d0
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
mov byte [edi + 0xc], al
push str.illusionable
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51e466
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51e443
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51e430
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
mov byte [edi + 9], al
push str.convinceable
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51e4c6
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51e4a3
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51e490
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
mov byte [edi + 0xa], al
push str.pushable
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51e526
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51e503
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51e4f0
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
mov byte [edi + 0x11], al
push str.canpushitems
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51e586
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51e563
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51e550
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
mov byte [edi + 0xf], al
push str.canpushcreatures
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51e5e6
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51e5c3
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51e5b0
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
mov byte [edi + 0x10], al
push 0x5e82dc
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51e646
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51e623
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51e610
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
mov byte [edi + 0x12], al
push 0x5e82e8
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51e6a6
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51e683
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51e670
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
mov byte [edi + 0x13], al
push str.lootmessage
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov edi, eax
add esp, 8
test edi, edi
je 0x51e6e1
push edi
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 edi
mov dword [ebp - 0xe0], esi
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xe8]
add esp, 8
mov dword [eax + 0x30], esi
push str.staticattack
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov edi, eax
add esp, 8
test edi, edi
je 0x51e792
push edi
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 edi
mov dword [ebp - 0xe0], esi
mov ecx, dword [ecx]
call ecx
add esp, 8
test esi, esi
js 0x51e720
cmp esi, 0x64
jle 0x51e786
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e8294
call fcn.004064c0
mov edx, str.staticattack_lower_than_0_or_greater_than_100
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e82bc
mov ecx, eax
call fcn.004064c0
mov ecx, dword [ebp - 0xf0]
mov edx, ecx
cmp dword [ecx + 0x14], 0x10
jb 0x51e758
mov edx, dword [ecx]
push dword [ecx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e82b8
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_____]
xor esi, esi
mov dword [ebp - 0xe0], esi
mov eax, dword [ebp - 0xe8]
mov dword [eax + 0x80], esi
push str.lightlevel
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov edi, eax
add esp, 8
test edi, edi
je 0x51e7cd
push edi
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 edi
mov dword [ebp - 0xe0], esi
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xe8]
add esp, 8
mov dword [eax + 0x68], esi
push str.lightcolor
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov edi, eax
add esp, 8
test edi, edi
je 0x51e808
push edi
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 edi
mov dword [ebp - 0xe0], esi
mov ecx, dword [ecx]
call ecx
mov eax, dword [ebp - 0xe8]
add esp, 8
mov dword [eax + 0x6c], esi
push str.targetdistance
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51e8b4
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov ecx, dword [sym.imp.libxml2.dll_xmlFree]
mov edi, eax
push esi
mov dword [ebp - 0xe0], edi
mov ecx, dword [ecx]
call ecx
add esp, 8
cmp edi, 0xb
jle 0x51e8a1
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e83b8
call fcn.004064c0
mov edx, str.targetdistance_greater_than_maxViewportX
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e83e8
mov ecx, eax
call fcn.004064c0
mov ecx, dword [ebp - 0xf0]
mov edx, ecx
cmp dword [ecx + 0x14], 0x10
jb 0x51e87b
mov edx, dword [ecx]
push dword [ecx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e8428
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 ecx, dword [ebp - 0xe8]
mov eax, 1
cmp edi, eax
cmovg eax, edi
mov dword [ecx + 0x58], eax
push str.runonhealth
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov edi, eax
add esp, 8
test edi, edi
je 0x51e8f1
push edi
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 edi
mov dword [ebp - 0xe0], esi
mov ecx, dword [ecx]
call ecx
mov edi, dword [ebp - 0xe8]
add esp, 8
mov dword [edi + 0x5c], esi
jmp 0x51e8f7
mov edi, dword [ebp - 0xe8]
push str.lureable
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51e956
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51e933
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51e920
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
mov byte [edi + 0xd], al
push 0x5e83ac
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51e9b6
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51e993
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51e980
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
mov byte [edi + 0xe], al
push 0x5e8390
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51ea16
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51e9f3
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51e9e0
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.0058e8b0
add esp, 0x18
mov dword [edi + 0x24], eax
push 0x5e8398
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51ea76
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51ea53
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51ea40
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.0058df10
add esp, 0x18
mov dword [edi + 0x28], eax
push 0x5e8378
push ebx
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov esi, eax
add esp, 8
test esi, esi
je 0x51eade
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0058d130
test al, al
jne 0x51eab3
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51eaa0
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00405890
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
sub esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.0058edc0
mov esi, dword [ebp - 0xe8]
add esp, 0x18
mov dword [esi + 0x2c], eax
jmp 0x51eae4
mov esi, dword [ebp - 0xe8]
mov ebx, dword [ebx + 0x18]
test ebx, ebx
jne 0x51e2c0
mov edi, dword [ebp - 0xf4]
cmp byte [esi + 0x10], 0
je 0x51e253
cmp byte [esi + 0x11], 0
je 0x51e253
mov byte [esi + 0x11], 0
jmp 0x51e253
push str.targetchange
push dword [edi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x51ecab
mov ebx, dword [sym.imp.libxml2.dll_xmlGetProp]
push 0x5e8364
push edi
call ebx
mov edi, eax
add esp, 8
test edi, edi
jne 0x51ebda
push 0x5e836c
push dword [ebp - 0xf4]
call ebx
mov edi, eax
add esp, 8
test edi, edi
jne 0x51ebbe
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e84ec
call fcn.004064c0
mov edx, str.Missing_targetchange.speed
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e8514
mov ecx, eax
call fcn.004064c0
mov ecx, dword [ebp - 0xf0]
mov edx, ecx
cmp dword [ecx + 0x14], 0x10
jb 0x51eb90
mov edx, dword [ecx]
push dword [ecx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e8510
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 ebx, dword [ebp - 0xe8]
jmp 0x51ec09
push edi
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 edi
mov dword [ebp - 0xe0], esi
mov ecx, dword [ecx]
call ecx
jmp 0x51ebf3
push edi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov esi, eax
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push edi
mov dword [ebp - 0xe0], esi
mov eax, dword [eax]
call eax
mov ebx, dword [ebp - 0xe8]
mov eax, 1
add esp, 8
cmp esi, eax
cmovg eax, esi
mov dword [ebx + 0x70], eax
push 0x5e84c4
push dword [ebp - 0xf4]
call dword [sym.imp.libxml2.dll_xmlGetProp]
mov edi, eax
add esp, 8
test edi, edi
jne 0x51ec86
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e8474
call fcn.004064c0
mov edx, str.Missing_targetchange.chance
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e84a4
mov ecx, eax
call fcn.004064c0
mov ebx, dword [ebp - 0xf0]
mov edx, ebx
cmp dword [ebx + 0x14], 0x10
jb 0x51ec5b
mov edx, dword [ebx]
push dword [ebx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e84cc
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_____]
jmp 0x51e24d
push edi
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 edi
mov dword [ebp - 0xe0], esi
mov ecx, dword [ecx]
call ecx
add esp, 8
mov dword [ebx + 0x74], esi
jmp 0x51e24d
push str.strategy
push dword [edi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x51ed21
mov ebx, dword [sym.imp.libxml2.dll_xmlGetProp]
push 0x5e8464
push edi
call ebx
mov esi, eax
add esp, 8
test esi, esi
je 0x51eced
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov dword [ebp - 0xe0], eax
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
add esp, 8
push 0x5e846c
push edi
call ebx
mov esi, eax
add esp, 8
test esi, esi
je 0x51e253
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov dword [ebp - 0xe0], eax
mov eax, dword [sym.imp.libxml2.dll_xmlFree]
push esi
mov eax, dword [eax]
call eax
add esp, 8
jmp 0x51e253
push 0x5e8454
push dword [edi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x51ef40
lea eax, [ebp - 0xe0]
mov edx, 0x5e845c
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
mov ecx, edi
test al, al
je 0x51ee17
mov ax, word [ebp - 0xe0]
mov edx, 0x5e8444
mov word [esi + 0x14], ax
lea eax, [ebp - 0xe0]
push eax
call fcn.00592d40
add esp, 4
test al, al
je 0x51ed82
mov al, byte [ebp - 0xe0]
mov byte [esi + 0x18], al
lea eax, [ebp - 0xe0]
mov edx, 0x5e844c
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
je 0x51eda5
mov al, byte [ebp - 0xe0]
mov byte [esi + 0x19], al
lea eax, [ebp - 0xe0]
mov edx, 0x5e85c4
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
je 0x51edc8
mov al, byte [ebp - 0xe0]
mov byte [esi + 0x1a], al
lea eax, [ebp - 0xe0]
mov edx, 0x5e85cc
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
je 0x51edeb
mov al, byte [ebp - 0xe0]
mov byte [esi + 0x1b], al
lea eax, [ebp - 0xe0]
mov edx, 0x5e85b4
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
je 0x51ee9a
mov al, byte [ebp - 0xe0]
mov byte [esi + 0x1c], al
jmp 0x51ee9a
lea eax, [ebp - 0xe0]
mov edx, 0x5e85bc
push eax
call fcn.00592d40
add esp, 4
test al, al
je 0x51ee3c
mov ax, word [ebp - 0xe0]
mov word [esi + 0x16], ax
jmp 0x51ee9a
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e8588
call fcn.004064c0
mov edx, str.Missing_look_type_typeex
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e85b0
mov ecx, eax
call fcn.004064c0
mov ebx, dword [ebp - 0xf0]
mov edx, ebx
cmp dword [ebx + 0x14], 0x10
jb 0x51ee74
mov edx, dword [ebx]
push dword [ebx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e85ac
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_____]
lea eax, [ebp - 0xe0]
mov edx, str.corpse
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
je 0x51eebd
mov eax, dword [ebp - 0xe0]
mov dword [esi + 0x48], eax
lea eax, [ebp - 0xe0]
mov edx, str.corpseUniqueId
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
jne 0x51eef1
lea eax, [ebp - 0xe0]
mov edx, str.corpseUid
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
je 0x51eefa
mov eax, dword [ebp - 0xe0]
mov dword [esi + 0x4c], eax
lea eax, [ebp - 0xe0]
mov edx, str.corpseActionId
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
jne 0x51ef32
lea eax, [ebp - 0xe0]
mov edx, str.corpseAid
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
je 0x51e253
mov eax, dword [ebp - 0xe0]
mov dword [esi + 0x50], eax
jmp 0x51e253
push str.attacks
push dword [edi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x51f020
mov esi, dword [edi + 0xc]
test esi, esi
je 0x51e253
mov edi, dword [ebp - 0x104]
push 0x5e8518
push dword [esi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x51f010
push edi
lea eax, [ebp - 0x9c]
mov ecx, 0x6277f0
push eax
push esi
call fcn.005204a0
test al, al
je 0x51efac
mov ecx, dword [ebp - 0xe8]
lea eax, [ebp - 0x9c]
push eax
lea ecx, [ecx + 0xd8]
call fcn.00445aa0
jmp 0x51f010
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e865c
call fcn.004064c0
mov edx, str.Cant_load_spell
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e868c
mov ecx, eax
call fcn.004064c0
mov ebx, dword [ebp - 0xf0]
mov edx, ebx
cmp dword [ebx + 0x14], 0x10
jb 0x51efe4
mov edx, dword [ebx]
push dword [ebx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e8520
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 ebx, dword [sym.imp.libxml2.dll_xmlStrcmp]
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x51ef66
jmp 0x51e24d
push str.defenses
push dword [edi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x51f14a
lea eax, [ebp - 0xe0]
mov edx, 0x5e864c
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
je 0x51f058
mov eax, dword [ebp - 0xe0]
mov dword [esi + 0x34], eax
lea eax, [ebp - 0xe0]
mov edx, 0x5e8654
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
je 0x51f07b
mov eax, dword [ebp - 0xe0]
mov dword [esi + 0x38], eax
mov esi, dword [edi + 0xc]
test esi, esi
je 0x51e253
mov edi, dword [ebp - 0x104]
nop dword [eax]
push 0x5e8640
push dword [esi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x51f13a
push edi
lea eax, [ebp - 0x9c]
mov ecx, 0x6277f0
push eax
push esi
call fcn.005204a0
test al, al
je 0x51f0d6
mov ecx, dword [ebp - 0xe8]
lea eax, [ebp - 0x9c]
push eax
lea ecx, [ecx + 0xe0]
call fcn.00445aa0
jmp 0x51f13a
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e85fc
call fcn.004064c0
mov edx, 0x5e8630
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e862c
mov ecx, eax
call fcn.004064c0
mov ebx, dword [ebp - 0xf0]
mov edx, ebx
cmp dword [ebx + 0x14], 0x10
jb 0x51f10e
mov edx, dword [ebx]
push dword [ebx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e8648
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 ebx, dword [sym.imp.libxml2.dll_xmlStrcmp]
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x51f090
jmp 0x51e24d
push str.immunities
push dword [edi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x51f9a2
mov ebx, dword [edi + 0xc]
mov dword [ebp - 0xfc], ebx
test ebx, ebx
je 0x51e253
jmp 0x51f178
mov esi, dword [ebp - 0xe8]
push str.immunity
push dword [ebx + 8]
call dword [sym.imp.libxml2.dll_xmlStrcmp]
add esp, 8
test eax, eax
jne 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e85f4
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f61a
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x40]
call fcn.00593ff0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
mov esi, dword [ebp - 0x40]
mov edi, dword [ebp - 0x30]
cmovae ecx, esi
push 8
push 0x5e85d4
mov edx, edi
setae bl
call fcn.00407d80
add esp, 8
test al, al
je 0x51f208
mov ebx, dword [ebp - 0xe8]
lea ecx, [ebp - 0x40]
or dword [ebx + 0x64], 1
or dword [ebx + 0x60], 8
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
test bl, bl
lea ecx, [ebp - 0x40]
push 6
cmovne ecx, esi
mov edx, edi
push 0x5e85e0
call fcn.00407d80
add esp, 8
test al, al
je 0x51f24a
mov ebx, dword [ebp - 0xe8]
lea ecx, [ebp - 0x40]
or dword [ebx + 0x64], 2
or dword [ebx + 0x60], 4
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
test bl, bl
lea ecx, [ebp - 0x40]
push 4
cmovne ecx, esi
mov edx, edi
push 0x5e8724
call fcn.00407d80
add esp, 8
test al, al
je 0x51f28c
mov ebx, dword [ebp - 0xe8]
lea ecx, [ebp - 0x40]
or dword [ebx + 0x64], 8
or dword [ebx + 0x60], 2
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
test bl, bl
lea ecx, [ebp - 0x40]
push 6
cmovne ecx, esi
mov edx, edi
push 0x5e872c
call fcn.00407d80
add esp, 8
test al, al
jne 0x51f5f5
test bl, bl
lea ecx, [ebp - 0x40]
push 5
cmovne ecx, esi
mov edx, edi
push 0x5e8718
call fcn.00407d80
add esp, 8
test al, al
jne 0x51f5f5
test bl, bl
lea ecx, [ebp - 0x40]
push 3
cmovne ecx, esi
mov edx, edi
push 0x5e8720
call fcn.00407d80
add esp, 8
test al, al
je 0x51f316
mov ebx, dword [ebp - 0xe8]
lea ecx, [ebp - 0x40]
or dword [ebx + 0x64], 0x200
or dword [ebx + 0x60], 0x40000
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
test bl, bl
lea ecx, [ebp - 0x40]
push 4
cmovne ecx, esi
mov edx, edi
push 0x5e8708
call fcn.00407d80
add esp, 8
test al, al
je 0x51f35e
mov ebx, dword [ebp - 0xe8]
lea ecx, [ebp - 0x40]
or dword [ebx + 0x64], 0x400
or dword [ebx + 0x60], 0x80000
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
test bl, bl
lea ecx, [ebp - 0x40]
push 5
cmovne ecx, esi
mov edx, edi
push 0x5e8710
call fcn.00407d80
add esp, 8
test al, al
je 0x51f3a6
mov ebx, dword [ebp - 0xe8]
lea ecx, [ebp - 0x40]
or dword [ebx + 0x64], 0x800
or dword [ebx + 0x60], 0x100000
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
test bl, bl
lea ecx, [ebp - 0x40]
push 5
cmovne ecx, esi
mov edx, edi
push 0x5e86f4
call fcn.00407d80
add esp, 8
test al, al
je 0x51f3ee
mov ebx, dword [ebp - 0xe8]
lea ecx, [ebp - 0x40]
or dword [ebx + 0x64], 0x100
or dword [ebx + 0x60], 0x8000
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
test bl, bl
lea ecx, [ebp - 0x40]
push 9
cmovne ecx, esi
mov edx, edi
push 0x5e86fc
call fcn.00407d80
add esp, 8
test al, al
je 0x51f42c
mov ebx, dword [ebp - 0xe8]
lea ecx, [ebp - 0x40]
or dword [ebx + 0x64], 0x20
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
test bl, bl
lea ecx, [ebp - 0x40]
push 9
cmovne ecx, esi
mov edx, edi
push 0x5e86dc
call fcn.00407d80
add esp, 8
test al, al
je 0x51f46a
mov ebx, dword [ebp - 0xe8]
lea ecx, [ebp - 0x40]
or dword [ebx + 0x64], 0x40
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
test bl, bl
lea ecx, [ebp - 0x40]
push 8
cmovne ecx, esi
mov edx, edi
push 0x5e86e8
call fcn.00407d80
add esp, 8
test al, al
je 0x51f4a8
mov ebx, dword [ebp - 0xe8]
lea ecx, [ebp - 0x40]
or dword [ebx + 0x60], 0x20
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
test bl, bl
lea ecx, [ebp - 0x40]
push 6
cmovne ecx, esi
mov edx, edi
push 0x5e86cc
call fcn.00407d80
add esp, 8
test al, al
je 0x51f4e6
mov ebx, dword [ebp - 0xe8]
lea ecx, [ebp - 0x40]
or dword [ebx + 0x60], 0x40
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
test bl, bl
lea ecx, [ebp - 0x40]
push 5
cmovne ecx, esi
mov edx, edi
push 0x5e86d4
call fcn.00407d80
add esp, 8
test al, al
je 0x51f527
mov ebx, dword [ebp - 0xe8]
lea ecx, [ebp - 0x40]
or dword [ebx + 0x60], 0x800
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
test bl, bl
lea ecx, [ebp - 0x40]
push 9
cmovne ecx, esi
mov edx, edi
push 0x5e86bc
call fcn.00407d80
add esp, 8
test al, al
je 0x51f568
mov eax, dword [ebp - 0xe8]
lea ecx, [ebp - 0x40]
or dword [eax + 0x60], 0x80
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e87b0
call fcn.004064c0
mov edx, str.Unknown_immunity_name
mov ecx, eax
call fcn.004064c0
cmp dword [ebp - 0x14], 0x10
lea edx, [ebp - 0x28]
push dword [ebp - 0x18]
cmovae edx, dword [ebp - 0x28]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e86a0
mov ecx, eax
call fcn.004064c0
mov ecx, dword [ebp - 0xf0]
mov edx, ecx
cmp dword [ecx + 0x14], 0x10
jb 0x51f5b8
mov edx, dword [ecx]
push dword [ecx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e86c8
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_____]
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
mov ebx, dword [ebp - 0xe8]
lea ecx, [ebp - 0x40]
or dword [ebx + 0x64], 4
or dword [ebx + 0x60], 1
mov byte [ebp - 4], 2
call fcn.00405b30
mov ebx, dword [ebp - 0xfc]
jmp 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e87d4
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f654
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
test al, al
je 0x51f654
or dword [esi + 0x64], 1
jmp 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e87a0
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f692
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
test al, al
je 0x51f692
or dword [esi + 0x64], 2
or dword [esi + 0x60], 4
jmp 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e87a8
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f6d0
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
test al, al
je 0x51f6d0
or dword [esi + 0x64], 8
or dword [esi + 0x60], 2
jmp 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e8790
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
jne 0x51f6fe
lea eax, [ebp - 0x28]
mov edx, 0x5e8798
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f725
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
test al, al
je 0x51f725
or dword [esi + 0x64], 4
or dword [esi + 0x60], 1
jmp 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e8784
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f769
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
test al, al
je 0x51f769
or dword [esi + 0x64], 0x100
or dword [esi + 0x60], 0x8000
jmp 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e878c
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f7ad
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
test al, al
je 0x51f7ad
or dword [esi + 0x64], 0x200
or dword [esi + 0x60], 0x40000
jmp 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e8774
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f7f1
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
test al, al
je 0x51f7f1
or dword [esi + 0x64], 0x400
or dword [esi + 0x60], 0x80000
jmp 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e877c
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f835
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
test al, al
je 0x51f835
or dword [esi + 0x64], 0x800
or dword [esi + 0x60], 0x100000
jmp 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e875c
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f86f
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
test al, al
je 0x51f86f
or dword [esi + 0x64], 0x20
jmp 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e8768
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f8a9
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
test al, al
je 0x51f8a9
or dword [esi + 0x64], 0x20
jmp 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e8748
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f8e3
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
test al, al
je 0x51f8e3
or dword [esi + 0x60], 0x20
jmp 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e8754
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f91a
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
test al, al
je 0x51f91a
or dword [esi + 0x60], 0x40
jmp 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e8734
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f954
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
test al, al
je 0x51f954
or dword [esi + 0x60], 0x800
jmp 0x51f98c
lea eax, [ebp - 0x28]
mov edx, 0x5e873c
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x51f98c
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
add esp, 0x18
test al, al
je 0x51f98c
or dword [esi + 0x60], 0x80
mov ebx, dword [ebx + 0x18]
mov dword [ebp - 0xfc], ebx
test ebx, ebx
jne 0x51f172
jmp 0x51e24d
push 0x5e8894
push dword [edi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x51fc3c
lea eax, [ebp - 0xe0]
mov edx, 0x5e889c
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
jne 0x51fa4b
lea eax, [ebp - 0xe0]
mov edx, 0x5e8884
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
jne 0x51fa4b
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e883c
call fcn.004064c0
mov edx, str.Missing_voices.speed
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e8868
mov ecx, eax
call fcn.004064c0
mov ebx, dword [ebp - 0xf0]
mov edx, ebx
cmp dword [ebx + 0x14], 0x10
jb 0x51fa23
mov edx, dword [ebx]
push dword [ebx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e8890
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_____]
jmp 0x51fa5a
mov eax, dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xf0]
mov dword [esi + 0x7c], eax
lea eax, [ebp - 0xe0]
mov edx, 0x5e8860
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
je 0x51fa7f
mov eax, dword [ebp - 0xe0]
mov dword [esi + 0x78], eax
jmp 0x51fad7
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e8810
call fcn.004064c0
mov edx, str.Missing_voices.chance
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e8838
mov ecx, eax
call fcn.004064c0
cmp dword [ebx + 0x14], 0x10
mov edx, ebx
jb 0x51fab1
mov edx, dword [ebx]
push dword [ebx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e8834
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 edi, dword [edi + 0xc]
test edi, edi
je 0x51e24d
push 0x5e87f0
push dword [edi + 8]
call dword [sym.imp.libxml2.dll_xmlStrcmp]
add esp, 8
test eax, eax
jne 0x51fc26
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], al
push eax
push 0x5bb42a
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 5
call fcn.00405890
lea eax, [ebp - 0x28]
xor bl, bl
push eax
mov edx, str.sentence
mov byte [ebp - 0x5c], bl
mov ecx, edi
call fcn.00593b40
add esp, 4
test al, al
je 0x51fb55
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
push dword [ebp - 0x18]
cmovae eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x58]
push eax
call fcn.00405890
mov bl, byte [ebp - 0x5c]
jmp 0x51fbb3
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e8944
call fcn.004064c0
mov edx, str.Missing_voice.sentence
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e8970
mov ecx, eax
call fcn.004064c0
mov ecx, dword [ebp - 0xf0]
mov edx, ecx
cmp dword [ecx + 0x14], 0x10
jb 0x51fb8d
mov edx, dword [ecx]
push dword [ecx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e87ec
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_____]
lea eax, [ebp - 0x28]
mov edx, 0x5e8968
push eax
mov ecx, edi
call fcn.00593b40
add esp, 4
test al, al
je 0x51fbe5
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405c30
call fcn.00593780
mov bl, al
add esp, 0x18
mov byte [ebp - 0x5c], bl
mov eax, dword [esi + 0xec]
cmp eax, dword [esi + 0xf0]
je 0x51fc0a
lea ecx, [ebp - 0x58]
mov byte [eax], bl
push ecx
lea ecx, [eax + 4]
call fcn.00405c30
add dword [esi + 0xec], 0x1c
jmp 0x51fc1a
lea ecx, [ebp - 0x5c]
push ecx
push eax
lea ecx, [esi + 0xe8]
call fcn.00445f10
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 2
call fcn.00442370
mov edi, dword [edi + 0x18]
mov esi, dword [ebp - 0xe8]
test edi, edi
jne 0x51fae2
jmp 0x51e24d
push str.loot
push dword [edi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x51fd2c
mov esi, dword [edi + 0xc]
test esi, esi
je 0x51e253
nop dword [eax]
cmp dword [esi + 4], 1
je 0x51fc6e
mov esi, dword [esi + 0x18]
jmp 0x51fd1f
lea ecx, [ebp - 0xdc]
call fcn.00445460
lea eax, [ebp - 0xdc]
mov byte [ebp - 4], 6
push eax
push esi
mov ecx, 0x6277f0
call fcn.0051d4a0
test al, al
je 0x51fcaf
mov ecx, dword [ebp - 0xe8]
lea eax, [ebp - 0xdc]
add ecx, 0xc8
push eax
push dword [ecx]
call fcn.00445e70
jmp 0x51fd0d
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e88f4
call fcn.004064c0
mov edx, str.Cant_load_loot
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e8924
mov ecx, eax
call fcn.004064c0
mov ecx, dword [ebp - 0xf0]
mov edx, ecx
cmp dword [ecx + 0x14], 0x10
jb 0x51fce7
mov edx, dword [ecx]
push dword [ecx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e8940
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 esi, dword [esi + 0x18]
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 2
call fcn.004458c0
test esi, esi
jne 0x51fc60
jmp 0x51e253
push str.elements
push dword [edi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x51ff92
mov esi, dword [edi + 0xc]
test esi, esi
je 0x51e253
nop dword [eax]
push str.element
push dword [esi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x51ff82
lea eax, [ebp - 0xe0]
mov edx, str.firePercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x51fd8e
mov dword [ebp - 0xe4], 8
jmp 0x51ff62
lea eax, [ebp - 0xe0]
mov edx, str.energyPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x51fdb7
mov dword [ebp - 0xe4], 2
jmp 0x51ff62
lea eax, [ebp - 0xe0]
mov edx, str.icePercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x51fde0
mov dword [ebp - 0xe4], 0x200
jmp 0x51ff62
lea eax, [ebp - 0xe0]
mov edx, str.poisonPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x51ff58
lea eax, [ebp - 0xe0]
mov edx, str.earthPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
jne 0x51ff58
lea eax, [ebp - 0xe0]
mov edx, str.holyPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x51fe45
mov dword [ebp - 0xe4], 0x400
jmp 0x51ff62
lea eax, [ebp - 0xe0]
mov edx, str.deathPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x51fe6e
mov dword [ebp - 0xe4], 0x800
jmp 0x51ff62
lea eax, [ebp - 0xe0]
mov edx, str.drownPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x51fe97
mov dword [ebp - 0xe4], 0x100
jmp 0x51ff62
lea eax, [ebp - 0xe0]
mov edx, str.physicalPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x51fec0
mov dword [ebp - 0xe4], 1
jmp 0x51ff62
lea eax, [ebp - 0xe0]
mov edx, str.lifeDrainPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x51fee6
mov dword [ebp - 0xe4], 0x20
jmp 0x51ff62
lea eax, [ebp - 0xe0]
mov edx, str.manaDrainPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x51ff0c
mov dword [ebp - 0xe4], 0x40
jmp 0x51ff62
lea eax, [ebp - 0xe0]
mov edx, str.healingPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x51ff32
mov dword [ebp - 0xe4], 0x80
jmp 0x51ff62
lea eax, [ebp - 0xe0]
mov edx, str.undefinedPercent
push eax
mov ecx, esi
call fcn.00592d40
add esp, 4
test al, al
je 0x51ff82
mov dword [ebp - 0xe4], 0x10
jmp 0x51ff62
mov dword [ebp - 0xe4], 4
mov ecx, dword [ebp - 0xe8]
lea eax, [ebp - 0xe4]
push eax
lea ecx, [ecx + 0xd0]
call fcn.0040e760
mov ecx, dword [ebp - 0xe0]
mov dword [eax], ecx
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x51fd50
jmp 0x51e253
push str.summons
push dword [edi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x520258
lea eax, [ebp - 0xe0]
mov edx, str.maxSummons
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
jne 0x51ffdb
lea eax, [ebp - 0xe0]
mov edx, 0x5e89b0
push eax
mov ecx, edi
call fcn.00592d40
add esp, 4
test al, al
je 0x51ffe4
mov eax, dword [ebp - 0xe0]
mov dword [esi + 0x54], eax
mov ebx, dword [edi + 0xc]
mov dword [ebp - 0xfc], ebx
test ebx, ebx
je 0x51e253
nop word [eax + eax]
push str.summon
push dword [ebx + 8]
call dword [sym.imp.libxml2.dll_xmlStrcmp]
add esp, 8
test eax, eax
jne 0x5201e2
lea esi, [eax + 0x64]
mov dword [ebp - 0xe4], 1
lea eax, [ebp - 0xe0]
mov edx, 0x5e899c
push eax
mov ecx, ebx
mov edi, 0x3e8
call fcn.00592d40
add esp, 4
test al, al
jne 0x52005f
lea eax, [ebp - 0xe0]
mov edx, 0x5e89a4
push eax
mov ecx, ebx
call fcn.00592d40
add esp, 4
test al, al
je 0x520065
mov edi, dword [ebp - 0xe0]
lea eax, [ebp - 0xe0]
mov edx, 0x5e898c
push eax
mov ecx, ebx
call fcn.00592d40
test al, al
mov edx, 0x5e8994
lea eax, [ebp - 0xe0]
mov ecx, ebx
cmovne esi, dword [ebp - 0xe0]
push eax
call fcn.00592d40
add esp, 8
test al, al
jne 0x5200b5
lea eax, [ebp - 0xe0]
mov edx, 0x5e8b20
push eax
mov ecx, ebx
call fcn.00592d40
add esp, 4
test al, al
je 0x5200c1
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0x28]
mov edx, 0x5e8b24
push eax
mov ecx, ebx
call fcn.00593b40
add esp, 4
test al, al
je 0x5201f8
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
mov byte [ebp - 4], 7
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x80]
push dword [ebp - 0x18]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.00405890
mov ebx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xe4]
add ebx, 0xc0
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x68], esi
cmp dword [ebx + 4], 0x5d1745d
mov eax, dword [ebx]
mov dword [ebp - 0xe4], eax
je 0x5203cb
mov dword [ebp - 0x10c], ebx
mov byte [ebp - 4], 8
push 0x2c
mov dword [ebp - 0x108], 0
call fcn.0045afb5
mov edi, eax
add esp, 4
lea eax, [ebp - 0x80]
mov dword [ebp - 0x108], edi
push eax
lea ecx, [edi + 8]
call fcn.00405c30
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x64]
mov dword [edi + 0x20], ecx
mov ecx, dword [ebp - 0xe4]
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x60]
mov dword [edi + 0x28], eax
inc dword [ebx + 4]
mov eax, dword [ecx + 4]
mov dword [edi], ecx
mov dword [edi + 4], eax
mov dword [ecx + 4], edi
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x108], 0
mov dword [eax], edi
cmp ecx, 0x10
jb 0x5201dc
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x5201d2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x5203c5
push ecx
push edx
call fcn.0045b34b
add esp, 8
mov ebx, dword [ebp - 0xfc]
mov ebx, dword [ebx + 0x18]
mov dword [ebp - 0xfc], ebx
test ebx, ebx
jne 0x520000
jmp 0x51e24d
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e8af4
call fcn.004064c0
mov edx, str.Missing_summon.name
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e8b1c
mov ecx, eax
call fcn.004064c0
mov ecx, dword [ebp - 0xf0]
mov edx, ecx
cmp dword [ecx + 0x14], 0x10
jb 0x520230
mov edx, dword [ecx]
push dword [ecx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e8b18
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_____]
jmp 0x5201e2
push 0x5e8ad0
push dword [edi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x520356
mov edi, dword [edi + 0xc]
test edi, edi
je 0x51e24d
nop dword [eax + eax]
push 0x5e8ad8
push dword [edi + 8]
call ebx
add esp, 8
test eax, eax
jne 0x520340
lea eax, [ebp - 0x28]
mov edx, 0x5e8ac4
push eax
mov ecx, edi
call fcn.00593b40
add esp, 4
test al, al
je 0x5202dc
mov eax, dword [esi + 0xf8]
lea ecx, [ebp - 0x28]
push ecx
cmp eax, dword [esi + 0xfc]
je 0x5202ce
mov ecx, eax
call fcn.00405c30
add dword [esi + 0xf8], 0x18
jmp 0x520340
push eax
lea ecx, [esi + 0xf4]
call fcn.0043f310
jmp 0x520340
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, 0x5e8a78
call fcn.004064c0
mov edx, str.Missing_name_for_script_event
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e8aa0
mov ecx, eax
call fcn.004064c0
mov ebx, dword [ebp - 0xf0]
mov edx, ebx
cmp dword [ebx + 0x14], 0x10
jb 0x520314
mov edx, dword [ebx]
push dword [ebx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e8acc
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 ebx, dword [sym.imp.libxml2.dll_xmlStrcmp]
mov edi, dword [edi + 0x18]
mov esi, dword [ebp - 0xe8]
test edi, edi
jne 0x520280
jmp 0x51e24d
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::clog]
mov edx, str._Warning___Monsters::loadMonster_
mov esi, dword [edi + 8]
call fcn.004064c0
mov edx, str.Unknown_attribute_type__
mov ecx, eax
call fcn.004064c0
mov edx, esi
mov ecx, eax
call fcn.004064c0
mov edx, 0x5e8a58
mov ecx, eax
call fcn.004064c0
mov ebx, dword [ebp - 0xf0]
mov edx, ebx
cmp dword [ebx + 0x14], 0x10
jb 0x52039a
mov edx, dword [ebx]
push dword [ebx + 0x10]
mov ecx, eax
call fcn.004073f0
add esp, 4
mov edx, 0x5e8a9c
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_____]
jmp 0x51e253
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push str.list_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
push dword [ebp - 0x100]
call dword [sym.imp.libxml2.dll_xmlFreeDoc]
add esp, 4
cmp byte [ebp - 0xe9], 0
je 0x52044b
cmp byte [ebp - 0xf5], 0
je 0x520447
mov edx, dword [ebp - 0x104]
lea ecx, [ebp - 0x98]
inc dword [0x632514]
call fcn.00593ff0
push eax
mov ecx, 0x6277f8
mov byte [ebp - 4], 9
call fcn.00445c00
mov ecx, dword [0x632514]
mov byte [ebp - 4], 2
mov dword [eax], ecx
lea ecx, [ebp - 0x98]
call fcn.00405b30
push ecx
mov ecx, 0x627800
call fcn.00445920
mov ecx, dword [ebp - 0xe8]
mov dword [eax], ecx
mov bl, 1
jmp 0x520466
cmp byte [ebp - 0xf5], 0
je 0x520464
mov ecx, dword [ebp - 0xe8]
test ecx, ecx
je 0x520464
mov eax, dword [ecx]
push 1
call dword [eax]
xor bl, bl
lea ecx, [ebp - 0x28]
call fcn.00405b30
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0045ad9e
mov esp, ebp
pop ebp
ret 0xc
call fcn.00402600
int3