Function at 0x47adc0
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 0x53d845
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x478
mov eax, dword [0x57bc74]
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 [0x593320]
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.0x47ae3a.8
movzx eax, byte [eax + 0x47f250]
jmp dword [eax*4 + 0x47f1b8]
mov ecx, dword [edi + 0x18]
xor eax, eax
movss xmm2, dword [0x56ac54]
mov dword [ebp - 0x448], eax
cmp dword [ecx + 0xc], eax
je 0x47b2eb
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 0x47b2eb
nop word [eax + eax]
mov edx, dword [ecx + 0x178]
cmp edx, 0xffffffff
jle 0x47b2bb
mov eax, dword [edi + 8]
cmp edx, dword [eax + 0x178]
jne 0x47aed2
cmp dword [eax + 0x34c], 0
je 0x47aeb6
cmp byte [eax + 0x354], 0
jne 0x47aeb6
mov dword [edi + 0x294], 1
cmp dword [eax + 0x41c], 0
je 0x47aed2
cmp byte [eax + 0x424], 0
jne 0x47aed2
mov dword [edi + 0x294], 1
mov eax, dword [ecx + 0x178]
cmp eax, dword [esi + 1]
jne 0x47b2bb
cmp dword [ecx + 0x16c], 0xffffffff
je 0x47af94
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 0x47af2e
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
test edx, edx
je 0x47af22
cmp dword [edx + 4], esi
je 0x47af86
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
test edx, edx
jne 0x47af13
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 0x47b015
mov edx, dword [ebp - 0x440]
mov dword [edx + 8], eax
mov eax, dword [eax + 8]
jmp 0x47af30
push ecx
mov ecx, dword [edi + 4]
call fcn.00493110
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 0x47affb
mov eax, dword [eax + 4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
test eax, eax
je 0x47afef
nop
mov esi, dword [ebp - 0x438]
cmp dword [eax + 4], esi
mov esi, dword [ebp - 0x43c]
je 0x47b094
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + 8]
test eax, eax
jne 0x47afd0
mov eax, dword [ebp - 0x440]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ecx
xor eax, eax
movss xmm2, dword [0x56ac54]
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 0x47b0a5
inc ecx
mov dword [ebp - 0x438], ecx
cmp ecx, 0x1c
jl 0x47b080
jmp 0x47b0aa
mov eax, dword [ebp - 0x440]
mov dword [eax + 8], ecx
mov eax, dword [ecx + 8]
jmp 0x47affd
cmp ecx, 0xffffffff
jne 0x47b10b
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 0x47b1cd
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.00497af0
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 [0x56ac54]
addss xmm0, dword [ebp - 0x44c]
movss dword [eax + 0x110], xmm0
movd xmm0, dword [edx + 0x168]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56ac54]
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 0x47b2a1
cmp dword [0x592450], 0
jne 0x47b1ff
cmp dword [edi + 0x210], 0xffffffff
jne 0x47b2a1
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.004972d0
mov ecx, dword [ebp - 0x434]
push dword [ecx + 0x168]
push dword [ecx + 0x164]
mov ecx, edi
call fcn.00482840
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x434]
mov dword [ebp - 0x438], eax
cmp dword [eax + 0xc], 0
je 0x47b2a1
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x47b295
cmp ecx, edx
je 0x47b3fb
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x47b283
mov ecx, dword [ebp - 0x438]
mov eax, dword [ecx + 4]
mov dword [ecx + 8], eax
cmp byte [esi], 0x34
jne 0x47b2b3
movzx eax, word [esi + 7]
mov ecx, edi
push eax
push edx
call fcn.00481cb0
movss xmm2, dword [0x56ac54]
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je 0x47b2de
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 0x47ae80
cmp dword [ebp - 0x448], 0
jne case.0x47ae3a.8
push 0x4ec
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
push 0x55e9cc
push 0
mov ecx, eax
mov dword [ebp - 4], 0
call fcn.00483a30
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x434], eax
call fcn.0044f2f0
push 0x10c
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
mov ecx, eax
mov dword [ebp - 4], 1
call fcn.004709b0
mov ecx, dword [ebp - 0x434]
mov dword [ebp - 4], 0xffffffff
push ecx
mov dword [ecx + 0x194], eax
mov ecx, dword [edi + 4]
call fcn.00493110
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 0x47b406
inc edx
mov dword [ebp - 0x448], edx
cmp edx, 0x1c
jl 0x47b3e7
jmp 0x47b40b
mov ecx, dword [ebp - 0x438]
jmp 0x47b29e
cmp edx, 0xffffffff
jne 0x47b444
mov eax, dword [ebp - 0x434]
movd xmm0, dword [eax + 0x164]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56ac54]
movss dword [eax + 0x114], xmm0
movd xmm0, dword [eax + 0x168]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56ac54]
jmp 0x47b4ea
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.00497af0
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 [0x56ac54]
addss xmm0, dword [ebp - 0x44c]
movss dword [eax + 0x114], xmm0
movd xmm0, dword [eax + 0x168]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56ac54]
addss xmm0, dword [ebp - 0x450]
movss dword [eax + 0x11c], xmm0
call fcn.00514eba
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 [0x56ac04]
mov dword [eax + 0x10c], 0
divss xmm0, dword [0x56ad20]
addss xmm0, xmm1
movss xmm1, dword [eax + 0x114]
movss dword [eax + 0x108], xmm0
call fcn.00481c60
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 0x47b7e2
cmp dword [0x592450], 0
jne 0x47b5f9
cmp dword [edi + 0x210], 0xffffffff
jne 0x47b7e2
mov dword [edi + 8], ecx
lea edx, [ebp - 0x488]
mov ecx, dword [0x5922ec]
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.00482be0
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.004972d0
mov eax, dword [ebp - 0x434]
mov ecx, edi
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.00482840
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x438], eax
cmp dword [eax + 0xc], 0
je 0x47b6d4
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
test edx, edx
je 0x47b6c8
mov ecx, dword [ebp - 0x434]
cmp edx, ecx
je 0x47b7fd
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
test edx, edx
jne 0x47b6b6
mov ecx, dword [ebp - 0x438]
mov eax, dword [ecx + 4]
mov dword [ecx + 8], eax
cmp dword [0x592480], 0
jne 0x47b7dc
cmp dword [0x57cd48], 0
mov dword [ebp - 0x428], 0xc3fa0000
mov dword [ebp - 0x42c], 0xc3fa0000
mov dword [ebp - 0x430], 0xc3fa0000
je 0x47b7dc
movq xmm0, qword [ebp - 0x430]
sub esp, 0xc
mov esi, dword [ebp - 0x428]
mov eax, esp
mov ecx, dword [0x592460]
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.004c48e0
movq xmm0, qword [ebp - 0x430]
sub esp, 0xc
mov ecx, dword [0x592464]
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.004c48e0
movq xmm0, qword [ebp - 0x430]
sub esp, 0xc
mov ecx, dword [0x592468]
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.004c48e0
movq xmm0, qword [ebp - 0x430]
sub esp, 0xc
mov ecx, dword [0x59246c]
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.004c48e0
mov esi, dword [ebp - 0x43c]
mov ecx, dword [ebp - 0x434]
cmp byte [esi], 0x34
jne case.0x47ae3a.8
movzx eax, word [esi + 7]
push eax
push ecx
mov ecx, edi
call fcn.00481cb0
jmp case.0x47ae3a.8
mov ecx, dword [ebp - 0x438]
jmp 0x47b6d1
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x47ae3a.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.0x47ae3a.8
nop
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
jle 0x47b912
cmp ecx, dword [esi + 1]
mov ecx, dword [edi + 0x18]
jne 0x47b915
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 0x47b8b1
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 0x47b8e4
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 0x47b8ee
mov dword [ebp - 0x434], 0
mov eax, dword [esi + 1]
cmp eax, dword [edi + 0x208]
jne 0x47b8ff
mov eax, dword [edi + 0xc]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x434]
test eax, eax
jne 0x47b830
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x47ae3a.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 0x47b905
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x47ae3a.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.0x47ae3a.8
nop word [eax + eax]
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
jle 0x47bb72
cmp ecx, dword [esi + 1]
jne 0x47bb72
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 0x47ba54
inc ecx
mov dword [ebp - 0x458], ecx
cmp ecx, 0x1c
jl 0x47ba40
jmp 0x47ba59
cmp ecx, 0xffffffff
jne 0x47ba9a
movzx eax, byte [esi + 7]
mov ecx, dword [ebp - 0x440]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56ac54]
movss dword [ecx + 0x110], xmm0
movzx eax, byte [esi + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56ac54]
movss dword [ecx + 0x114], xmm0
jmp 0x47bb52
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.00497af0
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 [0x56ac54]
addss xmm0, dword [ebp - 0x44c]
movss dword [ecx + 0x110], xmm0
movzx eax, byte [esi + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x56ac54]
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 [0x593318]
cmove ecx, eax
mov dword [0x593318], ecx
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x47ae3a.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 0x47b960
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x47ae3a.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.0x47ae3a.8
nop word [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x47bc7f
cmp eax, dword [esi + 1]
jne 0x47bc7f
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 [0x5922d8]
push dword [esi + 5]
push dword [eax + 0x2a3d8]
call fcn.00471460
lea eax, [esi + 0x1c]
push eax
mov eax, dword [ebp - 0x438]
add eax, 0x1b0
push eax
call fcn.00483a00
mov ecx, dword [edi + 8]
add esp, 8
mov eax, dword [ecx + 0x178]
cmp eax, dword [esi + 1]
jne 0x47bc7f
lea eax, [ecx + 0x1b0]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x40]
mov dword [0x593314], eax
mov al, byte [esi + 0x4c]
mov byte [0x57e904], al
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov ecx, eax
mov dword [ebp - 0x438], eax
test ecx, ecx
jne 0x47bbd0
jmp case.0x47ae3a.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 0x47bfb5
nop dword [eax]
cmp dword [edx + 0x178], 0xffffffff
jne 0x47bf91
mov eax, dword [edx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x47bf91
mov al, byte [esi + 5]
cmp al, 6
je 0x47bebc
cmp al, 0xd
je 0x47bebc
cmp al, 7
je 0x47bebc
cmp al, 0xe
je 0x47bebc
cmp al, 0x17
je 0x47bebc
cmp al, 0x11
je 0x47bebc
cmp al, 0xa
je 0x47bebc
mov ecx, dword [edi + 4]
push edx
push dword [edx + 0x170]
call fcn.00493240
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.00497c90
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.00497c00
mov ecx, dword [edi + 0x158]
mov dword [ebp - 0x438], eax
cmp eax, 0xffffffff
jne 0x47bdfa
mov eax, dword [ebp - 0x434]
push dword [eax + 0x164]
call fcn.00497790
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
movss dword [eax + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.004978a0
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 0x47beb4
push 1
push eax
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.00497c60
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.00497af0
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.00497790
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.004978a0
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 0x47bf52
cmp dword [0x592450], 0
jne 0x47bf52
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.004972d0
mov eax, dword [ebp - 0x434]
mov ecx, edi
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.00482840
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 0x47bf87
cmp byte [esi], 0x19
jne 0x47bf87
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.00484160
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 0x47bcc0
cmp dword [ebp - 0x438], eax
jne case.0x47ae3a.8
push 0x4ec
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
push 0x55e9d4
push 0
mov ecx, eax
mov dword [ebp - 4], 2
call fcn.00483a30
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 0x47c012
movzx eax, byte [esi + 5]
mov dword [edx + 0x160], eax
mov al, byte [esi + 5]
cmp al, 1
jne 0x47c089
movzx eax, word [esi + 8]
mov ecx, edx
push eax
movzx eax, word [esi + 6]
push eax
call fcn.00483e10
mov eax, dword [0x592480]
cmp eax, 1
je 0x47c039
cmp eax, 3
jne 0x47c04b
mov edx, dword [ebp - 0x434]
movzx eax, byte [esi + 0xa]
mov dword [edx + 0x188], eax
jmp 0x47c051
mov edx, dword [ebp - 0x434]
cmp byte [esi], 0x19
jne 0x47c221
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.00484160
jmp 0x47c21b
cmp al, 5
jne 0x47c0bb
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.00483a00
add esp, 0xc
jmp 0x47c21b
cmp al, 0xd
jne 0x47c0c9
push 0x55a9ca
jmp 0x47c20c
cmp al, 6
jne 0x47c0d7
push str.Items
jmp 0x47c20c
cmp al, 7
jne 0x47c14b
lea eax, [edx + 0x1b0]
push 0x55a9cb
push eax
call fcn.00483a00
mov ecx, dword [edi + 0x1c]
add esp, 8
call fcn.0044f260
mov edx, eax
test edx, edx
je 0x47c131
movzx ecx, byte [esi + 0xb]
cmp dword [edx + 0x164], ecx
jne 0x47c123
movzx eax, byte [esi + 0xc]
cmp dword [edx + 0x168], eax
jne 0x47c123
mov dword [edx + 0x160], 1
mov ecx, dword [edi + 0x1c]
call fcn.0044f2a0
mov edx, eax
test edx, edx
jne 0x47c101
movzx eax, byte [esi + 0xc]
mov ecx, dword [edi + 0x158]
push eax
movzx eax, byte [esi + 0xb]
push eax
call fcn.004988d0
jmp 0x47c21b
cmp al, 8
jne 0x47c159
push 0x55a9e3
jmp 0x47c20c
cmp al, 0xc
jne 0x47c167
push 0x55aa1e
jmp 0x47c20c
cmp al, 0xe
jne 0x47c172
push 0x55aa1f
jmp 0x47c17b
cmp al, 0x17
jne 0x47c19f
push 0x55aa63
lea eax, [edx + 0x1b0]
push eax
call fcn.00483a00
mov edx, dword [ebp - 0x434]
add esp, 8
movzx eax, word [esi + 8]
mov dword [edx + 0x184], eax
jmp 0x47c221
cmp al, 3
jne 0x47c1aa
push 0x55e9f8
jmp 0x47c20c
cmp al, 4
jne 0x47c1b5
push str.Town_Mage
jmp 0x47c20c
cmp al, 0x10
jne 0x47c1c0
push str.Witch
jmp 0x47c20c
cmp al, 0x16
jne 0x47c1cb
push str.Mall_Director
jmp 0x47c20c
cmp al, 0x15
jne 0x47c1da
cmp byte [esi], 0x19
jne 0x47c221
lea eax, [esi + 0x15]
push eax
jmp 0x47c20c
cmp word [esi + 8], 1
jne 0x47c207
lea eax, [edx + 0x1b0]
push str.Community_Merchant
push eax
call fcn.00483a00
mov edx, dword [ebp - 0x434]
add esp, 8
mov dword [edx + 0x184], 1
jmp 0x47c221
push str.Merchant
lea eax, [edx + 0x1b0]
push eax
call fcn.00483a00
add esp, 8
mov edx, dword [ebp - 0x434]
mov al, byte [esi + 5]
cmp al, 6
je 0x47c47d
cmp al, 0xd
je 0x47c47d
cmp al, 0xe
je 0x47c47d
cmp al, 0x17
je 0x47c47d
cmp al, 7
je 0x47c47d
mov ecx, dword [edi + 4]
push edx
call fcn.00493110
mov ecx, dword [ebp - 0x434]
push ecx
push eax
mov dword [ecx + 0x170], eax
mov ecx, dword [edi + 4]
call fcn.00493240
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 0x47c295
push 1
jmp 0x47c297
push 0
push edx
push ecx
mov ecx, dword [edi + 0x158]
call fcn.00497c00
mov dword [ebp - 0x440], eax
cmp eax, 0xffffffff
jne 0x47c2ea
mov ecx, dword [ebp - 0x434]
push dword [ecx + 0x164]
mov ecx, dword [edi + 0x158]
call fcn.00497790
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
movss dword [eax + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.004978a0
jmp 0x47c382
mov ecx, dword [edi + 0x158]
push 1
push eax
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.00497c60
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.00497af0
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.00497790
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.004978a0
addss xmm0, dword [ebp - 0x450]
mov ecx, dword [ebp - 0x434]
movss xmm1, dword [0x56ac04]
movss dword [ecx + 0x11c], xmm0
xorps xmm0, xmm0
call fcn.004729f0
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.00481c60
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 0x47c469
mov dword [ecx + 0x128], 0x3f800000
mov ecx, dword [ebp - 0x434]
mov eax, dword [esi + 1]
mov dword [ecx + 0x17c], eax
jmp case.0x47ae3a.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.00497790
addss xmm0, dword [0x56ac30]
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
movss dword [eax + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.004978a0
mov eax, dword [ebp - 0x434]
mov ecx, edi
addss xmm0, dword [0x56ac30]
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.00481c60
mov ecx, dword [ebp - 0x434]
movss dword [ecx + 0x118], xmm0
mov eax, dword [esi + 1]
mov dword [ecx + 0x17c], eax
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov dword [ebp - 0x43c], eax
test eax, eax
je case.0x47ae3a.8
cmp dword [eax + 0x178], 0xffffffff
jne 0x47c5ce
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x47c5ce
mov ecx, dword [edi + 0x18]
push eax
call fcn.0044f5c0
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ecx + 0x160]
cmp eax, 6
je 0x47c5be
cmp eax, 0xa
je 0x47c5be
cmp eax, 0x11
je 0x47c5be
cmp eax, 0xd
je 0x47c5be
cmp eax, 0xe
je 0x47c5be
cmp eax, 0x17
je 0x47c5be
cmp eax, 7
je 0x47c5be
push dword [ecx + 0x16c]
push dword [ecx + 0x168]
push dword [ecx + 0x164]
mov ecx, dword [edi + 0x158]
call fcn.00497c90
mov eax, dword [ebp - 0x43c]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.00493250
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044f260
jmp 0x47c5d6
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov dword [ebp - 0x43c], eax
test eax, eax
jne 0x47c532
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x440], eax
call fcn.0044f260
test eax, eax
je 0x47c641
mov edx, 1
cmp dword [eax + 0x178], 0xffffffff
jne 0x47c623
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 0x47c602
cmp dword [ebp - 0x440], 0
jne case.0x47ae3a.8
push 0x4ec
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
push 0x55ea4c
push 0
mov ecx, eax
mov dword [ebp - 4], 3
call fcn.00483a30
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 0x55aaa1
push ecx
call fcn.00483a00
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.00497790
addss xmm0, dword [0x56ac30]
push dword [esi + 0x168]
movss dword [esi + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.004978a0
movss xmm1, dword [esi + 0x114]
movaps xmm2, xmm0
addss xmm2, dword [0x56ac30]
mov ecx, edi
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 0
movss dword [esi + 0x11c], xmm2
call fcn.00481c60
mov edx, dword [ebp - 0x43c]
movss dword [esi + 0x118], xmm0
movss xmm1, dword [0x56aa68]
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.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
mov dword [ebp - 0x43c], edx
test edx, edx
je case.0x47ae3a.8
nop dword [eax]
nop word [eax + eax]
movzx ecx, byte [esi + 5]
cmp ecx, dword [edx + 0x160]
jne 0x47c8b5
mov eax, dword [edx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x47c8b5
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 [0x56ab44]
movss dword [ebp - 0x464], xmm0
movq xmm0, qword [ebp - 0x468]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x5924a0]
call fcn.004b76e0
movaps xmm0, xmmword [0x56aeb0]
sub esp, 0x10
mov ecx, dword [0x5924a0]
mov eax, esp
push 0x3c
movups xmmword [eax], xmm0
call fcn.004b7730
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 0x47c8c5
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov edx, eax
mov dword [ebp - 0x43c], eax
test edx, edx
jne 0x47c800
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov ecx, eax
mov dword [ebp - 0x43c], ecx
test ecx, ecx
je case.0x47ae3a.8
nop word [eax + eax]
cmp dword [ecx + 0x178], 0xffffffff
jne 0x47ca84
mov eax, dword [ecx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x47ca84
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.00493240
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.00497c90
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.00497c00
mov ecx, dword [edi + 0x158]
mov dword [ebp - 0x438], eax
cmp eax, 0xffffffff
jne 0x47c9b9
movzx eax, byte [esi + 7]
push eax
call fcn.00497790
mov eax, dword [ebp - 0x444]
movss dword [eax + 0x110], xmm0
movzx eax, byte [esi + 8]
mov ecx, dword [edi + 0x158]
push eax
call fcn.004978a0
mov eax, dword [ebp - 0x444]
movss dword [eax + 0x114], xmm0
jmp 0x47ca67
push 1
push eax
mov eax, dword [ebp - 0x43c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.00497c60
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.00497af0
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.00497790
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.004978a0
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 0x47ca84
cmp dword [esi + 9], 1
jne 0x47ca84
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 0x47c8f0
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
test eax, eax
je case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
test eax, eax
jne 0x47cab1
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov ecx, eax
mov dword [ebp - 0x434], ecx
test ecx, ecx
je case.0x47ae3a.8
nop word [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x47cfad
mov edx, dword [esi + 9]
cmp eax, edx
jne 0x47cfad
mov eax, dword [edi + 8]
cmp dword [eax + 0x178], edx
jne 0x47cb0e
mov eax, dword [esi + 5]
mov dword [edi + 0x280], eax
mov ecx, dword [ecx + 0x26c]
test ecx, ecx
je 0x47cb1e
mov eax, dword [ecx]
push 1
call dword [eax]
push 0x174
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
mov ecx, eax
mov dword [ebp - 4], 4
call fcn.00463630
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 0x47ccbc
mov eax, dword [0x5922d8]
push str.dat_staff.ase
push dword [eax + 0x2a3d8]
call fcn.00463810
mov eax, dword [0x5922d8]
mov ecx, dword [ebp - 0x434]
push 0
push str.dat_staff.png
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x26c]
call fcn.00464350
movzx ecx, byte [esi + 0x1c]
movzx eax, byte [esi + 0x1d]
or ecx, 0x3700
movss xmm1, dword [0x56aa68]
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 0x47cdc4
cmp al, 1
jne 0x47cce1
mov eax, dword [0x5922d8]
push str.datkatana.ase
push dword [eax + 0x2a3d8]
call fcn.00463810
push 0
push str.datkatana.png
jmp 0x47cda8
cmp al, 4
jne 0x47cd06
mov eax, dword [0x5922d8]
push str.datclaws.ASE
push dword [eax + 0x2a3d8]
call fcn.00463810
push 0
push str.datclaws.png
jmp 0x47cda8
cmp al, 3
jne 0x47cd2b
mov eax, dword [0x5922d8]
push str.datchaosBlade.ASE
push dword [eax + 0x2a3d8]
call fcn.00463810
push 0
push str.datchaosBlade.png
jmp 0x47cda8
cmp al, 5
jne 0x47cd4d
mov eax, dword [0x5922d8]
push str.dat_bladeStaff.ASE
push dword [eax + 0x2a3d8]
call fcn.00463810
push 0
push str.dat_bladeStaff.png
jmp 0x47cda8
cmp al, 2
jne 0x47cd6f
mov eax, dword [0x5922d8]
push str.datmace.ASE
push dword [eax + 0x2a3d8]
call fcn.00463810
push 0
push str.datmace.png
jmp 0x47cda8
cmp al, 5
mov eax, dword [0x5922d8]
jbe 0x47cd91
push str.dat_scythe.ASE
push dword [eax + 0x2a3d8]
call fcn.00463810
push 0
push str.dat_scythe.png
jmp 0x47cda8
push str.dat_blade.ase
push dword [eax + 0x2a3d8]
call fcn.00463810
push 0
push str.dat_bladeMetal.png
mov eax, dword [0x5922d8]
push dword [eax + 0x2a3d8]
mov eax, dword [ebp - 0x434]
mov ecx, dword [eax + 0x26c]
call fcn.00464350
movss xmm2, dword [esi + 1]
mulss xmm2, dword [0x56aa4c]
mov eax, dword [0x5922d8]
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.00464900
mov eax, dword [0x5922d8]
push dword [eax + 0x2a3d8]
mov eax, dword [ebp - 0x434]
mov ecx, dword [eax + 0x26c]
call fcn.004659a0
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.00465900
mov edx, dword [ebp - 0x434]
mov eax, dword [esi + 1]
movaps xmm0, xmmword [0x56af20]
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 [0x56af50]
movups xmmword [edx + 0x2c0], xmm0
movaps xmm0, xmmword [0x56ae60]
movups xmmword [edx + 0x290], xmm0
movaps xmm0, xmmword [0x56aec0]
movups xmmword [edx + 0x2a0], xmm0
movaps xmm0, xmmword [0x56af00]
movups xmmword [edx + 0x2d0], xmm0
movaps xmm0, xmmword [0x56ae90]
movups xmmword [edx + 0x2e0], xmm0
movzx eax, word [esi + 0x19]
add eax, 0xffffffe7
cmp eax, 8
ja case.default.0x47cf3a
jmp dword [eax*4 + 0x47f2a4]
movaps xmm0, xmmword [0x56af50]
movups xmmword [edx + 0x2f0], xmm0
mov dword [edx + 0x300], 1
jmp 0x47cfad
movaps xmm0, xmmword [0x56ae60]
jmp 0x47cf48
movaps xmm0, xmmword [0x56af20]
jmp 0x47cf48
movaps xmm0, xmmword [0x56aec0]
jmp 0x47cf48
movaps xmm0, xmmword [0x56af40]
jmp 0x47cf48
movaps xmm0, xmmword [0x56af30]
jmp 0x47cf48
movaps xmm0, xmmword [0x56aed0]
jmp 0x47cf48
movaps xmm0, xmmword [0x56ae80]
jmp 0x47cf48
movaps xmm0, xmmword [0x56af10]
jmp 0x47cf48
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 0x47cae0
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov ecx, eax
mov dword [ebp - 0x438], ecx
test ecx, ecx
je case.0x47ae3a.8
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x47d02b
mov edx, dword [esi + 1]
cmp eax, edx
jne 0x47d02b
mov eax, dword [edi + 8]
cmp dword [eax + 0x178], edx
jne 0x47d009
mov dword [edi + 0x280], 0
mov edx, dword [ecx + 0x26c]
test edx, edx
je 0x47d021
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 0x47cfe2
jmp case.0x47ae3a.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.0x47ae3a.8
nop word [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x47d0c9
cmp eax, dword [esi + 1]
jne 0x47d0e1
call fcn.00514eba
and eax, reloc.WS2_32.dll_accept
jns 0x47d091
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 0x47d0e1
mov dword [ecx + 0x210], eax
mov eax, dword [esi + 0x11]
mov dword [ecx + 0x214], eax
jmp 0x47d0e1
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 0x47d070
mov ecx, dword [ebp - 0x43c]
test ecx, ecx
je case.0x47ae3a.8
mov eax, dword [ebp - 0x444]
test eax, eax
je case.0x47ae3a.8
mov edx, dword [esi + 9]
cmp edx, 0xffffffff
jne 0x47d14d
test byte [0x59335c], 2
je 0x47d1b6
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 0x47d1a5
cmp dword [esi + 0x15], 0
jne 0x47d17a
test byte [0x59335c], 1
je 0x47d1b6
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 0x47d1a5
test byte [0x59335c], 1
je 0x47d1b6
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.0049ddb0
mov ecx, dword [ebp - 0x43c]
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.00493240
mov esi, eax
mov eax, dword [ebp - 0x444]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.00493240
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.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
test eax, eax
je case.0x47ae3a.8
cmp dword [eax + 0x178], 0xffffffff
jg 0x47d25b
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x47d25b
mov dword [eax + 0x1a4], 1
mov dword [eax + 0x190], 0
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
test eax, eax
jne 0x47d233
jmp case.0x47ae3a.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.0x47ae3a.8
nop dword [eax]
mov edx, dword [ecx + 0x178]
mov eax, dword [ebp - 0x43c]
mov dword [ebp - 0x438], eax
cmp edx, 0xffffffff
jle 0x47d2b5
cmp edx, dword [esi + 5]
mov eax, ecx
cmovne eax, dword [ebp - 0x438]
jmp 0x47d2e2
mov edx, dword [ecx + 0x17c]
cmp edx, dword [esi + 1]
jne 0x47d2dc
mov dword [ecx + 0x19c], 1
mov dword [ecx + 0x190], 0
mov dword [ebp - 0x444], ecx
jmp 0x47d2e8
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 0x47d290
mov ecx, dword [ebp - 0x444]
test ecx, ecx
je case.0x47ae3a.8
mov edx, dword [ebp - 0x43c]
test edx, edx
je case.0x47ae3a.8
mov eax, dword [esi + 9]
cmp eax, 0xffffffff
jne 0x47d359
test byte [0x59335c], 2
je 0x47d3fd
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.0049ddb0
jmp 0x47d3f7
test byte [0x59335c], 1
je 0x47d396
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.0049ddb0
mov edx, dword [ebp - 0x43c]
mov ecx, dword [edi + 8]
cmp edx, ecx
jne 0x47d3bf
mov eax, dword [esi + 9]
sub dword [ecx + 0x210], eax
mov ecx, dword [edi + 8]
mov eax, dword [ecx + 0x210]
mov dword [0x59331c], eax
mov eax, dword [ecx + 0x214]
mov dword [0x593310], eax
movq xmm0, qword [edx + 0x114]
sub esp, 0xc
mov eax, dword [edx + 0x11c]
mov ecx, esp
movss xmm2, dword [0x56ac98]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x578]
call fcn.00469000
mov ecx, dword [edi + 0x578]
call fcn.00468d30
mov ecx, dword [ebp - 0x444]
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.00493240
mov esi, eax
mov eax, dword [ebp - 0x43c]
jmp 0x47d1cd
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x438], eax
call fcn.0044f260
test eax, eax
je case.0x47ae3a.8
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x47d456
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 0x47d431
mov eax, dword [ebp - 0x438]
test eax, eax
je case.0x47ae3a.8
test byte [0x59335c], 2
je case.0x47ae3a.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.0049ddb0
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
test edx, edx
je case.0x47ae3a.8
nop dword [eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x47d4de
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 0x47d4c0
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov dword [ebp - 0x43c], eax
test eax, eax
je case.0x47ae3a.8
nop word [eax + eax]
mov ecx, dword [eax + 0x178]
cmp ecx, dword [esi + 1]
jne 0x47d5a2
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.00497c90
mov eax, dword [ebp - 0x43c]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.00493250
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.0049ddb0
mov ecx, dword [ebp - 0x43c]
cmp dword [edi + 8], ecx
jne 0x47d59c
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 0x47d510
jmp case.0x47ae3a.8
and dword [0x5922cc], 0xfffffffe
call fcn.00492ad0
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 0x47d66a
mov esi, eax
mov ecx, dword [edi + 0x18]
cmp esi, dword [edi + 8]
je 0x47d659
push esi
call fcn.0044f5c0
mov eax, dword [esi + 0x16c]
cmp eax, 0xffffffff
jle 0x47d647
mov ecx, dword [edi + 0x158]
push eax
push dword [esi + 0x168]
push dword [esi + 0x164]
call fcn.00497c90
mov ecx, dword [edi + 4]
push esi
push dword [esi + 0x170]
call fcn.00493250
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.0044f260
jmp 0x47d65e
call fcn.0044f2a0
mov esi, eax
test esi, esi
jne 0x47d607
mov esi, dword [ebp - 0x43c]
call fcn.00492ad0
mov ecx, edi
call fcn.00482be0
call fcn.00492ad0
movsx eax, byte [esi + 2]
mov dword [0x592480], eax
cmp eax, 1
je 0x47df3f
cmp eax, 3
je 0x47df3f
cmp eax, 4
jne 0x47da14
push 0xfffffffffffffffe
lea ecx, [edi + 0x434]
call fcn.00472090
call fcn.00492ad0
mov eax, dword [edi + 0x168]
add esi, 0xf
test eax, eax
je 0x47d6d0
movsx ecx, byte [eax + 0x1c0]
movzx eax, byte [esi]
cmp eax, ecx
je 0x47da0c
push str.delete_realm_ptr
mov ecx, 0x5922c4
call fcn.00446c30
cmp dword [0x5922c4], 0
je 0x47d6f3
mov ecx, dword [edi + 0x168]
call fcn.00446c70
push 0x55ec40
mov ecx, 0x5922c4
call fcn.00446c30
mov ecx, dword [edi + 0x168]
test ecx, ecx
je 0x47d71c
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x168], 0
call fcn.00492ad0
movzx eax, byte [esi]
mov ecx, 0x5922c4
sub eax, 1
je 0x47d970
sub eax, 1
je 0x47d8cc
sub eax, 4
je 0x47d828
push str.new_realm_object_for_spirits_n
call fcn.00446c30
push 0x1d0
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 7
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.004c22c0
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x5922c4
push 0x55ec64
mov dword [edi + 0x168], eax
call fcn.00446c30
mov ecx, dword [edi + 0x168]
push 0x55ec6c
push str.dat_realm_spirits_color.png
call fcn.004c2570
push 0x55eca4
mov ecx, 0x5922c4
call fcn.00446c30
call fcn.00492ad0
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_spirits_height.png
call fcn.004c2dc0
push 0x55ecd0
mov ecx, 0x5922c4
call fcn.00446c30
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x168]
push 0x55ece0
push dword [eax + 0x2a3d8]
call fcn.004c3c70
push str.CreateSpiritStaticPositions___n
mov ecx, 0x5922c4
call fcn.00446c30
call fcn.00492ad0
mov ecx, dword [edi + 0x168]
push 0
call fcn.004c45d0
movzx eax, byte [esi]
jmp 0x47dd21
push str.test_realm_object_n
call fcn.00446c30
push 0x1d0
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xa
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.004c22c0
push str.dat_realm_dead_sky.png
mov dword [ebp - 4], 0xffffffff
mov ecx, eax
push 0x55ee68
mov dword [edi + 0x168], eax
call fcn.004c2570
call fcn.00492ad0
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_test_height.png
call fcn.004c2dc0
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x168]
push str.dat_test_texture.png
push dword [eax + 0x2a3d8]
call fcn.004c3c70
call fcn.00492ad0
mov ecx, dword [edi + 0x168]
push 6
call fcn.004c45d0
movzx eax, byte [esi]
jmp 0x47dd21
push str.new_realm_object_for_dragons_n
call fcn.00446c30
push 0x1d0
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 9
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.004c22c0
push str.dat_realm_dragon_sky.png
mov dword [ebp - 4], 0xffffffff
mov ecx, eax
push 0x55ede4
mov dword [edi + 0x168], eax
call fcn.004c2570
call fcn.00492ad0
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_dragons_height.png
call fcn.004c2dc0
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x168]
push str.dat_realm_dragon_color.png
push dword [eax + 0x2a3d8]
call fcn.004c3c70
call fcn.00492ad0
mov ecx, dword [edi + 0x168]
push 2
call fcn.004c45d0
movzx eax, byte [esi]
jmp 0x47dd21
push str.new_realm_object_for_the_dead_n
call fcn.00446c30
push 0x1d0
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 8
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.004c22c0
push 0x55ed3c
mov dword [ebp - 4], 0xffffffff
mov ecx, eax
push 0x55ed54
mov dword [edi + 0x168], eax
call fcn.004c2570
call fcn.00492ad0
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_dead_height.png
call fcn.004c2dc0
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x168]
push str.dat_realm_dead_color.png
push dword [eax + 0x2a3d8]
call fcn.004c3c70
call fcn.00492ad0
mov ecx, dword [edi + 0x168]
push 1
call fcn.004c45d0
movzx eax, byte [esi]
jmp 0x47dd21
cmp eax, 2
jne 0x47dd45
push 0xfffffffffffffffd
lea ecx, [edi + 0x434]
call fcn.00472090
call fcn.00492ad0
mov eax, dword [edi + 0x16c]
add esi, 0xf
test eax, eax
je 0x47da50
mov dl, byte [esi]
movsx ecx, byte [eax + 0x1c0]
movzx eax, dl
cmp eax, ecx
je 0x47dd1e
push str.delete_labyrinth_ptr
mov ecx, 0x5922c4
call fcn.00446c30
cmp dword [0x5922c4], 0
je 0x47da73
mov ecx, dword [edi + 0x16c]
call fcn.00446c70
push 0x55eec4
mov ecx, 0x5922c4
call fcn.00446c30
mov ecx, dword [edi + 0x16c]
test ecx, ecx
je 0x47da9c
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x16c], 0
call fcn.00492ad0
movzx eax, byte [esi]
mov ecx, 0x5922c4
sub eax, 4
je 0x47dc42
sub eax, 1
je 0x47db7d
push 0x55eec8
call fcn.00446c30
push 0x41d4
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xb
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.004af4d0
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x5922c4
push 0x55eee0
mov dword [edi + 0x16c], eax
call fcn.00446c30
mov ecx, dword [edi + 0x16c]
push 0
push 0x55eee8
call fcn.004af7a0
push 0x55ef00
mov ecx, 0x5922c4
call fcn.00446c30
call fcn.00492ad0
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x16c]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth_height.png
call fcn.004affc0
push 0x55ef28
mov ecx, 0x5922c4
call fcn.00446c30
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x16c]
push 0x55ef38
push dword [eax + 0x2a3d8]
call fcn.004b1620
push 0x55ef50
jmp 0x47dd02
push str.new_labyrinth_object_n
call fcn.00446c30
push 0x41d4
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xd
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.004af4d0
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x5922c4
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.004af7a0
push str.generate___n
mov ecx, 0x5922c4
call fcn.00446c30
call fcn.00492ad0
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x16c]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth3_height.png
call fcn.004affc0
push str.loadTexture___n
mov ecx, 0x5922c4
call fcn.00446c30
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x16c]
push str.datlabyrinth3_floor.png
push dword [eax + 0x2a3d8]
call fcn.004b1620
push str.CreateStaticPositions___n
jmp 0x47dd02
push 0x55ef6c
call fcn.00446c30
push 0x41d4
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xc
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.004af4d0
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x5922c4
push 0x55ef84
mov dword [edi + 0x16c], eax
call fcn.00446c30
mov ecx, dword [edi + 0x16c]
push 0x55ef8c
push 0x55efa8
call fcn.004af7a0
push 0x55efc0
mov ecx, 0x5922c4
call fcn.00446c30
call fcn.00492ad0
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x16c]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth2_height.png
call fcn.004affc0
push 0x55efe8
mov ecx, 0x5922c4
call fcn.00446c30
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x16c]
push str.datlabyrinth2_texture.png
push dword [eax + 0x2a3d8]
call fcn.004b1620
push 0x55f014
mov ecx, 0x5922c4
call fcn.00446c30
call fcn.00492ad0
mov ecx, dword [edi + 0x16c]
call fcn.004b1cf0
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.0x47ae3a.8
test eax, eax
jne case.0x47ae3a.8
mov ecx, dword [edi + 0x158]
mov al, byte [esi + 0xf]
movzx edx, al
cmp edx, dword [ecx + 0x110]
je 0x47df2b
push edx
call fcn.00496720
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x158]
push 0
push 0x100
push 0x100
push dword [eax + 0x2a3d8]
call fcn.00497060
mov eax, dword [0x5922d8]
mov ecx, dword [edi + 0x158]
push str.datgrassfull.png
push dword [eax + 0x2a3d8]
call fcn.00497690
mov ecx, dword [edi + 0x158]
call fcn.00497cc0
mov ecx, dword [0x592460]
test ecx, ecx
je 0x47ddc4
push 1
call fcn.004751f0
mov ecx, dword [0x592464]
test ecx, ecx
je 0x47ddd5
push 1
call fcn.004751f0
mov ecx, dword [0x592468]
test ecx, ecx
je 0x47dde6
push 1
call fcn.004751f0
mov ecx, dword [0x59246c]
test ecx, ecx
je 0x47ddf7
push 1
call fcn.004751f0
push 0x24
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xe
mov edx, dword [0x57cd48]
movss xmm3, dword [0x56aad8]
shl edx, 5
add edx, dword [0x57cd48]
push 0x55f108
lea ecx, [edx*2 + 5]
push ecx
mov ecx, eax
call fcn.004c4760
mov dword [ebp - 4], 0xffffffff
push 0x24
mov dword [0x592460], eax
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xf
mov edx, dword [0x57cd48]
movss xmm3, dword [0x56aae0]
shl edx, 5
add edx, dword [0x57cd48]
push 0x55f120
lea ecx, [edx*2 + 5]
push ecx
mov ecx, eax
call fcn.004c4760
mov dword [ebp - 4], 0xffffffff
push 0x24
mov dword [0x592464], eax
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0x10
mov edx, dword [0x57cd48]
movss xmm3, dword [0x56aaec]
shl edx, 5
add edx, dword [0x57cd48]
push 0x55f138
lea ecx, [edx*2 + 5]
push ecx
mov ecx, eax
call fcn.004c4760
mov dword [ebp - 4], 0xffffffff
push 0x24
mov dword [0x592468], eax
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0x11
mov edx, dword [0x57cd48]
movss xmm3, dword [0x56aaec]
shl edx, 5
add edx, dword [0x57cd48]
push 0x55f150
lea ecx, [edx*2 + 5]
push ecx
mov ecx, eax
call fcn.004c4760
mov dword [0x59246c], eax
mov al, byte [esi + 0xf]
movzx eax, al
mov dword [edi + 0x2a4], eax
mov dword [edi + 0x29c], eax
jmp case.0x47ae3a.8
mov dword [ebp - 0x440], 0
lea ecx, [edi + 0x434]
cmp eax, 3
jne 0x47df67
push 0xfffffffffffffffc
call fcn.00472090
mov dword [ebp - 0x440], 1
jmp 0x47df6e
push 0xfffffffffffffffe
call fcn.00472090
call fcn.00492ad0
mov ecx, dword [edi + 0x164]
test ecx, ecx
jne 0x47df9e
push 0x1c0
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 5
push 0x55ec1c
jmp 0x47dfce
mov eax, dword [esi + 0xb]
cmp eax, dword [0x592474]
je 0x47dfe8
mov eax, dword [ecx]
push 1
call dword [eax]
push 0x1c0
call fcn.004c9551
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.0048dec0
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x164], eax
call fcn.00492ad0
mov eax, dword [esi + 0x10]
lea edx, [ebp - 0x478]
mov ecx, dword [0x5922ec]
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.0x47ae3a.8
mov ecx, dword [edi + 0x164]
test ecx, ecx
je case.0x47ae3a.8
push esi
call fcn.0048ed90
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x164]
test ecx, ecx
je case.0x47ae3a.8
push esi
call fcn.0048ef50
jmp case.0x47ae3a.8
mov eax, dword [esi + 1]
mov dword [edi + 0x424], eax
jmp case.0x47ae3a.8
mov eax, dword [esi + 1]
mov dword [edi + 0x750], eax
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
mov dword [ebp - 0x438], edx
test edx, edx
je 0x47e11a
nop word [eax + eax]
mov ecx, dword [edx + 0x178]
cmp ecx, dword [esi + 1]
jne 0x47e106
mov eax, dword [esi + 5]
cmp dword [edx + 0x210], eax
jle 0x47e0f7
movq xmm0, qword [edx + 0x114]
sub esp, 0xc
mov eax, dword [edx + 0x11c]
mov ecx, esp
movss xmm2, dword [0x56ac98]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x578]
call fcn.00469000
mov ecx, dword [edi + 0x578]
call fcn.00468d30
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 0x47e0a0
mov ecx, dword [edi + 8]
test ecx, ecx
je case.0x47ae3a.8
mov eax, dword [ecx + 0x210]
mov dword [0x59331c], eax
mov eax, dword [ecx + 0x214]
mov dword [0x593310], eax
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
mov dword [ebp - 0x440], edx
test edx, edx
je case.0x47ae3a.8
nop dword [eax + eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x47e1f0
mov eax, dword [esi + 5]
cmp dword [edx + 0x210], eax
jle 0x47e1cf
movq xmm0, qword [edx + 0x114]
sub esp, 0xc
mov eax, dword [edx + 0x11c]
mov ecx, esp
movss xmm2, dword [0x56ac98]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edx + 0x180]
mov ecx, dword [edi + ecx*4 + 0x4f0]
call fcn.00469000
mov eax, dword [ebp - 0x440]
mov ecx, dword [eax + 0x180]
mov ecx, dword [edi + ecx*4 + 0x4f0]
call fcn.00468d30
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 0x47e160
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov ecx, eax
mov dword [ebp - 0x438], ecx
test ecx, ecx
je case.0x47ae3a.8
movss xmm1, dword [0x56aa68]
nop dword [eax]
mov eax, dword [esi + 1]
cmp eax, 0xffffffff
je 0x47e270
cmp dword [ecx + 0x178], eax
jne 0x47e267
movsx eax, byte [esi + 9]
movaps xmm0, xmmword [0x56add0]
mov dword [ecx + 0x254], eax
mov dword [ecx + 0x258], 0
movups xmmword [ecx + 0x25c], xmm0
jmp 0x47e32c
cmp eax, 0xffffffff
jne 0x47e334
mov eax, dword [ecx + 0x17c]
cmp eax, dword [esi + 5]
jne 0x47e334
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 + 0x55d9b0]
movzx eax, byte [ecx + ecx*2 + 0x55d9b1]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + ecx*2 + 0x55d9b2]
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 [0x56aa68]
mov ecx, eax
mov dword [ebp - 0x438], eax
test ecx, ecx
jne 0x47e230
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
test edx, edx
je case.0x47ae3a.8
nop dword [eax + eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x47e397
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 0x47e370
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
test edx, edx
je case.0x47ae3a.8
nop dword [eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x47e3dc
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 0x47e3c0
jmp case.0x47ae3a.8
mov dword [edi + 0x2a4], 0
mov dword [0x593358], 1
jmp case.0x47ae3a.8
cmp byte [esi + 0xe], 1
mov dword [ebp - 0x43c], 0
jne 0x47e4ae
lea ecx, [ebp - 0x430]
call fcn.004537b0
movzx eax, byte [esi + 9]
mov ecx, dword [edi + 0x158]
push eax
call fcn.00497790
movzx eax, byte [esi + 0xa]
mov ecx, dword [edi + 0x158]
push eax
movss dword [ebp - 0x430], xmm0
call fcn.004978a0
movss xmm1, dword [ebp - 0x430]
movaps xmm2, xmm0
mov ecx, edi
movss dword [ebp - 0x428], xmm0
call fcn.00481c60
mov eax, dword [ebp - 0x428]
sub esp, 0xc
movss xmm2, dword [0x56ac98]
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.00469000
mov ecx, dword [edi + 0x584]
call fcn.00468d30
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov dword [ebp - 0x444], eax
test eax, eax
je 0x47e511
xor ecx, ecx
test ecx, ecx
jne 0x47e511
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
je 0x47e4db
cmp ecx, dword [esi + 1]
je 0x47e4ec
cmp ecx, 0xffffffff
jne 0x47e4f9
mov eax, dword [eax + 0x17c]
cmp eax, dword [esi + 5]
jne 0x47e4f9
mov eax, dword [ebp - 0x444]
mov ecx, 1
mov dword [ebp - 0x43c], ecx
jmp 0x47e50d
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov ecx, dword [ebp - 0x43c]
mov dword [ebp - 0x444], eax
test eax, eax
jne 0x47e4c2
push 0x4ec
call fcn.004c9551
add esp, 4
mov dword [ebp - 0x438], eax
push 0x55f168
push 0
mov ecx, eax
mov dword [ebp - 4], 0x12
call fcn.00483a30
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 0x55aaa2
mov dword [ecx + 0x160], 0xa
add ecx, 0x1b0
push ecx
call fcn.00483a00
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 0x47e59f
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 [0x56aa68]
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 0x47e6c1
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.0x47ae3a.8
cmp dword [0x592480], 4
push ecx
jne 0x47e6f9
mov ecx, dword [edi + 0x168]
call fcn.004c3d10
addss xmm0, dword [0x56ac30]
push dword [esi + 0x168]
movss dword [esi + 0x114], xmm0
mov ecx, dword [edi + 0x168]
call fcn.004c3df0
jmp 0x47e725
mov ecx, dword [edi + 0x158]
call fcn.00497790
addss xmm0, dword [0x56ac30]
push dword [esi + 0x168]
movss dword [esi + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.004978a0
movss xmm1, dword [esi + 0x114]
movaps xmm2, xmm0
addss xmm2, dword [0x56ac30]
mov ecx, edi
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 0
movss dword [esi + 0x11c], xmm2
call fcn.00481c60
addss xmm0, dword [0x56ab30]
movss dword [esi + 0x118], xmm0
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov dword [ebp - 0x438], eax
test eax, eax
je case.0x47ae3a.8
nop word [eax + eax]
mov eax, dword [eax + 0x178]
cmp eax, dword [esi + 1]
jne 0x47e873
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edx, dword [ebp - 0x438]
movss xmm1, dword [0x56aa68]
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 0x47e86b
cmp byte [esi + 6], 0
jne 0x47e86b
cmp byte [esi + 7], 0
jne 0x47e86b
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 0x47e790
jmp case.0x47ae3a.8
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov edx, eax
mov dword [ebp - 0x438], edx
test edx, edx
je case.0x47ae3a.8
nop word [eax + eax]
mov ecx, dword [edx + 0x178]
cmp ecx, dword [esi + 1]
jne 0x47e902
movzx eax, byte [esi + 8]
imul ecx, eax, 0xd0
push esi
add ecx, 0x34c
add ecx, edx
call fcn.00484400
cmp byte [esi + 0xd], 0
jne 0x47e8fa
mov eax, dword [ebp - 0x438]
mov ecx, dword [edi + 8]
mov eax, dword [eax + 0x178]
cmp eax, dword [ecx + 0x178]
jne 0x47e8fa
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 0x47e8b0
jmp case.0x47ae3a.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.0x47ae3a.8
nop dword [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x47e977
cmp eax, dword [esi + 1]
jne 0x47e98f
movzx eax, byte [esi + 9]
imul eax, eax, 0xd0
cmp dword [eax + ecx + 0x34c], 0
je 0x47e98f
mov dword [eax + ecx + 0x38c], 1
mov dword [ebp - 0x434], ecx
jmp 0x47e98f
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 0x47e940
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je case.0x47ae3a.8
mov eax, dword [ebp - 0x444]
test eax, eax
je case.0x47ae3a.8
test byte [0x59335c], 1
je 0x47ea03
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.0049ddb0
mov ecx, dword [ebp - 0x434]
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.00493240
mov ecx, dword [edi + 4]
mov esi, eax
mov eax, dword [ebp - 0x444]
push eax
push dword [eax + 0x170]
call fcn.00493240
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 [0x56ab04]
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.0x47ae3a.8
mov eax, dword [esi + 1]
mov dword [0x59335c], eax
jmp case.0x47ae3a.8
push 0x14
call fcn.004c9551
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 0x47ebba
mov ecx, dword [eax + 0x178]
cmp ecx, dword [ebp - 0x47c]
jne 0x47eba2
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 0x47eb71
mov edi, dword [ebp - 0x448]
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov dword [ebp - 0x438], eax
test eax, eax
jne 0x47eb61
mov esi, dword [ebp - 0x440]
test esi, esi
je case.0x47ae3a.8
push 1
mov ecx, esi
call fcn.0043eed0
jmp case.0x47ae3a.8
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x178]
cmp eax, dword [esi + 1]
jne case.0x47ae3a.8
mov dword [edi + 0x284], 1
jmp case.0x47ae3a.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 [0x56ac54]
cvtdq2ps xmm2, xmm2
addss xmm1, dword [0x56ac30]
mulss xmm2, dword [0x56ac54]
addss xmm2, dword [0x56ac30]
movss dword [ebp - 0x424], xmm1
movss dword [ebp - 0x41c], xmm2
call fcn.00481c60
cmp dword [esi + 1], 0
addss xmm0, dword [0x56aaec]
movss dword [ebp - 0x420], xmm0
je 0x47ed39
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov ecx, eax
test ecx, ecx
je 0x47ed39
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x47ecc3
cmp eax, dword [esi + 1]
jne 0x47ecc3
movq xmm0, qword [ecx + 0x114]
movq qword [ebp - 0x424], xmm0
movss xmm0, dword [ebp - 0x420]
addss xmm0, dword [0x56aafc]
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 0x47ed27
movzx eax, byte [esi + 5]
cmp dword [ecx + 0x164], eax
jne 0x47ed27
movzx eax, byte [esi + 6]
cmp dword [ecx + 0x168], eax
jne 0x47ed27
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.00481c60
addss xmm0, dword [0x56aaec]
movss dword [ebp - 0x420], xmm0
mov ecx, dword [edi + 0x18]
call fcn.0044f2a0
mov ecx, eax
test ecx, ecx
jne 0x47ec75
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 0x47ed95
cmp byte [esi + 8], 0
jne 0x47ed95
cmp byte [esi + 9], 0
je 0x47ee18
movss xmm1, dword [0x56ac5c]
mov eax, 1
comiss xmm1, xmm0
mov dword [ebp - 0x43c], eax
jbe 0x47ef15
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 [0x59247c]
call fcn.004ba8c0
sub esp, 0x10
mov ecx, dword [0x59247c]
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 [0x56acb8]
call fcn.004ba920
movss xmm0, dword [ebp - 0x440]
movss xmm1, dword [0x56ac5c]
comiss xmm1, xmm0
jbe 0x47ef0f
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 [0x592444]
call fcn.004bb8b0
movzx edx, byte [esi + 7]
sub esp, 0x10
movzx eax, byte [esi + 8]
or edx, 0xffff9b00
movss xmm1, dword [0x56aa68]
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 [0x56ac80]
mov ecx, dword [0x592444]
call fcn.004bb910
movss xmm1, dword [ebp - 0x440]
addss xmm1, dword [0x56ab30]
movss xmm0, dword [esi + 0xf]
divss xmm0, xmm1
movss dword [0x592484], xmm0
movss xmm0, dword [ebp - 0x440]
mov eax, dword [ebp - 0x43c]
movss xmm1, dword [esi + 0xf]
comiss xmm1, dword [0x56ad0c]
jbe 0x47efaa
test eax, eax
je 0x47efaa
cmp dword [edi + 8], 0
je 0x47ef72
comiss xmm0, dword [0x56ac54]
jbe 0x47ef72
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x56ac98]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x5a0]
call fcn.00469000
mov ecx, dword [edi + 0x5a0]
jmp 0x47f0f3
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x56ac98]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x59c]
call fcn.00469000
mov ecx, dword [edi + 0x59c]
jmp 0x47f0f3
comiss xmm1, dword [0x56acb8]
jbe 0x47f03a
test eax, eax
je 0x47f03a
cmp dword [edi + 8], 0
je 0x47f002
comiss xmm0, dword [0x56ac40]
jbe 0x47f002
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x56ac98]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x598]
call fcn.00469000
mov ecx, dword [edi + 0x598]
jmp 0x47f0f3
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x56ac98]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x594]
call fcn.00469000
mov ecx, dword [edi + 0x594]
jmp 0x47f0f3
comiss xmm1, dword [0x56ac54]
jbe 0x47f0c0
test eax, eax
je 0x47f0c0
cmp dword [edi + 8], 0
je 0x47f08b
comiss xmm0, dword [0x56ac28]
jbe 0x47f08b
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x56ac98]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x590]
call fcn.00469000
mov ecx, dword [edi + 0x590]
jmp 0x47f0f3
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x56ac98]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x58c]
call fcn.00469000
mov ecx, dword [edi + 0x58c]
jmp 0x47f0f3
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x56ac98]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x588]
call fcn.00469000
mov ecx, dword [edi + 0x588]
call fcn.00468d30
mov ecx, dword [edi + 0x18]
call fcn.0044f260
mov ecx, eax
mov dword [ebp - 0x43c], ecx
test ecx, ecx
je case.0x47ae3a.8
cmp dword [ecx + 0x160], 0xc
jne 0x47f17e
movzx eax, byte [esi + 5]
cmp dword [ecx + 0x164], eax
jne 0x47f17e
movzx eax, byte [esi + 6]
cmp dword [ecx + 0x168], eax
jne 0x47f17e
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.00497c90
mov eax, dword [ebp - 0x43c]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.00493250
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 0x47f110
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.004c922c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8