Function at 0x4a6270
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c6dfa
mov eax, dword fs:[0]
push eax
sub esp, 0x450
mov eax, dword [0x62c7a8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x414], edi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x424], esi
mov byte [ebp - 0x45c], 0x13
mov byte [ebp - 0x44c], 0x2c
movsx eax, byte [esi]
add eax, 0xfffffffb
cmp eax, 0x51
ja case.0x4a62d2.8
movzx eax, byte [eax + 0x4aa7b4]
jmp dword [eax*4 + 0x4aa71c]
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x41c], eax
call fcn.0044e020
mov ecx, eax
xorps xmm0, xmm0
mov dword [ebp - 0x414], ecx
movss dword [ebp - 0x420], xmm0
test ecx, ecx
je 0x4a6632
nop dword [eax]
nop dword [eax + eax]
mov edx, dword [ecx + 0x178]
cmp edx, 0xffffffff
jle 0x4a660e
mov eax, dword [edi + 8]
cmp edx, dword [eax + 0x178]
jne 0x4a6362
cmp dword [eax + 0x338], 0
je 0x4a6346
cmp byte [eax + 0x340], 0
jne 0x4a6346
mov dword [edi + 0x290], 1
cmp dword [eax + 0x408], 0
je 0x4a6362
cmp byte [eax + 0x410], 0
jne 0x4a6362
mov dword [edi + 0x290], 1
mov eax, dword [ecx + 0x178]
cmp eax, dword [esi + 1]
jne 0x4a660e
cmp dword [ecx + 0x16c], 0xffffffff
push ecx
je 0x4a63be
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.004f4280
mov dword [ebp - 0x418], eax
mov dword [eax + 0x120], 0x3e851eb8
mov eax, dword [ebp - 0x414]
mov ecx, dword [edi + 0x154]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004fb940
jmp 0x4a63ec
mov ecx, dword [edi + 4]
call fcn.004f42a0
mov ecx, dword [ebp - 0x414]
push ecx
push eax
mov dword [ecx + 0x170], eax
mov ecx, dword [edi + 4]
call fcn.004f4280
mov dword [ebp - 0x418], eax
mov dword [eax + 0x120], 0x3e851eb8
mov edx, dword [ebp - 0x414]
movzx ecx, byte [esi + 5]
push 0
mov dword [edx + 0x164], ecx
movzx eax, byte [esi + 6]
push eax
mov dword [edx + 0x168], eax
push ecx
mov ecx, dword [edi + 0x154]
call fcn.004fa720
mov ecx, eax
mov eax, dword [ebp - 0x414]
mov dword [ebp - 0x41c], ecx
mov edx, dword [eax + 0x164]
cmp ecx, 0xffffffff
jne 0x4a649e
mov ecx, dword [edi + 0x154]
push edx
call fcn.004faf20
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb030
mov edx, dword [ebp - 0x414]
mov eax, dword [ebp - 0x418]
movss xmm0, dword [edx + 0x114]
fstp dword [edx + 0x11c]
movss dword [eax + 0x110], xmm0
movss dword [eax + 0x108], xmm0
movss xmm0, dword [edx + 0x11c]
movss dword [eax + 0x114], xmm0
movss dword [eax + 0x10c], xmm0
jmp 0x4a6557
push 1
push ecx
push dword [eax + 0x168]
mov ecx, dword [edi + 0x154]
push edx
call fcn.004f7c70
mov ecx, dword [edi + 0x154]
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebp - 0x438]
push eax
push dword [ebp - 0x41c]
call fcn.004fa820
mov eax, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x41c]
push dword [eax + 0x164]
mov dword [eax + 0x16c], ecx
mov ecx, dword [edi + 0x154]
call fcn.004faf20
fadd dword [ebp - 0x438]
mov eax, dword [ebp - 0x418]
mov edx, dword [ebp - 0x414]
fstp dword [eax + 0x110]
push dword [edx + 0x168]
mov ecx, dword [edi + 0x154]
call fcn.004fb030
fadd dword [ebp - 0x43c]
mov eax, dword [ebp - 0x418]
mov edx, dword [ebp - 0x414]
fstp dword [eax + 0x114]
movss xmm0, dword [ebp - 0x440]
movss dword [eax + 0x118], xmm0
mov dword [eax + 0x138], 0
mov eax, dword [edx + 0x178]
mov dword [ebp - 0x41c], 1
cmp eax, dword [edi + 0x204]
jne 0x4a65fc
cmp dword [0x62fab4], 0
jne 0x4a6585
cmp dword [edi + 0x20c], 0xffffffff
jne 0x4a65fc
mov ecx, dword [edi + 0x154]
movq xmm0, qword [edx + 0x114]
movq qword [ecx + 0x188], xmm0
mov eax, dword [edx + 0x11c]
mov dword [ecx + 0x190], eax
mov eax, dword [edi + 0x154]
mov dword [eax + 0x194], 0
push dword [edx + 0x168]
mov ecx, dword [edi + 0x154]
push dword [edx + 0x164]
call fcn.004f8530
mov eax, dword [ebp - 0x414]
mov ecx, edi
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004aa850
mov edx, dword [ebp - 0x414]
mov ecx, dword [edi + 0x18]
push edx
call fcn.0044dfd0
mov edx, dword [ebp - 0x414]
cmp byte [esi], 0x34
jne 0x4a660e
movzx eax, word [esi + 7]
mov ecx, edi
push eax
push edx
call fcn.004aa9e0
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov ecx, eax
mov dword [ebp - 0x414], eax
test ecx, ecx
jne 0x4a6310
cmp dword [ebp - 0x41c], eax
jne case.0x4a62d2.8
push 0x4d8
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x41c], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x4a6660
push str.AVATAR
push 0
mov ecx, eax
call fcn.004ae260
jmp 0x4a6662
xor eax, eax
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x414], eax
mov dword [ebp - 4], 0xffffffff
call fcn.0044de70
push 0x10c
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x41c], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x4a66a1
mov ecx, eax
call fcn.0046ac60
mov ecx, eax
jmp 0x4a66a3
xor ecx, ecx
mov eax, dword [ebp - 0x414]
push eax
mov dword [ebp - 4], 0xffffffff
mov dword [eax + 0x194], ecx
mov ecx, dword [edi + 4]
call fcn.004f42a0
mov ecx, dword [ebp - 0x414]
push ecx
push eax
mov dword [ecx + 0x170], eax
mov ecx, dword [edi + 4]
call fcn.004f4280
movzx edx, byte [esi + 5]
mov dword [ebp - 0x418], eax
mov eax, dword [ebp - 0x414]
push 0
mov dword [eax + 0x164], edx
movzx ecx, byte [esi + 6]
push ecx
mov dword [eax + 0x168], ecx
mov ecx, dword [edi + 0x154]
push edx
call fcn.004fa720
mov ecx, eax
mov eax, dword [ebp - 0x414]
mov dword [ebp - 0x41c], ecx
mov edx, dword [eax + 0x164]
cmp ecx, 0xffffffff
jne 0x4a674b
mov ecx, dword [edi + 0x154]
push edx
call fcn.004faf20
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb030
jmp 0x4a67d2
push 1
push ecx
push dword [eax + 0x168]
mov ecx, dword [edi + 0x154]
push edx
call fcn.004f7c70
mov ecx, dword [edi + 0x154]
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebp - 0x438]
push eax
push dword [ebp - 0x41c]
call fcn.004fa820
mov eax, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x41c]
push dword [eax + 0x164]
mov dword [eax + 0x16c], ecx
mov ecx, dword [edi + 0x154]
call fcn.004faf20
fadd dword [ebp - 0x438]
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb030
fadd dword [ebp - 0x43c]
mov ecx, dword [ebp - 0x414]
fstp dword [ebp - 0x41c]
movss xmm0, dword [ebp - 0x41c]
movss dword [ecx + 0x11c], xmm0
call fcn.00568dab
sub esp, 8
mov ecx, edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp - 0x414]
mov dword [eax + 0x10c], 0
mulss xmm0, dword [0x5d3070]
divss xmm0, dword [0x5d6e8c]
addss xmm0, dword [ebp - 0x420]
movss dword [eax + 0x108], xmm0
movss xmm0, dword [eax + 0x11c]
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + 0x114]
movss dword [esp], xmm0
call fcn.004aab90
mov eax, dword [ebp - 0x418]
mov ecx, dword [ebp - 0x414]
movss xmm0, dword [ecx + 0x108]
fstp dword [ecx + 0x118]
movss dword [eax + 0x118], xmm0
movss dword [eax + 0x11c], xmm0
mov dword [eax + 0x120], 0x3e851eb8
mov dword [eax + 0x124], 0x3e567750
movss xmm0, dword [ebp - 0x440]
movss dword [eax + 0x118], xmm0
movss xmm0, dword [ecx + 0x114]
movss dword [eax + 0x110], xmm0
movss dword [eax + 0x108], xmm0
movss xmm0, dword [ecx + 0x11c]
movss dword [eax + 0x114], xmm0
movss dword [eax + 0x10c], xmm0
mov dword [eax + 0x128], 0x3e99999a
mov eax, dword [esi + 1]
mov dword [ecx + 0x178], eax
cmp eax, dword [edi + 0x204]
jne 0x4a6aba
cmp dword [0x62fab4], 0
jne 0x4a6902
cmp dword [edi + 0x20c], 0xffffffff
jne 0x4a6aba
mov dword [edi + 8], ecx
lea edx, [ebp - 0x45c]
mov ecx, dword [0x62f438]
push 0
push 0
mov byte [ebp - 0x457], 1
mov dword [ebp - 0x45b], 0
mov eax, dword [ecx]
push edx
push 0xa
call dword [eax + 4]
mov ecx, edi
call fcn.004a13a0
mov edx, dword [ebp - 0x414]
mov ecx, dword [edi + 0x154]
movq xmm0, qword [edx + 0x114]
movq qword [ecx + 0x188], xmm0
mov eax, dword [edx + 0x11c]
mov dword [ecx + 0x190], eax
mov eax, dword [edi + 0x154]
mov dword [eax + 0x194], 0
push dword [edx + 0x168]
mov ecx, dword [edi + 0x154]
push dword [edx + 0x164]
call fcn.004f8530
mov eax, dword [ebp - 0x414]
mov ecx, edi
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004aa850
mov ecx, dword [ebp - 0x414]
push ecx
mov ecx, dword [edi + 0x18]
call fcn.0044dfd0
cmp dword [0x62faa8], 0
jne 0x4a6ab4
cmp dword [0x61348c], 0
mov dword [ebp - 0x42c], 0xc3fa0000
mov dword [ebp - 0x430], 0xc3fa0000
mov dword [ebp - 0x434], 0xc3fa0000
je 0x4a6ab4
movq xmm0, qword [ebp - 0x434]
sub esp, 0xc
mov esi, dword [ebp - 0x42c]
mov eax, esp
mov ecx, dword [0x62fa94]
sub esp, 0xc
movq qword [eax], xmm0
mov dword [eax + 8], esi
mov eax, esp
push dword [edi + 0x154]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.0052c2f0
movq xmm0, qword [ebp - 0x434]
sub esp, 0xc
mov ecx, dword [0x62fa98]
mov eax, esp
sub esp, 0xc
movq qword [eax], xmm0
mov dword [eax + 8], esi
mov eax, esp
push dword [edi + 0x154]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.0052c2f0
movq xmm0, qword [ebp - 0x434]
sub esp, 0xc
mov ecx, dword [0x62fa9c]
mov eax, esp
sub esp, 0xc
movq qword [eax], xmm0
mov dword [eax + 8], esi
mov eax, esp
push dword [edi + 0x154]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.0052c2f0
movq xmm0, qword [ebp - 0x434]
sub esp, 0xc
mov ecx, dword [0x62faa0]
mov eax, esp
sub esp, 0xc
movq qword [eax], xmm0
mov dword [eax + 8], esi
mov eax, esp
push dword [edi + 0x154]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.0052c2f0
mov esi, dword [ebp - 0x424]
mov ecx, dword [ebp - 0x414]
cmp byte [esi], 0x34
jne case.0x4a62d2.8
movzx eax, word [esi + 7]
push eax
push ecx
mov ecx, edi
call fcn.004aa9e0
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov ecx, eax
mov dword [ebp - 0x414], ecx
test ecx, ecx
je case.0x4a62d2.8
nop dword [eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4a6b95
mov edx, dword [edi + 0x18]
cmp eax, dword [esi + 1]
jne 0x4a6b84
push ecx
mov ecx, edx
call fcn.0044e210
mov eax, dword [ebp - 0x414]
mov ecx, dword [edi + 0x154]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004fb940
mov eax, dword [ebp - 0x414]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.004f4260
mov ecx, dword [ebp - 0x414]
push 1
mov eax, dword [ecx]
mov dword [ecx + 0x16c], 0xffffffff
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov ecx, eax
mov eax, dword [esi + 1]
mov dword [ebp - 0x414], ecx
cmp eax, dword [edi + 0x204]
jne 0x4a6ba5
mov eax, dword [edi + 0xc]
mov dword [edi + 8], eax
jmp 0x4a6ba5
mov ecx, edx
call fcn.0044e0d0
mov ecx, eax
mov dword [ebp - 0x414], ecx
jmp 0x4a6ba5
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov ecx, eax
mov dword [ebp - 0x414], eax
test ecx, ecx
jne 0x4a6af0
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov dword [ebp - 0x414], eax
test eax, eax
je case.0x4a62d2.8
nop dword [eax + eax]
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
jle 0x4a6d5f
cmp ecx, dword [esi + 1]
jne 0x4a6d5f
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.004f4280
mov dword [ebp - 0x418], eax
mov dword [eax + 0x120], 0x3e851eb8
mov eax, dword [ebp - 0x414]
mov ecx, dword [edi + 0x154]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004fb940
mov edx, dword [ebp - 0x414]
movzx ecx, byte [esi + 7]
push 0
mov dword [edx + 0x164], ecx
movzx eax, byte [esi + 8]
push eax
mov dword [edx + 0x168], eax
push ecx
mov ecx, dword [edi + 0x154]
call fcn.004fa720
mov ecx, dword [edi + 0x154]
mov dword [ebp - 0x41c], eax
cmp eax, 0xffffffff
jne 0x4a6c9b
movzx eax, byte [esi + 7]
push eax
call fcn.004faf20
mov eax, dword [ebp - 0x418]
fstp dword [eax + 0x110]
movzx eax, byte [esi + 8]
mov ecx, dword [edi + 0x154]
push eax
call fcn.004fb030
mov eax, dword [ebp - 0x418]
fstp dword [eax + 0x114]
jmp 0x4a6d41
push 1
push eax
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004f7c70
mov ecx, dword [edi + 0x154]
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebp - 0x438]
push eax
push dword [ebp - 0x41c]
call fcn.004fa820
mov eax, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x41c]
mov dword [eax + 0x16c], ecx
movzx eax, byte [esi + 7]
mov ecx, dword [edi + 0x154]
push eax
call fcn.004faf20
fadd dword [ebp - 0x438]
mov eax, dword [ebp - 0x418]
fstp dword [eax + 0x110]
movzx eax, byte [esi + 8]
mov ecx, dword [edi + 0x154]
push eax
call fcn.004fb030
fadd dword [ebp - 0x43c]
mov eax, dword [ebp - 0x418]
fstp dword [eax + 0x114]
movss xmm0, dword [ebp - 0x440]
movss dword [eax + 0x118], xmm0
mov eax, dword [ebp - 0x414]
mov eax, dword [eax + 0x178]
cmp eax, dword [edi + 0x204]
jne 0x4a6d5f
mov dword [0x630cb0], 0x5a
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov dword [ebp - 0x414], eax
test eax, eax
jne 0x4a6bd0
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov ecx, eax
mov dword [ebp - 0x41c], ecx
test ecx, ecx
je case.0x4a62d2.8
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4a6e4f
cmp eax, dword [esi + 1]
jne 0x4a6e4f
movzx eax, word [esi + 0x1a]
push eax
mov word [ecx + 0x21c], ax
movzx eax, byte [esi + 0x19]
push eax
movzx eax, byte [esi + 0x18]
push eax
movzx eax, byte [esi + 0x17]
push eax
push dword [esi + 0xd]
movzx eax, byte [esi + 0x16]
push eax
movzx eax, byte [esi + 0x15]
push eax
movzx eax, byte [esi + 0x14]
mov ecx, dword [ecx + 0x194]
push eax
push dword [esi + 9]
movzx eax, byte [esi + 0x13]
push eax
movzx eax, byte [esi + 0x12]
push eax
movzx eax, byte [esi + 0x11]
push eax
mov eax, dword [0x62f318]
push dword [esi + 5]
push dword [eax + 0x2a3d8]
call fcn.0046af40
lea eax, [esi + 0x1c]
push eax
mov eax, dword [ebp - 0x41c]
add eax, 0x1b0
push eax
call fcn.0043d380
mov ecx, dword [edi + 8]
add esp, 8
mov eax, dword [ecx + 0x178]
cmp eax, dword [esi + 1]
jne 0x4a6e4f
lea eax, [ecx + 0x1b0]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x40]
mov dword [0x630cb8], eax
mov al, byte [esi + 0x4c]
mov byte [0x620141], al
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov ecx, eax
mov dword [ebp - 0x41c], eax
test ecx, ecx
jne 0x4a6da0
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x41c], eax
call fcn.0044e020
mov edx, eax
mov dword [ebp - 0x414], edx
test edx, edx
je 0x4a7177
nop dword [eax]
cmp dword [edx + 0x178], 0xffffffff
jne 0x4a7153
mov eax, dword [edx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x4a7153
mov al, byte [esi + 5]
cmp al, 6
je 0x4a707e
cmp al, 0xd
je 0x4a707e
cmp al, 7
je 0x4a707e
cmp al, 0xe
je 0x4a707e
cmp al, 0x11
je 0x4a707e
cmp al, 0xa
je 0x4a707e
mov ecx, dword [edi + 4]
push edx
push dword [edx + 0x170]
call fcn.004f4280
mov ecx, dword [edi + 0x154]
mov dword [ebp - 0x418], eax
mov eax, dword [ebp - 0x414]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004fb940
mov edx, dword [ebp - 0x414]
movzx ecx, byte [esi + 0xb]
push 0
mov dword [edx + 0x164], ecx
movzx eax, byte [esi + 0xc]
push eax
mov dword [edx + 0x168], eax
push ecx
mov ecx, dword [edi + 0x154]
call fcn.004fa720
mov ecx, eax
mov eax, dword [ebp - 0x414]
mov dword [ebp - 0x41c], ecx
mov edx, dword [eax + 0x164]
cmp ecx, 0xffffffff
jne 0x4a6fc9
mov ecx, dword [edi + 0x154]
push edx
call fcn.004faf20
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb030
mov edx, dword [ebp - 0x414]
mov eax, dword [ebp - 0x418]
movss xmm0, dword [edx + 0x114]
fstp dword [edx + 0x11c]
movss dword [eax + 0x110], xmm0
movss dword [eax + 0x108], xmm0
movss xmm0, dword [edx + 0x11c]
movss dword [eax + 0x114], xmm0
movss dword [eax + 0x10c], xmm0
jmp 0x4a707e
push 1
push ecx
push dword [eax + 0x168]
mov ecx, dword [edi + 0x154]
push edx
call fcn.004f7c70
mov ecx, dword [edi + 0x154]
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebp - 0x438]
push eax
push dword [ebp - 0x41c]
call fcn.004fa820
mov eax, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x41c]
mov dword [eax + 0x16c], ecx
mov ecx, dword [ebp - 0x418]
movss xmm0, dword [ebp - 0x440]
movss dword [ecx + 0x118], xmm0
push dword [eax + 0x164]
mov ecx, dword [edi + 0x154]
call fcn.004faf20
fadd dword [ebp - 0x438]
mov eax, dword [ebp - 0x418]
mov edx, dword [ebp - 0x414]
fstp dword [eax + 0x110]
push dword [edx + 0x168]
mov ecx, dword [edi + 0x154]
call fcn.004fb030
fadd dword [ebp - 0x43c]
mov eax, dword [ebp - 0x418]
mov edx, dword [ebp - 0x414]
fstp dword [eax + 0x114]
mov eax, dword [edi + 0x20c]
cmp eax, dword [edx + 0x17c]
jne 0x4a7114
cmp dword [0x62fab4], 0
jne 0x4a7114
mov ecx, dword [edi + 0x154]
movq xmm0, qword [edx + 0x114]
movq qword [ecx + 0x188], xmm0
mov eax, dword [edx + 0x11c]
mov dword [ecx + 0x190], eax
mov eax, dword [edi + 0x154]
mov dword [eax + 0x194], 0
push dword [edx + 0x168]
mov ecx, dword [edi + 0x154]
push dword [edx + 0x164]
call fcn.004f8530
mov eax, dword [ebp - 0x414]
mov ecx, edi
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004aa850
mov edx, dword [ebp - 0x414]
mov ecx, dword [edi + 0x18]
push edx
call fcn.0044dfd0
mov edx, dword [ebp - 0x414]
cmp byte [esi + 5], 1
jne 0x4a7149
cmp byte [esi], 0x19
jne 0x4a7149
movss xmm0, dword [esi + 0x11]
movzx eax, byte [esi + 0xf]
push ecx
movss dword [esp], xmm0
mov ecx, edx
push eax
movzx eax, byte [esi + 0xe]
push eax
movzx eax, byte [esi + 0xd]
push eax
movzx eax, byte [esi + 0x10]
push eax
lea eax, [esi + 0x15]
push eax
call fcn.004ae5e0
mov dword [ebp - 0x41c], 1
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov edx, eax
mov dword [ebp - 0x414], eax
test edx, edx
jne 0x4a6e90
cmp dword [ebp - 0x41c], eax
jne case.0x4a62d2.8
push 0x4d8
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x420], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x4a71a5
push 0x5d8184
push 0
mov ecx, eax
call fcn.004ae260
jmp 0x4a71a7
xor eax, eax
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x414], eax
mov dword [ebp - 4], 0xffffffff
call fcn.0044de70
mov edx, dword [ebp - 0x414]
movzx eax, byte [esi + 5]
mov dword [edx + 0x160], eax
cmp eax, 0x17
jb 0x4a71dc
movzx eax, byte [esi + 5]
mov dword [edx + 0x160], eax
mov al, byte [esi + 5]
cmp al, 1
jne 0x4a7253
movzx eax, word [esi + 8]
mov ecx, edx
push eax
movzx eax, word [esi + 6]
push eax
call fcn.004ae8d0
mov eax, dword [0x62faa8]
cmp eax, 1
je 0x4a7203
cmp eax, 3
jne 0x4a7215
mov edx, dword [ebp - 0x414]
movzx eax, byte [esi + 0xa]
mov dword [edx + 0x188], eax
jmp 0x4a721b
mov edx, dword [ebp - 0x414]
cmp byte [esi], 0x19
jne 0x4a7399
movss xmm0, dword [esi + 0x11]
movzx eax, byte [esi + 0xf]
push ecx
movss dword [esp], xmm0
mov ecx, edx
push eax
movzx eax, byte [esi + 0xe]
push eax
movzx eax, byte [esi + 0xd]
push eax
movzx eax, byte [esi + 0x10]
push eax
lea eax, [esi + 0x15]
push eax
call fcn.004ae5e0
jmp 0x4a7393
cmp al, 5
jne 0x4a7285
movzx eax, word [esi + 6]
mov dword [edx + 0x180], eax
lea eax, [eax + eax*2]
lea eax, [eax*4 + str.BEAR]
push eax
lea eax, [edx + 0x1b0]
push str.GREAT_TREE_OF_THE__s
push eax
call fcn.0043d380
add esp, 0xc
jmp 0x4a7393
cmp al, 0xd
je 0x4a737f
cmp al, 6
jne 0x4a729b
push str.Items
jmp 0x4a7384
cmp al, 7
jne 0x4a730b
lea eax, [edx + 0x1b0]
push 0x5d2ad4
push eax
call fcn.0043d380
mov ecx, dword [edi + 0x1c]
add esp, 8
call fcn.0044e020
mov edx, eax
test edx, edx
je 0x4a72f1
movzx ecx, byte [esi + 0xb]
cmp dword [edx + 0x164], ecx
jne 0x4a72e3
movzx eax, byte [esi + 0xc]
cmp dword [edx + 0x168], eax
jne 0x4a72e3
mov dword [edx + 0x160], 1
mov ecx, dword [edi + 0x1c]
call fcn.0044e0d0
mov edx, eax
test edx, edx
jne 0x4a72c1
movzx eax, byte [esi + 0xc]
mov ecx, dword [edi + 0x154]
push eax
movzx eax, byte [esi + 0xb]
push eax
call fcn.004f7ca0
jmp 0x4a7393
cmp al, 8
je 0x4a737f
cmp al, 0xc
je 0x4a737f
cmp al, 0xe
jne 0x4a733d
lea eax, [edx + 0x1b0]
push 0x5d2ad4
push eax
call fcn.0043d380
mov edx, dword [ebp - 0x414]
add esp, 8
movzx eax, word [esi + 8]
mov dword [edx + 0x184], eax
jmp 0x4a7399
cmp al, 3
jne 0x4a7348
push str.Trainer
jmp 0x4a7384
cmp al, 4
jne 0x4a7353
push str.Town_Mage
jmp 0x4a7384
cmp al, 0x10
jne 0x4a735e
push str.Witch
jmp 0x4a7384
cmp al, 0x16
jne 0x4a7369
push str.Mall_Director
jmp 0x4a7384
cmp al, 0x15
jne 0x4a7378
cmp byte [esi], 0x19
jne 0x4a7399
lea eax, [esi + 0x15]
push eax
jmp 0x4a7384
push str.Merchant
jmp 0x4a7384
push 0x5d2ad4
lea eax, [edx + 0x1b0]
push eax
call fcn.0043d380
add esp, 8
mov edx, dword [ebp - 0x414]
mov al, byte [esi + 5]
cmp al, 6
je 0x4a7609
cmp al, 0xd
je 0x4a7609
cmp al, 0xe
je 0x4a7609
cmp al, 7
je 0x4a7609
mov ecx, dword [edi + 4]
push edx
call fcn.004f42a0
mov ecx, dword [ebp - 0x414]
push ecx
push eax
mov dword [ecx + 0x170], eax
mov ecx, dword [edi + 4]
call fcn.004f4280
movzx edx, byte [esi + 0xb]
mov dword [ebp - 0x420], eax
mov eax, dword [ebp - 0x414]
mov dword [eax + 0x164], edx
movzx ecx, byte [esi + 0xc]
mov dword [eax + 0x168], ecx
xor eax, eax
cmp byte [esi + 5], 5
sete al
push eax
push ecx
mov ecx, dword [edi + 0x154]
push edx
call fcn.004fa720
mov ecx, eax
mov eax, dword [ebp - 0x414]
mov dword [ebp - 0x41c], ecx
mov edx, dword [eax + 0x164]
cmp ecx, 0xffffffff
jne 0x4a7459
mov ecx, dword [edi + 0x154]
push edx
call fcn.004faf20
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb030
jmp 0x4a74e0
push 1
push ecx
push dword [eax + 0x168]
mov ecx, dword [edi + 0x154]
push edx
call fcn.004f7c70
mov ecx, dword [edi + 0x154]
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebp - 0x438]
push eax
push dword [ebp - 0x41c]
call fcn.004fa820
mov eax, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x41c]
push dword [eax + 0x164]
mov dword [eax + 0x16c], ecx
mov ecx, dword [edi + 0x154]
call fcn.004faf20
fadd dword [ebp - 0x438]
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb030
fadd dword [ebp - 0x43c]
mov ecx, dword [ebp - 0x414]
fstp dword [ebp - 0x41c]
movss xmm0, dword [ebp - 0x41c]
movss dword [ecx + 0x11c], xmm0
call fcn.00568dab
sub esp, 8
mov ecx, edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp - 0x414]
mov dword [eax + 0x10c], 0
mulss xmm0, dword [0x5d3070]
divss xmm0, dword [0x5d6e8c]
addss xmm0, dword [0x5d3044]
movss dword [eax + 0x108], xmm0
movss xmm0, dword [eax + 0x11c]
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + 0x114]
movss dword [esp], xmm0
call fcn.004aab90
mov ecx, dword [ebp - 0x420]
mov eax, dword [ebp - 0x414]
movss xmm0, dword [eax + 0x108]
fstp dword [eax + 0x118]
movss dword [ecx + 0x118], xmm0
movss dword [ecx + 0x11c], xmm0
mov dword [ecx + 0x120], 0x3e851eb8
mov dword [ecx + 0x124], 0x3e567750
movss xmm0, dword [ebp - 0x440]
movss dword [ecx + 0x118], xmm0
movss xmm0, dword [eax + 0x114]
movss dword [ecx + 0x110], xmm0
movss dword [ecx + 0x108], xmm0
movss xmm0, dword [eax + 0x11c]
movss dword [ecx + 0x114], xmm0
movss dword [ecx + 0x10c], xmm0
mov dword [ecx + 0x128], 0x3e99999a
cmp byte [esi + 5], 5
jne 0x4a75f5
mov dword [ecx + 0x128], 0x3f800000
mov ecx, dword [ebp - 0x414]
mov eax, dword [esi + 1]
mov dword [ecx + 0x17c], eax
jmp case.0x4a62d2.8
movzx ecx, byte [esi + 0xb]
mov dword [edx + 0x164], ecx
movzx eax, byte [esi + 0xc]
mov dword [edx + 0x168], eax
push ecx
mov ecx, dword [edi + 0x154]
call fcn.004faf20
mov ecx, dword [edi + 0x154]
fstp dword [ebp - 0x420]
call fcn.004f7c60
fmul dword [0x5d3bb4]
mov eax, dword [ebp - 0x414]
fadd dword [ebp - 0x420]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb030
mov ecx, dword [edi + 0x154]
fstp dword [ebp - 0x420]
call fcn.004f7c60
fmul dword [0x5d3bb4]
sub esp, 8
mov eax, dword [ebp - 0x414]
mov ecx, edi
fadd dword [ebp - 0x420]
mov dword [eax + 0x108], 0
mov dword [eax + 0x10c], 0
fstp dword [ebp - 0x420]
movss xmm0, dword [ebp - 0x420]
movss dword [esp + 4], xmm0
movss dword [eax + 0x11c], xmm0
movss xmm0, dword [eax + 0x114]
movss dword [esp], xmm0
call fcn.004aab90
mov ecx, dword [ebp - 0x414]
fstp dword [ecx + 0x118]
mov eax, dword [esi + 1]
mov dword [ecx + 0x17c], eax
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov dword [ebp - 0x424], eax
test eax, eax
je case.0x4a62d2.8
nop dword [eax]
cmp dword [eax + 0x178], 0xffffffff
jne 0x4a7797
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x4a7797
mov ecx, dword [edi + 0x18]
push eax
call fcn.0044e210
mov ecx, dword [ebp - 0x424]
mov eax, dword [ecx + 0x160]
cmp eax, 6
je 0x4a7787
cmp eax, 0xa
je 0x4a7787
cmp eax, 0x11
je 0x4a7787
cmp eax, 0xd
je 0x4a7787
cmp eax, 0xe
je 0x4a7787
cmp eax, 7
je 0x4a7787
push dword [ecx + 0x16c]
push dword [ecx + 0x168]
push dword [ecx + 0x164]
mov ecx, dword [edi + 0x154]
call fcn.004fb940
mov eax, dword [ebp - 0x424]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.004f4260
mov ecx, dword [ebp - 0x424]
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044e020
jmp 0x4a779f
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov dword [ebp - 0x424], eax
test eax, eax
jne 0x4a7700
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x418], eax
call fcn.0044e020
test eax, eax
je 0x4a780f
mov edx, 1
nop dword [eax + eax]
cmp dword [eax + 0x178], 0xffffffff
jne 0x4a77f1
mov eax, dword [eax + 0x17c]
mov ecx, dword [ebp - 0x418]
cmp eax, dword [esi + 1]
cmove ecx, edx
mov dword [ebp - 0x418], ecx
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov edx, 1
test eax, eax
jne 0x4a77d0
cmp dword [ebp - 0x418], 0
jne case.0x4a62d2.8
push 0x4d8
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x420], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x4a783d
push 0x5d8184
push 0
mov ecx, eax
call fcn.004ae260
jmp 0x4a783f
xor eax, eax
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x414], eax
mov dword [ebp - 4], 0xffffffff
call fcn.0044de70
mov eax, dword [ebp - 0x414]
push 0x5d2ad4
mov dword [eax + 0x160], 0x11
add eax, 0x1b0
push eax
call fcn.0043d380
mov edx, dword [ebp - 0x414]
add esp, 8
movzx ecx, byte [esi + 9]
mov dword [edx + 0x164], ecx
movzx eax, byte [esi + 0xa]
mov dword [edx + 0x168], eax
push ecx
mov ecx, dword [edi + 0x154]
call fcn.004faf20
mov ecx, dword [edi + 0x154]
fstp dword [ebp - 0x420]
call fcn.004f7c60
fmul dword [0x5d3bb4]
mov eax, dword [ebp - 0x414]
fadd dword [ebp - 0x420]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb030
mov ecx, dword [edi + 0x154]
fstp dword [ebp - 0x420]
call fcn.004f7c60
fmul dword [0x5d3bb4]
sub esp, 8
mov eax, dword [ebp - 0x414]
mov ecx, edi
fadd dword [ebp - 0x420]
mov dword [eax + 0x108], 0
mov dword [eax + 0x10c], 0
movss xmm0, dword [eax + 0x114]
fstp dword [ebp - 0x420]
movss xmm1, dword [ebp - 0x420]
movss dword [esp + 4], xmm1
movss dword [eax + 0x11c], xmm1
movss dword [esp], xmm0
call fcn.004aab90
mov edi, dword [ebp - 0x414]
movss xmm2, dword [0x5d8728]
fstp dword [edi + 0x118]
mov eax, dword [esi + 1]
mov dword [edi + 0x17c], eax
movzx eax, byte [esi + 6]
movzx ecx, byte [esi + 7]
or eax, 0x3700
movzx edx, byte [esi + 8]
mov dword [ebp - 0x420], eax
shl eax, 8
or ecx, eax
mov eax, ecx
shl eax, 8
or edx, eax
movzx eax, cl
movd xmm4, eax
movzx eax, dl
shr edx, 0x18
cvtdq2ps xmm4, xmm4
movd xmm3, eax
mov eax, dword [ebp - 0x420]
movzx eax, al
movd xmm1, edx
cvtdq2ps xmm3, xmm3
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm2
mulss xmm4, xmm2
movss dword [edi + 0x224], xmm0
mulss xmm3, xmm2
mulss xmm1, xmm2
movss dword [edi + 0x228], xmm4
movss dword [edi + 0x22c], xmm3
movss dword [edi + 0x230], xmm1
movzx eax, byte [esi + 5]
mov dword [edi + 0x234], eax
mov eax, dword [esi + 0xb]
mov dword [edi + 0x238], eax
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov edx, eax
mov dword [ebp - 0x418], edx
test edx, edx
je case.0x4a62d2.8
movzx ecx, byte [esi + 5]
cmp ecx, dword [edx + 0x160]
jne 0x4a7ac5
mov eax, dword [edx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x4a7ac5
mov ecx, dword [edi + 0x18]
push edx
call fcn.0044e210
mov eax, dword [ebp - 0x418]
sub esp, 0xc
movq xmm0, qword [eax + 0x114]
mov ecx, dword [eax + 0x11c]
mov eax, esp
movq qword [ebp - 0x434], xmm0
movss xmm0, dword [ebp - 0x430]
addss xmm0, dword [0x5d6db4]
movss dword [ebp - 0x430], xmm0
movq xmm0, qword [ebp - 0x434]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x62fa70]
call fcn.00519770
movaps xmm0, xmmword [0x5d87f0]
sub esp, 0x10
mov ecx, dword [0x62fa70]
mov eax, esp
push 0x3c
movups xmmword [eax], xmm0
call fcn.00519390
mov ecx, dword [ebp - 0x418]
push 1
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov edx, eax
mov dword [ebp - 0x418], edx
jmp 0x4a7ad5
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov edx, eax
mov dword [ebp - 0x418], eax
test edx, edx
jne 0x4a7a10
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov ecx, eax
mov dword [ebp - 0x414], ecx
test ecx, ecx
je case.0x4a62d2.8
nop word [eax + eax]
cmp dword [ecx + 0x178], 0xffffffff
jne 0x4a7c88
mov eax, dword [ecx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x4a7c88
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.004f4280
mov ecx, dword [edi + 0x154]
mov dword [ebp - 0x418], eax
mov eax, dword [ebp - 0x414]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004fb940
mov edx, dword [ebp - 0x414]
movzx ecx, byte [esi + 7]
push 0
mov dword [edx + 0x164], ecx
movzx eax, byte [esi + 8]
push eax
mov dword [edx + 0x168], eax
push ecx
mov ecx, dword [edi + 0x154]
call fcn.004fa720
mov ecx, dword [edi + 0x154]
mov dword [ebp - 0x41c], eax
cmp eax, 0xffffffff
jne 0x4a7bc5
movzx eax, byte [esi + 7]
push eax
call fcn.004faf20
mov eax, dword [ebp - 0x418]
fstp dword [eax + 0x110]
movzx eax, byte [esi + 8]
mov ecx, dword [edi + 0x154]
push eax
call fcn.004fb030
mov eax, dword [ebp - 0x418]
fstp dword [eax + 0x114]
jmp 0x4a7c6b
push 1
push eax
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004f7c70
mov ecx, dword [edi + 0x154]
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebp - 0x438]
push eax
push dword [ebp - 0x41c]
call fcn.004fa820
mov eax, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x41c]
mov dword [eax + 0x16c], ecx
movzx eax, byte [esi + 7]
mov ecx, dword [edi + 0x154]
push eax
call fcn.004faf20
fadd dword [ebp - 0x438]
mov eax, dword [ebp - 0x418]
fstp dword [eax + 0x110]
movzx eax, byte [esi + 8]
mov ecx, dword [edi + 0x154]
push eax
call fcn.004fb030
fadd dword [ebp - 0x43c]
mov eax, dword [ebp - 0x418]
fstp dword [eax + 0x114]
movss xmm0, dword [ebp - 0x440]
movss dword [eax + 0x118], xmm0
cmp byte [esi], 0x1c
jne 0x4a7c88
cmp dword [esi + 9], 1
jne 0x4a7c88
mov eax, dword [ebp - 0x414]
mov eax, dword [eax + 0x17c]
mov dword [edi + 0x20c], eax
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov ecx, eax
mov dword [ebp - 0x414], eax
test ecx, ecx
jne 0x4a7b00
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
test eax, eax
je case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
test eax, eax
jne 0x4a7cb5
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov dword [ebp - 0x418], eax
test eax, eax
je case.0x4a62d2.8
movss xmm0, dword [0x5d8728]
movss dword [ebp - 0x420], xmm0
nop dword [eax]
mov eax, dword [eax + 0x178]
cmp eax, 0xffffffff
jle 0x4a836e
mov ecx, dword [esi + 9]
cmp eax, ecx
jne 0x4a836e
mov eax, dword [edi + 8]
cmp dword [eax + 0x178], ecx
jne 0x4a7d1e
mov eax, dword [esi + 5]
mov dword [edi + 0x27c], eax
mov edi, dword [ebp - 0x418]
mov ecx, dword [edi + 0x26c]
test ecx, ecx
je 0x4a7d34
mov eax, dword [ecx]
push 1
call dword [eax]
push 0x174
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x428], eax
mov dword [ebp - 4], 4
test eax, eax
je 0x4a7d5d
mov ecx, eax
call fcn.0045e250
mov ecx, eax
jmp 0x4a7d5f
xor ecx, ecx
mov dword [edi + 0x26c], ecx
mov dword [edi + 0x2f4], 0
mov dword [edi + 0x2f8], 0
mov dword [edi + 0x2fc], 0
mov dword [edi + 0x300], 0
mov dword [edi + 0x304], 0
mov dword [edi + 0x308], 0
mov dword [edi + 0x30c], 0
mov dword [edi + 0x310], 0
mov dword [edi + 0x314], 0
mov dword [edi + 0x318], 0
mov dword [edi + 0x31c], 0
mov dword [edi + 0x320], 0
movzx eax, byte [esi + 0x19]
mov dword [edi + 0x270], eax
mov al, byte [esi + 0x19]
mov dword [ebp - 4], 0xffffffff
cmp al, 0x80
jb 0x4a7eb9
mov eax, dword [0x62f318]
push str.dat_staff.ase
push dword [eax + 0x2a3d8]
call fcn.0045fb40
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x26c]
push 0
push str.dat_staff.png
push dword [eax + 0x2a3d8]
call fcn.004605a0
movzx eax, byte [esi + 0x1a]
movzx ecx, byte [esi + 0x1b]
or eax, 0x3700
movzx edx, byte [esi + 0x1c]
mov dword [ebp - 0x41c], eax
shl eax, 8
or ecx, eax
movss xmm4, dword [ebp - 0x420]
mov eax, ecx
shl eax, 8
or edx, eax
movzx eax, cl
movd xmm3, eax
movzx eax, dl
shr edx, 0x18
cvtdq2ps xmm3, xmm3
movd xmm2, eax
mov eax, dword [ebp - 0x41c]
movzx eax, al
movd xmm1, edx
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm4
mulss xmm3, xmm4
mulss xmm2, xmm4
mulss xmm1, xmm4
movss dword [edi + 0x28c], xmm0
movss dword [edi + 0x290], xmm3
movss dword [edi + 0x294], xmm2
movss dword [edi + 0x298], xmm1
jmp 0x4a7fbd
cmp al, 1
jne 0x4a7ede
mov eax, dword [0x62f318]
push str.datkatana.ase
push dword [eax + 0x2a3d8]
call fcn.0045fb40
push 0
push str.datkatana.png
jmp 0x4a7fa7
cmp al, 4
jne 0x4a7f03
mov eax, dword [0x62f318]
push str.datclaws.ASE
push dword [eax + 0x2a3d8]
call fcn.0045fb40
push 0
push str.datclaws.png
jmp 0x4a7fa7
cmp al, 3
jne 0x4a7f28
mov eax, dword [0x62f318]
push str.datchaosBlade.ASE
push dword [eax + 0x2a3d8]
call fcn.0045fb40
push 0
push str.datchaosBlade.png
jmp 0x4a7fa7
cmp al, 5
jne 0x4a7f4a
mov eax, dword [0x62f318]
push str.dat_bladeStaff.ASE
push dword [eax + 0x2a3d8]
call fcn.0045fb40
push 0
push str.dat_bladeStaff.png
jmp 0x4a7fa7
cmp al, 2
jne 0x4a7f6c
mov eax, dword [0x62f318]
push str.datmace.ASE
push dword [eax + 0x2a3d8]
call fcn.0045fb40
push 0
push str.datmace.png
jmp 0x4a7fa7
sub al, 6
cmp al, 0x79
mov eax, dword [0x62f318]
ja 0x4a7f90
push str.dat_scythe.ASE
push dword [eax + 0x2a3d8]
call fcn.0045fb40
push 0
push str.dat_scythe.png
jmp 0x4a7fa7
push str.dat_blade.ase
push dword [eax + 0x2a3d8]
call fcn.0045fb40
push 0
push str.dat_bladeMetal.png
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x26c]
push dword [eax + 0x2a3d8]
call fcn.004605a0
movss xmm0, dword [esi + 1]
sub esp, 0xc
mulss xmm0, dword [0x5d8724]
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x26c]
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
push dword [eax + 0x2a3d8]
call fcn.00461430
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x26c]
push dword [eax + 0x2a3d8]
call fcn.00460a80
movzx eax, byte [esi + 0x1c]
mov ecx, dword [edi + 0x26c]
push 0xff
push eax
movzx eax, byte [esi + 0x1b]
push eax
movzx eax, byte [esi + 0x1a]
push eax
call fcn.004614b0
mov eax, dword [esi + 1]
mov ecx, dword [ebp - 0x418]
mov dword [edi + 0x2f0], eax
movzx edi, word [esi + 0x11]
mov eax, dword [ebp - 0x424]
mov dword [ecx + 0x274], edi
movzx esi, word [esi + 0x15]
mov dword [ecx + 0x280], esi
movzx edx, word [eax + 0x13]
mov dword [ebp - 0x41c], edi
mov edi, dword [ebp - 0x418]
mov dword [ecx + 0x27c], edx
movzx ecx, word [eax + 0xf]
mov dword [edi + 0x278], ecx
movzx eax, word [eax + 0xd]
mov dword [edi + 0x284], eax
add eax, ecx
mov ecx, edi
add eax, edx
add eax, esi
mov esi, dword [ebp - 0x424]
add eax, dword [ebp - 0x41c]
mov dword [ecx + 0x288], eax
mov dword [ecx + 0x2ac], 0
mov dword [ecx + 0x2b0], 0
mov dword [ecx + 0x2b4], 0x3f800000
mov dword [ecx + 0x2b8], 0x3e5cdcde
mov dword [ecx + 0x2bc], 0x3f800000
mov dword [ecx + 0x2c0], 0x3f800000
mov dword [ecx + 0x2c4], 0x3f800000
mov dword [ecx + 0x2c8], 0x3e5cdcde
mov dword [ecx + 0x28c], 0x3f800000
mov dword [ecx + 0x290], 0
mov dword [ecx + 0x294], 0
mov dword [ecx + 0x298], 0x3e5cdcde
mov dword [ecx + 0x29c], 0
mov dword [ecx + 0x2a0], 0x3f800000
mov dword [ecx + 0x2a4], 0
mov dword [ecx + 0x2a8], 0x3e5cdcde
mov dword [ecx + 0x2cc], 0x3efafafc
mov dword [ecx + 0x2d0], 0x3e828283
mov dword [ecx + 0x2d4], 0x3efafafc
mov dword [ecx + 0x2d8], 0x3e5cdcde
movzx eax, word [esi + 0x17]
add eax, 0xffffffe7
cmp eax, 8
ja case.default.0x4a816e
jmp dword [eax*4 + 0x4aa808]
mov dword [ecx + 0x2dc], 0x3f800000
mov dword [ecx + 0x2e0], 0x3f800000
mov dword [ecx + 0x2e4], 0x3f800000
mov dword [ecx + 0x2e8], 0x3e5cdcde
mov dword [ecx + 0x2ec], 1
jmp 0x4a8368
mov dword [ecx + 0x2dc], 0x3f800000
mov dword [ecx + 0x2e0], 0
mov dword [ecx + 0x2e4], 0
mov dword [ecx + 0x2e8], 0x3e5cdcde
mov dword [ecx + 0x2ec], 1
jmp 0x4a8368
mov dword [ecx + 0x2dc], 0
mov dword [ecx + 0x2e0], 0
mov dword [ecx + 0x2e4], 0x3f800000
mov dword [ecx + 0x2e8], 0x3e5cdcde
mov dword [ecx + 0x2ec], 1
jmp 0x4a8368
mov dword [ecx + 0x2dc], 0
mov dword [ecx + 0x2e0], 0x3f800000
mov dword [ecx + 0x2e4], 0
mov dword [ecx + 0x2e8], 0x3e5cdcde
mov dword [ecx + 0x2ec], 1
jmp 0x4a8368
mov dword [ecx + 0x2dc], 0
mov dword [ecx + 0x2e0], 0x3f800000
mov dword [ecx + 0x2e4], 0x3f800000
mov dword [ecx + 0x2e8], 0x3e5cdcde
mov dword [ecx + 0x2ec], 1
jmp 0x4a8368
mov dword [ecx + 0x2dc], 0x3f800000
mov dword [ecx + 0x2e0], 0
mov dword [ecx + 0x2e4], 0x3f800000
mov dword [ecx + 0x2e8], 0x3e5cdcde
mov dword [ecx + 0x2ec], 1
jmp 0x4a8368
mov dword [ecx + 0x2dc], 0x3f800000
mov dword [ecx + 0x2e0], 0x3f800000
mov dword [ecx + 0x2e4], 0
mov dword [ecx + 0x2e8], 0x3e5cdcde
mov dword [ecx + 0x2ec], 1
jmp 0x4a8368
mov dword [ecx + 0x2dc], 0x3f800000
mov dword [ecx + 0x2e0], 0x3f008081
mov dword [ecx + 0x2e4], 0
mov dword [ecx + 0x2e8], 0x3e5cdcde
mov dword [ecx + 0x2ec], 1
jmp 0x4a8368
mov dword [ecx + 0x2dc], 0x3f800000
mov dword [ecx + 0x2e0], 0x3f1b9b9c
mov dword [ecx + 0x2e4], 0x3f1b9b9c
mov dword [ecx + 0x2e8], 0x3e5cdcde
mov dword [ecx + 0x2ec], 1
jmp 0x4a8368
mov dword [ecx + 0x2ec], 0
mov edi, dword [ebp - 0x414]
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov dword [ebp - 0x418], eax
test eax, eax
jne 0x4a7cf0
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov ecx, eax
mov dword [ebp - 0x41c], ecx
test ecx, ecx
je case.0x4a62d2.8
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4a83ea
mov edx, dword [esi + 1]
cmp eax, edx
jne 0x4a83ea
mov eax, dword [edi + 8]
cmp dword [eax + 0x178], edx
jne 0x4a83c8
mov dword [edi + 0x27c], 0
mov edx, dword [ecx + 0x26c]
test edx, edx
je 0x4a83e0
mov eax, dword [edx]
mov ecx, edx
push 1
call dword [eax]
mov ecx, dword [ebp - 0x41c]
mov dword [ecx + 0x26c], 0
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov ecx, eax
mov dword [ebp - 0x41c], eax
test ecx, ecx
jne 0x4a83a1
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x418], eax
call fcn.0044e020
mov ecx, eax
mov dword [ebp - 0x41c], ecx
test ecx, ecx
je case.0x4a62d2.8
nop dword [eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4a8489
cmp eax, dword [esi + 1]
jne 0x4a84a1
call fcn.00568dab
and eax, reloc.WS2_32.dll_accept
jns 0x4a8451
dec eax
or eax, 0xfffffffe
inc eax
mov ecx, dword [ebp - 0x41c]
inc eax
mov dword [ebp - 0x418], ecx
mov dword [ecx + 0x19c], eax
mov dword [ecx + 0x190], 0
mov eax, dword [esi + 0xd]
cmp eax, 0xfffffc18
je 0x4a84a1
mov dword [ecx + 0x210], eax
mov eax, dword [esi + 0x11]
mov dword [ecx + 0x214], eax
jmp 0x4a84a1
mov eax, dword [ecx + 0x17c]
mov edx, dword [ebp - 0x424]
cmp eax, dword [esi + 5]
cmove edx, ecx
mov dword [ebp - 0x424], edx
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov ecx, eax
mov dword [ebp - 0x41c], eax
test ecx, ecx
jne 0x4a8430
mov ecx, dword [ebp - 0x418]
test ecx, ecx
je case.0x4a62d2.8
mov eax, dword [ebp - 0x424]
test eax, eax
je case.0x4a62d2.8
mov edx, dword [esi + 9]
cmp edx, 0xffffffff
jne 0x4a8519
test byte [0x630d04], 2
je 0x4a8574
add eax, 0x1b0
push eax
lea eax, [ecx + 0x1b0]
push eax
push str._s_misses_the__s.
lea eax, [ebp - 0x410]
push eax
call fcn.0043d380
lea eax, [ebp - 0x410]
push eax
call fcn.00500720
add esp, 0x14
jmp 0x4a856e
cmp dword [esi + 0x15], 0
jne 0x4a8537
test byte [0x630d04], 1
je 0x4a8574
push edx
lea eax, [ecx + 0x1b0]
push eax
push str._s_uses_her_staff_for__d_damage.
jmp 0x4a84fc
test byte [0x630d04], 1
je 0x4a8574
push edx
add eax, 0x1b0
push eax
lea eax, [ecx + 0x1b0]
push eax
lea eax, [ebp - 0x410]
push str._s_hits_the__s_for__d_damage.
push eax
call fcn.0043d380
lea eax, [ebp - 0x410]
push eax
call fcn.00500720
add esp, 0x18
mov ecx, dword [ebp - 0x418]
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.004f4280
mov esi, eax
mov eax, dword [ebp - 0x424]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.004f4280
sub esp, 0x18
movss xmm0, dword [eax + 0x10c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
movss dword [esp + 0xc], xmm0
movss xmm0, dword [eax + 0x108]
movss dword [esp + 8], xmm0
movss xmm0, dword [esi + 0x10c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x108]
movss dword [esp], xmm0
call fcn.0044d980
fstp dword [esi + 0x118]
add esp, 0x18
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
test eax, eax
je case.0x4a62d2.8
cmp dword [eax + 0x178], 0xffffffff
jg 0x4a862f
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x4a862f
mov dword [eax + 0x1a4], 1
mov dword [eax + 0x190], 0
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
test eax, eax
jne 0x4a8607
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x414], eax
mov dword [ebp - 0x418], eax
call fcn.0044e020
test eax, eax
je case.0x4a62d2.8
nop
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
jle 0x4a8678
cmp ecx, dword [esi + 5]
jne 0x4a86b1
mov dword [ebp - 0x414], eax
jmp 0x4a86b1
mov edx, dword [eax + 0x17c]
cmp edx, dword [esi + 1]
jne 0x4a869f
mov dword [eax + 0x19c], 1
mov dword [eax + 0x190], 0
mov dword [ebp - 0x418], eax
jmp 0x4a86b1
mov ecx, dword [ebp - 0x414]
cmp edx, dword [esi + 5]
cmove ecx, eax
mov dword [ebp - 0x414], ecx
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
test eax, eax
jne 0x4a8660
mov ecx, dword [ebp - 0x418]
test ecx, ecx
je case.0x4a62d2.8
mov edx, dword [ebp - 0x414]
test edx, edx
je case.0x4a62d2.8
mov eax, dword [esi + 9]
cmp eax, 0xffffffff
jne 0x4a8721
test byte [0x630d04], 2
je 0x4a87c9
lea eax, [edx + 0x1b0]
push eax
lea eax, [ecx + 0x1b0]
push eax
lea eax, [ebp - 0x410]
push str.The__s_misses__s.
push eax
call fcn.0043d380
lea eax, [ebp - 0x410]
push eax
call fcn.00500720
add esp, 0x14
jmp 0x4a87c3
test byte [0x630d04], 1
je 0x4a875f
push eax
lea eax, [edx + 0x1b0]
push eax
lea eax, [ecx + 0x1b0]
push eax
lea eax, [ebp - 0x410]
push str.The__s_hits__s_for__d_damage.
push eax
call fcn.0043d380
lea eax, [ebp - 0x410]
push eax
call fcn.00500720
mov edx, dword [ebp - 0x414]
add esp, 0x18
mov ecx, dword [edi + 8]
cmp edx, ecx
jne 0x4a878b
mov eax, dword [esi + 9]
sub dword [ecx + 0x210], eax
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x210]
mov dword [0x630cbc], eax
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x214]
mov dword [0x630cc0], eax
movq xmm0, qword [edx + 0x114]
sub esp, 0x10
mov eax, dword [edx + 0x11c]
mov ecx, esp
mov dword [esp + 0xc], 0x42480000
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x574]
call fcn.00462850
mov ecx, dword [edi + 0x574]
call fcn.00462730
mov ecx, dword [ebp - 0x418]
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.004f4280
mov esi, eax
mov eax, dword [ebp - 0x414]
jmp 0x4a858b
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x41c], eax
call fcn.0044e020
test eax, eax
je case.0x4a62d2.8
nop dword [eax]
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x4a8825
mov dword [eax + 0x1a0], 1
mov dword [eax + 0x190], 0
mov dword [ebp - 0x41c], eax
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
test eax, eax
jne 0x4a8800
mov eax, dword [ebp - 0x41c]
test eax, eax
je case.0x4a62d2.8
test byte [0x630d04], 2
je case.0x4a62d2.8
add eax, 0x1b0
push eax
lea eax, [ebp - 0x410]
push str.The__s_attacks_everyone_
push eax
call fcn.0043d380
lea eax, [ebp - 0x410]
push eax
call fcn.00500720
add esp, 0x10
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov edx, eax
test edx, edx
je case.0x4a62d2.8
nop dword [eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x4a88ae
mov eax, dword [esi + 5]
mov dword [edx + 0x1ac], eax
mov dword [edx + 0x190], 0
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov edx, eax
test edx, edx
jne 0x4a8890
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov dword [ebp - 0x418], eax
test eax, eax
je case.0x4a62d2.8
nop word [eax + eax]
mov ecx, dword [eax + 0x178]
cmp ecx, dword [esi + 1]
jne 0x4a8973
mov ecx, dword [edi + 0x18]
push eax
call fcn.0044e210
mov eax, dword [ebp - 0x418]
mov ecx, dword [edi + 0x154]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004fb940
mov eax, dword [ebp - 0x418]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.004f4260
mov eax, dword [ebp - 0x418]
add eax, 0x1b0
push eax
lea eax, [ebp - 0x410]
push str._s_is_defeated_
push eax
call fcn.0043d380
lea eax, [ebp - 0x410]
push eax
call fcn.00500720
mov ecx, dword [ebp - 0x418]
add esp, 0x10
cmp dword [edi + 8], ecx
jne 0x4a896d
mov eax, dword [edi + 0xc]
mov dword [edi + 8], eax
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov dword [ebp - 0x418], eax
test eax, eax
jne 0x4a88e0
jmp case.0x4a62d2.8
and dword [0x62f148], 0xfffffffe
call fcn.004f1e10
mov eax, dword [esi + 3]
mov ecx, dword [edi + 0x18]
mov dword [edi + 0x754], eax
mov eax, dword [esi + 7]
mov dword [edi + 0x758], eax
mov dword [edi + 0x284], 0
mov dword [edi + 0x280], 0
mov dword [edi + 0x28c], 0
call fcn.0044e020
test eax, eax
je 0x4a8a3b
mov esi, eax
mov ecx, dword [edi + 0x18]
cmp esi, dword [edi + 8]
je 0x4a8a2a
push esi
call fcn.0044e210
mov eax, dword [esi + 0x16c]
cmp eax, 0xffffffff
jle 0x4a8a18
mov ecx, dword [edi + 0x154]
push eax
push dword [esi + 0x168]
push dword [esi + 0x164]
call fcn.004fb940
mov ecx, dword [edi + 4]
push esi
push dword [esi + 0x170]
call fcn.004f4260
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044e020
jmp 0x4a8a2f
call fcn.0044e0d0
mov esi, eax
test esi, esi
jne 0x4a89d8
mov esi, dword [ebp - 0x424]
call fcn.004f1e10
mov ecx, edi
call fcn.004a13a0
call fcn.004f1e10
mov cl, byte [esi + 2]
movsx eax, cl
mov dword [0x62faa8], eax
cmp eax, 1
je 0x4a938b
cmp cl, 3
je 0x4a938b
cmp cl, 4
jne 0x4a8dfb
push 0xfffffffffffffffe
lea ecx, [edi + 0x430]
call fcn.0046c2c0
call fcn.004f1e10
mov eax, dword [edi + 0x164]
add esi, 0xf
test eax, eax
je 0x4a8aa3
movsx ecx, byte [eax + 0x1c4]
movzx eax, byte [esi]
cmp eax, ecx
je 0x4a90f2
push str.delete_realm_ptr
mov ecx, 0x62f12c
call fcn.004480d0
push dword [edi + 0x164]
mov ecx, 0x62f12c
call fcn.00448040
push 0x5d3c78
mov ecx, 0x62f12c
call fcn.004480d0
mov ecx, dword [edi + 0x164]
test ecx, ecx
je 0x4a8aeb
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x164], 0
call fcn.004f1e10
movzx eax, byte [esi]
cmp eax, 6
ja case.0x4a8afc.0
jmp dword [eax*4 + 0x4aa82c]
push str.new_realm_object_for_the_dead_n
mov ecx, 0x62f12c
call fcn.004480d0
push 0x1d4
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x428], eax
mov dword [ebp - 4], 8
test eax, eax
je 0x4a8b3d
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00525e40
jmp 0x4a8b3f
xor eax, eax
push str.dat_realm_dead_sky.png
push str.dat_realm_dead_color.png
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x164], eax
call fcn.005276e0
call fcn.004f1e10
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x164]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_dead_height.png
call fcn.00526740
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x164]
push str.dat_realm_dead_color.png
push dword [eax + 0x2a3d8]
call fcn.00527de0
call fcn.004f1e10
mov ecx, dword [edi + 0x164]
push 1
call fcn.00526000
jmp 0x4a90f2
push str.new_realm_object_for_dragons_n
mov ecx, 0x62f12c
call fcn.004480d0
push 0x1d4
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x428], eax
mov dword [ebp - 4], 9
test eax, eax
je 0x4a8beb
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00525e40
jmp 0x4a8bed
xor eax, eax
push str.dat_realm_dragon_sky.png
push str.dat_realm_dragon_color.png
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x164], eax
call fcn.005276e0
call fcn.004f1e10
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x164]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_dragons_height.png
call fcn.00526740
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x164]
push str.dat_realm_dragon_color.png
push dword [eax + 0x2a3d8]
call fcn.00527de0
call fcn.004f1e10
mov ecx, dword [edi + 0x164]
push 2
call fcn.00526000
jmp 0x4a90f2
push str.test_realm_object_n
mov ecx, 0x62f12c
call fcn.004480d0
push 0x1d4
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x428], eax
mov dword [ebp - 4], 0xa
test eax, eax
je 0x4a8c99
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00525e40
jmp 0x4a8c9b
xor eax, eax
push str.dat_realm_dead_sky.png
push str.dat_test_texture.png
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x164], eax
call fcn.005276e0
call fcn.004f1e10
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x164]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_test_height.png
call fcn.00526740
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x164]
push str.dat_test_texture.png
push dword [eax + 0x2a3d8]
call fcn.00527de0
call fcn.004f1e10
mov ecx, dword [edi + 0x164]
push 6
call fcn.00526000
jmp 0x4a90f2
push str.new_realm_object_for_spirits_n
mov ecx, 0x62f12c
call fcn.004480d0
push 0x1d4
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x428], eax
mov dword [ebp - 4], 7
test eax, eax
je 0x4a8d47
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00525e40
jmp 0x4a8d49
xor eax, eax
push str.init___n
mov ecx, 0x62f12c
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x164], eax
call fcn.004480d0
mov ecx, dword [edi + 0x164]
push 0x5d83dc
push str.dat_realm_spirits_color.png
call fcn.005276e0
push str.generate___n
mov ecx, 0x62f12c
call fcn.004480d0
call fcn.004f1e10
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x164]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_spirits_height.png
call fcn.00526740
push str.loadTexture___n
mov ecx, 0x62f12c
call fcn.004480d0
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x164]
push 0x5d83dc
push dword [eax + 0x2a3d8]
call fcn.00527de0
push str.CreateSpiritStaticPositions___n
mov ecx, 0x62f12c
call fcn.004480d0
call fcn.004f1e10
mov ecx, dword [edi + 0x164]
push 0
call fcn.00526000
jmp 0x4a90f2
cmp cl, 2
jne 0x4a9119
push 0xfffffffffffffffd
lea ecx, [edi + 0x430]
call fcn.0046c2c0
call fcn.004f1e10
mov eax, dword [edi + 0x168]
add esi, 0xf
test eax, eax
je 0x4a8e35
movsx ecx, byte [eax + 0x1c4]
movzx eax, byte [esi]
cmp eax, ecx
je 0x4a90f2
push str.delete_labyrinth_ptr
mov ecx, 0x62f12c
call fcn.004480d0
push dword [edi + 0x168]
mov ecx, 0x62f12c
call fcn.00448040
push 0x5d3c78
mov ecx, 0x62f12c
call fcn.004480d0
mov ecx, dword [edi + 0x168]
test ecx, ecx
je 0x4a8e7d
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x168], 0
call fcn.004f1e10
movzx eax, byte [esi]
sub eax, 3
je 0x4a900e
sub eax, 1
je 0x4a8f57
sub eax, 1
jne 0x4a900e
push str.new_labyrinth_object_n
mov ecx, 0x62f12c
call fcn.004480d0
push 0x41d8
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x428], eax
mov dword [ebp - 4], 0xd
test eax, eax
je 0x4a8eda
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00510c30
jmp 0x4a8edc
xor eax, eax
push str.init___n
mov ecx, 0x62f12c
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x168], eax
call fcn.004480d0
mov ecx, dword [edi + 0x168]
push str.datlabyrinth3_ceiling.png
push str.datlabyrinth_color.png
call fcn.005129f0
push str.generate___n
mov ecx, 0x62f12c
call fcn.004480d0
call fcn.004f1e10
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth3_height.png
call fcn.005112b0
push str.loadTexture___n
mov ecx, 0x62f12c
call fcn.004480d0
push str.datlabyrinth3_floor.png
jmp 0x4a90bd
push str.new_labyrinth_object_n
mov ecx, 0x62f12c
call fcn.004480d0
push 0x41d8
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x428], eax
mov dword [ebp - 4], 0xc
test eax, eax
je 0x4a8f91
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00510c30
jmp 0x4a8f93
xor eax, eax
push str.init___n
mov ecx, 0x62f12c
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x168], eax
call fcn.004480d0
mov ecx, dword [edi + 0x168]
push str.datlabyrinth2_texture.png
push str.datlabyrinth_color.png
call fcn.005129f0
push str.generate___n
mov ecx, 0x62f12c
call fcn.004480d0
call fcn.004f1e10
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth2_height.png
call fcn.005112b0
push str.loadTexture___n
mov ecx, 0x62f12c
call fcn.004480d0
push str.datlabyrinth2_texture.png
jmp 0x4a90bd
push str.new_labyrinth_object_n
mov ecx, 0x62f12c
call fcn.004480d0
push 0x41d8
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x428], eax
mov dword [ebp - 4], 0xb
test eax, eax
je 0x4a9048
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00510c30
jmp 0x4a904a
xor eax, eax
push str.init___n
mov ecx, 0x62f12c
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x168], eax
call fcn.004480d0
mov ecx, dword [edi + 0x168]
push 0
push str.datlabyrinth_color.png
call fcn.005129f0
push str.generate___n
mov ecx, 0x62f12c
call fcn.004480d0
call fcn.004f1e10
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth_height.png
call fcn.005112b0
push str.loadTexture___n
mov ecx, 0x62f12c
call fcn.004480d0
push 0x5d85fc
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x168]
push dword [eax + 0x2a3d8]
call fcn.00512e50
push str.CreateStaticPositions___n
mov ecx, 0x62f12c
call fcn.004480d0
call fcn.004f1e10
mov ecx, dword [edi + 0x168]
call fcn.00510df0
movzx eax, byte [esi]
mov ecx, dword [edi + 0x164]
mov dword [edi + 0x2a0], eax
mov eax, dword [edi + 0x15c]
mov dword [eax + 0x10], ecx
mov dword [edi + 0x28c], 0
jmp case.0x4a62d2.8
test cl, cl
jne case.0x4a62d2.8
mov ecx, dword [edi + 0x154]
movzx eax, byte [esi + 0xf]
cmp eax, dword [ecx + 0x110]
je 0x4a9376
push eax
call fcn.004fb3b0
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x154]
push 0
push 0x100
push 0x100
push dword [eax + 0x2a3d8]
call fcn.004f8f90
mov eax, dword [0x62f318]
mov ecx, dword [edi + 0x154]
push str.datgrassfull.png
push dword [eax + 0x2a3d8]
call fcn.004fb840
mov ecx, dword [edi + 0x154]
call fcn.004f7d50
mov eax, dword [0x62fa94]
mov dword [ebp - 0x420], eax
test eax, eax
je 0x4a91ab
mov ecx, eax
call fcn.0052c280
push 0x24
push dword [ebp - 0x420]
call fcn.005596dc
add esp, 8
mov eax, dword [0x62fa98]
mov dword [ebp - 0x420], eax
test eax, eax
je 0x4a91d1
mov ecx, eax
call fcn.0052c280
push 0x24
push dword [ebp - 0x420]
call fcn.005596dc
add esp, 8
mov eax, dword [0x62fa9c]
mov dword [ebp - 0x420], eax
test eax, eax
je 0x4a91f7
mov ecx, eax
call fcn.0052c280
push 0x24
push dword [ebp - 0x420]
call fcn.005596dc
add esp, 8
mov eax, dword [0x62faa0]
mov dword [ebp - 0x420], eax
test eax, eax
je 0x4a921d
mov ecx, eax
call fcn.0052c280
push 0x24
push dword [ebp - 0x420]
call fcn.005596dc
add esp, 8
push 0x24
call fcn.005596ac
mov edx, eax
add esp, 4
mov dword [ebp - 0x428], edx
mov dword [ebp - 4], 0xe
test edx, edx
je 0x4a9267
push ecx
mov ecx, dword [0x61348c]
shl ecx, 5
add ecx, dword [0x61348c]
mov dword [esp], 0x3e4ccccd
push str.datgrass_bill_1.png
lea eax, [ecx*2 + 5]
mov ecx, edx
push eax
call fcn.0052c160
jmp 0x4a9269
xor eax, eax
push 0x24
mov dword [ebp - 4], 0xffffffff
mov dword [0x62fa94], eax
call fcn.005596ac
mov edx, eax
add esp, 4
mov dword [ebp - 0x428], edx
mov dword [ebp - 4], 0xf
test edx, edx
je 0x4a92bf
push ecx
mov ecx, dword [0x61348c]
shl ecx, 5
add ecx, dword [0x61348c]
mov dword [esp], 0x3e800000
push str.datgrass_bill_2.png
lea eax, [ecx*2 + 5]
mov ecx, edx
push eax
call fcn.0052c160
jmp 0x4a92c1
xor eax, eax
push 0x24
mov dword [ebp - 4], 0xffffffff
mov dword [0x62fa98], eax
call fcn.005596ac
mov edx, eax
add esp, 4
mov dword [ebp - 0x428], edx
mov dword [ebp - 4], 0x10
test edx, edx
je 0x4a9317
push ecx
mov ecx, dword [0x61348c]
shl ecx, 5
add ecx, dword [0x61348c]
mov dword [esp], 0x3e99999a
push str.datgrass_bill_3.png
lea eax, [ecx*2 + 5]
mov ecx, edx
push eax
call fcn.0052c160
jmp 0x4a9319
xor eax, eax
push 0x24
mov dword [ebp - 4], 0xffffffff
mov dword [0x62fa9c], eax
call fcn.005596ac
mov edx, eax
add esp, 4
mov dword [ebp - 0x428], edx
mov dword [ebp - 4], 0x11
test edx, edx
je 0x4a936f
push ecx
mov ecx, dword [0x61348c]
shl ecx, 5
add ecx, dword [0x61348c]
mov dword [esp], 0x3e99999a
push str.datgrass_bill_4.png
lea eax, [ecx*2 + 5]
mov ecx, edx
push eax
call fcn.0052c160
jmp 0x4a9371
xor eax, eax
mov dword [0x62faa0], eax
movzx eax, byte [esi + 0xf]
mov dword [edi + 0x2a0], eax
mov dword [edi + 0x298], eax
jmp case.0x4a62d2.8
xor eax, eax
cmp cl, 3
sete al
mov dword [ebp - 0x41c], eax
xor eax, eax
cmp cl, 3
lea ecx, [edi + 0x430]
setne al
lea eax, [eax*2 - 4]
push eax
call fcn.0046c2c0
call fcn.004f1e10
mov ecx, dword [edi + 0x160]
test ecx, ecx
jne 0x4a93df
push 0x1c0
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x428], eax
mov dword [ebp - 4], 5
jmp 0x4a940a
mov eax, dword [esi + 0xb]
cmp eax, dword [0x62fab8]
je 0x4a9431
mov eax, dword [ecx]
push 1
call dword [eax]
push 0x1c0
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x428], eax
mov dword [ebp - 4], 6
test eax, eax
je 0x4a9422
push str.dungeon
push dword [ebp - 0x41c]
mov ecx, eax
call fcn.004ee560
jmp 0x4a9424
xor eax, eax
mov dword [edi + 0x160], eax
mov dword [ebp - 4], 0xffffffff
call fcn.004f1e10
mov eax, dword [esi + 0x10]
lea edx, [ebp - 0x44c]
and eax, 1
mov dword [edi + 0x280], eax
mov eax, dword [esi + 0x10]
and eax, 4
mov dword [edi + 0x28c], 0
mov dword [edi + 0x284], eax
xor eax, eax
mov ecx, dword [0x62f438]
push 0
push 0
mov dword [ebp - 0x44b], eax
mov eax, dword [ecx]
push edx
push 5
call dword [eax + 4]
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x160]
test ecx, ecx
je case.0x4a62d2.8
push esi
call fcn.004efc60
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x160]
test ecx, ecx
je case.0x4a62d2.8
push esi
call fcn.004efa80
jmp case.0x4a62d2.8
mov eax, dword [esi + 1]
mov dword [edi + 0x420], eax
jmp case.0x4a62d2.8
mov eax, dword [esi + 1]
mov dword [edi + 0x74c], eax
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov edx, eax
mov dword [ebp - 0x41c], edx
test edx, edx
je 0x4a955d
mov ecx, dword [edx + 0x178]
cmp ecx, dword [esi + 1]
jne 0x4a9549
mov eax, dword [edx + 0x210]
cmp eax, dword [esi + 5]
jle 0x4a9537
movq xmm0, qword [edx + 0x114]
sub esp, 0x10
mov eax, dword [edx + 0x11c]
mov ecx, esp
mov dword [esp + 0xc], 0x42480000
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x574]
call fcn.00462850
mov ecx, dword [edi + 0x574]
call fcn.00462730
mov edx, dword [ebp - 0x41c]
mov eax, dword [esi + 5]
mov dword [edx + 0x210], eax
mov eax, dword [esi + 9]
mov dword [edx + 0x214], eax
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov edx, eax
mov dword [ebp - 0x41c], eax
test edx, edx
jne 0x4a94e3
mov eax, dword [edi + 8]
test eax, eax
je case.0x4a62d2.8
mov eax, dword [eax + 0x210]
mov dword [0x630cbc], eax
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x214]
mov dword [0x630cc0], eax
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov edx, eax
mov dword [ebp - 0x418], edx
test edx, edx
je case.0x4a62d2.8
nop
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x4a9630
mov eax, dword [edx + 0x210]
cmp eax, dword [esi + 5]
jle 0x4a960c
movq xmm0, qword [edx + 0x114]
sub esp, 0x10
mov eax, dword [edx + 0x11c]
mov ecx, esp
mov dword [esp + 0xc], 0x42480000
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edx + 0x180]
mov ecx, dword [edi + ecx*4 + 0x4ec]
call fcn.00462850
mov eax, dword [ebp - 0x418]
mov ecx, dword [eax + 0x180]
mov ecx, dword [edi + ecx*4 + 0x4ec]
call fcn.00462730
mov edx, dword [ebp - 0x418]
mov eax, dword [esi + 5]
mov dword [edx + 0x210], eax
mov eax, dword [esi + 9]
mov dword [edx + 0x214], eax
mov dword [edx + 0x218], 0x258
mov ecx, dword [edi + 0x18]
call fcn.0044e090
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov edx, eax
mov dword [ebp - 0x418], eax
test edx, edx
jne 0x4a95a0
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov ecx, eax
mov dword [ebp - 0x41c], ecx
test ecx, ecx
je case.0x4a62d2.8
movss xmm4, dword [0x5d8728]
movss dword [ebp - 0x420], xmm4
mov eax, dword [esi + 1]
cmp eax, 0xffffffff
je 0x4a96d2
cmp dword [ecx + 0x178], eax
jne 0x4a9788
movsx eax, byte [esi + 9]
mov dword [ecx + 0x254], eax
mov dword [ecx + 0x258], 0
mov dword [ecx + 0x25c], 0x3f800000
mov dword [ecx + 0x260], 0x3f800000
mov dword [ecx + 0x264], 0x3f800000
mov dword [ecx + 0x268], 0
mov ecx, dword [edi + 0x18]
call fcn.0044e090
jmp 0x4a9788
mov eax, dword [ecx + 0x17c]
cmp eax, dword [esi + 5]
jne 0x4a9788
movsx eax, byte [esi + 9]
mov dword [ecx + 0x254], eax
mov dword [ecx + 0x258], 0
movsx edx, byte [esi + 9]
movzx esi, byte [edx + edx*2 + 0x627638]
movzx ecx, byte [edx + edx*2 + 0x627639]
mov eax, esi
movzx edx, byte [edx + edx*2 + 0x62763a]
shl eax, 8
or ecx, eax
movd xmm0, esi
mov eax, ecx
shl eax, 8
or edx, eax
movzx eax, cl
cvtdq2ps xmm0, xmm0
movd xmm3, eax
movzx eax, dl
shr edx, 0x18
cvtdq2ps xmm3, xmm3
movd xmm2, eax
mov eax, dword [ebp - 0x41c]
movd xmm1, edx
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm4
mulss xmm3, xmm4
mulss xmm2, xmm4
movss dword [eax + 0x25c], xmm0
mulss xmm1, xmm4
movss dword [eax + 0x260], xmm3
movss dword [eax + 0x264], xmm2
movss dword [eax + 0x268], xmm1
mov ecx, dword [edi + 0x18]
call fcn.0044e090
mov esi, dword [ebp - 0x424]
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
movss xmm4, dword [ebp - 0x420]
mov ecx, eax
mov dword [ebp - 0x41c], eax
test ecx, ecx
jne 0x4a9675
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov edx, eax
test edx, edx
je case.0x4a62d2.8
nop
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x4a97e7
movzx eax, byte [esi + 5]
mov byte [edx + 0x18c], al
movzx eax, byte [esi + 6]
mov byte [edx + 0x18d], al
mov ecx, dword [edi + 0x18]
call fcn.0044e090
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov edx, eax
test edx, edx
jne 0x4a97c0
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov edx, eax
test edx, edx
je case.0x4a62d2.8
nop dword [eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x4a982c
mov al, byte [esi + 5]
mov byte [edx + 0x18e], al
mov ecx, dword [edi + 0x18]
call fcn.0044e090
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov edx, eax
test edx, edx
jne 0x4a9810
jmp case.0x4a62d2.8
mov dword [edi + 0x2a0], 0
mov dword [0x630d0c], 1
jmp case.0x4a62d2.8
cmp byte [esi + 0xe], 1
mov dword [ebp - 0x418], 0
jne 0x4a9918
movzx eax, byte [esi + 9]
mov ecx, dword [edi + 0x154]
push eax
call fcn.004faf20
movzx eax, byte [esi + 0xa]
mov ecx, dword [edi + 0x154]
fstp dword [ebp - 0x420]
push eax
call fcn.004fb030
movss xmm1, dword [ebp - 0x420]
sub esp, 8
fstp dword [ebp - 0x41c]
movss xmm0, dword [ebp - 0x41c]
mov ecx, edi
movss dword [ebp - 0x434], xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.004aab90
movss xmm0, dword [ebp - 0x41c]
sub esp, 0x10
mov ecx, esp
movss dword [ebp - 0x42c], xmm0
mov eax, dword [ebp - 0x42c]
fstp dword [ebp - 0x430]
movq xmm0, qword [ebp - 0x434]
mov dword [esp + 0xc], 0x42480000
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x580]
call fcn.00462850
mov ecx, dword [edi + 0x580]
call fcn.00462730
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov dword [ebp - 0x424], eax
test eax, eax
je 0x4a995c
xor ecx, ecx
nop dword [eax]
test ecx, ecx
jne 0x4a995c
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
je 0x4a998a
cmp ecx, dword [esi + 1]
je 0x4a999b
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov ecx, dword [ebp - 0x418]
mov dword [ebp - 0x424], eax
test eax, eax
jne 0x4a9930
push 0x4d8
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x428], eax
mov dword [ebp - 4], 0x12
test eax, eax
je 0x4a99a8
push 0x5d8184
push 0
mov ecx, eax
call fcn.004ae260
jmp 0x4a99aa
mov eax, dword [eax + 0x17c]
cmp eax, dword [esi + 5]
jne 0x4a9944
mov eax, dword [ebp - 0x424]
mov ecx, 1
mov dword [ebp - 0x418], ecx
jmp 0x4a9958
xor eax, eax
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x414], eax
mov dword [ebp - 4], 0xffffffff
call fcn.0044de70
mov eax, dword [ebp - 0x414]
push 0x5d2ad4
mov dword [eax + 0x160], 0xa
add eax, 0x1b0
push eax
call fcn.0043d380
add esp, 8
call dword [sym.imp.WINMM.dll_timeGetTime]
movsx ecx, word [esi + 0xf]
imul ecx, ecx, 0x3e8
add eax, ecx
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x238], eax
xor eax, eax
cmp ax, word [esi + 0xf]
jne 0x4a9a0f
mov dword [ecx + 0x238], eax
movzx eax, byte [esi + 0xe]
mov dword [ecx + 0x234], eax
movzx eax, byte [esi + 0xb]
movzx ecx, byte [esi + 0xc]
or eax, 0x3700
movzx edx, byte [esi + 0xd]
mov dword [ebp - 0x420], eax
shl eax, 8
or ecx, eax
movss xmm2, dword [0x5d8728]
mov eax, ecx
shl eax, 8
or edx, eax
movzx eax, cl
movd xmm4, eax
movzx eax, dl
shr edx, 0x18
cmp dword [ebp - 0x418], 0
cvtdq2ps xmm4, xmm4
movd xmm3, eax
mov eax, dword [ebp - 0x420]
movzx eax, al
movd xmm1, edx
cvtdq2ps xmm3, xmm3
movd xmm0, eax
mov eax, dword [ebp - 0x414]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm2
mulss xmm4, xmm2
movss dword [eax + 0x224], xmm0
mulss xmm3, xmm2
movss dword [eax + 0x228], xmm4
mulss xmm1, xmm2
movss dword [eax + 0x22c], xmm3
movss dword [eax + 0x230], xmm1
movzx ecx, byte [esi + 9]
mov dword [eax + 0x164], ecx
movzx eax, byte [esi + 0xa]
mov esi, dword [ebp - 0x414]
mov dword [esi + 0x168], eax
je 0x4a9b2c
mov eax, dword [ebp - 0x424]
movups xmm0, xmmword [eax + 0x108]
movups xmmword [esi + 0x108], xmm0
movups xmm0, xmmword [eax + 0x118]
movups xmmword [esi + 0x118], xmm0
movups xmm0, xmmword [eax + 0x128]
movups xmmword [esi + 0x128], xmm0
movups xmm0, xmmword [eax + 0x138]
movups xmmword [esi + 0x138], xmm0
movups xmm0, xmmword [eax + 0x148]
movups xmmword [esi + 0x148], xmm0
movq xmm0, qword [eax + 0x158]
movq qword [esi + 0x158], xmm0
jmp case.0x4a62d2.8
cmp dword [0x62faa8], 4
push ecx
jne 0x4a9b98
mov esi, dword [edi + 0x164]
mov ecx, esi
call fcn.005272d0
fstp dword [ebp - 0x420]
mov ecx, esi
call fcn.00525fb0
fmul dword [0x5d3bb4]
mov esi, dword [ebp - 0x414]
fadd dword [ebp - 0x420]
push dword [esi + 0x168]
fstp dword [esi + 0x114]
mov ecx, dword [edi + 0x164]
call fcn.00527390
mov ecx, dword [edi + 0x164]
fstp dword [ebp - 0x420]
call fcn.00525fb0
fmul dword [0x5d3bb4]
fadd dword [ebp - 0x420]
jmp 0x4a9bf4
mov ecx, dword [edi + 0x154]
call fcn.004faf20
mov ecx, dword [edi + 0x154]
fstp dword [ebp - 0x420]
call fcn.004f7c60
fmul dword [0x5d3bb4]
push dword [esi + 0x168]
fadd dword [ebp - 0x420]
fstp dword [esi + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb030
mov ecx, dword [edi + 0x154]
fstp dword [ebp - 0x420]
call fcn.004f7c60
fmul dword [0x5d3bb4]
fadd dword [ebp - 0x420]
fstp dword [ebp - 0x41c]
movss xmm1, dword [ebp - 0x41c]
sub esp, 8
movss dword [esi + 0x11c], xmm1
mov ecx, edi
movss xmm0, dword [esi + 0x114]
mov dword [esi + 0x108], 0
movss dword [esp + 4], xmm1
mov dword [esi + 0x10c], 0
movss dword [esp], xmm0
call fcn.004aab90
fadd dword [0x5d3048]
fstp dword [esi + 0x118]
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov dword [ebp - 0x418], eax
test eax, eax
je case.0x4a62d2.8
mov ecx, dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [ebp - 0x41c], ecx
nop
mov eax, dword [eax + 0x178]
cmp eax, dword [esi + 1]
jne 0x4a9d4c
call ecx
mov ecx, dword [ebp - 0x418]
movss xmm4, dword [0x5d8728]
mov dword [ecx + 0x250], eax
mov dword [ecx + 0x23c], 0
movzx eax, byte [esi + 5]
or eax, 0x3700
mov dword [ebp - 0x420], eax
mov ecx, eax
movzx eax, byte [esi + 6]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 7]
mov edx, ecx
shl edx, 8
or edx, eax
movzx eax, cl
movd xmm3, eax
movzx eax, dl
shr edx, 0x18
cvtdq2ps xmm3, xmm3
movd xmm2, eax
mov eax, dword [ebp - 0x420]
movzx eax, al
movd xmm1, edx
cvtdq2ps xmm2, xmm2
movd xmm0, eax
mov eax, dword [ebp - 0x418]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm4
mulss xmm3, xmm4
mulss xmm2, xmm4
movss dword [eax + 0x240], xmm0
mulss xmm1, xmm4
movss dword [eax + 0x244], xmm3
movss dword [eax + 0x248], xmm2
movss dword [eax + 0x24c], xmm1
cmp byte [esi + 5], 0
jne 0x4a9d44
cmp byte [esi + 6], 0
jne 0x4a9d44
cmp byte [esi + 7], 0
jne 0x4a9d44
mov dword [eax + 0x23c], 0xffffffff
mov ecx, dword [edi + 0x18]
call fcn.0044e090
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov ecx, dword [ebp - 0x41c]
mov dword [ebp - 0x418], eax
test eax, eax
jne 0x4a9c70
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov ecx, eax
mov dword [ebp - 0x41c], ecx
test ecx, ecx
je case.0x4a62d2.8
mov eax, dword [ecx + 0x178]
cmp eax, dword [esi + 1]
jne 0x4a9dd6
movzx eax, byte [esi + 8]
imul eax, eax, 0xd0
push esi
add eax, 0x338
add ecx, eax
call fcn.004af810
cmp byte [esi + 0xd], 0
jne 0x4a9dce
mov eax, dword [ebp - 0x41c]
mov ecx, dword [edi + 8]
mov eax, dword [eax + 0x178]
cmp eax, dword [ecx + 0x178]
jne 0x4a9dce
mov dword [edi + 0x290], 1
mov ecx, dword [edi + 0x18]
call fcn.0044e090
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov ecx, eax
mov dword [ebp - 0x41c], eax
test ecx, ecx
jne 0x4a9d85
jmp case.0x4a62d2.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x414], eax
call fcn.0044e020
mov ecx, eax
test ecx, ecx
je case.0x4a62d2.8
nop
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4a9e47
cmp eax, dword [esi + 1]
jne 0x4a9e5f
movzx eax, byte [esi + 9]
imul eax, eax, 0xd0
cmp dword [eax + ecx + 0x338], 0
je 0x4a9e5f
mov dword [eax + ecx + 0x378], 1
mov dword [ebp - 0x414], ecx
jmp 0x4a9e5f
mov eax, dword [ecx + 0x17c]
mov edx, dword [ebp - 0x418]
cmp eax, dword [esi + 5]
cmove edx, ecx
mov dword [ebp - 0x418], edx
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov ecx, eax
test ecx, ecx
jne 0x4a9e10
mov ecx, dword [ebp - 0x414]
test ecx, ecx
je case.0x4a62d2.8
mov eax, dword [ebp - 0x418]
test eax, eax
je case.0x4a62d2.8
test byte [0x630d04], 1
je 0x4a9ed1
push dword [esi + 0xb]
add eax, 0x1b0
push eax
movzx eax, byte [esi + 9]
add eax, 4
imul eax, eax, 0xd0
add eax, ecx
push eax
lea eax, [ebp - 0x410]
push str._s_breathes_on_the__s_for__d_damage.
push eax
call fcn.0043d380
lea eax, [ebp - 0x410]
push eax
call fcn.00500720
mov ecx, dword [ebp - 0x414]
add esp, 0x18
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.004f4280
mov ecx, dword [edi + 4]
mov esi, eax
mov eax, dword [ebp - 0x418]
push eax
push dword [eax + 0x170]
call fcn.004f4280
sub esp, 0x18
movss xmm0, dword [eax + 0x10c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
movss dword [esp + 0xc], xmm0
movss xmm0, dword [eax + 0x108]
movss dword [esp + 8], xmm0
movss xmm0, dword [esi + 0x10c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x108]
movss dword [esp], xmm0
call fcn.0044d980
mov edx, dword [ebp - 0x424]
add esp, 0x18
fstp dword [esi + 0x118]
mov esi, dword [ebp - 0x414]
movzx eax, byte [edx + 9]
imul ecx, eax, 0xd0
mov eax, dword [ebp - 0x418]
movq xmm0, qword [eax + 0x114]
movq qword [ecx + esi + 0x35c], xmm0
mov eax, dword [eax + 0x11c]
mov dword [ecx + esi + 0x364], eax
movzx eax, byte [edx + 9]
imul eax, eax, 0xd0
movss xmm0, dword [eax + esi + 0x360]
addss xmm0, dword [0x5d6da4]
movss dword [eax + esi + 0x360], xmm0
movzx eax, byte [edx + 9]
movzx ecx, byte [edx + 0xa]
imul eax, eax, 0xd0
mov dword [eax + esi + 0x368], ecx
jmp case.0x4a62d2.8
mov eax, dword [esi + 1]
mov dword [0x630d04], eax
jmp case.0x4a62d2.8
push 0x14
call fcn.005596ac
add esp, 4
mov dword [ebp - 0x428], eax
mov dword [ebp - 4], 0x13
test eax, eax
je 0x4aa000
push 0x46
mov ecx, eax
call fcn.00448260
mov dword [ebp - 0x418], eax
jmp 0x4aa00a
mov dword [ebp - 0x418], 0
push dword [ebp + 0xc]
mov dword [ebp - 4], 0xffffffff
push esi
mov esi, dword [ebp - 0x418]
mov ecx, esi
call fcn.004487a0
lea eax, [ebp - 0x441]
mov dword [esi + 8], 0
push eax
mov ecx, esi
call fcn.004482c0
lea eax, [ebp - 0x450]
mov ecx, esi
push eax
call fcn.00448320
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov dword [ebp - 0x41c], eax
test eax, eax
je 0x4aa0b3
nop dword [eax + eax]
mov ecx, dword [eax + 0x178]
cmp ecx, dword [ebp - 0x450]
jne 0x4aa09b
xor edi, edi
mov ecx, dword [ebp - 0x418]
lea esi, [eax + 0x1d0]
add esi, edi
push esi
call fcn.004482a0
cmp byte [esi], 0
je 0x4aa095
mov eax, dword [ebp - 0x41c]
inc edi
cmp edi, 0x41
jl 0x4aa070
mov edi, dword [ebp - 0x414]
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov dword [ebp - 0x41c], eax
test eax, eax
jne 0x4aa060
mov esi, dword [ebp - 0x418]
mov ecx, esi
call fcn.00448290
push 0x14
push esi
call fcn.005596dc
add esp, 8
jmp case.0x4a62d2.8
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x178]
cmp eax, dword [esi + 1]
jne case.0x4a62d2.8
mov dword [edi + 0x280], 1
jmp case.0x4a62d2.8
movzx eax, byte [esi + 5]
sub esp, 8
lea eax, [eax + eax*4]
lea eax, [eax*2 + 5]
movd xmm1, eax
movzx eax, byte [esi + 6]
cvtdq2ps xmm1, xmm1
lea eax, [eax + eax*4]
lea eax, [eax*2 + 5]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x434], xmm1
movss dword [esp + 4], xmm0
movss dword [ebp - 0x42c], xmm0
movss dword [esp], xmm1
call fcn.004aab90
cmp dword [esi + 1], 0
fadd dword [0x5d6d9c]
fstp dword [ebp - 0x430]
je 0x4aa24e
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov ecx, eax
test ecx, ecx
je 0x4aa24e
mov eax, dword [ebp - 0x42c]
mov dword [ebp - 0x414], eax
nop dword [eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4aa1be
cmp eax, dword [esi + 1]
jne 0x4aa1be
movq xmm0, qword [ecx + 0x114]
mov eax, dword [ecx + 0x11c]
mov ecx, dword [edi + 0x18]
movq qword [ebp - 0x434], xmm0
movss xmm0, dword [ebp - 0x430]
addss xmm0, dword [0x5d6da0]
mov dword [ebp - 0x414], eax
movss dword [ebp - 0x430], xmm0
call fcn.0044e090
mov ecx, eax
cmp dword [ecx + 0x160], 0xc
jne 0x4aa23a
movzx eax, byte [esi + 5]
cmp dword [ecx + 0x164], eax
jne 0x4aa23a
movzx eax, byte [esi + 6]
cmp dword [ecx + 0x168], eax
jne 0x4aa23a
movq xmm0, qword [ecx + 0x114]
sub esp, 8
mov eax, dword [ecx + 0x11c]
mov ecx, edi
movq qword [ebp - 0x434], xmm0
mov dword [ebp - 0x42c], eax
movss xmm0, dword [ebp - 0x42c]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x434]
mov dword [ebp - 0x414], eax
movss dword [esp], xmm0
call fcn.004aab90
fadd dword [0x5d6d9c]
fstp dword [ebp - 0x430]
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov ecx, eax
test ecx, ecx
jne 0x4aa170
jmp 0x4aa25a
mov eax, dword [ebp - 0x42c]
mov dword [ebp - 0x414], eax
movzx eax, byte [esi + 6]
sub esp, 0x10
mov ecx, dword [edi + 8]
movd xmm0, eax
movzx eax, byte [esi + 5]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0xc], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 8], xmm0
movd xmm0, dword [ecx + 0x168]
cvtdq2ps xmm0, xmm0
movss dword [esp + 4], xmm0
movd xmm0, dword [ecx + 0x164]
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.0044ce60
xor eax, eax
add esp, 0x10
fstp dword [ebp - 0x418]
mov dword [ebp - 0x424], eax
cmp byte [esi + 7], al
jne 0x4aa2cc
cmp byte [esi + 8], al
jne 0x4aa2cc
cmp byte [esi + 9], al
je 0x4aa354
movss xmm0, dword [ebp - 0x418]
movss xmm1, dword [0x5d87a4]
comiss xmm1, xmm0
mov dword [ebp - 0x424], 1
jbe 0x4aa459
movq xmm0, qword [ebp - 0x434]
sub esp, 0xc
mov ecx, dword [ebp - 0x414]
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x62fa80]
call fcn.0051cbd0
movss xmm0, dword [esi + 0xf]
sub esp, 0x14
divss xmm0, dword [0x5d714c]
mov eax, esp
mov dword [eax], 0x3f800000
mov dword [eax + 4], 0x3f800000
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0x3f1b9b9c
mov ecx, dword [0x62fa80]
movss dword [esp + 0x10], xmm0
push 0x32
call fcn.0051c7d0
movss xmm1, dword [0x5d87a4]
movss xmm0, dword [ebp - 0x418]
comiss xmm1, xmm0
jbe 0x4aa459
movq xmm0, qword [ebp - 0x434]
sub esp, 0xc
mov ecx, dword [ebp - 0x414]
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x62fa84]
call fcn.0051dc90
movss xmm0, dword [esi + 0xf]
sub esp, 0x14
divss xmm0, dword [0x5d6e58]
movzx edx, byte [esi + 7]
mov ecx, esp
movzx eax, byte [esi + 8]
or edx, 0xffff9b00
shl edx, 8
or edx, eax
movzx eax, byte [esi + 9]
shl edx, 8
or edx, eax
mov eax, edx
shr eax, 0x10
movzx eax, al
movss xmm1, dword [0x5d8728]
movss dword [esp + 0x10], xmm0
movd xmm0, eax
mov eax, edx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
push 0x32
mulss xmm0, xmm1
movss dword [ecx], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, dl
shr edx, 0x18
mulss xmm0, xmm1
movss dword [ecx + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ecx + 8], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ecx + 0xc], xmm0
mov ecx, dword [0x62fa84]
call fcn.0051d890
movss xmm1, dword [ebp - 0x418]
addss xmm1, dword [0x5d3048]
movss xmm0, dword [esi + 0xf]
divss xmm0, xmm1
movss dword [0x62faa4], xmm0
movss xmm0, dword [ebp - 0x418]
movss xmm1, dword [esi + 0xf]
comiss xmm1, dword [0x5d44b0]
mov eax, dword [ebp - 0x424]
jbe 0x4aa4f8
test eax, eax
je 0x4aa4f8
cmp dword [edi + 8], 0
je 0x4aa4c0
comiss xmm0, dword [0x5d3bb8]
jbe 0x4aa4c0
movq xmm0, qword [ebp - 0x434]
sub esp, 0x10
mov ecx, dword [ebp - 0x414]
mov eax, esp
mov dword [esp + 0xc], 0x42480000
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [edi + 0x59c]
call fcn.00462850
mov ecx, dword [edi + 0x59c]
jmp 0x4aa650
movq xmm0, qword [ebp - 0x434]
sub esp, 0x10
mov ecx, dword [ebp - 0x414]
mov eax, esp
mov dword [esp + 0xc], 0x42480000
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [edi + 0x598]
call fcn.00462850
mov ecx, dword [edi + 0x598]
jmp 0x4aa650
comiss xmm1, dword [0x5d714c]
jbe 0x4aa58c
test eax, eax
je 0x4aa58c
cmp dword [edi + 8], 0
je 0x4aa554
comiss xmm0, dword [0x5d6e48]
jbe 0x4aa554
movq xmm0, qword [ebp - 0x434]
sub esp, 0x10
mov ecx, dword [ebp - 0x414]
mov eax, esp
mov dword [esp + 0xc], 0x42480000
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [edi + 0x594]
call fcn.00462850
mov ecx, dword [edi + 0x594]
jmp 0x4aa650
movq xmm0, qword [ebp - 0x434]
sub esp, 0x10
mov ecx, dword [ebp - 0x414]
mov eax, esp
mov dword [esp + 0xc], 0x42480000
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [edi + 0x590]
call fcn.00462850
mov ecx, dword [edi + 0x590]
jmp 0x4aa650
comiss xmm1, dword [0x5d3bb8]
jbe 0x4aa61d
test eax, eax
je 0x4aa61d
cmp dword [edi + 8], 0
je 0x4aa5e8
comiss xmm0, dword [0x5d3074]
jbe 0x4aa5e8
movq xmm0, qword [ebp - 0x434]
sub esp, 0x10
mov ecx, dword [ebp - 0x414]
mov eax, esp
mov dword [esp + 0xc], 0x42480000
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [edi + 0x58c]
call fcn.00462850
mov ecx, dword [edi + 0x58c]
jmp 0x4aa650
movq xmm0, qword [ebp - 0x434]
sub esp, 0x10
mov ecx, dword [ebp - 0x414]
mov eax, esp
mov dword [esp + 0xc], 0x42480000
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [edi + 0x588]
call fcn.00462850
mov ecx, dword [edi + 0x588]
jmp 0x4aa650
movq xmm0, qword [ebp - 0x434]
sub esp, 0x10
mov ecx, dword [ebp - 0x414]
mov eax, esp
mov dword [esp + 0xc], 0x42480000
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [edi + 0x584]
call fcn.00462850
mov ecx, dword [edi + 0x584]
call fcn.00462730
mov ecx, dword [edi + 0x18]
call fcn.0044e020
mov ecx, eax
mov dword [ebp - 0x418], ecx
test ecx, ecx
je case.0x4a62d2.8
nop dword [eax]
cmp dword [ecx + 0x160], 0xc
jne 0x4aa6e6
movzx eax, byte [esi + 5]
cmp dword [ecx + 0x164], eax
jne 0x4aa6e6
movzx eax, byte [esi + 6]
cmp dword [ecx + 0x168], eax
jne 0x4aa6e6
push ecx
mov ecx, dword [edi + 0x18]
call fcn.0044e210
mov eax, dword [ebp - 0x418]
mov ecx, dword [edi + 0x154]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004fb940
mov eax, dword [ebp - 0x418]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.004f4260
mov ecx, dword [ebp - 0x418]
push 1
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044e0d0
mov ecx, eax
mov dword [ebp - 0x418], eax
test ecx, ecx
jne 0x4aa670
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.005596ea
mov esp, ebp
pop ebp
ret 8