Function at 0x47acd0
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53d725
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x478
mov eax, dword [0x57bbb4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebx + 8]
mov edi, dword [0x593260]
mov dword [ebp - 0x43c], esi
mov dword [ebp - 0x448], edi
movsx eax, byte [esi]
add eax, 0xfffffffb
mov byte [ebp - 0x488], 0x13
mov byte [ebp - 0x478], 0x2c
cmp eax, 0x51
ja case.0x47ad4a.8
movzx eax, byte [eax + 0x47f160]
jmp dword [eax*4 + 0x47f0c8]
mov ecx, dword [edi + 0x18]
xor eax, eax
movss xmm2, dword [0x56aa0c]
mov dword [ebp - 0x448], eax
cmp dword [ecx + 0xc], eax
je 0x47b1fb
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov ecx, dword [eax + 8]
mov dword [ebp - 0x434], ecx
test ecx, ecx
je 0x47b1fb
nop word [eax + eax]
mov edx, dword [ecx + 0x178]
cmp edx, 0xffffffff
jle 0x47b1cb
mov eax, dword [edi + 8]
cmp edx, dword [eax + 0x178]
jne 0x47ade2
cmp dword [eax + 0x34c], 0
je 0x47adc6
cmp byte [eax + 0x354], 0
jne 0x47adc6
mov dword [edi + 0x294], 1
cmp dword [eax + 0x41c], 0
je 0x47ade2
cmp byte [eax + 0x424], 0
jne 0x47ade2
mov dword [edi + 0x294], 1
mov eax, dword [ecx + 0x178]
cmp eax, dword [esi + 1]
jne 0x47b1cb
cmp dword [ecx + 0x16c], 0xffffffff
je 0x47aea4
mov eax, dword [edi + 4]
mov esi, dword [ecx + 0x170]
mov eax, dword [eax + 4]
mov dword [ebp - 0x440], eax
cmp dword [eax + 0xc], 0
je 0x47ae3e
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
test edx, edx
je 0x47ae32
cmp dword [edx + 4], esi
je 0x47ae96
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
test edx, edx
jne 0x47ae23
mov edx, dword [ebp - 0x440]
mov eax, dword [edx + 4]
mov dword [edx + 8], eax
xor eax, eax
mov dword [eax + 0x120], 0x3e851eb8
mov edx, dword [edi + 0x158]
mov esi, dword [ecx + 0x16c]
mov dword [ebp - 0x444], eax
mov eax, dword [edx + 0x108]
imul eax, dword [ecx + 0x168]
add eax, dword [ecx + 0x164]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [edx + 0x120]
mov edx, dword [ebp - 0x434]
lea eax, [eax + ecx*4]
mov byte [eax + esi], 0
mov esi, dword [ebp - 0x43c]
jmp 0x47af25
mov edx, dword [ebp - 0x440]
mov dword [edx + 8], eax
mov eax, dword [eax + 8]
jmp 0x47ae40
push ecx
mov ecx, dword [edi + 4]
call fcn.00493050
mov edx, dword [ebp - 0x434]
mov dword [ebp - 0x438], eax
mov dword [edx + 0x170], eax
mov ecx, dword [edi + 4]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x440], eax
cmp dword [eax + 0xc], 0
je 0x47af0b
mov eax, dword [eax + 4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
test eax, eax
je 0x47aeff
nop
mov esi, dword [ebp - 0x438]
cmp dword [eax + 4], esi
mov esi, dword [ebp - 0x43c]
je 0x47afa4
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + 8]
test eax, eax
jne 0x47aee0
mov eax, dword [ebp - 0x440]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ecx
xor eax, eax
movss xmm2, dword [0x56aa0c]
mov dword [ebp - 0x444], eax
mov dword [eax + 0x120], 0x3e851eb8
movzx eax, byte [esi + 5]
mov dword [ebp - 0x440], eax
mov dword [edx + 0x164], eax
movzx eax, byte [esi + 6]
mov dword [ebp - 0x45c], eax
mov dword [edx + 0x168], eax
mov eax, dword [edi + 0x158]
mov ecx, dword [eax + 0x108]
mov eax, dword [eax + 0x120]
mov dword [ebp - 0x458], ecx
mov ecx, dword [ebp - 0x45c]
imul ecx, dword [ebp - 0x458]
mov dword [ebp - 0x448], eax
add ecx, dword [ebp - 0x440]
lea eax, [ecx*8]
sub eax, ecx
mov ecx, dword [ebp - 0x448]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov dword [ebp - 0x438], ecx
cmp byte [ecx + eax], 0
je 0x47afb5
inc ecx
mov dword [ebp - 0x438], ecx
cmp ecx, 0x1c
jl 0x47af90
jmp 0x47afba
mov eax, dword [ebp - 0x440]
mov dword [eax + 8], ecx
mov eax, dword [ecx + 8]
jmp 0x47af0d
cmp ecx, 0xffffffff
jne 0x47b01b
movd xmm0, dword [edx + 0x168]
movd xmm1, dword [ebp - 0x440]
mov eax, dword [ebp - 0x444]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm2
mulss xmm1, xmm2
movss dword [edx + 0x11c], xmm0
movss dword [edx + 0x114], xmm1
movss dword [eax + 0x110], xmm1
movss dword [eax + 0x108], xmm1
movss xmm0, dword [edx + 0x11c]
movss dword [eax + 0x114], xmm0
movss dword [eax + 0x10c], xmm0
jmp 0x47b0dd
mov edx, dword [ebp - 0x458]
imul edx, dword [ebp - 0x45c]
add edx, dword [ebp - 0x440]
lea eax, [edx*8]
sub eax, edx
mov edx, dword [ebp - 0x448]
lea eax, [edx + eax*4]
mov byte [eax + ecx], 1
lea eax, [ebp - 0x454]
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x44c]
push eax
push ecx
mov ecx, dword [edi + 0x158]
call fcn.00497a30
mov edx, dword [ebp - 0x434]
mov eax, dword [ebp - 0x438]
movd xmm0, dword [edx + 0x164]
cvtdq2ps xmm0, xmm0
mov dword [edx + 0x16c], eax
mov eax, dword [ebp - 0x444]
mulss xmm0, dword [0x56aa0c]
addss xmm0, dword [ebp - 0x44c]
movss dword [eax + 0x110], xmm0
movd xmm0, dword [edx + 0x168]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56aa0c]
addss xmm0, dword [ebp - 0x450]
movss dword [eax + 0x114], xmm0
movss xmm0, dword [ebp - 0x454]
movss dword [eax + 0x118], xmm0
mov dword [eax + 0x138], 0
mov eax, dword [edx + 0x178]
mov dword [ebp - 0x448], 1
cmp eax, dword [edi + 0x208]
jne 0x47b1b1
cmp dword [0x592390], 0
jne 0x47b10f
cmp dword [edi + 0x210], 0xffffffff
jne 0x47b1b1
mov ecx, dword [edi + 0x158]
movq xmm0, qword [edx + 0x114]
movq qword [ecx + 0x184], xmm0
mov eax, dword [edx + 0x11c]
mov dword [ecx + 0x18c], eax
mov eax, dword [edi + 0x158]
mov dword [eax + 0x190], 0
push dword [edx + 0x168]
mov ecx, dword [edi + 0x158]
push dword [edx + 0x164]
call fcn.00497210
mov ecx, dword [ebp - 0x434]
push dword [ecx + 0x168]
push dword [ecx + 0x164]
mov ecx, edi
call fcn.00482750
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x434]
mov dword [ebp - 0x438], eax
cmp dword [eax + 0xc], 0
je 0x47b1b1
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x47b1a5
cmp ecx, edx
je 0x47b30b
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x47b193
mov ecx, dword [ebp - 0x438]
mov eax, dword [ecx + 4]
mov dword [ecx + 8], eax
cmp byte [esi], 0x34
jne 0x47b1c3
movzx eax, word [esi + 7]
mov ecx, edi
push eax
push edx
call fcn.00481bc0
movss xmm2, dword [0x56aa0c]
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je 0x47b1ee
mov eax, dword [ecx + 8]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov ecx, dword [eax + 8]
mov dword [ebp - 0x434], ecx
test ecx, ecx
jne 0x47ad90
cmp dword [ebp - 0x448], 0
jne case.0x47ad4a.8
push 0x4ec
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
push 0x55e794
push 0
mov ecx, eax
mov dword [ebp - 4], 0
call fcn.00483940
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x434], eax
call fcn.0044f2f0
push 0x10c
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov ecx, eax
mov dword [ebp - 4], 1
call fcn.004708b0
mov ecx, dword [ebp - 0x434]
mov dword [ebp - 4], 0xffffffff
push ecx
mov dword [ecx + 0x194], eax
mov ecx, dword [edi + 4]
call fcn.00493050
mov ecx, dword [ebp - 0x434]
push eax
mov dword [ecx + 0x170], eax
mov ecx, dword [edi + 4]
mov ecx, dword [ecx + 4]
call fcn.0044f4f0
movzx edx, byte [esi + 5]
mov dword [ebp - 0x458], eax
mov eax, dword [ebp - 0x434]
mov dword [eax + 0x164], edx
movzx ecx, byte [esi + 6]
mov dword [eax + 0x168], ecx
mov dword [ebp - 0x444], ecx
mov ecx, dword [edi + 0x158]
mov eax, dword [ecx + 0x108]
mov ecx, dword [ecx + 0x120]
mov dword [ebp - 0x438], ecx
mov ecx, eax
imul ecx, dword [ebp - 0x444]
mov dword [ebp - 0x45c], eax
add ecx, edx
lea eax, [ecx*8]
sub eax, ecx
mov ecx, dword [ebp - 0x438]
xor edx, edx
mov dword [ebp - 0x448], edx
lea eax, [ecx + eax*4]
cmp byte [edx + eax], 0
je 0x47b316
inc edx
mov dword [ebp - 0x448], edx
cmp edx, 0x1c
jl 0x47b2f7
jmp 0x47b31b
mov ecx, dword [ebp - 0x438]
jmp 0x47b1ae
cmp edx, 0xffffffff
jne 0x47b354
mov eax, dword [ebp - 0x434]
movd xmm0, dword [eax + 0x164]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56aa0c]
movss dword [eax + 0x114], xmm0
movd xmm0, dword [eax + 0x168]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56aa0c]
jmp 0x47b3fa
mov eax, dword [ebp - 0x444]
imul eax, dword [ebp - 0x45c]
mov ecx, dword [ebp - 0x434]
add eax, dword [ecx + 0x164]
mov ecx, dword [ebp - 0x438]
mov dword [ebp - 0x444], eax
shl eax, 3
sub eax, dword [ebp - 0x444]
lea eax, [edx + eax*4]
mov byte [eax + ecx], 1
lea eax, [ebp - 0x454]
mov ecx, dword [edi + 0x158]
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x44c]
push eax
push edx
call fcn.00497a30
mov eax, dword [ebp - 0x434]
mov ecx, dword [ebp - 0x448]
movd xmm0, dword [eax + 0x164]
cvtdq2ps xmm0, xmm0
mov dword [eax + 0x16c], ecx
mulss xmm0, dword [0x56aa0c]
addss xmm0, dword [ebp - 0x44c]
movss dword [eax + 0x114], xmm0
movd xmm0, dword [eax + 0x168]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56aa0c]
addss xmm0, dword [ebp - 0x450]
movss dword [eax + 0x11c], xmm0
call fcn.00514d5a
xorps xmm1, xmm1
mov ecx, edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp - 0x434]
movss xmm2, dword [eax + 0x11c]
mulss xmm0, dword [0x56a9bc]
mov dword [eax + 0x10c], 0
divss xmm0, dword [0x56aad8]
addss xmm0, xmm1
movss xmm1, dword [eax + 0x114]
movss dword [eax + 0x108], xmm0
call fcn.00481b70
mov eax, dword [ebp - 0x458]
mov ecx, dword [ebp - 0x434]
movss dword [ecx + 0x118], xmm0
movss xmm0, dword [ecx + 0x108]
movss dword [eax + 0x118], xmm0
movss dword [eax + 0x11c], xmm0
mov dword [eax + 0x120], 0x3e851eb8
mov dword [eax + 0x124], 0x3e567750
movss xmm0, dword [ebp - 0x454]
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 + 0x208]
jne 0x47b6f2
cmp dword [0x592390], 0
jne 0x47b509
cmp dword [edi + 0x210], 0xffffffff
jne 0x47b6f2
mov dword [edi + 8], ecx
lea edx, [ebp - 0x488]
mov ecx, dword [0x59222c]
push 0
push 0
mov byte [ebp - 0x483], 1
mov dword [ebp - 0x487], 0
mov eax, dword [ecx]
push edx
push 0xa
call dword [eax + 4]
mov ecx, edi
call fcn.00482af0
mov edx, dword [ebp - 0x434]
mov ecx, dword [edi + 0x158]
movq xmm0, qword [edx + 0x114]
movq qword [ecx + 0x184], xmm0
mov eax, dword [edx + 0x11c]
mov dword [ecx + 0x18c], eax
mov eax, dword [edi + 0x158]
mov dword [eax + 0x190], 0
push dword [edx + 0x168]
mov ecx, dword [edi + 0x158]
push dword [edx + 0x164]
call fcn.00497210
mov eax, dword [ebp - 0x434]
mov ecx, edi
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.00482750
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x438], eax
cmp dword [eax + 0xc], 0
je 0x47b5e4
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
test edx, edx
je 0x47b5d8
mov ecx, dword [ebp - 0x434]
cmp edx, ecx
je 0x47b70d
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
test edx, edx
jne 0x47b5c6
mov ecx, dword [ebp - 0x438]
mov eax, dword [ecx + 4]
mov dword [ecx + 8], eax
cmp dword [0x5923c0], 0
jne 0x47b6ec
cmp dword [0x57cc88], 0
mov dword [ebp - 0x428], 0xc3fa0000
mov dword [ebp - 0x42c], 0xc3fa0000
mov dword [ebp - 0x430], 0xc3fa0000
je 0x47b6ec
movq xmm0, qword [ebp - 0x430]
sub esp, 0xc
mov esi, dword [ebp - 0x428]
mov eax, esp
mov ecx, dword [0x5923a0]
sub esp, 0xc
movq qword [eax], xmm0
mov dword [eax + 8], esi
mov eax, esp
push dword [edi + 0x158]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.004c47f0
movq xmm0, qword [ebp - 0x430]
sub esp, 0xc
mov ecx, dword [0x5923a4]
mov eax, esp
sub esp, 0xc
movq qword [eax], xmm0
mov dword [eax + 8], esi
mov eax, esp
push dword [edi + 0x158]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.004c47f0
movq xmm0, qword [ebp - 0x430]
sub esp, 0xc
mov ecx, dword [0x5923a8]
mov eax, esp
sub esp, 0xc
movq qword [eax], xmm0
mov dword [eax + 8], esi
mov eax, esp
push dword [edi + 0x158]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.004c47f0
movq xmm0, qword [ebp - 0x430]
sub esp, 0xc
mov ecx, dword [0x5923ac]
mov eax, esp
sub esp, 0xc
movq qword [eax], xmm0
mov dword [eax + 8], esi
mov eax, esp
push dword [edi + 0x158]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.004c47f0
mov esi, dword [ebp - 0x43c]
mov ecx, dword [ebp - 0x434]
cmp byte [esi], 0x34
jne case.0x47ad4a.8
movzx eax, word [esi + 7]
push eax
push ecx
mov ecx, edi
call fcn.00481bc0
jmp case.0x47ad4a.8
mov ecx, dword [ebp - 0x438]
jmp 0x47b5e1
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x47ad4a.8
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov eax, dword [eax + 8]
mov dword [ebp - 0x434], eax
test eax, eax
je case.0x47ad4a.8
nop
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
jle 0x47b822
cmp ecx, dword [esi + 1]
mov ecx, dword [edi + 0x18]
jne 0x47b825
push eax
call fcn.0044f5c0
mov edx, dword [edi + 0x158]
mov ecx, dword [ebp - 0x434]
mov eax, dword [edx + 0x108]
imul eax, dword [ecx + 0x168]
add eax, dword [ecx + 0x164]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [edx + 0x120]
mov edx, dword [ebp - 0x434]
lea ecx, [eax + ecx*4]
mov eax, dword [edx + 0x16c]
mov byte [ecx + eax], 0
mov ecx, dword [edi + 4]
push dword [edx + 0x170]
mov ecx, dword [ecx + 4]
call fcn.0044f4f0
test eax, eax
je 0x47b7c1
mov dword [eax + 0x130], 0
mov ecx, dword [ebp - 0x434]
push 1
mov dword [ecx + 0x16c], 0xffffffff
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je 0x47b7f4
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov eax, dword [eax + 8]
mov dword [ebp - 0x434], eax
jmp 0x47b7fe
mov dword [ebp - 0x434], 0
mov eax, dword [esi + 1]
cmp eax, dword [edi + 0x208]
jne 0x47b80f
mov eax, dword [edi + 0xc]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x434]
test eax, eax
jne 0x47b740
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x47ad4a.8
mov eax, dword [ecx + 8]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov eax, dword [eax + 8]
mov dword [ebp - 0x434], eax
jmp 0x47b815
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x47ad4a.8
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov eax, dword [eax + 8]
mov dword [ebp - 0x43c], eax
test eax, eax
je case.0x47ad4a.8
nop word [eax + eax]
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
jle 0x47ba82
cmp ecx, dword [esi + 1]
jne 0x47ba82
mov ecx, dword [edi + 4]
push dword [eax + 0x170]
mov ecx, dword [ecx + 4]
call fcn.0044f4f0
mov ecx, dword [ebp - 0x43c]
mov dword [ebp - 0x440], eax
mov dword [eax + 0x120], 0x3e851eb8
mov eax, dword [edi + 0x158]
mov edx, dword [eax + 0x108]
imul edx, dword [ecx + 0x168]
mov eax, dword [eax + 0x120]
add edx, dword [ecx + 0x164]
lea ecx, [edx*8]
sub ecx, edx
mov edx, dword [ebp - 0x43c]
lea ecx, [eax + ecx*4]
mov eax, dword [edx + 0x16c]
mov byte [ecx + eax], 0
movzx eax, byte [esi + 7]
mov dword [ebp - 0x448], eax
mov dword [edx + 0x164], eax
movzx eax, byte [esi + 8]
mov dword [ebp - 0x438], eax
mov dword [edx + 0x168], eax
mov eax, dword [edi + 0x158]
mov ecx, dword [eax + 0x108]
mov eax, dword [eax + 0x120]
mov dword [ebp - 0x444], ecx
imul ecx, dword [ebp - 0x438]
mov dword [ebp - 0x45c], eax
add ecx, dword [ebp - 0x448]
lea eax, [ecx*8]
sub eax, ecx
mov ecx, dword [ebp - 0x45c]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov dword [ebp - 0x458], ecx
nop
cmp byte [eax + ecx], 0
je 0x47b964
inc ecx
mov dword [ebp - 0x458], ecx
cmp ecx, 0x1c
jl 0x47b950
jmp 0x47b969
cmp ecx, 0xffffffff
jne 0x47b9aa
movzx eax, byte [esi + 7]
mov ecx, dword [ebp - 0x440]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56aa0c]
movss dword [ecx + 0x110], xmm0
movzx eax, byte [esi + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56aa0c]
movss dword [ecx + 0x114], xmm0
jmp 0x47ba62
mov edx, dword [ebp - 0x438]
imul edx, dword [ebp - 0x444]
add edx, dword [ebp - 0x448]
lea eax, [edx*8]
sub eax, edx
mov edx, dword [ebp - 0x45c]
lea eax, [ecx + eax*4]
mov byte [eax + edx], 1
lea eax, [ebp - 0x454]
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x44c]
push eax
push ecx
mov ecx, dword [edi + 0x158]
call fcn.00497a30
mov edx, dword [ebp - 0x43c]
mov eax, dword [ebp - 0x458]
mov ecx, dword [ebp - 0x440]
mov dword [edx + 0x16c], eax
movzx eax, byte [esi + 7]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56aa0c]
addss xmm0, dword [ebp - 0x44c]
movss dword [ecx + 0x110], xmm0
movzx eax, byte [esi + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56aa0c]
addss xmm0, dword [ebp - 0x450]
movss dword [ecx + 0x114], xmm0
movss xmm0, dword [ebp - 0x454]
movss dword [ecx + 0x118], xmm0
mov eax, dword [edx + 0x178]
cmp eax, dword [edi + 0x208]
mov eax, 0x5a
mov ecx, dword [0x593258]
cmove ecx, eax
mov dword [0x593258], ecx
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x47ad4a.8
mov eax, dword [ecx + 8]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov eax, dword [eax + 8]
mov dword [ebp - 0x43c], eax
test eax, eax
jne 0x47b870
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x47ad4a.8
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov ecx, dword [eax + 8]
mov dword [ebp - 0x438], ecx
test ecx, ecx
je case.0x47ad4a.8
nop word [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x47bb8f
cmp eax, dword [esi + 1]
jne 0x47bb8f
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 [0x592218]
push dword [esi + 5]
push dword [eax + 0x2a3d8]
call fcn.00471360
lea eax, [esi + 0x1c]
push eax
mov eax, dword [ebp - 0x438]
add eax, 0x1b0
push eax
call fcn.00483910
mov ecx, dword [edi + 8]
add esp, 8
mov eax, dword [ecx + 0x178]
cmp eax, dword [esi + 1]
jne 0x47bb8f
lea eax, [ecx + 0x1b0]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x40]
mov dword [0x593254], eax
mov al, byte [esi + 0x4c]
mov byte [0x57e844], al
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov ecx, eax
mov dword [ebp - 0x438], eax
test ecx, ecx
jne 0x47bae0
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x438], eax
call fcn.0044f260
mov edx, eax
mov dword [ebp - 0x434], edx
test edx, edx
je 0x47bec5
nop dword [eax]
cmp dword [edx + 0x178], 0xffffffff
jne 0x47bea1
mov eax, dword [edx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x47bea1
mov al, byte [esi + 5]
cmp al, 6
je 0x47bdcc
cmp al, 0xd
je 0x47bdcc
cmp al, 7
je 0x47bdcc
cmp al, 0xe
je 0x47bdcc
cmp al, 0x17
je 0x47bdcc
cmp al, 0x11
je 0x47bdcc
cmp al, 0xa
je 0x47bdcc
mov ecx, dword [edi + 4]
push edx
push dword [edx + 0x170]
call fcn.00493180
mov ecx, dword [edi + 0x158]
mov dword [ebp - 0x43c], eax
mov eax, dword [ebp - 0x434]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.00497bd0
mov edx, dword [ebp - 0x434]
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 + 0x158]
call fcn.00497b40
mov ecx, dword [edi + 0x158]
mov dword [ebp - 0x438], eax
cmp eax, 0xffffffff
jne 0x47bd0a
mov eax, dword [ebp - 0x434]
push dword [eax + 0x164]
call fcn.004976d0
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
movss dword [eax + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.004977e0
mov edx, dword [ebp - 0x434]
mov eax, dword [ebp - 0x43c]
movss dword [edx + 0x11c], xmm0
movss xmm0, dword [edx + 0x114]
movss dword [eax + 0x110], xmm0
movss dword [eax + 0x108], xmm0
movss xmm0, dword [edx + 0x11c]
movss dword [eax + 0x10c], xmm0
jmp 0x47bdc4
push 1
push eax
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.00497ba0
mov ecx, dword [edi + 0x158]
lea eax, [ebp - 0x454]
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x44c]
push eax
push dword [ebp - 0x438]
call fcn.00497a30
mov eax, dword [ebp - 0x434]
mov ecx, dword [ebp - 0x438]
mov dword [eax + 0x16c], ecx
mov ecx, dword [ebp - 0x43c]
movss xmm0, dword [ebp - 0x454]
movss dword [ecx + 0x118], xmm0
push dword [eax + 0x164]
mov ecx, dword [edi + 0x158]
call fcn.004976d0
addss xmm0, dword [ebp - 0x44c]
mov eax, dword [ebp - 0x43c]
movss dword [eax + 0x110], xmm0
mov eax, dword [ebp - 0x434]
mov ecx, dword [edi + 0x158]
push dword [eax + 0x168]
call fcn.004977e0
addss xmm0, dword [ebp - 0x450]
mov eax, dword [ebp - 0x43c]
mov edx, dword [ebp - 0x434]
movss dword [eax + 0x114], xmm0
mov eax, dword [edi + 0x210]
cmp eax, dword [edx + 0x17c]
jne 0x47be62
cmp dword [0x592390], 0
jne 0x47be62
mov ecx, dword [edi + 0x158]
movq xmm0, qword [edx + 0x114]
movq qword [ecx + 0x184], xmm0
mov eax, dword [edx + 0x11c]
mov dword [ecx + 0x18c], eax
mov eax, dword [edi + 0x158]
mov dword [eax + 0x190], 0
push dword [edx + 0x168]
mov ecx, dword [edi + 0x158]
push dword [edx + 0x164]
call fcn.00497210
mov eax, dword [ebp - 0x434]
mov ecx, edi
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.00482750
mov eax, dword [ebp - 0x434]
mov ecx, dword [edi + 0x18]
push eax
call fcn.0044f4a0
mov edx, dword [ebp - 0x434]
cmp byte [esi + 5], 1
jne 0x47be97
cmp byte [esi], 0x19
jne 0x47be97
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.00484070
mov dword [ebp - 0x438], 1
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov edx, eax
mov dword [ebp - 0x434], eax
test edx, edx
jne 0x47bbd0
cmp dword [ebp - 0x438], eax
jne case.0x47ad4a.8
push 0x4ec
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
push 0x55e79c
push 0
mov ecx, eax
mov dword [ebp - 4], 2
call fcn.00483940
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x434], eax
call fcn.0044f2f0
mov edx, dword [ebp - 0x434]
movzx ecx, byte [esi + 5]
mov dword [edx + 0x160], ecx
cmp ecx, 0x18
jb 0x47bf22
movzx eax, byte [esi + 5]
mov dword [edx + 0x160], eax
mov al, byte [esi + 5]
cmp al, 1
jne 0x47bf99
movzx eax, word [esi + 8]
mov ecx, edx
push eax
movzx eax, word [esi + 6]
push eax
call fcn.00483d20
mov eax, dword [0x5923c0]
cmp eax, 1
je 0x47bf49
cmp eax, 3
jne 0x47bf5b
mov edx, dword [ebp - 0x434]
movzx eax, byte [esi + 0xa]
mov dword [edx + 0x188], eax
jmp 0x47bf61
mov edx, dword [ebp - 0x434]
cmp byte [esi], 0x19
jne 0x47c131
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.00484070
jmp 0x47c12b
cmp al, 5
jne 0x47bfcb
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.00483910
add esp, 0xc
jmp 0x47c12b
cmp al, 0xd
jne 0x47bfd9
push 0x55a7aa
jmp 0x47c11c
cmp al, 6
jne 0x47bfe7
push str.Items
jmp 0x47c11c
cmp al, 7
jne 0x47c05b
lea eax, [edx + 0x1b0]
push 0x55a7ab
push eax
call fcn.00483910
mov ecx, dword [edi + 0x1c]
add esp, 8
call fcn.0044f260
mov edx, eax
test edx, edx
je 0x47c041
movzx ecx, byte [esi + 0xb]
cmp dword [edx + 0x164], ecx
jne 0x47c033
movzx eax, byte [esi + 0xc]
cmp dword [edx + 0x168], eax
jne 0x47c033
mov dword [edx + 0x160], 1
mov ecx, dword [edi + 0x1c]
call fcn.0044f2a0
mov edx, eax
test edx, edx
jne 0x47c011
movzx eax, byte [esi + 0xc]
mov ecx, dword [edi + 0x158]
push eax
movzx eax, byte [esi + 0xb]
push eax
call fcn.00498810
jmp 0x47c12b
cmp al, 8
jne 0x47c069
push 0x55a7c3
jmp 0x47c11c
cmp al, 0xc
jne 0x47c077
push 0x55a7fe
jmp 0x47c11c
cmp al, 0xe
jne 0x47c082
push 0x55a7ff
jmp 0x47c08b
cmp al, 0x17
jne 0x47c0af
push 0x55a843
lea eax, [edx + 0x1b0]
push eax
call fcn.00483910
mov edx, dword [ebp - 0x434]
add esp, 8
movzx eax, word [esi + 8]
mov dword [edx + 0x184], eax
jmp 0x47c131
cmp al, 3
jne 0x47c0ba
push 0x55e7c0
jmp 0x47c11c
cmp al, 4
jne 0x47c0c5
push str.Town_Mage
jmp 0x47c11c
cmp al, 0x10
jne 0x47c0d0
push str.Witch
jmp 0x47c11c
cmp al, 0x16
jne 0x47c0db
push str.Mall_Director
jmp 0x47c11c
cmp al, 0x15
jne 0x47c0ea
cmp byte [esi], 0x19
jne 0x47c131
lea eax, [esi + 0x15]
push eax
jmp 0x47c11c
cmp word [esi + 8], 1
jne 0x47c117
lea eax, [edx + 0x1b0]
push str.Community_Merchant
push eax
call fcn.00483910
mov edx, dword [ebp - 0x434]
add esp, 8
mov dword [edx + 0x184], 1
jmp 0x47c131
push str.Merchant
lea eax, [edx + 0x1b0]
push eax
call fcn.00483910
add esp, 8
mov edx, dword [ebp - 0x434]
mov al, byte [esi + 5]
cmp al, 6
je 0x47c38d
cmp al, 0xd
je 0x47c38d
cmp al, 0xe
je 0x47c38d
cmp al, 0x17
je 0x47c38d
cmp al, 7
je 0x47c38d
mov ecx, dword [edi + 4]
push edx
call fcn.00493050
mov ecx, dword [ebp - 0x434]
push ecx
push eax
mov dword [ecx + 0x170], eax
mov ecx, dword [edi + 4]
call fcn.00493180
movzx ecx, byte [esi + 0xb]
mov dword [ebp - 0x438], eax
mov eax, dword [ebp - 0x434]
mov dword [eax + 0x164], ecx
movzx edx, byte [esi + 0xc]
mov dword [eax + 0x168], edx
cmp byte [esi + 5], 5
jne 0x47c1a5
push 1
jmp 0x47c1a7
push 0
push edx
push ecx
mov ecx, dword [edi + 0x158]
call fcn.00497b40
mov dword [ebp - 0x440], eax
cmp eax, 0xffffffff
jne 0x47c1fa
mov ecx, dword [ebp - 0x434]
push dword [ecx + 0x164]
mov ecx, dword [edi + 0x158]
call fcn.004976d0
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
movss dword [eax + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.004977e0
jmp 0x47c292
mov ecx, dword [edi + 0x158]
push 1
push eax
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.00497ba0
mov ecx, dword [edi + 0x158]
lea eax, [ebp - 0x454]
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x44c]
push eax
push dword [ebp - 0x440]
call fcn.00497a30
mov eax, dword [ebp - 0x434]
mov ecx, dword [ebp - 0x440]
push dword [eax + 0x164]
mov dword [eax + 0x16c], ecx
mov ecx, dword [edi + 0x158]
call fcn.004976d0
addss xmm0, dword [ebp - 0x44c]
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
movss dword [eax + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.004977e0
addss xmm0, dword [ebp - 0x450]
mov ecx, dword [ebp - 0x434]
movss xmm1, dword [0x56a9bc]
movss dword [ecx + 0x11c], xmm0
xorps xmm0, xmm0
call fcn.004728f0
mov eax, dword [ebp - 0x434]
mov ecx, edi
movss xmm2, dword [eax + 0x11c]
movss xmm1, dword [eax + 0x114]
movss dword [eax + 0x108], xmm0
mov dword [eax + 0x10c], 0
call fcn.00481b70
mov ecx, dword [ebp - 0x438]
mov eax, dword [ebp - 0x434]
movss dword [eax + 0x118], xmm0
movss xmm0, dword [eax + 0x108]
movss dword [ecx + 0x118], xmm0
movss dword [ecx + 0x11c], xmm0
mov dword [ecx + 0x120], 0x3e851eb8
mov dword [ecx + 0x124], 0x3e567750
movss xmm0, dword [ebp - 0x454]
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 0x47c379
mov dword [ecx + 0x128], 0x3f800000
mov ecx, dword [ebp - 0x434]
mov eax, dword [esi + 1]
mov dword [ecx + 0x17c], eax
jmp case.0x47ad4a.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 + 0x158]
call fcn.004976d0
addss xmm0, dword [0x56a9e8]
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
movss dword [eax + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.004977e0
mov eax, dword [ebp - 0x434]
mov ecx, edi
addss xmm0, dword [0x56a9e8]
movss xmm1, dword [eax + 0x114]
mov dword [eax + 0x108], 0
movaps xmm2, xmm0
movss dword [eax + 0x11c], xmm0
mov dword [eax + 0x10c], 0
call fcn.00481b70
mov ecx, dword [ebp - 0x434]
movss dword [ecx + 0x118], xmm0
mov eax, dword [esi + 1]
mov dword [ecx + 0x17c], eax
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov dword [ebp - 0x43c], eax
test eax, eax
je case.0x47ad4a.8
cmp dword [eax + 0x178], 0xffffffff
jne 0x47c4de
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x47c4de
mov ecx, dword [edi + 0x18]
push eax
call fcn.0044f5c0
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ecx + 0x160]
cmp eax, 6
je 0x47c4ce
cmp eax, 0xa
je 0x47c4ce
cmp eax, 0x11
je 0x47c4ce
cmp eax, 0xd
je 0x47c4ce
cmp eax, 0xe
je 0x47c4ce
cmp eax, 0x17
je 0x47c4ce
cmp eax, 7
je 0x47c4ce
push dword [ecx + 0x16c]
push dword [ecx + 0x168]
push dword [ecx + 0x164]
mov ecx, dword [edi + 0x158]
call fcn.00497bd0
mov eax, dword [ebp - 0x43c]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.00493190
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044f260
jmp 0x47c4e6
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov dword [ebp - 0x43c], eax
test eax, eax
jne 0x47c442
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x440], eax
call fcn.0044f260
test eax, eax
je 0x47c551
mov edx, 1
cmp dword [eax + 0x178], 0xffffffff
jne 0x47c533
mov eax, dword [eax + 0x17c]
mov ecx, dword [ebp - 0x440]
cmp eax, dword [esi + 1]
cmove ecx, edx
mov dword [ebp - 0x440], ecx
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov edx, 1
test eax, eax
jne 0x47c512
cmp dword [ebp - 0x440], 0
jne case.0x47ad4a.8
push 0x4ec
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
push 0x55e814
push 0
mov ecx, eax
mov dword [ebp - 4], 3
call fcn.00483940
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x18]
push esi
call fcn.0044f2f0
lea ecx, [esi + 0x1b0]
mov dword [esi + 0x160], 0x11
push 0x55a881
push ecx
call fcn.00483910
mov edx, dword [ebp - 0x43c]
add esp, 8
movzx ecx, byte [edx + 9]
mov dword [esi + 0x164], ecx
movzx eax, byte [edx + 0xa]
mov dword [esi + 0x168], eax
push ecx
mov ecx, dword [edi + 0x158]
call fcn.004976d0
addss xmm0, dword [0x56a9e8]
push dword [esi + 0x168]
movss dword [esi + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.004977e0
movss xmm1, dword [esi + 0x114]
movaps xmm2, xmm0
addss xmm2, dword [0x56a9e8]
mov ecx, edi
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 0
movss dword [esi + 0x11c], xmm2
call fcn.00481b70
mov edx, dword [ebp - 0x43c]
movss dword [esi + 0x118], xmm0
movss xmm1, dword [0x56a820]
mov eax, dword [edx + 1]
mov dword [esi + 0x17c], eax
movzx ecx, byte [edx + 6]
movzx eax, byte [edx + 7]
or ecx, 0x3700
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 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 - 0x46c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, cl
shr ecx, 0x18
mulss xmm0, xmm1
movss dword [ebp - 0x468], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x464], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x460], xmm0
movups xmm0, xmmword [ebp - 0x46c]
movups xmmword [esi + 0x224], xmm0
movzx eax, byte [edx + 5]
mov dword [esi + 0x234], eax
mov eax, dword [edx + 0xb]
mov dword [esi + 0x238], eax
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
mov dword [ebp - 0x43c], edx
test edx, edx
je case.0x47ad4a.8
nop dword [eax]
nop word [eax + eax]
movzx ecx, byte [esi + 5]
cmp ecx, dword [edx + 0x160]
jne 0x47c7c5
mov eax, dword [edx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x47c7c5
mov ecx, dword [edi + 0x18]
push edx
call fcn.0044f5c0
mov eax, dword [ebp - 0x43c]
sub esp, 0xc
movq xmm0, qword [eax + 0x114]
mov ecx, dword [eax + 0x11c]
mov eax, esp
movq qword [ebp - 0x468], xmm0
movss xmm0, dword [ebp - 0x464]
addss xmm0, dword [0x56a8fc]
movss dword [ebp - 0x464], xmm0
movq xmm0, qword [ebp - 0x468]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x5923e0]
call fcn.004b75d0
movaps xmm0, xmmword [0x56ac60]
sub esp, 0x10
mov ecx, dword [0x5923e0]
mov eax, esp
push 0x3c
movups xmmword [eax], xmm0
call fcn.004b7620
mov ecx, dword [ebp - 0x43c]
push 1
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
mov dword [ebp - 0x43c], edx
jmp 0x47c7d5
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov edx, eax
mov dword [ebp - 0x43c], eax
test edx, edx
jne 0x47c710
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov ecx, eax
mov dword [ebp - 0x43c], ecx
test ecx, ecx
je case.0x47ad4a.8
nop word [eax + eax]
cmp dword [ecx + 0x178], 0xffffffff
jne 0x47c994
mov eax, dword [ecx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x47c994
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.00493180
mov ecx, dword [edi + 0x158]
mov dword [ebp - 0x444], eax
mov eax, dword [ebp - 0x43c]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.00497bd0
mov edx, dword [ebp - 0x43c]
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 + 0x158]
call fcn.00497b40
mov ecx, dword [edi + 0x158]
mov dword [ebp - 0x438], eax
cmp eax, 0xffffffff
jne 0x47c8c9
movzx eax, byte [esi + 7]
push eax
call fcn.004976d0
mov eax, dword [ebp - 0x444]
movss dword [eax + 0x110], xmm0
movzx eax, byte [esi + 8]
mov ecx, dword [edi + 0x158]
push eax
call fcn.004977e0
mov eax, dword [ebp - 0x444]
movss dword [eax + 0x114], xmm0
jmp 0x47c977
push 1
push eax
mov eax, dword [ebp - 0x43c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.00497ba0
mov ecx, dword [edi + 0x158]
lea eax, [ebp - 0x454]
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x44c]
push eax
push dword [ebp - 0x438]
call fcn.00497a30
mov eax, dword [ebp - 0x43c]
mov ecx, dword [ebp - 0x438]
mov dword [eax + 0x16c], ecx
movzx eax, byte [esi + 7]
mov ecx, dword [edi + 0x158]
push eax
call fcn.004976d0
addss xmm0, dword [ebp - 0x44c]
mov eax, dword [ebp - 0x444]
movss dword [eax + 0x110], xmm0
movzx eax, byte [esi + 8]
mov ecx, dword [edi + 0x158]
push eax
call fcn.004977e0
addss xmm0, dword [ebp - 0x450]
mov eax, dword [ebp - 0x444]
movss dword [eax + 0x114], xmm0
movss xmm0, dword [ebp - 0x454]
movss dword [eax + 0x118], xmm0
cmp byte [esi], 0x1c
jne 0x47c994
cmp dword [esi + 9], 1
jne 0x47c994
mov eax, dword [ebp - 0x43c]
mov eax, dword [eax + 0x17c]
mov dword [edi + 0x210], eax
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov ecx, eax
mov dword [ebp - 0x43c], eax
test ecx, ecx
jne 0x47c800
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
test eax, eax
je case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
test eax, eax
jne 0x47c9c1
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov ecx, eax
mov dword [ebp - 0x434], ecx
test ecx, ecx
je case.0x47ad4a.8
nop word [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x47cebd
mov edx, dword [esi + 9]
cmp eax, edx
jne 0x47cebd
mov eax, dword [edi + 8]
cmp dword [eax + 0x178], edx
jne 0x47ca1e
mov eax, dword [esi + 5]
mov dword [edi + 0x280], eax
mov ecx, dword [ecx + 0x26c]
test ecx, ecx
je 0x47ca2e
mov eax, dword [ecx]
push 1
call dword [eax]
push 0x174
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov ecx, eax
mov dword [ebp - 4], 4
call fcn.00463540
mov ecx, dword [ebp - 0x434]
mov dword [ebp - 4], 0xffffffff
mov dword [ecx + 0x26c], eax
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
mov dword [ecx + 0x324], 0
mov dword [ecx + 0x328], 0
mov dword [ecx + 0x32c], 0
mov dword [ecx + 0x330], 0
mov dword [ecx + 0x334], 0
movzx eax, byte [esi + 0x1b]
mov dword [ecx + 0x270], eax
mov al, byte [esi + 0x1b]
mov ecx, dword [ecx + 0x26c]
cmp al, 0x80
jb 0x47cbcc
mov eax, dword [0x592218]
push str.dat_staff.ase
push dword [eax + 0x2a3d8]
call fcn.00463720
mov eax, dword [0x592218]
mov ecx, dword [ebp - 0x434]
push 0
push str.dat_staff.png
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x26c]
call fcn.00464260
movzx ecx, byte [esi + 0x1c]
movzx eax, byte [esi + 0x1d]
or ecx, 0x3700
movss xmm1, dword [0x56a820]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0x1e]
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 - 0x46c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, cl
shr ecx, 0x18
mulss xmm0, xmm1
movss dword [ebp - 0x468], xmm0
movd xmm0, eax
mov eax, dword [ebp - 0x434]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x464], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x460], xmm0
movups xmm0, xmmword [ebp - 0x46c]
movups xmmword [eax + 0x290], xmm0
jmp 0x47ccd4
cmp al, 1
jne 0x47cbf1
mov eax, dword [0x592218]
push str.datkatana.ase
push dword [eax + 0x2a3d8]
call fcn.00463720
push 0
push str.datkatana.png
jmp 0x47ccb8
cmp al, 4
jne 0x47cc16
mov eax, dword [0x592218]
push str.datclaws.ASE
push dword [eax + 0x2a3d8]
call fcn.00463720
push 0
push str.datclaws.png
jmp 0x47ccb8
cmp al, 3
jne 0x47cc3b
mov eax, dword [0x592218]
push str.datchaosBlade.ASE
push dword [eax + 0x2a3d8]
call fcn.00463720
push 0
push str.datchaosBlade.png
jmp 0x47ccb8
cmp al, 5
jne 0x47cc5d
mov eax, dword [0x592218]
push str.dat_bladeStaff.ASE
push dword [eax + 0x2a3d8]
call fcn.00463720
push 0
push str.dat_bladeStaff.png
jmp 0x47ccb8
cmp al, 2
jne 0x47cc7f
mov eax, dword [0x592218]
push str.datmace.ASE
push dword [eax + 0x2a3d8]
call fcn.00463720
push 0
push str.datmace.png
jmp 0x47ccb8
cmp al, 5
mov eax, dword [0x592218]
jbe 0x47cca1
push str.dat_scythe.ASE
push dword [eax + 0x2a3d8]
call fcn.00463720
push 0
push str.dat_scythe.png
jmp 0x47ccb8
push str.dat_blade.ase
push dword [eax + 0x2a3d8]
call fcn.00463720
push 0
push str.dat_bladeMetal.png
mov eax, dword [0x592218]
push dword [eax + 0x2a3d8]
mov eax, dword [ebp - 0x434]
mov ecx, dword [eax + 0x26c]
call fcn.00464260
movss xmm2, dword [esi + 1]
mulss xmm2, dword [0x56a804]
mov eax, dword [0x592218]
push ecx
movss dword [esp], xmm2
movaps xmm3, xmm2
push dword [eax + 0x2a3d8]
mov eax, dword [ebp - 0x434]
mov ecx, dword [eax + 0x26c]
call fcn.00464810
mov eax, dword [0x592218]
push dword [eax + 0x2a3d8]
mov eax, dword [ebp - 0x434]
mov ecx, dword [eax + 0x26c]
call fcn.004658b0
movzx eax, byte [esi + 0x1e]
push 0xff
push eax
movzx eax, byte [esi + 0x1d]
push eax
movzx eax, byte [esi + 0x1c]
push eax
mov eax, dword [ebp - 0x434]
mov ecx, dword [eax + 0x26c]
call fcn.00465810
mov edx, dword [ebp - 0x434]
mov eax, dword [esi + 1]
movaps xmm0, xmmword [0x56acd0]
mov dword [edx + 0x304], 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
movzx eax, word [esi + 0x17]
mov dword [edx + 0x288], eax
mov dword [edx + 0x28c], 0
mov ecx, dword [edx + 0x274]
mov dword [edx + 0x28c], ecx
add ecx, dword [edx + 0x278]
mov dword [edx + 0x28c], ecx
add ecx, dword [edx + 0x27c]
mov dword [edx + 0x28c], ecx
add ecx, dword [edx + 0x280]
mov dword [edx + 0x28c], ecx
add ecx, dword [edx + 0x284]
mov dword [edx + 0x28c], ecx
mov eax, dword [edx + 0x288]
add eax, ecx
mov dword [edx + 0x28c], eax
movups xmmword [edx + 0x2b0], xmm0
movaps xmm0, xmmword [0x56ad00]
movups xmmword [edx + 0x2c0], xmm0
movaps xmm0, xmmword [0x56ac10]
movups xmmword [edx + 0x290], xmm0
movaps xmm0, xmmword [0x56ac70]
movups xmmword [edx + 0x2a0], xmm0
movaps xmm0, xmmword [0x56acb0]
movups xmmword [edx + 0x2d0], xmm0
movaps xmm0, xmmword [0x56ac40]
movups xmmword [edx + 0x2e0], xmm0
movzx eax, word [esi + 0x19]
add eax, 0xffffffe7
cmp eax, 8
ja case.default.0x47ce4a
jmp dword [eax*4 + 0x47f1b4]
movaps xmm0, xmmword [0x56ad00]
movups xmmword [edx + 0x2f0], xmm0
mov dword [edx + 0x300], 1
jmp 0x47cebd
movaps xmm0, xmmword [0x56ac10]
jmp 0x47ce58
movaps xmm0, xmmword [0x56acd0]
jmp 0x47ce58
movaps xmm0, xmmword [0x56ac70]
jmp 0x47ce58
movaps xmm0, xmmword [0x56acf0]
jmp 0x47ce58
movaps xmm0, xmmword [0x56ace0]
jmp 0x47ce58
movaps xmm0, xmmword [0x56ac80]
jmp 0x47ce58
movaps xmm0, xmmword [0x56ac30]
jmp 0x47ce58
movaps xmm0, xmmword [0x56acc0]
jmp 0x47ce58
mov dword [edx + 0x300], 0
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov ecx, eax
mov dword [ebp - 0x434], eax
test ecx, ecx
jne 0x47c9f0
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov ecx, eax
mov dword [ebp - 0x438], ecx
test ecx, ecx
je case.0x47ad4a.8
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x47cf3b
mov edx, dword [esi + 1]
cmp eax, edx
jne 0x47cf3b
mov eax, dword [edi + 8]
cmp dword [eax + 0x178], edx
jne 0x47cf19
mov dword [edi + 0x280], 0
mov edx, dword [ecx + 0x26c]
test edx, edx
je 0x47cf31
mov eax, dword [edx]
mov ecx, edx
push 1
call dword [eax]
mov ecx, dword [ebp - 0x438]
mov dword [ecx + 0x26c], 0
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov ecx, eax
mov dword [ebp - 0x438], eax
test ecx, ecx
jne 0x47cef2
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x444], eax
mov dword [ebp - 0x43c], eax
call fcn.0044f260
mov ecx, eax
mov dword [ebp - 0x438], ecx
test ecx, ecx
je case.0x47ad4a.8
nop word [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x47cfd9
cmp eax, dword [esi + 1]
jne 0x47cff1
call fcn.00514d5a
and eax, reloc.WS2_32.dll_accept
jns 0x47cfa1
dec eax
or eax, 0xfffffffe
inc eax
mov ecx, dword [ebp - 0x438]
inc eax
mov dword [ebp - 0x43c], ecx
mov dword [ecx + 0x19c], eax
mov dword [ecx + 0x190], 0
mov eax, dword [esi + 0xd]
cmp eax, 0xfffffc18
je 0x47cff1
mov dword [ecx + 0x210], eax
mov eax, dword [esi + 0x11]
mov dword [ecx + 0x214], eax
jmp 0x47cff1
mov eax, dword [ecx + 0x17c]
mov edx, dword [ebp - 0x444]
cmp eax, dword [esi + 5]
cmove edx, ecx
mov dword [ebp - 0x444], edx
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov ecx, eax
mov dword [ebp - 0x438], eax
test ecx, ecx
jne 0x47cf80
mov ecx, dword [ebp - 0x43c]
test ecx, ecx
je case.0x47ad4a.8
mov eax, dword [ebp - 0x444]
test eax, eax
je case.0x47ad4a.8
mov edx, dword [esi + 9]
cmp edx, 0xffffffff
jne 0x47d05d
test byte [0x59329c], 2
je 0x47d0c6
add eax, 0x1b0
push eax
lea eax, [ecx + 0x1b0]
push eax
lea eax, [ebp - 0x418]
push str._s_misses_the__s.
push eax
call fcn.0044ed80
add esp, 0x10
jmp 0x47d0b5
cmp dword [esi + 0x15], 0
jne 0x47d08a
test byte [0x59329c], 1
je 0x47d0c6
push edx
lea eax, [ecx + 0x1b0]
push eax
lea eax, [ebp - 0x418]
push str._s_uses_her_staff_for__d_damage.
push eax
call fcn.0044ed80
add esp, 0x10
jmp 0x47d0b5
test byte [0x59329c], 1
je 0x47d0c6
push edx
add eax, 0x1b0
push eax
lea eax, [ecx + 0x1b0]
push eax
lea eax, [ebp - 0x418]
push str._s_hits_the__s_for__d_damage.
push eax
call fcn.0044ed80
add esp, 0x14
lea ecx, [ebp - 0x418]
call fcn.0049dcf0
mov ecx, dword [ebp - 0x43c]
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.00493180
mov esi, eax
mov eax, dword [ebp - 0x444]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.00493180
movss xmm1, dword [esi + 0x10c]
sub esp, 8
movss xmm0, dword [esi + 0x108]
movss xmm3, dword [eax + 0x10c]
movss xmm2, dword [eax + 0x108]
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0044dd60
add esp, 8
movss dword [esi + 0x118], xmm0
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
test eax, eax
je case.0x47ad4a.8
cmp dword [eax + 0x178], 0xffffffff
jg 0x47d16b
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x47d16b
mov dword [eax + 0x1a4], 1
mov dword [eax + 0x190], 0
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
test eax, eax
jne 0x47d143
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x43c], eax
mov dword [ebp - 0x444], eax
call fcn.0044f260
mov ecx, eax
test ecx, ecx
je case.0x47ad4a.8
nop dword [eax]
mov edx, dword [ecx + 0x178]
mov eax, dword [ebp - 0x43c]
mov dword [ebp - 0x438], eax
cmp edx, 0xffffffff
jle 0x47d1c5
cmp edx, dword [esi + 5]
mov eax, ecx
cmovne eax, dword [ebp - 0x438]
jmp 0x47d1f2
mov edx, dword [ecx + 0x17c]
cmp edx, dword [esi + 1]
jne 0x47d1ec
mov dword [ecx + 0x19c], 1
mov dword [ecx + 0x190], 0
mov dword [ebp - 0x444], ecx
jmp 0x47d1f8
cmp edx, dword [esi + 5]
cmove eax, ecx
mov dword [ebp - 0x43c], eax
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov ecx, eax
test ecx, ecx
jne 0x47d1a0
mov ecx, dword [ebp - 0x444]
test ecx, ecx
je case.0x47ad4a.8
mov edx, dword [ebp - 0x43c]
test edx, edx
je case.0x47ad4a.8
mov eax, dword [esi + 9]
cmp eax, 0xffffffff
jne 0x47d269
test byte [0x59329c], 2
je 0x47d30d
lea eax, [edx + 0x1b0]
push eax
lea eax, [ecx + 0x1b0]
push eax
lea eax, [ebp - 0x418]
push str.The__s_misses__s.
push eax
call fcn.0044ed80
add esp, 0x10
lea ecx, [ebp - 0x418]
call fcn.0049dcf0
jmp 0x47d307
test byte [0x59329c], 1
je 0x47d2a6
push eax
lea eax, [edx + 0x1b0]
push eax
lea eax, [ecx + 0x1b0]
push eax
lea eax, [ebp - 0x418]
push str.The__s_hits__s_for__d_damage.
push eax
call fcn.0044ed80
add esp, 0x14
lea ecx, [ebp - 0x418]
call fcn.0049dcf0
mov edx, dword [ebp - 0x43c]
mov ecx, dword [edi + 8]
cmp edx, ecx
jne 0x47d2cf
mov eax, dword [esi + 9]
sub dword [ecx + 0x210], eax
mov ecx, dword [edi + 8]
mov eax, dword [ecx + 0x210]
mov dword [0x59325c], eax
mov eax, dword [ecx + 0x214]
mov dword [0x593250], eax
movq xmm0, qword [edx + 0x114]
sub esp, 0xc
mov eax, dword [edx + 0x11c]
mov ecx, esp
movss xmm2, dword [0x56aa50]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x578]
call fcn.00468f00
mov ecx, dword [edi + 0x578]
call fcn.00468c30
mov ecx, dword [ebp - 0x444]
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.00493180
mov esi, eax
mov eax, dword [ebp - 0x43c]
jmp 0x47d0dd
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x438], eax
call fcn.0044f260
test eax, eax
je case.0x47ad4a.8
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x47d366
mov dword [eax + 0x1a0], 1
mov dword [eax + 0x190], 0
mov dword [ebp - 0x438], eax
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
test eax, eax
jne 0x47d341
mov eax, dword [ebp - 0x438]
test eax, eax
je case.0x47ad4a.8
test byte [0x59329c], 2
je case.0x47ad4a.8
add eax, 0x1b0
push eax
lea eax, [ebp - 0x418]
push str.The__s_attacks_everyone_
push eax
call fcn.0044ed80
add esp, 0xc
lea ecx, [ebp - 0x418]
call fcn.0049dcf0
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
test edx, edx
je case.0x47ad4a.8
nop dword [eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x47d3ee
mov eax, dword [esi + 5]
mov dword [edx + 0x1ac], eax
mov dword [edx + 0x190], 0
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov edx, eax
test edx, edx
jne 0x47d3d0
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov dword [ebp - 0x43c], eax
test eax, eax
je case.0x47ad4a.8
nop word [eax + eax]
mov ecx, dword [eax + 0x178]
cmp ecx, dword [esi + 1]
jne 0x47d4b2
mov ecx, dword [edi + 0x18]
push eax
call fcn.0044f5c0
mov eax, dword [ebp - 0x43c]
mov ecx, dword [edi + 0x158]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.00497bd0
mov eax, dword [ebp - 0x43c]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.00493190
mov eax, dword [ebp - 0x43c]
add eax, 0x1b0
push eax
lea eax, [ebp - 0x418]
push str._s_is_defeated_
push eax
call fcn.0044ed80
add esp, 0xc
lea ecx, [ebp - 0x418]
call fcn.0049dcf0
mov ecx, dword [ebp - 0x43c]
cmp dword [edi + 8], ecx
jne 0x47d4ac
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.0044f2a0
mov dword [ebp - 0x43c], eax
test eax, eax
jne 0x47d420
jmp case.0x47ad4a.8
and dword [0x59220c], 0xfffffffe
call fcn.004929e0
mov eax, dword [esi + 3]
mov ecx, dword [edi + 0x18]
mov dword [edi + 0x758], eax
mov eax, dword [esi + 7]
mov dword [edi + 0x75c], eax
mov dword [edi + 0x288], 0
mov dword [edi + 0x284], 0
mov dword [edi + 0x290], 0
call fcn.0044f260
test eax, eax
je 0x47d57a
mov esi, eax
mov ecx, dword [edi + 0x18]
cmp esi, dword [edi + 8]
je 0x47d569
push esi
call fcn.0044f5c0
mov eax, dword [esi + 0x16c]
cmp eax, 0xffffffff
jle 0x47d557
mov ecx, dword [edi + 0x158]
push eax
push dword [esi + 0x168]
push dword [esi + 0x164]
call fcn.00497bd0
mov ecx, dword [edi + 4]
push esi
push dword [esi + 0x170]
call fcn.00493190
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044f260
jmp 0x47d56e
call fcn.0044f2a0
mov esi, eax
test esi, esi
jne 0x47d517
mov esi, dword [ebp - 0x43c]
call fcn.004929e0
mov ecx, edi
call fcn.00482af0
call fcn.004929e0
movsx eax, byte [esi + 2]
mov dword [0x5923c0], eax
cmp eax, 1
je 0x47de4f
cmp eax, 3
je 0x47de4f
cmp eax, 4
jne 0x47d924
push 0xfffffffffffffffe
lea ecx, [edi + 0x434]
call fcn.00471f90
call fcn.004929e0
mov eax, dword [edi + 0x168]
add esi, 0xf
test eax, eax
je 0x47d5e0
movsx ecx, byte [eax + 0x1c0]
movzx eax, byte [esi]
cmp eax, ecx
je 0x47d91c
push str.delete_realm_ptr
mov ecx, 0x592204
call fcn.00446c30
cmp dword [0x592204], 0
je 0x47d603
mov ecx, dword [edi + 0x168]
call fcn.00446c70
push 0x55ea08
mov ecx, 0x592204
call fcn.00446c30
mov ecx, dword [edi + 0x168]
test ecx, ecx
je 0x47d62c
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x168], 0
call fcn.004929e0
movzx eax, byte [esi]
mov ecx, 0x592204
sub eax, 1
je 0x47d880
sub eax, 1
je 0x47d7dc
sub eax, 4
je 0x47d738
push str.new_realm_object_for_spirits_n
call fcn.00446c30
push 0x1d0
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 7
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.004c21d0
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x592204
push 0x55ea2c
mov dword [edi + 0x168], eax
call fcn.00446c30
mov ecx, dword [edi + 0x168]
push 0x55ea34
push str.dat_realm_spirits_color.png
call fcn.004c2480
push 0x55ea6c
mov ecx, 0x592204
call fcn.00446c30
call fcn.004929e0
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_spirits_height.png
call fcn.004c2cd0
push 0x55ea98
mov ecx, 0x592204
call fcn.00446c30
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x168]
push 0x55eaa8
push dword [eax + 0x2a3d8]
call fcn.004c3b80
push str.CreateSpiritStaticPositions___n
mov ecx, 0x592204
call fcn.00446c30
call fcn.004929e0
mov ecx, dword [edi + 0x168]
push 0
call fcn.004c44e0
movzx eax, byte [esi]
jmp 0x47dc31
push str.test_realm_object_n
call fcn.00446c30
push 0x1d0
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xa
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.004c21d0
push str.dat_realm_dead_sky.png
mov dword [ebp - 4], 0xffffffff
mov ecx, eax
push 0x55ec30
mov dword [edi + 0x168], eax
call fcn.004c2480
call fcn.004929e0
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_test_height.png
call fcn.004c2cd0
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x168]
push str.dat_test_texture.png
push dword [eax + 0x2a3d8]
call fcn.004c3b80
call fcn.004929e0
mov ecx, dword [edi + 0x168]
push 6
call fcn.004c44e0
movzx eax, byte [esi]
jmp 0x47dc31
push str.new_realm_object_for_dragons_n
call fcn.00446c30
push 0x1d0
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 9
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.004c21d0
push str.dat_realm_dragon_sky.png
mov dword [ebp - 4], 0xffffffff
mov ecx, eax
push 0x55ebac
mov dword [edi + 0x168], eax
call fcn.004c2480
call fcn.004929e0
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_dragons_height.png
call fcn.004c2cd0
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x168]
push str.dat_realm_dragon_color.png
push dword [eax + 0x2a3d8]
call fcn.004c3b80
call fcn.004929e0
mov ecx, dword [edi + 0x168]
push 2
call fcn.004c44e0
movzx eax, byte [esi]
jmp 0x47dc31
push str.new_realm_object_for_the_dead_n
call fcn.00446c30
push 0x1d0
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 8
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.004c21d0
push 0x55eb04
mov dword [ebp - 4], 0xffffffff
mov ecx, eax
push 0x55eb1c
mov dword [edi + 0x168], eax
call fcn.004c2480
call fcn.004929e0
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_dead_height.png
call fcn.004c2cd0
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x168]
push str.dat_realm_dead_color.png
push dword [eax + 0x2a3d8]
call fcn.004c3b80
call fcn.004929e0
mov ecx, dword [edi + 0x168]
push 1
call fcn.004c44e0
movzx eax, byte [esi]
jmp 0x47dc31
cmp eax, 2
jne 0x47dc55
push 0xfffffffffffffffd
lea ecx, [edi + 0x434]
call fcn.00471f90
call fcn.004929e0
mov eax, dword [edi + 0x16c]
add esi, 0xf
test eax, eax
je 0x47d960
mov dl, byte [esi]
movsx ecx, byte [eax + 0x1c0]
movzx eax, dl
cmp eax, ecx
je 0x47dc2e
push str.delete_labyrinth_ptr
mov ecx, 0x592204
call fcn.00446c30
cmp dword [0x592204], 0
je 0x47d983
mov ecx, dword [edi + 0x16c]
call fcn.00446c70
push 0x55ec8c
mov ecx, 0x592204
call fcn.00446c30
mov ecx, dword [edi + 0x16c]
test ecx, ecx
je 0x47d9ac
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x16c], 0
call fcn.004929e0
movzx eax, byte [esi]
mov ecx, 0x592204
sub eax, 4
je 0x47db52
sub eax, 1
je 0x47da8d
push 0x55ec90
call fcn.00446c30
push 0x41d4
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xb
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.004af3b0
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x592204
push 0x55eca8
mov dword [edi + 0x16c], eax
call fcn.00446c30
mov ecx, dword [edi + 0x16c]
push 0
push 0x55ecb0
call fcn.004af680
push 0x55ecc8
mov ecx, 0x592204
call fcn.00446c30
call fcn.004929e0
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x16c]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth_height.png
call fcn.004afea0
push 0x55ecf0
mov ecx, 0x592204
call fcn.00446c30
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x16c]
push 0x55ed00
push dword [eax + 0x2a3d8]
call fcn.004b1500
push 0x55ed18
jmp 0x47dc12
push str.new_labyrinth_object_n
call fcn.00446c30
push 0x41d4
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xd
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.004af3b0
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x592204
push str.init___n
mov dword [edi + 0x16c], eax
call fcn.00446c30
mov ecx, dword [edi + 0x16c]
push str.datlabyrinth3_ceiling.png
push str.datlabyrinth_color.png
call fcn.004af680
push str.generate___n
mov ecx, 0x592204
call fcn.00446c30
call fcn.004929e0
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x16c]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth3_height.png
call fcn.004afea0
push str.loadTexture___n
mov ecx, 0x592204
call fcn.00446c30
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x16c]
push str.datlabyrinth3_floor.png
push dword [eax + 0x2a3d8]
call fcn.004b1500
push str.CreateStaticPositions___n
jmp 0x47dc12
push 0x55ed34
call fcn.00446c30
push 0x41d4
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xc
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.004af3b0
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x592204
push 0x55ed4c
mov dword [edi + 0x16c], eax
call fcn.00446c30
mov ecx, dword [edi + 0x16c]
push 0x55ed54
push 0x55ed70
call fcn.004af680
push 0x55ed88
mov ecx, 0x592204
call fcn.00446c30
call fcn.004929e0
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x16c]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth2_height.png
call fcn.004afea0
push 0x55edb0
mov ecx, 0x592204
call fcn.00446c30
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x16c]
push str.datlabyrinth2_texture.png
push dword [eax + 0x2a3d8]
call fcn.004b1500
push 0x55eddc
mov ecx, 0x592204
call fcn.00446c30
call fcn.004929e0
mov ecx, dword [edi + 0x16c]
call fcn.004b1bd0
mov dl, byte [esi]
movzx eax, dl
mov ecx, dword [edi + 0x168]
mov dword [edi + 0x2a4], eax
mov eax, dword [edi + 0x160]
mov dword [eax + 0x10], ecx
mov dword [edi + 0x290], 0
jmp case.0x47ad4a.8
test eax, eax
jne case.0x47ad4a.8
mov ecx, dword [edi + 0x158]
mov al, byte [esi + 0xf]
movzx edx, al
cmp edx, dword [ecx + 0x110]
je 0x47de3b
push edx
call fcn.00496660
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x158]
push 0
push 0x100
push 0x100
push dword [eax + 0x2a3d8]
call fcn.00496fa0
mov eax, dword [0x592218]
mov ecx, dword [edi + 0x158]
push str.datgrassfull.png
push dword [eax + 0x2a3d8]
call fcn.004975d0
mov ecx, dword [edi + 0x158]
call fcn.00497c00
mov ecx, dword [0x5923a0]
test ecx, ecx
je 0x47dcd4
push 1
call fcn.004750f0
mov ecx, dword [0x5923a4]
test ecx, ecx
je 0x47dce5
push 1
call fcn.004750f0
mov ecx, dword [0x5923a8]
test ecx, ecx
je 0x47dcf6
push 1
call fcn.004750f0
mov ecx, dword [0x5923ac]
test ecx, ecx
je 0x47dd07
push 1
call fcn.004750f0
push 0x24
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xe
mov edx, dword [0x57cc88]
movss xmm3, dword [0x56a890]
shl edx, 5
add edx, dword [0x57cc88]
push 0x55eed0
lea ecx, [edx*2 + 5]
push ecx
mov ecx, eax
call fcn.004c4670
mov dword [ebp - 4], 0xffffffff
push 0x24
mov dword [0x5923a0], eax
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xf
mov edx, dword [0x57cc88]
movss xmm3, dword [0x56a898]
shl edx, 5
add edx, dword [0x57cc88]
push 0x55eee8
lea ecx, [edx*2 + 5]
push ecx
mov ecx, eax
call fcn.004c4670
mov dword [ebp - 4], 0xffffffff
push 0x24
mov dword [0x5923a4], eax
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0x10
mov edx, dword [0x57cc88]
movss xmm3, dword [0x56a8a4]
shl edx, 5
add edx, dword [0x57cc88]
push 0x55ef00
lea ecx, [edx*2 + 5]
push ecx
mov ecx, eax
call fcn.004c4670
mov dword [ebp - 4], 0xffffffff
push 0x24
mov dword [0x5923a8], eax
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0x11
mov edx, dword [0x57cc88]
movss xmm3, dword [0x56a8a4]
shl edx, 5
add edx, dword [0x57cc88]
push 0x55ef18
lea ecx, [edx*2 + 5]
push ecx
mov ecx, eax
call fcn.004c4670
mov dword [0x5923ac], eax
mov al, byte [esi + 0xf]
movzx eax, al
mov dword [edi + 0x2a4], eax
mov dword [edi + 0x29c], eax
jmp case.0x47ad4a.8
mov dword [ebp - 0x440], 0
lea ecx, [edi + 0x434]
cmp eax, 3
jne 0x47de77
push 0xfffffffffffffffc
call fcn.00471f90
mov dword [ebp - 0x440], 1
jmp 0x47de7e
push 0xfffffffffffffffe
call fcn.00471f90
call fcn.004929e0
mov ecx, dword [edi + 0x164]
test ecx, ecx
jne 0x47deae
push 0x1c0
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 5
push 0x55e9e4
jmp 0x47dede
mov eax, dword [esi + 0xb]
cmp eax, dword [0x5923b4]
je 0x47def8
mov eax, dword [ecx]
push 1
call dword [eax]
push 0x1c0
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 6
push str.dungeon
push dword [ebp - 0x440]
mov ecx, eax
call fcn.0048dd80
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x164], eax
call fcn.004929e0
mov eax, dword [esi + 0x10]
lea edx, [ebp - 0x478]
mov ecx, dword [0x59222c]
and eax, 1
mov dword [edi + 0x284], eax
mov eax, dword [esi + 0x10]
and eax, 4
mov dword [edi + 0x290], 0
mov dword [edi + 0x288], eax
xor eax, eax
push 0
push 0
mov dword [ebp - 0x477], eax
mov eax, dword [ecx]
push edx
push 5
call dword [eax + 4]
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x164]
test ecx, ecx
je case.0x47ad4a.8
push esi
call fcn.0048ec60
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x164]
test ecx, ecx
je case.0x47ad4a.8
push esi
call fcn.0048ee20
jmp case.0x47ad4a.8
mov eax, dword [esi + 1]
mov dword [edi + 0x424], eax
jmp case.0x47ad4a.8
mov eax, dword [esi + 1]
mov dword [edi + 0x750], eax
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
mov dword [ebp - 0x438], edx
test edx, edx
je 0x47e02a
nop word [eax + eax]
mov ecx, dword [edx + 0x178]
cmp ecx, dword [esi + 1]
jne 0x47e016
mov eax, dword [esi + 5]
cmp dword [edx + 0x210], eax
jle 0x47e007
movq xmm0, qword [edx + 0x114]
sub esp, 0xc
mov eax, dword [edx + 0x11c]
mov ecx, esp
movss xmm2, dword [0x56aa50]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x578]
call fcn.00468f00
mov ecx, dword [edi + 0x578]
call fcn.00468c30
mov eax, dword [esi + 5]
mov edx, dword [ebp - 0x438]
mov dword [edx + 0x210], eax
mov eax, dword [esi + 9]
mov dword [edx + 0x214], eax
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov edx, eax
mov dword [ebp - 0x438], eax
test edx, edx
jne 0x47dfb0
mov ecx, dword [edi + 8]
test ecx, ecx
je case.0x47ad4a.8
mov eax, dword [ecx + 0x210]
mov dword [0x59325c], eax
mov eax, dword [ecx + 0x214]
mov dword [0x593250], eax
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
mov dword [ebp - 0x440], edx
test edx, edx
je case.0x47ad4a.8
nop dword [eax + eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x47e100
mov eax, dword [esi + 5]
cmp dword [edx + 0x210], eax
jle 0x47e0df
movq xmm0, qword [edx + 0x114]
sub esp, 0xc
mov eax, dword [edx + 0x11c]
mov ecx, esp
movss xmm2, dword [0x56aa50]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edx + 0x180]
mov ecx, dword [edi + ecx*4 + 0x4f0]
call fcn.00468f00
mov eax, dword [ebp - 0x440]
mov ecx, dword [eax + 0x180]
mov ecx, dword [edi + ecx*4 + 0x4f0]
call fcn.00468c30
mov eax, dword [esi + 5]
mov edx, dword [ebp - 0x440]
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.0044f280
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov edx, eax
mov dword [ebp - 0x440], eax
test edx, edx
jne 0x47e070
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov ecx, eax
mov dword [ebp - 0x438], ecx
test ecx, ecx
je case.0x47ad4a.8
movss xmm1, dword [0x56a820]
nop dword [eax]
mov eax, dword [esi + 1]
cmp eax, 0xffffffff
je 0x47e180
cmp dword [ecx + 0x178], eax
jne 0x47e177
movsx eax, byte [esi + 9]
movaps xmm0, xmmword [0x56ab80]
mov dword [ecx + 0x254], eax
mov dword [ecx + 0x258], 0
movups xmmword [ecx + 0x25c], xmm0
jmp 0x47e23c
cmp eax, 0xffffffff
jne 0x47e244
mov eax, dword [ecx + 0x17c]
cmp eax, dword [esi + 5]
jne 0x47e244
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 + 0x55d6a0]
movzx eax, byte [ecx + ecx*2 + 0x55d6a1]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + ecx*2 + 0x55d6a2]
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 - 0x46c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, dl
shr edx, 0x18
mulss xmm0, xmm1
movss dword [ebp - 0x468], xmm0
movd xmm0, eax
mov eax, dword [ebp - 0x438]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x464], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x460], xmm0
movups xmm0, xmmword [ebp - 0x46c]
movups xmmword [eax + 0x25c], xmm0
mov ecx, dword [edi + 0x18]
call fcn.0044f280
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
movss xmm1, dword [0x56a820]
mov ecx, eax
mov dword [ebp - 0x438], eax
test ecx, ecx
jne 0x47e140
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
test edx, edx
je case.0x47ad4a.8
nop dword [eax + eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x47e2a7
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.0044f280
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov edx, eax
test edx, edx
jne 0x47e280
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
test edx, edx
je case.0x47ad4a.8
nop dword [eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x47e2ec
mov al, byte [esi + 5]
mov byte [edx + 0x18e], al
mov ecx, dword [edi + 0x18]
call fcn.0044f280
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov edx, eax
test edx, edx
jne 0x47e2d0
jmp case.0x47ad4a.8
mov dword [edi + 0x2a4], 0
mov dword [0x593298], 1
jmp case.0x47ad4a.8
cmp byte [esi + 0xe], 1
mov dword [ebp - 0x43c], 0
jne 0x47e3be
lea ecx, [ebp - 0x430]
call fcn.004537b0
movzx eax, byte [esi + 9]
mov ecx, dword [edi + 0x158]
push eax
call fcn.004976d0
movzx eax, byte [esi + 0xa]
mov ecx, dword [edi + 0x158]
push eax
movss dword [ebp - 0x430], xmm0
call fcn.004977e0
movss xmm1, dword [ebp - 0x430]
movaps xmm2, xmm0
mov ecx, edi
movss dword [ebp - 0x428], xmm0
call fcn.00481b70
mov eax, dword [ebp - 0x428]
sub esp, 0xc
movss xmm2, dword [0x56aa50]
mov ecx, esp
movss dword [ebp - 0x42c], xmm0
movq xmm0, qword [ebp - 0x430]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x584]
call fcn.00468f00
mov ecx, dword [edi + 0x584]
call fcn.00468c30
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov dword [ebp - 0x444], eax
test eax, eax
je 0x47e421
xor ecx, ecx
test ecx, ecx
jne 0x47e421
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
je 0x47e3eb
cmp ecx, dword [esi + 1]
je 0x47e3fc
cmp ecx, 0xffffffff
jne 0x47e409
mov eax, dword [eax + 0x17c]
cmp eax, dword [esi + 5]
jne 0x47e409
mov eax, dword [ebp - 0x444]
mov ecx, 1
mov dword [ebp - 0x43c], ecx
jmp 0x47e41d
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov ecx, dword [ebp - 0x43c]
mov dword [ebp - 0x444], eax
test eax, eax
jne 0x47e3d2
push 0x4ec
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
push 0x55ef30
push 0
mov ecx, eax
mov dword [ebp - 4], 0x12
call fcn.00483940
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x440], eax
call fcn.0044f2f0
mov ecx, dword [ebp - 0x440]
push 0x55a882
mov dword [ecx + 0x160], 0xa
add ecx, 0x1b0
push ecx
call fcn.00483910
add esp, 8
call dword [sym.imp.WINMM.dll_timeGetTime]
movsx ecx, word [esi + 0xf]
mov edx, dword [ebp - 0x440]
imul ecx, ecx, 0x3e8
add eax, ecx
mov dword [edx + 0x238], eax
xor eax, eax
cmp ax, word [esi + 0xf]
jne 0x47e4af
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 [0x56a820]
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 - 0x46c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, cl
shr ecx, 0x18
cmp dword [ebp - 0x43c], 0
mulss xmm0, xmm1
movss dword [ebp - 0x468], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x464], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x460], xmm0
movups xmm0, xmmword [ebp - 0x46c]
movups xmmword [edx + 0x224], xmm0
movzx ecx, byte [esi + 9]
mov dword [edx + 0x164], ecx
movzx eax, byte [esi + 0xa]
mov esi, dword [ebp - 0x440]
mov dword [esi + 0x168], eax
je 0x47e5d1
mov eax, dword [ebp - 0x444]
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.0x47ad4a.8
cmp dword [0x5923c0], 4
push ecx
jne 0x47e609
mov ecx, dword [edi + 0x168]
call fcn.004c3c20
addss xmm0, dword [0x56a9e8]
push dword [esi + 0x168]
movss dword [esi + 0x114], xmm0
mov ecx, dword [edi + 0x168]
call fcn.004c3d00
jmp 0x47e635
mov ecx, dword [edi + 0x158]
call fcn.004976d0
addss xmm0, dword [0x56a9e8]
push dword [esi + 0x168]
movss dword [esi + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.004977e0
movss xmm1, dword [esi + 0x114]
movaps xmm2, xmm0
addss xmm2, dword [0x56a9e8]
mov ecx, edi
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 0
movss dword [esi + 0x11c], xmm2
call fcn.00481b70
addss xmm0, dword [0x56a8e8]
movss dword [esi + 0x118], xmm0
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov dword [ebp - 0x438], eax
test eax, eax
je case.0x47ad4a.8
nop word [eax + eax]
mov eax, dword [eax + 0x178]
cmp eax, dword [esi + 1]
jne 0x47e783
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edx, dword [ebp - 0x438]
movss xmm1, dword [0x56a820]
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 - 0x46c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, cl
shr ecx, 0x18
mulss xmm0, xmm1
movss dword [ebp - 0x468], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x464], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x460], xmm0
movups xmm0, xmmword [ebp - 0x46c]
movups xmmword [edx + 0x240], xmm0
cmp byte [esi + 5], 0
jne 0x47e77b
cmp byte [esi + 6], 0
jne 0x47e77b
cmp byte [esi + 7], 0
jne 0x47e77b
mov dword [edx + 0x23c], 0xffffffff
mov ecx, dword [edi + 0x18]
call fcn.0044f280
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov dword [ebp - 0x438], eax
test eax, eax
jne 0x47e6a0
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
mov dword [ebp - 0x438], edx
test edx, edx
je case.0x47ad4a.8
nop word [eax + eax]
mov ecx, dword [edx + 0x178]
cmp ecx, dword [esi + 1]
jne 0x47e812
movzx eax, byte [esi + 8]
imul ecx, eax, 0xd0
push esi
add ecx, 0x34c
add ecx, edx
call fcn.00484310
cmp byte [esi + 0xd], 0
jne 0x47e80a
mov eax, dword [ebp - 0x438]
mov ecx, dword [edi + 8]
mov eax, dword [eax + 0x178]
cmp eax, dword [ecx + 0x178]
jne 0x47e80a
mov dword [edi + 0x294], 1
mov ecx, dword [edi + 0x18]
call fcn.0044f280
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov edx, eax
mov dword [ebp - 0x438], eax
test edx, edx
jne 0x47e7c0
jmp case.0x47ad4a.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x444], eax
mov dword [ebp - 0x434], eax
call fcn.0044f260
mov ecx, eax
test ecx, ecx
je case.0x47ad4a.8
nop dword [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x47e887
cmp eax, dword [esi + 1]
jne 0x47e89f
movzx eax, byte [esi + 9]
imul eax, eax, 0xd0
cmp dword [eax + ecx + 0x34c], 0
je 0x47e89f
mov dword [eax + ecx + 0x38c], 1
mov dword [ebp - 0x434], ecx
jmp 0x47e89f
mov eax, dword [ecx + 0x17c]
mov edx, dword [ebp - 0x444]
cmp eax, dword [esi + 5]
cmove edx, ecx
mov dword [ebp - 0x444], edx
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov ecx, eax
test ecx, ecx
jne 0x47e850
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je case.0x47ad4a.8
mov eax, dword [ebp - 0x444]
test eax, eax
je case.0x47ad4a.8
test byte [0x59329c], 1
je 0x47e913
push dword [esi + 0xb]
add eax, 0x1b0
add ecx, 0x354
push eax
movzx eax, byte [esi + 9]
imul eax, eax, 0xd0
add eax, ecx
push eax
lea eax, [ebp - 0x418]
push str._s_breathes_on_the__s_for__d_damage.
push eax
call fcn.0044ed80
add esp, 0x14
lea ecx, [ebp - 0x418]
call fcn.0049dcf0
mov ecx, dword [ebp - 0x434]
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.00493180
mov ecx, dword [edi + 4]
mov esi, eax
mov eax, dword [ebp - 0x444]
push eax
push dword [eax + 0x170]
call fcn.00493180
movss xmm1, dword [esi + 0x10c]
sub esp, 8
movss xmm0, dword [esi + 0x108]
movss xmm3, dword [eax + 0x10c]
movss xmm2, dword [eax + 0x108]
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0044dd60
mov edx, dword [ebp - 0x43c]
add esp, 8
movss dword [esi + 0x118], xmm0
mov esi, dword [ebp - 0x434]
movzx eax, byte [edx + 9]
imul ecx, eax, 0xd0
mov eax, dword [ebp - 0x444]
movq xmm0, qword [eax + 0x114]
movq qword [ecx + esi + 0x370], xmm0
mov eax, dword [eax + 0x11c]
mov dword [ecx + esi + 0x378], eax
movzx eax, byte [edx + 9]
imul eax, eax, 0xd0
movss xmm0, dword [eax + esi + 0x374]
addss xmm0, dword [0x56a8bc]
movss dword [eax + esi + 0x374], xmm0
movzx eax, byte [edx + 9]
movzx ecx, byte [edx + 0xa]
imul eax, eax, 0xd0
mov dword [eax + esi + 0x37c], ecx
jmp case.0x47ad4a.8
mov eax, dword [esi + 1]
mov dword [0x59329c], eax
jmp case.0x47ad4a.8
push 0x14
call fcn.004c9401
add esp, 4
mov dword [ebp - 0x438], eax
push 0x46
mov ecx, eax
mov dword [ebp - 4], 0x13
call fcn.00446d90
push dword [ebx + 0xc]
mov dword [ebp - 0x440], eax
push esi
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, esi
call fcn.00447410
push 0
mov ecx, esi
call fcn.0043e670
lea eax, [ebp - 0x46d]
mov ecx, esi
push eax
call fcn.00446dd0
lea eax, [ebp - 0x47c]
mov ecx, esi
push eax
call fcn.00446ec0
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov dword [ebp - 0x438], eax
test eax, eax
je 0x47eaca
mov ecx, dword [eax + 0x178]
cmp ecx, dword [ebp - 0x47c]
jne 0x47eab2
xor edi, edi
mov ecx, dword [ebp - 0x440]
lea esi, [eax + 0x1d0]
add esi, edi
push esi
call fcn.00446e00
cmp byte [esi], 0
mov eax, 0x3e8
cmove edi, eax
mov eax, dword [ebp - 0x438]
inc edi
cmp edi, 0x41
jl 0x47ea81
mov edi, dword [ebp - 0x448]
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov dword [ebp - 0x438], eax
test eax, eax
jne 0x47ea71
mov esi, dword [ebp - 0x440]
test esi, esi
je case.0x47ad4a.8
push 1
mov ecx, esi
call fcn.0043eed0
jmp case.0x47ad4a.8
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x178]
cmp eax, dword [esi + 1]
jne case.0x47ad4a.8
mov dword [edi + 0x284], 1
jmp case.0x47ad4a.8
lea ecx, [ebp - 0x424]
call fcn.004537b0
movzx eax, byte [esi + 5]
mov ecx, edi
movd xmm1, eax
movzx eax, byte [esi + 6]
cvtdq2ps xmm1, xmm1
movd xmm2, eax
mulss xmm1, dword [0x56aa0c]
cvtdq2ps xmm2, xmm2
addss xmm1, dword [0x56a9e8]
mulss xmm2, dword [0x56aa0c]
addss xmm2, dword [0x56a9e8]
movss dword [ebp - 0x424], xmm1
movss dword [ebp - 0x41c], xmm2
call fcn.00481b70
cmp dword [esi + 1], 0
addss xmm0, dword [0x56a8a4]
movss dword [ebp - 0x420], xmm0
je 0x47ec49
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov ecx, eax
test ecx, ecx
je 0x47ec49
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x47ebd3
cmp eax, dword [esi + 1]
jne 0x47ebd3
movq xmm0, qword [ecx + 0x114]
movq qword [ebp - 0x424], xmm0
movss xmm0, dword [ebp - 0x420]
addss xmm0, dword [0x56a8b4]
mov eax, dword [ecx + 0x11c]
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x41c], eax
movss dword [ebp - 0x420], xmm0
call fcn.0044f280
mov ecx, eax
cmp dword [ecx + 0x160], 0xc
jne 0x47ec37
movzx eax, byte [esi + 5]
cmp dword [ecx + 0x164], eax
jne 0x47ec37
movzx eax, byte [esi + 6]
cmp dword [ecx + 0x168], eax
jne 0x47ec37
movq xmm0, qword [ecx + 0x114]
movq qword [ebp - 0x424], xmm0
mov eax, dword [ecx + 0x11c]
mov ecx, edi
movss xmm1, dword [ebp - 0x424]
mov dword [ebp - 0x41c], eax
movss xmm2, dword [ebp - 0x41c]
call fcn.00481b70
addss xmm0, dword [0x56a8a4]
movss dword [ebp - 0x420], xmm0
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov ecx, eax
test ecx, ecx
jne 0x47eb85
movzx eax, byte [esi + 6]
mov ecx, dword [edi + 8]
movd xmm3, eax
movzx eax, byte [esi + 5]
movd xmm1, dword [ecx + 0x168]
movd xmm0, dword [ecx + 0x164]
cvtdq2ps xmm3, xmm3
movd xmm2, eax
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
call fcn.0044dc10
cmp byte [esi + 7], 0
movss dword [ebp - 0x440], xmm0
mov dword [ebp - 0x43c], 0
jne 0x47eca5
cmp byte [esi + 8], 0
jne 0x47eca5
cmp byte [esi + 9], 0
je 0x47ed28
movss xmm1, dword [0x56aa14]
mov eax, 1
comiss xmm1, xmm0
mov dword [ebp - 0x43c], eax
jbe 0x47ee25
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x5923bc]
call fcn.004ba7b0
sub esp, 0x10
mov ecx, dword [0x5923bc]
mov eax, esp
push 0x32
mov dword [eax], 0x3f800000
mov dword [eax + 4], 0x3f800000
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0x3f1b9b9c
movss xmm2, dword [esi + 0xf]
divss xmm2, dword [0x56aa70]
call fcn.004ba810
movss xmm0, dword [ebp - 0x440]
movss xmm1, dword [0x56aa14]
comiss xmm1, xmm0
jbe 0x47ee1f
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x592384]
call fcn.004bb7a0
movzx edx, byte [esi + 7]
sub esp, 0x10
movzx eax, byte [esi + 8]
or edx, 0xffff9b00
movss xmm1, dword [0x56a820]
mov ecx, esp
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
push 0x32
movd xmm0, eax
mov eax, edx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
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
movss xmm2, dword [esi + 0xf]
divss xmm2, dword [0x56aa38]
mov ecx, dword [0x592384]
call fcn.004bb800
movss xmm1, dword [ebp - 0x440]
addss xmm1, dword [0x56a8e8]
movss xmm0, dword [esi + 0xf]
divss xmm0, xmm1
movss dword [0x5923c4], xmm0
movss xmm0, dword [ebp - 0x440]
mov eax, dword [ebp - 0x43c]
movss xmm1, dword [esi + 0xf]
comiss xmm1, dword [0x56aac4]
jbe 0x47eeba
test eax, eax
je 0x47eeba
cmp dword [edi + 8], 0
je 0x47ee82
comiss xmm0, dword [0x56aa0c]
jbe 0x47ee82
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x56aa50]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x5a0]
call fcn.00468f00
mov ecx, dword [edi + 0x5a0]
jmp 0x47f003
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x56aa50]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x59c]
call fcn.00468f00
mov ecx, dword [edi + 0x59c]
jmp 0x47f003
comiss xmm1, dword [0x56aa70]
jbe 0x47ef4a
test eax, eax
je 0x47ef4a
cmp dword [edi + 8], 0
je 0x47ef12
comiss xmm0, dword [0x56a9f8]
jbe 0x47ef12
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x56aa50]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x598]
call fcn.00468f00
mov ecx, dword [edi + 0x598]
jmp 0x47f003
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x56aa50]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x594]
call fcn.00468f00
mov ecx, dword [edi + 0x594]
jmp 0x47f003
comiss xmm1, dword [0x56aa0c]
jbe 0x47efd0
test eax, eax
je 0x47efd0
cmp dword [edi + 8], 0
je 0x47ef9b
comiss xmm0, dword [0x56a9e0]
jbe 0x47ef9b
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x56aa50]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x590]
call fcn.00468f00
mov ecx, dword [edi + 0x590]
jmp 0x47f003
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x56aa50]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x58c]
call fcn.00468f00
mov ecx, dword [edi + 0x58c]
jmp 0x47f003
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x56aa50]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x588]
call fcn.00468f00
mov ecx, dword [edi + 0x588]
call fcn.00468c30
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov ecx, eax
mov dword [ebp - 0x43c], ecx
test ecx, ecx
je case.0x47ad4a.8
cmp dword [ecx + 0x160], 0xc
jne 0x47f08e
movzx eax, byte [esi + 5]
cmp dword [ecx + 0x164], eax
jne 0x47f08e
movzx eax, byte [esi + 6]
cmp dword [ecx + 0x168], eax
jne 0x47f08e
push ecx
mov ecx, dword [edi + 0x18]
call fcn.0044f5c0
mov eax, dword [ebp - 0x43c]
mov ecx, dword [edi + 0x158]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.00497bd0
mov eax, dword [ebp - 0x43c]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.00493190
mov ecx, dword [ebp - 0x43c]
push 1
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov ecx, eax
mov dword [ebp - 0x43c], eax
test ecx, ecx
jne 0x47f020
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004c90dc
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8