Function at 0x4a8560
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b0475
mov eax, dword fs:[0]
push eax
sub esp, 0x44c
mov eax, dword [0x616798]
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 - 0x43c], esi
mov byte [ebp - 0x458], 0x13
mov byte [ebp - 0x448], 0x2c
movsx eax, byte [esi]
add eax, 0xfffffffb
cmp eax, 0x51
ja case.0x4a85c2.8
movzx eax, byte [eax + 0x4ac8ec]
jmp dword [eax*4 + 0x4ac854]
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x418], eax
call fcn.0044dcb0
mov ecx, eax
mov dword [ebp - 0x414], ecx
test ecx, ecx
je 0x4a8914
nop dword [eax]
mov edx, dword [ecx + 0x178]
cmp edx, 0xffffffff
jle 0x4a88f0
mov eax, dword [edi + 8]
cmp edx, dword [eax + 0x178]
jne 0x4a8642
cmp dword [eax + 0x338], 0
je 0x4a8626
cmp byte [eax + 0x340], 0
jne 0x4a8626
mov dword [edi + 0x290], 1
cmp dword [eax + 0x408], 0
je 0x4a8642
cmp byte [eax + 0x410], 0
jne 0x4a8642
mov dword [edi + 0x290], 1
mov eax, dword [ecx + 0x178]
cmp eax, dword [esi + 1]
jne 0x4a88f0
cmp dword [ecx + 0x16c], 0xffffffff
push ecx
je 0x4a869e
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.004f45a0
mov dword [ebp - 0x41c], 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.004fbc10
jmp 0x4a86cc
mov ecx, dword [edi + 4]
call fcn.004f45c0
mov ecx, dword [ebp - 0x414]
push ecx
push eax
mov dword [ecx + 0x170], eax
mov ecx, dword [edi + 4]
call fcn.004f45a0
mov dword [ebp - 0x41c], 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.004faa30
mov ecx, dword [edi + 0x154]
mov dword [ebp - 0x418], eax
cmp eax, 0xffffffff
jne 0x4a877b
mov eax, dword [ebp - 0x414]
push dword [eax + 0x164]
call fcn.004fb210
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb320
mov edx, dword [ebp - 0x414]
mov eax, dword [ebp - 0x41c]
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 0x4a8839
push 1
push eax
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004f7f20
mov ecx, dword [edi + 0x154]
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x430]
push eax
push dword [ebp - 0x418]
call fcn.004fab30
mov eax, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x418]
push dword [eax + 0x164]
mov dword [eax + 0x16c], ecx
mov ecx, dword [edi + 0x154]
call fcn.004fb210
fadd dword [ebp - 0x430]
mov eax, dword [ebp - 0x41c]
fstp dword [eax + 0x110]
mov eax, dword [ebp - 0x414]
mov ecx, dword [edi + 0x154]
push dword [eax + 0x168]
call fcn.004fb320
fadd dword [ebp - 0x434]
mov eax, dword [ebp - 0x41c]
mov edx, dword [ebp - 0x414]
fstp dword [eax + 0x114]
movss xmm0, dword [ebp - 0x438]
movss dword [eax + 0x118], xmm0
mov dword [eax + 0x138], 0
mov eax, dword [edx + 0x178]
mov dword [ebp - 0x418], 1
cmp eax, dword [edi + 0x204]
jne 0x4a88de
cmp dword [0x619a64], 0
jne 0x4a8867
cmp dword [edi + 0x20c], 0xffffffff
jne 0x4a88de
mov ecx, dword [edi + 0x154]
movq xmm0, qword [edx + 0x114]
movq qword [ecx + 0x184], xmm0
mov eax, dword [edx + 0x11c]
mov dword [ecx + 0x18c], eax
mov eax, dword [edi + 0x154]
mov dword [eax + 0x190], 0
push dword [edx + 0x168]
mov ecx, dword [edi + 0x154]
push dword [edx + 0x164]
call fcn.004f8830
mov eax, dword [ebp - 0x414]
mov ecx, edi
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004ac970
mov eax, dword [ebp - 0x414]
mov ecx, dword [edi + 0x18]
push eax
call fcn.0044dc60
mov edx, dword [ebp - 0x414]
cmp byte [esi], 0x34
jne 0x4a88f0
movzx eax, word [esi + 7]
mov ecx, edi
push eax
push edx
call fcn.004acb00
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov ecx, eax
mov dword [ebp - 0x414], eax
test ecx, ecx
jne 0x4a85f0
cmp dword [ebp - 0x418], eax
jne case.0x4a85c2.8
push 0x4d8
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x4a8942
push str.AVATAR
push 0
mov ecx, eax
call fcn.004b0360
jmp 0x4a8944
xor eax, eax
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x414], eax
mov dword [ebp - 4], 0xffffffff
call fcn.0044daf0
push 0x10c
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x4a8983
mov ecx, eax
call fcn.0046e6a0
mov ecx, eax
jmp 0x4a8985
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.004f45c0
mov ecx, dword [ebp - 0x414]
push ecx
push eax
mov dword [ecx + 0x170], eax
mov ecx, dword [edi + 4]
call fcn.004f45a0
movzx edx, byte [esi + 5]
mov dword [ebp - 0x41c], 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.004faa30
mov dword [ebp - 0x418], eax
cmp eax, 0xffffffff
jne 0x4a8a2a
mov ecx, dword [ebp - 0x414]
push dword [ecx + 0x164]
mov ecx, dword [edi + 0x154]
call fcn.004fb210
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb320
jmp 0x4a8abc
mov ecx, dword [edi + 0x154]
push 1
push eax
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004f7f20
mov ecx, dword [edi + 0x154]
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x430]
push eax
push dword [ebp - 0x418]
call fcn.004fab30
mov eax, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x418]
push dword [eax + 0x164]
mov dword [eax + 0x16c], ecx
mov ecx, dword [edi + 0x154]
call fcn.004fb210
fadd dword [ebp - 0x430]
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb320
fadd dword [ebp - 0x434]
mov ecx, dword [ebp - 0x414]
fstp dword [ecx + 0x11c]
call fcn.005619b8
xorps xmm1, xmm1
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 [0x5bc050]
divss xmm0, dword [0x5bcef0]
addss xmm0, xmm1
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.004acca0
mov eax, dword [ebp - 0x41c]
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 - 0x438]
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 0x4a8d93
cmp dword [0x619a64], 0
jne 0x4a8bdb
cmp dword [edi + 0x20c], 0xffffffff
jne 0x4a8d93
mov dword [edi + 8], ecx
lea edx, [ebp - 0x458]
mov ecx, dword [0x6193ec]
push 0
push 0
mov byte [ebp - 0x453], 1
mov dword [ebp - 0x457], 0
mov eax, dword [ecx]
push edx
push 0xa
call dword [eax + 4]
mov ecx, edi
call fcn.004a3770
mov edx, dword [ebp - 0x414]
mov ecx, dword [edi + 0x154]
movq xmm0, qword [edx + 0x114]
movq qword [ecx + 0x184], xmm0
mov eax, dword [edx + 0x11c]
mov dword [ecx + 0x18c], eax
mov eax, dword [edi + 0x154]
mov dword [eax + 0x190], 0
push dword [edx + 0x168]
mov ecx, dword [edi + 0x154]
push dword [edx + 0x164]
call fcn.004f8830
mov eax, dword [ebp - 0x414]
mov ecx, edi
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004ac970
mov ecx, dword [ebp - 0x414]
push ecx
mov ecx, dword [edi + 0x18]
call fcn.0044dc60
cmp dword [0x619a58], 0
jne 0x4a8d8d
cmp dword [0x5fd8a4], 0
mov dword [ebp - 0x420], 0xc3fa0000
mov dword [ebp - 0x424], 0xc3fa0000
mov dword [ebp - 0x428], 0xc3fa0000
je 0x4a8d8d
movq xmm0, qword [ebp - 0x428]
sub esp, 0xc
mov esi, dword [ebp - 0x420]
mov eax, esp
mov ecx, dword [0x619a44]
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.0052c4a0
movq xmm0, qword [ebp - 0x428]
sub esp, 0xc
mov ecx, dword [0x619a48]
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.0052c4a0
movq xmm0, qword [ebp - 0x428]
sub esp, 0xc
mov ecx, dword [0x619a4c]
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.0052c4a0
movq xmm0, qword [ebp - 0x428]
sub esp, 0xc
mov ecx, dword [0x619a50]
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.0052c4a0
mov esi, dword [ebp - 0x43c]
mov ecx, dword [ebp - 0x414]
cmp byte [esi], 0x34
jne case.0x4a85c2.8
movzx eax, word [esi + 7]
push eax
push ecx
mov ecx, edi
call fcn.004acb00
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov ecx, eax
mov dword [ebp - 0x414], ecx
test ecx, ecx
je case.0x4a85c2.8
nop word [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4a8e70
cmp eax, dword [esi + 1]
jne 0x4a8e5e
push ecx
mov ecx, dword [edi + 0x18]
call fcn.0044dea0
mov eax, dword [ebp - 0x414]
mov ecx, dword [edi + 0x154]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004fbc10
mov eax, dword [ebp - 0x414]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.004f4580
mov ecx, dword [ebp - 0x414]
push 1
mov dword [ecx + 0x16c], 0xffffffff
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov ecx, eax
mov eax, dword [esi + 1]
mov dword [ebp - 0x414], ecx
cmp eax, dword [edi + 0x204]
jne 0x4a8e80
mov eax, dword [edi + 0xc]
mov dword [edi + 8], eax
jmp 0x4a8e80
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov ecx, eax
mov dword [ebp - 0x414], ecx
jmp 0x4a8e80
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov ecx, eax
mov dword [ebp - 0x414], eax
test ecx, ecx
jne 0x4a8dd0
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov dword [ebp - 0x414], eax
test eax, eax
je case.0x4a85c2.8
nop dword [eax]
nop word [eax + eax]
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
jle 0x4a9047
cmp ecx, dword [esi + 1]
jne 0x4a9047
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.004f45a0
mov dword [ebp - 0x41c], 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.004fbc10
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.004faa30
mov ecx, dword [edi + 0x154]
mov dword [ebp - 0x418], eax
cmp eax, 0xffffffff
jne 0x4a8f7b
movzx eax, byte [esi + 7]
push eax
call fcn.004fb210
mov eax, dword [ebp - 0x41c]
fstp dword [eax + 0x110]
movzx eax, byte [esi + 8]
mov ecx, dword [edi + 0x154]
push eax
call fcn.004fb320
mov eax, dword [ebp - 0x41c]
fstp dword [eax + 0x114]
jmp 0x4a9021
push 1
push eax
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004f7f20
mov ecx, dword [edi + 0x154]
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x430]
push eax
push dword [ebp - 0x418]
call fcn.004fab30
mov eax, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x418]
mov dword [eax + 0x16c], ecx
movzx eax, byte [esi + 7]
mov ecx, dword [edi + 0x154]
push eax
call fcn.004fb210
fadd dword [ebp - 0x430]
mov eax, dword [ebp - 0x41c]
fstp dword [eax + 0x110]
movzx eax, byte [esi + 8]
mov ecx, dword [edi + 0x154]
push eax
call fcn.004fb320
fadd dword [ebp - 0x434]
mov eax, dword [ebp - 0x41c]
fstp dword [eax + 0x114]
movss xmm0, dword [ebp - 0x438]
movss dword [eax + 0x118], xmm0
mov eax, dword [ebp - 0x414]
mov ecx, dword [0x61ac68]
mov eax, dword [eax + 0x178]
cmp eax, dword [edi + 0x204]
mov eax, 0x5a
cmove ecx, eax
mov dword [0x61ac68], ecx
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov dword [ebp - 0x414], eax
test eax, eax
jne 0x4a8eb0
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov ecx, eax
mov dword [ebp - 0x418], ecx
test ecx, ecx
je case.0x4a85c2.8
nop word [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4a912f
cmp eax, dword [esi + 1]
jne 0x4a912f
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 [0x6192d0]
push dword [esi + 5]
push dword [eax + 0x2a3d8]
call fcn.0046e960
lea eax, [esi + 0x1c]
push eax
mov eax, dword [ebp - 0x418]
add eax, 0x1b0
push eax
call fcn.004a1100
mov ecx, dword [edi + 8]
add esp, 8
mov eax, dword [ecx + 0x178]
cmp eax, dword [esi + 1]
jne 0x4a912f
lea eax, [ecx + 0x1b0]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x40]
mov dword [0x61ac74], eax
mov al, byte [esi + 0x4c]
mov byte [0x60a5b5], al
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov ecx, eax
mov dword [ebp - 0x418], eax
test ecx, ecx
jne 0x4a9080
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x418], eax
call fcn.0044dcb0
mov edx, eax
mov dword [ebp - 0x414], edx
test edx, edx
je 0x4a9455
nop dword [eax]
cmp dword [edx + 0x178], 0xffffffff
jne 0x4a9431
mov eax, dword [edx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x4a9431
mov al, byte [esi + 5]
cmp al, 6
je 0x4a9360
cmp al, 0xd
je 0x4a9360
cmp al, 7
je 0x4a9360
cmp al, 0xe
je 0x4a9360
cmp al, 0x11
je 0x4a9360
cmp al, 0xa
je 0x4a9360
mov ecx, dword [edi + 4]
push edx
push dword [edx + 0x170]
call fcn.004f45a0
mov ecx, dword [edi + 0x154]
mov dword [ebp - 0x41c], eax
mov eax, dword [ebp - 0x414]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004fbc10
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.004faa30
mov ecx, dword [edi + 0x154]
mov dword [ebp - 0x418], eax
cmp eax, 0xffffffff
jne 0x4a92a6
mov eax, dword [ebp - 0x414]
push dword [eax + 0x164]
call fcn.004fb210
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb320
mov edx, dword [ebp - 0x414]
mov eax, dword [ebp - 0x41c]
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 0x4a9360
push 1
push eax
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004f7f20
mov ecx, dword [edi + 0x154]
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x430]
push eax
push dword [ebp - 0x418]
call fcn.004fab30
mov eax, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x418]
mov dword [eax + 0x16c], ecx
mov ecx, dword [ebp - 0x41c]
movss xmm0, dword [ebp - 0x438]
movss dword [ecx + 0x118], xmm0
push dword [eax + 0x164]
mov ecx, dword [edi + 0x154]
call fcn.004fb210
fadd dword [ebp - 0x430]
mov eax, dword [ebp - 0x41c]
fstp dword [eax + 0x110]
mov eax, dword [ebp - 0x414]
mov ecx, dword [edi + 0x154]
push dword [eax + 0x168]
call fcn.004fb320
fadd dword [ebp - 0x434]
mov eax, dword [ebp - 0x41c]
mov edx, dword [ebp - 0x414]
fstp dword [eax + 0x114]
mov eax, dword [edi + 0x20c]
cmp eax, dword [edx + 0x17c]
jne 0x4a93f2
cmp dword [0x619a64], 0
jne 0x4a93f2
mov ecx, dword [edi + 0x154]
movq xmm0, qword [edx + 0x114]
movq qword [ecx + 0x184], xmm0
mov eax, dword [edx + 0x11c]
mov dword [ecx + 0x18c], eax
mov eax, dword [edi + 0x154]
mov dword [eax + 0x190], 0
push dword [edx + 0x168]
mov ecx, dword [edi + 0x154]
push dword [edx + 0x164]
call fcn.004f8830
mov eax, dword [ebp - 0x414]
mov ecx, edi
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004ac970
mov eax, dword [ebp - 0x414]
mov ecx, dword [edi + 0x18]
push eax
call fcn.0044dc60
mov edx, dword [ebp - 0x414]
cmp byte [esi + 5], 1
jne 0x4a9427
cmp byte [esi], 0x19
jne 0x4a9427
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.004b06e0
mov dword [ebp - 0x418], 1
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov edx, eax
mov dword [ebp - 0x414], eax
test edx, edx
jne 0x4a9170
cmp dword [ebp - 0x418], eax
jne case.0x4a85c2.8
push 0x4d8
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x4a9483
push 0x5c1410
push 0
mov ecx, eax
call fcn.004b0360
jmp 0x4a9485
xor eax, eax
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x414], eax
mov dword [ebp - 4], 0xffffffff
call fcn.0044daf0
mov edx, dword [ebp - 0x414]
movzx eax, byte [esi + 5]
mov dword [edx + 0x160], eax
cmp eax, 0x17
jb 0x4a94ba
movzx eax, byte [esi + 5]
mov dword [edx + 0x160], eax
mov al, byte [esi + 5]
cmp al, 1
jne 0x4a9531
movzx eax, word [esi + 8]
mov ecx, edx
push eax
movzx eax, word [esi + 6]
push eax
call fcn.004b09c0
mov eax, dword [0x619a58]
cmp eax, 1
je 0x4a94e1
cmp eax, 3
jne 0x4a94f3
mov edx, dword [ebp - 0x414]
movzx eax, byte [esi + 0xa]
mov dword [edx + 0x188], eax
jmp 0x4a94f9
mov edx, dword [ebp - 0x414]
cmp byte [esi], 0x19
jne 0x4a968f
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.004b06e0
jmp 0x4a9689
cmp al, 5
jne 0x4a9563
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.004a1100
add esp, 0xc
jmp 0x4a9689
cmp al, 0xd
jne 0x4a9571
push 0x5bba54
jmp 0x4a967a
cmp al, 6
jne 0x4a957f
push str.Items
jmp 0x4a967a
cmp al, 7
jne 0x4a95fa
lea eax, [edx + 0x1b0]
push 0x5bba54
push eax
call fcn.004a1100
mov ecx, dword [edi + 0x1c]
add esp, 8
call fcn.0044dcb0
mov edx, eax
test edx, edx
je 0x4a95e0
nop word [eax + eax]
movzx ecx, byte [esi + 0xb]
cmp dword [edx + 0x164], ecx
jne 0x4a95d2
movzx eax, byte [esi + 0xc]
cmp dword [edx + 0x168], eax
jne 0x4a95d2
mov dword [edx + 0x160], 1
mov ecx, dword [edi + 0x1c]
call fcn.0044dd50
mov edx, eax
test edx, edx
jne 0x4a95b0
movzx eax, byte [esi + 0xc]
mov ecx, dword [edi + 0x154]
push eax
movzx eax, byte [esi + 0xb]
push eax
call fcn.004f7f50
jmp 0x4a9689
cmp al, 8
jne 0x4a9605
push 0x5bba54
jmp 0x4a967a
cmp al, 0xc
jne 0x4a9610
push 0x5bba54
jmp 0x4a967a
cmp al, 0xe
jne 0x4a963a
lea eax, [edx + 0x1b0]
push 0x5bba54
push eax
call fcn.004a1100
mov edx, dword [ebp - 0x414]
add esp, 8
movzx eax, word [esi + 8]
mov dword [edx + 0x184], eax
jmp 0x4a968f
cmp al, 3
jne 0x4a9645
push str.Trainer
jmp 0x4a967a
cmp al, 4
jne 0x4a9650
push str.Town_Mage
jmp 0x4a967a
cmp al, 0x10
jne 0x4a965b
push str.Witch
jmp 0x4a967a
cmp al, 0x16
jne 0x4a9666
push str.Mall_Director
jmp 0x4a967a
cmp al, 0x15
jne 0x4a9675
cmp byte [esi], 0x19
jne 0x4a968f
lea eax, [esi + 0x15]
push eax
jmp 0x4a967a
push str.Merchant
lea eax, [edx + 0x1b0]
push eax
call fcn.004a1100
add esp, 8
mov edx, dword [ebp - 0x414]
mov al, byte [esi + 5]
cmp al, 6
je 0x4a98f8
cmp al, 0xd
je 0x4a98f8
cmp al, 0xe
je 0x4a98f8
cmp al, 7
je 0x4a98f8
mov ecx, dword [edi + 4]
push edx
call fcn.004f45c0
mov ecx, dword [ebp - 0x414]
push ecx
push eax
mov dword [ecx + 0x170], eax
mov ecx, dword [edi + 4]
call fcn.004f45a0
movzx ecx, byte [esi + 0xb]
mov dword [ebp - 0x418], eax
mov eax, dword [ebp - 0x414]
mov dword [eax + 0x164], ecx
movzx edx, byte [esi + 0xc]
mov dword [eax + 0x168], edx
cmp byte [esi + 5], 5
jne 0x4a96fb
push 1
jmp 0x4a96fd
push 0
push edx
push ecx
mov ecx, dword [edi + 0x154]
call fcn.004faa30
mov dword [ebp - 0x41c], eax
cmp eax, 0xffffffff
jne 0x4a974e
mov ecx, dword [ebp - 0x414]
push dword [ecx + 0x164]
mov ecx, dword [edi + 0x154]
call fcn.004fb210
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb320
jmp 0x4a97e0
mov ecx, dword [edi + 0x154]
push 1
push eax
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004f7f20
mov ecx, dword [edi + 0x154]
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x430]
push eax
push dword [ebp - 0x41c]
call fcn.004fab30
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.004fb210
fadd dword [ebp - 0x430]
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb320
fadd dword [ebp - 0x434]
mov ecx, dword [ebp - 0x414]
fstp dword [ecx + 0x11c]
call fcn.005619b8
xorps xmm1, xmm1
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 [0x5bc050]
divss xmm0, dword [0x5bcef0]
addss xmm0, xmm1
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.004acca0
mov ecx, dword [ebp - 0x418]
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 - 0x438]
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 0x4a98e4
mov dword [ecx + 0x128], 0x3f800000
mov ecx, dword [ebp - 0x414]
mov eax, dword [esi + 1]
mov dword [ecx + 0x17c], eax
jmp case.0x4a85c2.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.004fb210
mov ecx, dword [edi + 0x154]
fstp dword [ebp - 0x418]
call fcn.004f7f10
fmul dword [0x5bcbcc]
mov eax, dword [ebp - 0x414]
fadd dword [ebp - 0x418]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb320
mov ecx, dword [edi + 0x154]
fstp dword [ebp - 0x418]
call fcn.004f7f10
fmul dword [0x5bcbcc]
sub esp, 8
mov eax, dword [ebp - 0x414]
mov ecx, edi
fadd dword [ebp - 0x418]
mov dword [eax + 0x108], 0
mov dword [eax + 0x10c], 0
fstp dword [ebp - 0x418]
movss xmm0, dword [ebp - 0x418]
movss dword [esp + 4], xmm0
movss dword [eax + 0x11c], xmm0
movss xmm0, dword [eax + 0x114]
movss dword [esp], xmm0
call fcn.004acca0
mov ecx, dword [ebp - 0x414]
fstp dword [ecx + 0x118]
mov eax, dword [esi + 1]
mov dword [ecx + 0x17c], eax
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov dword [ebp - 0x414], eax
test eax, eax
je case.0x4a85c2.8
nop dword [eax]
cmp dword [eax + 0x178], 0xffffffff
jne 0x4a9a83
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x4a9a83
mov ecx, dword [edi + 0x18]
push eax
call fcn.0044dea0
mov ecx, dword [ebp - 0x414]
mov eax, dword [ecx + 0x160]
cmp eax, 6
je 0x4a9a73
cmp eax, 0xa
je 0x4a9a73
cmp eax, 0x11
je 0x4a9a73
cmp eax, 0xd
je 0x4a9a73
cmp eax, 0xe
je 0x4a9a73
cmp eax, 7
je 0x4a9a73
push dword [ecx + 0x16c]
push dword [ecx + 0x168]
push dword [ecx + 0x164]
mov ecx, dword [edi + 0x154]
call fcn.004fbc10
mov eax, dword [ebp - 0x414]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.004f4580
mov ecx, dword [ebp - 0x414]
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
jmp 0x4a9a8b
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov dword [ebp - 0x414], eax
test eax, eax
jne 0x4a99f0
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x41c], eax
call fcn.0044dcb0
test eax, eax
je 0x4a9af6
mov edx, 1
cmp dword [eax + 0x178], 0xffffffff
jne 0x4a9ad8
mov eax, dword [eax + 0x17c]
mov ecx, dword [ebp - 0x41c]
cmp eax, dword [esi + 1]
cmove ecx, edx
mov dword [ebp - 0x41c], ecx
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov edx, 1
test eax, eax
jne 0x4a9ab7
cmp dword [ebp - 0x41c], 0
jne case.0x4a85c2.8
push 0x4d8
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x4a9b24
push 0x5c1410
push 0
mov ecx, eax
call fcn.004b0360
jmp 0x4a9b26
xor eax, eax
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x414], eax
mov dword [ebp - 4], 0xffffffff
call fcn.0044daf0
mov eax, dword [ebp - 0x414]
push 0x5bba54
mov dword [eax + 0x160], 0x11
add eax, 0x1b0
push eax
call fcn.004a1100
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.004fb210
mov ecx, dword [edi + 0x154]
fstp dword [ebp - 0x418]
call fcn.004f7f10
fmul dword [0x5bcbcc]
mov eax, dword [ebp - 0x414]
fadd dword [ebp - 0x418]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb320
mov ecx, dword [edi + 0x154]
fstp dword [ebp - 0x418]
call fcn.004f7f10
fmul dword [0x5bcbcc]
sub esp, 8
mov eax, dword [ebp - 0x414]
mov ecx, edi
fadd dword [ebp - 0x418]
mov dword [eax + 0x108], 0
mov dword [eax + 0x10c], 0
movss xmm0, dword [eax + 0x114]
fstp dword [ebp - 0x418]
movss xmm1, dword [ebp - 0x418]
movss dword [esp + 4], xmm1
movss dword [eax + 0x11c], xmm1
movss dword [esp], xmm0
call fcn.004acca0
mov edx, dword [ebp - 0x414]
movss xmm1, dword [0x5c19b4]
fstp dword [edx + 0x118]
mov eax, dword [esi + 1]
mov dword [edx + 0x17c], eax
movzx ecx, byte [esi + 6]
movzx eax, byte [esi + 7]
or ecx, 0x3700
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 8]
shl ecx, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
movzx eax, al
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
mulss xmm0, xmm1
movss dword [ebp - 0x42c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, cl
shr ecx, 0x18
mulss xmm0, xmm1
movss dword [ebp - 0x428], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x424], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x420], xmm0
movups xmm0, xmmword [ebp - 0x42c]
movups xmmword [edx + 0x224], xmm0
movzx eax, byte [esi + 5]
mov dword [edx + 0x234], eax
mov eax, dword [esi + 0xb]
mov dword [edx + 0x238], eax
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov edx, eax
mov dword [ebp - 0x41c], edx
test edx, edx
je case.0x4a85c2.8
nop dword [eax]
nop word [eax + eax]
movzx ecx, byte [esi + 5]
cmp ecx, dword [edx + 0x160]
jne 0x4a9dc5
mov eax, dword [edx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x4a9dc5
mov ecx, dword [edi + 0x18]
push edx
call fcn.0044dea0
mov eax, dword [ebp - 0x41c]
sub esp, 0xc
movq xmm0, qword [eax + 0x114]
mov ecx, dword [eax + 0x11c]
mov eax, esp
movq qword [ebp - 0x428], xmm0
movss xmm0, dword [ebp - 0x424]
addss xmm0, dword [0x5c00bc]
movss dword [ebp - 0x424], xmm0
movq xmm0, qword [ebp - 0x428]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x619a20]
call fcn.00519b10
movaps xmm0, xmmword [0x5c1a70]
sub esp, 0x10
mov ecx, dword [0x619a20]
mov eax, esp
push 0x3c
movups xmmword [eax], xmm0
call fcn.00519730
mov ecx, dword [ebp - 0x41c]
push 1
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov edx, eax
mov dword [ebp - 0x41c], edx
jmp 0x4a9dd5
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov edx, eax
mov dword [ebp - 0x41c], eax
test edx, edx
jne 0x4a9d10
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov ecx, eax
mov dword [ebp - 0x414], ecx
test ecx, ecx
je case.0x4a85c2.8
nop word [eax + eax]
cmp dword [ecx + 0x178], 0xffffffff
jne 0x4a9f88
mov eax, dword [ecx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x4a9f88
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.004f45a0
mov ecx, dword [edi + 0x154]
mov dword [ebp - 0x41c], eax
mov eax, dword [ebp - 0x414]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004fbc10
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.004faa30
mov ecx, dword [edi + 0x154]
mov dword [ebp - 0x418], eax
cmp eax, 0xffffffff
jne 0x4a9ec5
movzx eax, byte [esi + 7]
push eax
call fcn.004fb210
mov eax, dword [ebp - 0x41c]
fstp dword [eax + 0x110]
movzx eax, byte [esi + 8]
mov ecx, dword [edi + 0x154]
push eax
call fcn.004fb320
mov eax, dword [ebp - 0x41c]
fstp dword [eax + 0x114]
jmp 0x4a9f6b
push 1
push eax
mov eax, dword [ebp - 0x414]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004f7f20
mov ecx, dword [edi + 0x154]
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x430]
push eax
push dword [ebp - 0x418]
call fcn.004fab30
mov eax, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x418]
mov dword [eax + 0x16c], ecx
movzx eax, byte [esi + 7]
mov ecx, dword [edi + 0x154]
push eax
call fcn.004fb210
fadd dword [ebp - 0x430]
mov eax, dword [ebp - 0x41c]
fstp dword [eax + 0x110]
movzx eax, byte [esi + 8]
mov ecx, dword [edi + 0x154]
push eax
call fcn.004fb320
fadd dword [ebp - 0x434]
mov eax, dword [ebp - 0x41c]
fstp dword [eax + 0x114]
movss xmm0, dword [ebp - 0x438]
movss dword [eax + 0x118], xmm0
cmp byte [esi], 0x1c
jne 0x4a9f88
cmp dword [esi + 9], 1
jne 0x4a9f88
mov eax, dword [ebp - 0x414]
mov eax, dword [eax + 0x17c]
mov dword [edi + 0x20c], eax
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov ecx, eax
mov dword [ebp - 0x414], eax
test ecx, ecx
jne 0x4a9e00
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
test eax, eax
je case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
test eax, eax
jne 0x4a9fb5
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov ecx, eax
mov dword [ebp - 0x414], ecx
test ecx, ecx
je case.0x4a85c2.8
nop
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4aa496
mov edx, dword [esi + 9]
cmp eax, edx
jne 0x4aa496
mov eax, dword [edi + 8]
cmp dword [eax + 0x178], edx
jne 0x4aa00e
mov eax, dword [esi + 5]
mov dword [edi + 0x27c], eax
mov ecx, dword [ecx + 0x26c]
test ecx, ecx
je 0x4aa01e
mov eax, dword [ecx]
push 1
call dword [eax]
push 0x174
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 4
test eax, eax
je 0x4aa045
mov ecx, eax
call fcn.00461cc0
jmp 0x4aa047
xor eax, eax
mov ecx, dword [ebp - 0x414]
mov edx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ecx + 0x26c], eax
mov dword [ecx + 0x2f4], 0
mov dword [ecx + 0x2f8], 0
mov dword [ecx + 0x2fc], 0
mov dword [ecx + 0x300], 0
mov dword [ecx + 0x304], 0
mov dword [ecx + 0x308], 0
mov dword [ecx + 0x30c], 0
mov dword [ecx + 0x310], 0
mov dword [ecx + 0x314], 0
mov dword [ecx + 0x318], 0
mov dword [ecx + 0x31c], 0
mov dword [ecx + 0x320], 0
movzx eax, byte [esi + 0x19]
mov dword [ecx + 0x270], eax
mov ecx, edx
mov al, byte [esi + 0x19]
cmp al, 0x80
jb 0x4aa1c2
mov eax, dword [0x6192d0]
push str.dat_staff.ase
push dword [eax + 0x2a3d8]
call fcn.00463520
mov eax, dword [0x6192d0]
mov ecx, dword [ebp - 0x414]
push 0
push str.dat_staff.png
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x26c]
call fcn.00463fc0
movzx ecx, byte [esi + 0x1a]
movzx eax, byte [esi + 0x1b]
or ecx, 0x3700
movss xmm1, dword [0x5c19b4]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0x1c]
shl ecx, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
movzx eax, al
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
mulss xmm0, xmm1
movss dword [ebp - 0x42c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, cl
shr ecx, 0x18
mulss xmm0, xmm1
movss dword [ebp - 0x428], xmm0
movd xmm0, eax
mov eax, dword [ebp - 0x414]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x424], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x420], xmm0
movups xmm0, xmmword [ebp - 0x42c]
movups xmmword [eax + 0x28c], xmm0
jmp 0x4aa2ca
cmp al, 1
jne 0x4aa1e7
mov eax, dword [0x6192d0]
push str.datkatana.ase
push dword [eax + 0x2a3d8]
call fcn.00463520
push 0
push str.datkatana.png
jmp 0x4aa2ae
cmp al, 4
jne 0x4aa20c
mov eax, dword [0x6192d0]
push str.datclaws.ASE
push dword [eax + 0x2a3d8]
call fcn.00463520
push 0
push str.datclaws.png
jmp 0x4aa2ae
cmp al, 3
jne 0x4aa231
mov eax, dword [0x6192d0]
push str.datchaosBlade.ASE
push dword [eax + 0x2a3d8]
call fcn.00463520
push 0
push str.datchaosBlade.png
jmp 0x4aa2ae
cmp al, 5
jne 0x4aa253
mov eax, dword [0x6192d0]
push str.dat_bladeStaff.ASE
push dword [eax + 0x2a3d8]
call fcn.00463520
push 0
push str.dat_bladeStaff.png
jmp 0x4aa2ae
cmp al, 2
jne 0x4aa275
mov eax, dword [0x6192d0]
push str.datmace.ASE
push dword [eax + 0x2a3d8]
call fcn.00463520
push 0
push str.datmace.png
jmp 0x4aa2ae
cmp al, 5
mov eax, dword [0x6192d0]
jbe 0x4aa297
push str.dat_scythe.ASE
push dword [eax + 0x2a3d8]
call fcn.00463520
push 0
push str.dat_scythe.png
jmp 0x4aa2ae
push str.dat_blade.ase
push dword [eax + 0x2a3d8]
call fcn.00463520
push 0
push str.dat_bladeMetal.png
mov eax, dword [0x6192d0]
push dword [eax + 0x2a3d8]
mov eax, dword [ebp - 0x414]
mov ecx, dword [eax + 0x26c]
call fcn.00463fc0
movss xmm0, dword [esi + 1]
sub esp, 0xc
mulss xmm0, dword [0x5c19b0]
mov eax, dword [0x6192d0]
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
push dword [eax + 0x2a3d8]
mov eax, dword [ebp - 0x414]
mov ecx, dword [eax + 0x26c]
call fcn.00464e30
mov eax, dword [0x6192d0]
push dword [eax + 0x2a3d8]
mov eax, dword [ebp - 0x414]
mov ecx, dword [eax + 0x26c]
call fcn.004644a0
movzx eax, byte [esi + 0x1c]
push 0xff
push eax
movzx eax, byte [esi + 0x1b]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ebp - 0x414]
mov ecx, dword [eax + 0x26c]
call fcn.00464eb0
mov edx, dword [ebp - 0x414]
mov eax, dword [esi + 1]
movaps xmm0, xmmword [0x5c1ae0]
mov dword [edx + 0x2f0], eax
movzx eax, word [esi + 0x11]
mov dword [edx + 0x274], eax
movzx eax, word [esi + 0x15]
mov dword [edx + 0x280], eax
movzx eax, word [esi + 0x13]
mov dword [edx + 0x27c], eax
movzx eax, word [esi + 0xf]
mov dword [edx + 0x278], eax
movzx eax, word [esi + 0xd]
mov dword [edx + 0x284], eax
mov dword [edx + 0x288], 0
mov ecx, dword [edx + 0x274]
mov dword [edx + 0x288], ecx
add ecx, dword [edx + 0x278]
mov dword [edx + 0x288], ecx
add ecx, dword [edx + 0x27c]
mov dword [edx + 0x288], ecx
add ecx, dword [edx + 0x280]
mov dword [edx + 0x288], ecx
mov eax, dword [edx + 0x284]
add eax, ecx
mov dword [edx + 0x288], eax
movups xmmword [edx + 0x2ac], xmm0
movaps xmm0, xmmword [0x5c1b10]
movups xmmword [edx + 0x2bc], xmm0
movaps xmm0, xmmword [0x5c1a40]
movups xmmword [edx + 0x28c], xmm0
movaps xmm0, xmmword [0x5c1a80]
movups xmmword [edx + 0x29c], xmm0
movaps xmm0, xmmword [0x5c1ac0]
movups xmmword [edx + 0x2cc], xmm0
movzx eax, word [esi + 0x17]
add eax, 0xffffffe7
cmp eax, 8
ja case.default.0x4aa423
jmp dword [eax*4 + 0x4ac940]
movaps xmm0, xmmword [0x5c1b10]
movups xmmword [edx + 0x2dc], xmm0
mov dword [edx + 0x2ec], 1
jmp 0x4aa496
movaps xmm0, xmmword [0x5c1a40]
jmp 0x4aa431
movaps xmm0, xmmword [0x5c1ae0]
jmp 0x4aa431
movaps xmm0, xmmword [0x5c1a80]
jmp 0x4aa431
movaps xmm0, xmmword [0x5c1b00]
jmp 0x4aa431
movaps xmm0, xmmword [0x5c1af0]
jmp 0x4aa431
movaps xmm0, xmmword [0x5c1a90]
jmp 0x4aa431
movaps xmm0, xmmword [0x5c1a60]
jmp 0x4aa431
movaps xmm0, xmmword [0x5c1ad0]
jmp 0x4aa431
mov dword [edx + 0x2ec], 0
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov ecx, eax
mov dword [ebp - 0x414], eax
test ecx, ecx
jne 0x4a9fe0
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov ecx, eax
mov dword [ebp - 0x418], ecx
test ecx, ecx
je case.0x4a85c2.8
nop dword [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4aa519
mov edx, dword [esi + 1]
cmp eax, edx
jne 0x4aa519
mov eax, dword [edi + 8]
cmp dword [eax + 0x178], edx
jne 0x4aa4f7
mov dword [edi + 0x27c], 0
mov edx, dword [ecx + 0x26c]
test edx, edx
je 0x4aa50f
mov eax, dword [edx]
mov ecx, edx
push 1
call dword [eax]
mov ecx, dword [ebp - 0x418]
mov dword [ecx + 0x26c], 0
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov ecx, eax
mov dword [ebp - 0x418], eax
test ecx, ecx
jne 0x4aa4d0
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x414], eax
call fcn.0044dcb0
mov ecx, eax
mov dword [ebp - 0x418], ecx
test ecx, ecx
je case.0x4a85c2.8
nop dword [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4aa5b9
cmp eax, dword [esi + 1]
jne 0x4aa5d1
call fcn.005619b8
and eax, reloc.WS2_32.dll_accept
jns 0x4aa581
dec eax
or eax, 0xfffffffe
inc eax
mov ecx, dword [ebp - 0x418]
inc eax
mov dword [ebp - 0x414], ecx
mov dword [ecx + 0x19c], eax
mov dword [ecx + 0x190], 0
mov eax, dword [esi + 0xd]
cmp eax, 0xfffffc18
je 0x4aa5d1
mov dword [ecx + 0x210], eax
mov eax, dword [esi + 0x11]
mov dword [ecx + 0x214], eax
jmp 0x4aa5d1
mov eax, dword [ecx + 0x17c]
mov edx, dword [ebp - 0x41c]
cmp eax, dword [esi + 5]
cmove edx, ecx
mov dword [ebp - 0x41c], edx
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov ecx, eax
mov dword [ebp - 0x418], eax
test ecx, ecx
jne 0x4aa560
mov ecx, dword [ebp - 0x414]
test ecx, ecx
je case.0x4a85c2.8
mov eax, dword [ebp - 0x41c]
test eax, eax
je case.0x4a85c2.8
mov edx, dword [esi + 9]
cmp edx, 0xffffffff
jne 0x4aa649
test byte [0x61acb8], 2
je 0x4aa6a4
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.0044c680
lea eax, [ebp - 0x410]
push eax
call fcn.00500950
add esp, 0x14
jmp 0x4aa69e
cmp dword [esi + 0x15], 0
jne 0x4aa667
test byte [0x61acb8], 1
je 0x4aa6a4
push edx
lea eax, [ecx + 0x1b0]
push eax
push str._s_uses_her_staff_for__d_damage.
jmp 0x4aa62c
test byte [0x61acb8], 1
je 0x4aa6a4
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.0044c680
lea eax, [ebp - 0x410]
push eax
call fcn.00500950
add esp, 0x18
mov ecx, dword [ebp - 0x414]
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.004f45a0
mov esi, eax
mov eax, dword [ebp - 0x41c]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.004f45a0
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.0044d5f0
fstp dword [esi + 0x118]
add esp, 0x18
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
test eax, eax
je case.0x4a85c2.8
cmp dword [eax + 0x178], 0xffffffff
jg 0x4aa75f
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x4aa75f
mov dword [eax + 0x1a4], 1
mov dword [eax + 0x190], 0
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
test eax, eax
jne 0x4aa737
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x414], 0
mov dword [ebp - 0x41c], 0
call fcn.0044dcb0
test eax, eax
je case.0x4a85c2.8
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
jle 0x4aa7b1
cmp ecx, dword [esi + 5]
cmovne eax, dword [ebp - 0x414]
mov dword [ebp - 0x414], eax
jmp 0x4aa7ea
mov edx, dword [eax + 0x17c]
cmp edx, dword [esi + 1]
jne 0x4aa7d8
mov dword [eax + 0x19c], 1
mov dword [eax + 0x190], 0
mov dword [ebp - 0x41c], eax
jmp 0x4aa7ea
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.0044dd50
test eax, eax
jne 0x4aa794
mov ecx, dword [ebp - 0x41c]
test ecx, ecx
je case.0x4a85c2.8
mov edx, dword [ebp - 0x414]
test edx, edx
je case.0x4a85c2.8
mov eax, dword [esi + 9]
cmp eax, 0xffffffff
jne 0x4aa85a
test byte [0x61acb8], 2
je 0x4aa902
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.0044c680
lea eax, [ebp - 0x410]
push eax
call fcn.00500950
add esp, 0x14
jmp 0x4aa8fc
test byte [0x61acb8], 1
je 0x4aa898
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.0044c680
lea eax, [ebp - 0x410]
push eax
call fcn.00500950
mov edx, dword [ebp - 0x414]
add esp, 0x18
mov ecx, dword [edi + 8]
cmp edx, ecx
jne 0x4aa8c4
mov eax, dword [esi + 9]
sub dword [ecx + 0x210], eax
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x210]
mov dword [0x61ac78], eax
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x214]
mov dword [0x61ac7c], 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.00466230
mov ecx, dword [edi + 0x574]
call fcn.00466110
mov ecx, dword [ebp - 0x41c]
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.004f45a0
mov esi, eax
mov eax, dword [ebp - 0x414]
jmp 0x4aa6bb
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x418], eax
call fcn.0044dcb0
test eax, eax
je case.0x4a85c2.8
nop word [eax + eax]
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x4aa965
mov dword [eax + 0x1a0], 1
mov dword [eax + 0x190], 0
mov dword [ebp - 0x418], eax
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
test eax, eax
jne 0x4aa940
mov eax, dword [ebp - 0x418]
test eax, eax
je case.0x4a85c2.8
test byte [0x61acb8], 2
je case.0x4a85c2.8
add eax, 0x1b0
push eax
lea eax, [ebp - 0x410]
push str.The__s_attacks_everyone_
push eax
call fcn.0044c680
lea eax, [ebp - 0x410]
push eax
call fcn.00500950
add esp, 0x10
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov edx, eax
test edx, edx
je case.0x4a85c2.8
nop dword [eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x4aa9ee
mov eax, dword [esi + 5]
mov dword [edx + 0x1ac], eax
mov dword [edx + 0x190], 0
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov edx, eax
test edx, edx
jne 0x4aa9d0
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov dword [ebp - 0x414], eax
test eax, eax
je case.0x4a85c2.8
nop word [eax + eax]
mov ecx, dword [eax + 0x178]
cmp ecx, dword [esi + 1]
jne 0x4aaab3
mov ecx, dword [edi + 0x18]
push eax
call fcn.0044dea0
mov eax, dword [ebp - 0x414]
mov ecx, dword [edi + 0x154]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004fbc10
mov eax, dword [ebp - 0x414]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.004f4580
mov eax, dword [ebp - 0x414]
add eax, 0x1b0
push eax
lea eax, [ebp - 0x410]
push str._s_is_defeated_
push eax
call fcn.0044c680
lea eax, [ebp - 0x410]
push eax
call fcn.00500950
mov ecx, dword [ebp - 0x414]
add esp, 0x10
cmp dword [edi + 8], ecx
jne 0x4aaaad
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.0044dd50
mov dword [ebp - 0x414], eax
test eax, eax
jne 0x4aaa20
jmp case.0x4a85c2.8
and dword [0x6190f4], 0xfffffffe
call fcn.004f2230
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.0044dcb0
test eax, eax
je 0x4aab7b
mov esi, eax
mov ecx, dword [edi + 0x18]
cmp esi, dword [edi + 8]
je 0x4aab6a
push esi
call fcn.0044dea0
mov eax, dword [esi + 0x16c]
cmp eax, 0xffffffff
jle 0x4aab58
mov ecx, dword [edi + 0x154]
push eax
push dword [esi + 0x168]
push dword [esi + 0x164]
call fcn.004fbc10
mov ecx, dword [edi + 4]
push esi
push dword [esi + 0x170]
call fcn.004f4580
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
jmp 0x4aab6f
call fcn.0044dd50
mov esi, eax
test esi, esi
jne 0x4aab18
mov esi, dword [ebp - 0x43c]
call fcn.004f2230
mov ecx, edi
call fcn.004a3770
call fcn.004f2230
mov cl, byte [esi + 2]
movsx eax, cl
mov dword [0x619a58], eax
cmp eax, 1
je 0x4ab4c5
cmp cl, 3
je 0x4ab4c5
cmp cl, 4
jne 0x4aaf4a
push 0xfffffffffffffffe
lea ecx, [edi + 0x430]
call fcn.0046fcc0
call fcn.004f2230
mov eax, dword [edi + 0x164]
test eax, eax
je 0x4aabe1
movsx ecx, byte [eax + 0x1c0]
movzx eax, byte [esi + 0xf]
cmp eax, ecx
je 0x4aaf41
push str.delete_realm_ptr
mov ecx, 0x6190cc
call fcn.00447e60
push dword [edi + 0x164]
mov ecx, 0x6190cc
call fcn.00447dd0
push 0x5bcc98
mov ecx, 0x6190cc
call fcn.00447e60
mov ecx, dword [edi + 0x164]
test ecx, ecx
je 0x4aac29
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x164], 0
call fcn.004f2230
movzx eax, byte [esi + 0xf]
mov ecx, 0x6190cc
sub eax, 1
je 0x4aae9c
sub eax, 1
je 0x4aadee
sub eax, 4
je 0x4aad40
push str.new_realm_object_for_spirits_n
call fcn.00447e60
push 0x1d0
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 7
test eax, eax
je 0x4aac88
movzx ecx, byte [esi + 0xf]
push ecx
mov ecx, eax
call fcn.00526290
jmp 0x4aac8a
xor eax, eax
push str.init___n
mov ecx, 0x6190cc
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x164], eax
call fcn.00447e60
mov ecx, dword [edi + 0x164]
push 0x5c1668
push str.dat_realm_spirits_color.png
call fcn.00527b20
push str.generate___n
mov ecx, 0x6190cc
call fcn.00447e60
call fcn.004f2230
mov eax, dword [0x6192d0]
mov ecx, dword [edi + 0x164]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_spirits_height.png
call fcn.00526b90
push str.loadTexture___n
mov ecx, 0x6190cc
call fcn.00447e60
mov eax, dword [0x6192d0]
mov ecx, dword [edi + 0x164]
push 0x5c1668
push dword [eax + 0x2a3d8]
call fcn.00528210
push str.CreateSpiritStaticPositions___n
mov ecx, 0x6190cc
call fcn.00447e60
call fcn.004f2230
mov ecx, dword [edi + 0x164]
push 0
call fcn.00526440
movzx eax, byte [esi + 0xf]
jmp 0x4ab22b
push str.test_realm_object_n
call fcn.00447e60
push 0x1d0
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 0xa
test eax, eax
je 0x4aad76
movzx ecx, byte [esi + 0xf]
push ecx
mov ecx, eax
call fcn.00526290
jmp 0x4aad78
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.00527b20
call fcn.004f2230
mov eax, dword [0x6192d0]
mov ecx, dword [edi + 0x164]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_test_height.png
call fcn.00526b90
mov eax, dword [0x6192d0]
mov ecx, dword [edi + 0x164]
push str.dat_test_texture.png
push dword [eax + 0x2a3d8]
call fcn.00528210
call fcn.004f2230
mov ecx, dword [edi + 0x164]
push 6
call fcn.00526440
movzx eax, byte [esi + 0xf]
jmp 0x4ab22b
push str.new_realm_object_for_dragons_n
call fcn.00447e60
push 0x1d0
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 9
test eax, eax
je 0x4aae24
movzx ecx, byte [esi + 0xf]
push ecx
mov ecx, eax
call fcn.00526290
jmp 0x4aae26
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.00527b20
call fcn.004f2230
mov eax, dword [0x6192d0]
mov ecx, dword [edi + 0x164]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_dragons_height.png
call fcn.00526b90
mov eax, dword [0x6192d0]
mov ecx, dword [edi + 0x164]
push str.dat_realm_dragon_color.png
push dword [eax + 0x2a3d8]
call fcn.00528210
call fcn.004f2230
mov ecx, dword [edi + 0x164]
push 2
call fcn.00526440
movzx eax, byte [esi + 0xf]
jmp 0x4ab22b
push str.new_realm_object_for_the_dead_n
call fcn.00447e60
push 0x1d0
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 8
test eax, eax
je 0x4aaed2
movzx ecx, byte [esi + 0xf]
push ecx
mov ecx, eax
call fcn.00526290
jmp 0x4aaed4
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.00527b20
call fcn.004f2230
mov eax, dword [0x6192d0]
mov ecx, dword [edi + 0x164]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_dead_height.png
call fcn.00526b90
mov eax, dword [0x6192d0]
mov ecx, dword [edi + 0x164]
push str.dat_realm_dead_color.png
push dword [eax + 0x2a3d8]
call fcn.00528210
call fcn.004f2230
mov ecx, dword [edi + 0x164]
push 1
call fcn.00526440
movzx eax, byte [esi + 0xf]
jmp 0x4ab22b
cmp cl, 2
jne 0x4ab24f
push 0xfffffffffffffffd
lea ecx, [edi + 0x430]
call fcn.0046fcc0
call fcn.004f2230
mov eax, dword [edi + 0x168]
add esi, 0xf
test eax, eax
je 0x4aaf86
mov dl, byte [esi]
movsx ecx, byte [eax + 0x1c0]
movzx eax, dl
cmp eax, ecx
je 0x4ab228
push str.delete_labyrinth_ptr
mov ecx, 0x6190cc
call fcn.00447e60
push dword [edi + 0x168]
mov ecx, 0x6190cc
call fcn.00447dd0
push 0x5bcc98
mov ecx, 0x6190cc
call fcn.00447e60
mov ecx, dword [edi + 0x168]
test ecx, ecx
je 0x4aafce
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x168], 0
call fcn.004f2230
movzx eax, byte [esi]
mov ecx, 0x6190cc
push str.new_labyrinth_object_n
sub eax, 4
je 0x4ab149
sub eax, 1
je 0x4ab09c
call fcn.00447e60
push 0x41d4
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 0xb
test eax, eax
je 0x4ab022
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00511170
jmp 0x4ab024
xor eax, eax
push str.init___n
mov ecx, 0x6190cc
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x168], eax
call fcn.00447e60
mov ecx, dword [edi + 0x168]
push 0
push str.datlabyrinth_color.png
call fcn.00512e40
push str.generate___n
mov ecx, 0x6190cc
call fcn.00447e60
call fcn.004f2230
mov eax, dword [0x6192d0]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth_height.png
call fcn.005117d0
push str.loadTexture___n
mov ecx, 0x6190cc
call fcn.00447e60
push 0x5c1888
jmp 0x4ab1f1
call fcn.00447e60
push 0x41d4
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 0xd
test eax, eax
je 0x4ab0cc
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00511170
jmp 0x4ab0ce
xor eax, eax
push str.init___n
mov ecx, 0x6190cc
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x168], eax
call fcn.00447e60
mov ecx, dword [edi + 0x168]
push str.datlabyrinth3_ceiling.png
push str.datlabyrinth_color.png
call fcn.00512e40
push str.generate___n
mov ecx, 0x6190cc
call fcn.00447e60
call fcn.004f2230
mov eax, dword [0x6192d0]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth3_height.png
call fcn.005117d0
push str.loadTexture___n
mov ecx, 0x6190cc
call fcn.00447e60
push str.datlabyrinth3_floor.png
jmp 0x4ab1f1
call fcn.00447e60
push 0x41d4
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 0xc
test eax, eax
je 0x4ab179
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00511170
jmp 0x4ab17b
xor eax, eax
push str.init___n
mov ecx, 0x6190cc
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x168], eax
call fcn.00447e60
mov ecx, dword [edi + 0x168]
push str.datlabyrinth2_texture.png
push str.datlabyrinth_color.png
call fcn.00512e40
push str.generate___n
mov ecx, 0x6190cc
call fcn.00447e60
call fcn.004f2230
mov eax, dword [0x6192d0]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth2_height.png
call fcn.005117d0
push str.loadTexture___n
mov ecx, 0x6190cc
call fcn.00447e60
push str.datlabyrinth2_texture.png
mov eax, dword [0x6192d0]
mov ecx, dword [edi + 0x168]
push dword [eax + 0x2a3d8]
call fcn.005132a0
push str.CreateStaticPositions___n
mov ecx, 0x6190cc
call fcn.00447e60
call fcn.004f2230
mov ecx, dword [edi + 0x168]
call fcn.00511310
mov dl, byte [esi]
movzx eax, dl
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.0x4a85c2.8
test cl, cl
jne case.0x4a85c2.8
mov ecx, dword [edi + 0x154]
mov al, byte [esi + 0xf]
movzx edx, al
cmp edx, dword [ecx + 0x110]
je 0x4ab4b1
push edx
call fcn.004fb6a0
mov eax, dword [0x6192d0]
mov ecx, dword [edi + 0x154]
push 0
push 0x100
push 0x100
push dword [eax + 0x2a3d8]
call fcn.004f92b0
mov eax, dword [0x6192d0]
mov ecx, dword [edi + 0x154]
push str.datgrassfull.png
push dword [eax + 0x2a3d8]
call fcn.004fbb10
mov ecx, dword [edi + 0x154]
call fcn.004f8000
mov eax, dword [0x619a44]
mov dword [ebp - 0x418], eax
test eax, eax
je 0x4ab2e3
mov ecx, eax
call fcn.0052c440
push 0x24
push dword [ebp - 0x418]
call fcn.005548b3
add esp, 8
mov eax, dword [0x619a48]
mov dword [ebp - 0x418], eax
test eax, eax
je 0x4ab309
mov ecx, eax
call fcn.0052c440
push 0x24
push dword [ebp - 0x418]
call fcn.005548b3
add esp, 8
mov eax, dword [0x619a4c]
mov dword [ebp - 0x418], eax
test eax, eax
je 0x4ab32f
mov ecx, eax
call fcn.0052c440
push 0x24
push dword [ebp - 0x418]
call fcn.005548b3
add esp, 8
mov eax, dword [0x619a50]
mov dword [ebp - 0x418], eax
test eax, eax
je 0x4ab355
mov ecx, eax
call fcn.0052c440
push 0x24
push dword [ebp - 0x418]
call fcn.005548b3
add esp, 8
push 0x24
call fcn.00554883
mov edx, eax
add esp, 4
mov dword [ebp - 0x418], edx
mov dword [ebp - 4], 0xe
test edx, edx
je 0x4ab39f
push ecx
mov ecx, dword [0x5fd8a4]
shl ecx, 5
add ecx, dword [0x5fd8a4]
mov dword [esp], 0x3e4ccccd
push str.datgrass_bill_1.png
lea eax, [ecx*2 + 5]
mov ecx, edx
push eax
call fcn.0052c320
jmp 0x4ab3a1
xor eax, eax
push 0x24
mov dword [ebp - 4], 0xffffffff
mov dword [0x619a44], eax
call fcn.00554883
mov edx, eax
add esp, 4
mov dword [ebp - 0x418], edx
mov dword [ebp - 4], 0xf
test edx, edx
je 0x4ab3f7
push ecx
mov ecx, dword [0x5fd8a4]
shl ecx, 5
add ecx, dword [0x5fd8a4]
mov dword [esp], 0x3e800000
push str.datgrass_bill_2.png
lea eax, [ecx*2 + 5]
mov ecx, edx
push eax
call fcn.0052c320
jmp 0x4ab3f9
xor eax, eax
push 0x24
mov dword [ebp - 4], 0xffffffff
mov dword [0x619a48], eax
call fcn.00554883
mov edx, eax
add esp, 4
mov dword [ebp - 0x418], edx
mov dword [ebp - 4], 0x10
test edx, edx
je 0x4ab44f
push ecx
mov ecx, dword [0x5fd8a4]
shl ecx, 5
add ecx, dword [0x5fd8a4]
mov dword [esp], 0x3e99999a
push str.datgrass_bill_3.png
lea eax, [ecx*2 + 5]
mov ecx, edx
push eax
call fcn.0052c320
jmp 0x4ab451
xor eax, eax
push 0x24
mov dword [ebp - 4], 0xffffffff
mov dword [0x619a4c], eax
call fcn.00554883
mov edx, eax
add esp, 4
mov dword [ebp - 0x418], edx
mov dword [ebp - 4], 0x11
test edx, edx
je 0x4ab4a7
push ecx
mov ecx, dword [0x5fd8a4]
shl ecx, 5
add ecx, dword [0x5fd8a4]
mov dword [esp], 0x3e99999a
push str.datgrass_bill_4.png
lea eax, [ecx*2 + 5]
mov ecx, edx
push eax
call fcn.0052c320
jmp 0x4ab4a9
xor eax, eax
mov dword [0x619a50], eax
mov al, byte [esi + 0xf]
movzx eax, al
mov dword [edi + 0x2a0], eax
mov dword [edi + 0x298], eax
jmp case.0x4a85c2.8
cmp cl, 3
mov dword [ebp - 0x41c], 0
lea ecx, [edi + 0x430]
jne 0x4ab4ed
push 0xfffffffffffffffc
call fcn.0046fcc0
mov dword [ebp - 0x41c], 1
jmp 0x4ab4f4
push 0xfffffffffffffffe
call fcn.0046fcc0
call fcn.004f2230
mov ecx, dword [edi + 0x160]
test ecx, ecx
jne 0x4ab51f
push 0x1c0
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 5
jmp 0x4ab54a
mov eax, dword [esi + 0xb]
cmp eax, dword [0x619a68]
je 0x4ab571
mov eax, dword [ecx]
push 1
call dword [eax]
push 0x1c0
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 6
test eax, eax
je 0x4ab562
push str.dungeon
push dword [ebp - 0x41c]
mov ecx, eax
call fcn.004ee9c0
jmp 0x4ab564
xor eax, eax
mov dword [edi + 0x160], eax
mov dword [ebp - 4], 0xffffffff
call fcn.004f2230
mov eax, dword [esi + 0x10]
lea edx, [ebp - 0x448]
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 [0x6193ec]
push 0
push 0
mov dword [ebp - 0x447], eax
mov eax, dword [ecx]
push edx
push 5
call dword [eax + 4]
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x160]
test ecx, ecx
je case.0x4a85c2.8
push esi
call fcn.004f00d0
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x160]
test ecx, ecx
je case.0x4a85c2.8
push esi
call fcn.004efef0
jmp case.0x4a85c2.8
mov eax, dword [esi + 1]
mov dword [edi + 0x420], eax
jmp case.0x4a85c2.8
mov eax, dword [esi + 1]
mov dword [edi + 0x74c], eax
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov edx, eax
mov dword [ebp - 0x418], edx
test edx, edx
je 0x4ab69a
nop
mov ecx, dword [edx + 0x178]
cmp ecx, dword [esi + 1]
jne 0x4ab686
mov eax, dword [esi + 5]
cmp dword [edx + 0x210], eax
jle 0x4ab677
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.00466230
mov ecx, dword [edi + 0x574]
call fcn.00466110
mov eax, dword [esi + 5]
mov edx, dword [ebp - 0x418]
mov dword [edx + 0x210], eax
mov eax, dword [esi + 9]
mov dword [edx + 0x214], eax
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov edx, eax
mov dword [ebp - 0x418], eax
test edx, edx
jne 0x4ab620
mov eax, dword [edi + 8]
test eax, eax
je case.0x4a85c2.8
mov eax, dword [eax + 0x210]
mov dword [0x61ac78], eax
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x214]
mov dword [0x61ac7c], eax
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov edx, eax
mov dword [ebp - 0x41c], edx
test edx, edx
je case.0x4a85c2.8
nop dword [eax + eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x4ab770
mov eax, dword [esi + 5]
cmp dword [edx + 0x210], eax
jle 0x4ab74f
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.00466230
mov eax, dword [ebp - 0x41c]
mov ecx, dword [eax + 0x180]
mov ecx, dword [edi + ecx*4 + 0x4ec]
call fcn.00466110
mov eax, dword [esi + 5]
mov edx, dword [ebp - 0x41c]
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.0044dd10
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov edx, eax
mov dword [ebp - 0x41c], eax
test edx, edx
jne 0x4ab6e0
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov ecx, eax
mov dword [ebp - 0x418], ecx
test ecx, ecx
je case.0x4a85c2.8
movss xmm1, dword [0x5c19b4]
nop dword [eax]
mov eax, dword [esi + 1]
cmp eax, 0xffffffff
je 0x4ab7eb
cmp dword [ecx + 0x178], eax
jne 0x4ab8af
movsx eax, byte [esi + 9]
movaps xmm0, xmmword [0x5bcfd0]
mov dword [ecx + 0x254], eax
mov dword [ecx + 0x258], 0
movups xmmword [ecx + 0x25c], xmm0
jmp 0x4ab8a7
mov eax, dword [ecx + 0x17c]
cmp eax, dword [esi + 5]
jne 0x4ab8af
movsx eax, byte [esi + 9]
mov dword [ecx + 0x254], eax
mov dword [ecx + 0x258], 0
movsx ecx, byte [esi + 9]
movzx edx, byte [ecx + ecx*2 + 0x5fc658]
movzx eax, byte [ecx + ecx*2 + 0x5fc659]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + ecx*2 + 0x5fc65a]
shl edx, 8
or edx, eax
mov eax, edx
shr eax, 0x10
movd xmm0, eax
mov eax, edx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
mulss xmm0, xmm1
movss dword [ebp - 0x42c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, dl
shr edx, 0x18
mulss xmm0, xmm1
movss dword [ebp - 0x428], xmm0
movd xmm0, eax
mov eax, dword [ebp - 0x418]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x424], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x420], xmm0
movups xmm0, xmmword [ebp - 0x42c]
movups xmmword [eax + 0x25c], xmm0
mov ecx, dword [edi + 0x18]
call fcn.0044dd10
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
movss xmm1, dword [0x5c19b4]
mov ecx, eax
mov dword [ebp - 0x418], eax
test ecx, ecx
jne 0x4ab7b0
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov edx, eax
test edx, edx
je case.0x4a85c2.8
nop word [eax + eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x4ab917
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.0044dd10
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov edx, eax
test edx, edx
jne 0x4ab8f0
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov edx, eax
test edx, edx
je case.0x4a85c2.8
nop dword [eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x4ab95c
mov al, byte [esi + 5]
mov byte [edx + 0x18e], al
mov ecx, dword [edi + 0x18]
call fcn.0044dd10
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov edx, eax
test edx, edx
jne 0x4ab940
jmp case.0x4a85c2.8
mov dword [edi + 0x2a0], 0
mov dword [0x61acc0], 1
jmp case.0x4a85c2.8
cmp byte [esi + 0xe], 1
mov dword [ebp - 0x41c], 0
jne 0x4aba30
movzx eax, byte [esi + 9]
mov ecx, dword [edi + 0x154]
push eax
call fcn.004fb210
movzx eax, byte [esi + 0xa]
mov ecx, dword [edi + 0x154]
fstp dword [ebp - 0x428]
push eax
call fcn.004fb320
sub esp, 8
mov ecx, edi
fstp dword [ebp - 0x420]
movss xmm0, dword [ebp - 0x420]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x428]
movss dword [esp], xmm0
call fcn.004acca0
mov eax, dword [ebp - 0x420]
sub esp, 0x10
mov ecx, esp
fstp dword [ebp - 0x424]
movq xmm0, qword [ebp - 0x428]
mov dword [esp + 0xc], 0x42480000
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x580]
call fcn.00466230
mov ecx, dword [edi + 0x580]
call fcn.00466110
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov dword [ebp - 0x43c], eax
test eax, eax
je 0x4aba70
xor ecx, ecx
test ecx, ecx
jne 0x4aba70
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
je 0x4aba9e
cmp ecx, dword [esi + 1]
je 0x4abaaf
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov ecx, dword [ebp - 0x41c]
mov dword [ebp - 0x43c], eax
test eax, eax
jne 0x4aba44
push 0x4d8
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 0x12
test eax, eax
je 0x4ababc
push 0x5c1410
push 0
mov ecx, eax
call fcn.004b0360
jmp 0x4ababe
mov eax, dword [eax + 0x17c]
cmp eax, dword [esi + 5]
jne 0x4aba58
mov eax, dword [ebp - 0x43c]
mov ecx, 1
mov dword [ebp - 0x41c], ecx
jmp 0x4aba6c
xor eax, eax
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x414], eax
mov dword [ebp - 4], 0xffffffff
call fcn.0044daf0
mov eax, dword [ebp - 0x414]
push 0x5bba54
mov dword [eax + 0x160], 0xa
add eax, 0x1b0
push eax
call fcn.004a1100
add esp, 8
call dword [sym.imp.WINMM.dll_timeGetTime]
movsx ecx, word [esi + 0xf]
mov edx, dword [ebp - 0x414]
imul ecx, ecx, 0x3e8
add eax, ecx
mov dword [edx + 0x238], eax
xor eax, eax
cmp ax, word [esi + 0xf]
jne 0x4abb23
mov dword [edx + 0x238], eax
movzx eax, byte [esi + 0xe]
mov dword [edx + 0x234], eax
movzx ecx, byte [esi + 0xb]
movzx eax, byte [esi + 0xc]
or ecx, 0x3700
movss xmm1, dword [0x5c19b4]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0xd]
shl ecx, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
movzx eax, al
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
mulss xmm0, xmm1
movss dword [ebp - 0x42c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, cl
shr ecx, 0x18
cmp dword [ebp - 0x41c], 0
mulss xmm0, xmm1
movss dword [ebp - 0x428], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x424], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x420], xmm0
movups xmm0, xmmword [ebp - 0x42c]
movups xmmword [edx + 0x224], xmm0
movzx ecx, byte [esi + 9]
mov dword [edx + 0x164], ecx
movzx eax, byte [esi + 0xa]
mov esi, dword [ebp - 0x414]
mov dword [esi + 0x168], eax
je 0x4abc45
mov eax, dword [ebp - 0x43c]
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.0x4a85c2.8
cmp dword [0x619a58], 4
push ecx
jne 0x4abcc3
mov esi, dword [edi + 0x164]
mov ecx, esi
call fcn.00527720
fstp dword [ebp - 0x418]
mov ecx, esi
call fcn.005263f0
fmul dword [0x5bcbcc]
mov eax, dword [ebp - 0x414]
fadd dword [ebp - 0x418]
push dword [eax + 0x168]
fstp dword [eax + 0x114]
mov esi, dword [edi + 0x164]
mov ecx, esi
call fcn.005277e0
fstp dword [ebp - 0x418]
mov ecx, esi
call fcn.005263f0
fmul dword [0x5bcbcc]
mov esi, dword [ebp - 0x414]
fadd dword [ebp - 0x418]
fstp dword [ebp - 0x418]
movss xmm1, dword [ebp - 0x418]
jmp 0x4abd2d
mov ecx, dword [edi + 0x154]
call fcn.004fb210
mov ecx, dword [edi + 0x154]
fstp dword [ebp - 0x418]
call fcn.004f7f10
fmul dword [0x5bcbcc]
push dword [esi + 0x168]
fadd dword [ebp - 0x418]
fstp dword [esi + 0x114]
mov ecx, dword [edi + 0x154]
call fcn.004fb320
mov ecx, dword [edi + 0x154]
fstp dword [ebp - 0x418]
call fcn.004f7f10
fmul dword [0x5bcbcc]
fadd dword [ebp - 0x418]
fstp dword [ebp - 0x418]
movss xmm1, dword [ebp - 0x418]
movss xmm0, dword [esi + 0x114]
sub esp, 8
mov ecx, edi
movss dword [esi + 0x11c], xmm1
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 0
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call fcn.004acca0
fadd dword [0x5bc028]
fstp dword [esi + 0x118]
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov dword [ebp - 0x418], eax
test eax, eax
je case.0x4a85c2.8
nop dword [eax]
mov eax, dword [eax + 0x178]
cmp eax, dword [esi + 1]
jne 0x4abe73
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edx, dword [ebp - 0x418]
movss xmm1, dword [0x5c19b4]
mov dword [edx + 0x250], eax
mov dword [edx + 0x23c], 0
movzx ecx, byte [esi + 5]
movzx eax, byte [esi + 6]
or ecx, 0x3700
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 7]
shl ecx, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
movzx eax, al
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
mulss xmm0, xmm1
movss dword [ebp - 0x42c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, cl
shr ecx, 0x18
mulss xmm0, xmm1
movss dword [ebp - 0x428], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x424], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x420], xmm0
movups xmm0, xmmword [ebp - 0x42c]
movups xmmword [edx + 0x240], xmm0
cmp byte [esi + 5], 0
jne 0x4abe6b
cmp byte [esi + 6], 0
jne 0x4abe6b
cmp byte [esi + 7], 0
jne 0x4abe6b
mov dword [edx + 0x23c], 0xffffffff
mov ecx, dword [edi + 0x18]
call fcn.0044dd10
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov dword [ebp - 0x418], eax
test eax, eax
jne 0x4abd90
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov edx, eax
mov dword [ebp - 0x418], edx
test edx, edx
je case.0x4a85c2.8
nop word [eax + eax]
mov ecx, dword [edx + 0x178]
cmp ecx, dword [esi + 1]
jne 0x4abf02
movzx eax, byte [esi + 8]
imul ecx, eax, 0xd0
push esi
add ecx, 0x338
add ecx, edx
call fcn.004b1840
cmp byte [esi + 0xd], 0
jne 0x4abefa
mov eax, dword [ebp - 0x418]
mov ecx, dword [edi + 8]
mov eax, dword [eax + 0x178]
cmp eax, dword [ecx + 0x178]
jne 0x4abefa
mov dword [edi + 0x290], 1
mov ecx, dword [edi + 0x18]
call fcn.0044dd10
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov edx, eax
mov dword [ebp - 0x418], eax
test edx, edx
jne 0x4abeb0
jmp case.0x4a85c2.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x414], eax
mov dword [ebp - 0x41c], eax
call fcn.0044dcb0
mov ecx, eax
test ecx, ecx
je case.0x4a85c2.8
nop dword [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4abf77
cmp eax, dword [esi + 1]
jne 0x4abf8f
movzx eax, byte [esi + 9]
imul eax, eax, 0xd0
cmp dword [eax + ecx + 0x338], 0
je 0x4abf8f
mov dword [eax + ecx + 0x378], 1
mov dword [ebp - 0x41c], ecx
jmp 0x4abf8f
mov eax, dword [ecx + 0x17c]
mov edx, dword [ebp - 0x414]
cmp eax, dword [esi + 5]
cmove edx, ecx
mov dword [ebp - 0x414], edx
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov ecx, eax
test ecx, ecx
jne 0x4abf40
mov ecx, dword [ebp - 0x41c]
test ecx, ecx
je case.0x4a85c2.8
mov eax, dword [ebp - 0x414]
test eax, eax
je case.0x4a85c2.8
test byte [0x61acb8], 1
je 0x4ac001
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.0044c680
lea eax, [ebp - 0x410]
push eax
call fcn.00500950
mov ecx, dword [ebp - 0x41c]
add esp, 0x18
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.004f45a0
mov ecx, dword [edi + 4]
mov esi, eax
mov eax, dword [ebp - 0x414]
push eax
push dword [eax + 0x170]
call fcn.004f45a0
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.0044d5f0
mov edx, dword [ebp - 0x43c]
add esp, 0x18
fstp dword [esi + 0x118]
mov esi, dword [ebp - 0x41c]
movzx eax, byte [edx + 9]
imul ecx, eax, 0xd0
mov eax, dword [ebp - 0x414]
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 [0x5c00ac]
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.0x4a85c2.8
mov eax, dword [esi + 1]
mov dword [0x61acb8], eax
jmp case.0x4a85c2.8
push 0x14
call fcn.00554883
add esp, 4
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 0x13
test eax, eax
je 0x4ac130
push 0x46
mov ecx, eax
call fcn.00447ff0
mov dword [ebp - 0x41c], eax
jmp 0x4ac13a
mov dword [ebp - 0x41c], 0
push dword [ebp + 0xc]
mov dword [ebp - 4], 0xffffffff
push esi
mov esi, dword [ebp - 0x41c]
mov ecx, esi
call fcn.00448570
lea eax, [ebp - 0x43d]
mov dword [esi + 8], 0
push eax
mov ecx, esi
call fcn.00448050
lea eax, [ebp - 0x44c]
mov ecx, esi
push eax
call fcn.004480b0
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov dword [ebp - 0x418], eax
test eax, eax
je 0x4ac1e9
nop word [eax + eax]
mov ecx, dword [eax + 0x178]
cmp ecx, dword [ebp - 0x44c]
jne 0x4ac1d1
xor edi, edi
mov ecx, dword [ebp - 0x41c]
lea esi, [eax + 0x1d0]
add esi, edi
push esi
call fcn.00448030
cmp byte [esi], 0
mov eax, 0x3e8
cmove edi, eax
mov eax, dword [ebp - 0x418]
inc edi
cmp edi, 0x41
jl 0x4ac1a0
mov edi, dword [ebp - 0x414]
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov dword [ebp - 0x418], eax
test eax, eax
jne 0x4ac190
mov esi, dword [ebp - 0x41c]
mov ecx, esi
call fcn.00448020
push 0x14
push esi
call fcn.005548b3
add esp, 8
jmp case.0x4a85c2.8
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x178]
cmp eax, dword [esi + 1]
jne case.0x4a85c2.8
mov dword [edi + 0x280], 1
jmp case.0x4a85c2.8
movzx eax, byte [esi + 5]
sub esp, 8
movd xmm2, eax
movzx eax, byte [esi + 6]
cvtdq2ps xmm2, xmm2
movd xmm0, eax
mulss xmm2, dword [0x5bcbd0]
cvtdq2ps xmm0, xmm0
addss xmm2, dword [0x5bcbe0]
mulss xmm0, dword [0x5bcbd0]
addss xmm0, dword [0x5bcbe0]
movss dword [ebp - 0x428], xmm2
movss dword [esp + 4], xmm0
movss dword [ebp - 0x420], xmm0
movss dword [esp], xmm2
call fcn.004acca0
cmp dword [esi + 1], 0
fadd dword [0x5c00a4]
fstp dword [ebp - 0x424]
je 0x4ac386
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov ecx, eax
test ecx, ecx
je 0x4ac386
mov eax, dword [ebp - 0x420]
mov dword [ebp - 0x414], eax
nop
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4ac2fe
cmp eax, dword [esi + 1]
jne 0x4ac2fe
movq xmm0, qword [ecx + 0x114]
mov eax, dword [ecx + 0x11c]
mov ecx, dword [edi + 0x18]
movq qword [ebp - 0x428], xmm0
movss xmm0, dword [ebp - 0x424]
addss xmm0, dword [0x5c00a8]
mov dword [ebp - 0x414], eax
movss dword [ebp - 0x424], xmm0
call fcn.0044dd10
mov ecx, eax
cmp dword [ecx + 0x160], 0xc
jne 0x4ac372
movzx eax, byte [esi + 5]
cmp dword [ecx + 0x164], eax
jne 0x4ac372
movzx eax, byte [esi + 6]
cmp dword [ecx + 0x168], eax
jne 0x4ac372
movq xmm0, qword [ecx + 0x114]
sub esp, 8
mov eax, dword [ecx + 0x11c]
mov ecx, edi
movq qword [ebp - 0x428], xmm0
mov dword [ebp - 0x420], eax
movss xmm0, dword [ebp - 0x420]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x428]
mov dword [ebp - 0x414], eax
movss dword [esp], xmm0
call fcn.004acca0
fadd dword [0x5c00a4]
fstp dword [ebp - 0x424]
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov ecx, eax
test ecx, ecx
jne 0x4ac2b0
jmp 0x4ac392
mov eax, dword [ebp - 0x420]
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.0044ca50
add esp, 0x10
mov dword [ebp - 0x43c], 0
cmp byte [esi + 7], 0
fstp dword [ebp - 0x41c]
jne 0x4ac409
cmp byte [esi + 8], 0
jne 0x4ac409
cmp byte [esi + 9], 0
je 0x4ac492
movss xmm0, dword [ebp - 0x41c]
mov eax, 1
movss xmm1, dword [0x5c1a00]
comiss xmm1, xmm0
mov dword [ebp - 0x43c], eax
jbe 0x4ac59d
movq xmm0, qword [ebp - 0x428]
sub esp, 0xc
mov ecx, dword [ebp - 0x414]
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x619a30]
call fcn.0051cf20
movss xmm0, dword [esi + 0xf]
sub esp, 0x14
divss xmm0, dword [0x5c0434]
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 [0x619a30]
movss dword [esp + 0x10], xmm0
push 0x32
call fcn.0051cb20
movss xmm0, dword [ebp - 0x41c]
movss xmm1, dword [0x5c1a00]
comiss xmm1, xmm0
jbe 0x4ac597
movq xmm0, qword [ebp - 0x428]
sub esp, 0xc
mov ecx, dword [ebp - 0x414]
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x619a34]
call fcn.0051dfd0
movss xmm0, dword [esi + 0xf]
sub esp, 0x14
divss xmm0, dword [0x5c015c]
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 [0x5c19b4]
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 [0x619a34]
call fcn.0051dbd0
movss xmm1, dword [ebp - 0x41c]
addss xmm1, dword [0x5bc028]
movss xmm0, dword [esi + 0xf]
divss xmm0, xmm1
movss dword [0x619a54], xmm0
movss xmm0, dword [ebp - 0x41c]
mov eax, dword [ebp - 0x43c]
movss xmm1, dword [esi + 0xf]
comiss xmm1, dword [0x5bd7d8]
jbe 0x4ac636
test eax, eax
je 0x4ac636
cmp dword [edi + 8], 0
je 0x4ac5fe
comiss xmm0, dword [0x5bcbd0]
jbe 0x4ac5fe
movq xmm0, qword [ebp - 0x428]
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.00466230
mov ecx, dword [edi + 0x59c]
jmp 0x4ac78b
movq xmm0, qword [ebp - 0x428]
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.00466230
mov ecx, dword [edi + 0x598]
jmp 0x4ac78b
comiss xmm1, dword [0x5c0434]
jbe 0x4ac6ca
test eax, eax
je 0x4ac6ca
cmp dword [edi + 8], 0
je 0x4ac692
comiss xmm0, dword [0x5c0150]
jbe 0x4ac692
movq xmm0, qword [ebp - 0x428]
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.00466230
mov ecx, dword [edi + 0x594]
jmp 0x4ac78b
movq xmm0, qword [ebp - 0x428]
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.00466230
mov ecx, dword [edi + 0x590]
jmp 0x4ac78b
comiss xmm1, dword [0x5bcbd0]
jbe 0x4ac758
test eax, eax
je 0x4ac758
cmp dword [edi + 8], 0
je 0x4ac723
comiss xmm0, dword [0x5bc054]
jbe 0x4ac723
movq xmm0, qword [ebp - 0x428]
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.00466230
mov ecx, dword [edi + 0x58c]
jmp 0x4ac78b
movq xmm0, qword [ebp - 0x428]
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.00466230
mov ecx, dword [edi + 0x588]
jmp 0x4ac78b
movq xmm0, qword [ebp - 0x428]
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.00466230
mov ecx, dword [edi + 0x584]
call fcn.00466110
mov ecx, dword [edi + 0x18]
call fcn.0044dcb0
mov ecx, eax
mov dword [ebp - 0x41c], ecx
test ecx, ecx
je case.0x4a85c2.8
nop dword [eax + eax]
cmp dword [ecx + 0x160], 0xc
jne 0x4ac81e
movzx eax, byte [esi + 5]
cmp dword [ecx + 0x164], eax
jne 0x4ac81e
movzx eax, byte [esi + 6]
cmp dword [ecx + 0x168], eax
jne 0x4ac81e
push ecx
mov ecx, dword [edi + 0x18]
call fcn.0044dea0
mov eax, dword [ebp - 0x41c]
mov ecx, dword [edi + 0x154]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.004fbc10
mov eax, dword [ebp - 0x41c]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.004f4580
mov ecx, dword [ebp - 0x41c]
push 1
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044dd50
mov ecx, eax
mov dword [ebp - 0x41c], eax
test ecx, ecx
jne 0x4ac7b0
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.005548c1
mov esp, ebp
pop ebp
ret 8