Function at 0x4535d0
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 0x4bb525
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x478
mov eax, dword [0x4eac74]
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 [0x500da8]
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.0x45364a.8
movzx eax, byte [eax + 0x457a60]
jmp dword [eax*4 + 0x4579c8]
mov ecx, dword [edi + 0x18]
xor eax, eax
movss xmm2, dword [0x4e0008]
mov dword [ebp - 0x448], eax
cmp dword [ecx + 0xc], eax
je 0x453afb
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 0x453afb
nop word [eax + eax]
mov edx, dword [ecx + 0x178]
cmp edx, 0xffffffff
jle 0x453acb
mov eax, dword [edi + 8]
cmp edx, dword [eax + 0x178]
jne 0x4536e2
cmp dword [eax + 0x34c], 0
je 0x4536c6
cmp byte [eax + 0x354], 0
jne 0x4536c6
mov dword [edi + 0x294], 1
cmp dword [eax + 0x41c], 0
je 0x4536e2
cmp byte [eax + 0x424], 0
jne 0x4536e2
mov dword [edi + 0x294], 1
mov eax, dword [ecx + 0x178]
cmp eax, dword [esi + 1]
jne 0x453acb
cmp dword [ecx + 0x16c], 0xffffffff
je 0x4537a4
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 0x45373e
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
test edx, edx
je 0x453732
cmp dword [edx + 4], esi
je 0x453796
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
test edx, edx
jne 0x453723
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 0x453825
mov edx, dword [ebp - 0x440]
mov dword [edx + 8], eax
mov eax, dword [eax + 8]
jmp 0x453740
push ecx
mov ecx, dword [edi + 4]
call fcn.0046a630
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 0x45380b
mov eax, dword [eax + 4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
test eax, eax
je 0x4537ff
nop
mov esi, dword [ebp - 0x438]
cmp dword [eax + 4], esi
mov esi, dword [ebp - 0x43c]
je 0x4538a4
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + 8]
test eax, eax
jne 0x4537e0
mov eax, dword [ebp - 0x440]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ecx
xor eax, eax
movss xmm2, dword [0x4e0008]
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 0x4538b5
inc ecx
mov dword [ebp - 0x438], ecx
cmp ecx, 0x1c
jl 0x453890
jmp 0x4538ba
mov eax, dword [ebp - 0x440]
mov dword [eax + 8], ecx
mov eax, dword [ecx + 8]
jmp 0x45380d
cmp ecx, 0xffffffff
jne 0x45391b
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 0x4539dd
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.0046c2c0
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 [0x4e0008]
addss xmm0, dword [ebp - 0x44c]
movss dword [eax + 0x110], xmm0
movd xmm0, dword [edx + 0x168]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4e0008]
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 0x453ab1
cmp dword [0x4ffed8], 0
jne 0x453a0f
cmp dword [edi + 0x210], 0xffffffff
jne 0x453ab1
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.0046bcf0
mov ecx, dword [ebp - 0x434]
push dword [ecx + 0x168]
push dword [ecx + 0x164]
mov ecx, edi
call fcn.0045b040
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x434]
mov dword [ebp - 0x438], eax
cmp dword [eax + 0xc], 0
je 0x453ab1
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x453aa5
cmp ecx, edx
je 0x453c0b
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x453a93
mov ecx, dword [ebp - 0x438]
mov eax, dword [ecx + 4]
mov dword [ecx + 8], eax
cmp byte [esi], 0x34
jne 0x453ac3
movzx eax, word [esi + 7]
mov ecx, edi
push eax
push edx
call fcn.0045a4c0
movss xmm2, dword [0x4e0008]
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je 0x453aee
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 0x453690
cmp dword [ebp - 0x448], 0
jne case.0x45364a.8
push 0x4ec
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
push 0x4d3f20
push 0
mov ecx, eax
mov dword [ebp - 4], 0
call fcn.0045c100
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x434], eax
call fcn.00434c40
push 0x10c
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
mov ecx, eax
mov dword [ebp - 4], 1
call fcn.00449ce0
mov ecx, dword [ebp - 0x434]
mov dword [ebp - 4], 0xffffffff
push ecx
mov dword [ecx + 0x194], eax
mov ecx, dword [edi + 4]
call fcn.0046a630
mov ecx, dword [ebp - 0x434]
push eax
mov dword [ecx + 0x170], eax
mov ecx, dword [edi + 4]
mov ecx, dword [ecx + 4]
call fcn.00434d00
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 0x453c16
inc edx
mov dword [ebp - 0x448], edx
cmp edx, 0x1c
jl 0x453bf7
jmp 0x453c1b
mov ecx, dword [ebp - 0x438]
jmp 0x453aae
cmp edx, 0xffffffff
jne 0x453c54
mov eax, dword [ebp - 0x434]
movd xmm0, dword [eax + 0x164]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4e0008]
movss dword [eax + 0x114], xmm0
movd xmm0, dword [eax + 0x168]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4e0008]
jmp 0x453cfa
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.0046c2c0
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 [0x4e0008]
addss xmm0, dword [ebp - 0x44c]
movss dword [eax + 0x114], xmm0
movd xmm0, dword [eax + 0x168]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4e0008]
addss xmm0, dword [ebp - 0x450]
movss dword [eax + 0x11c], xmm0
call fcn.004a5b0a
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 [0x4dffc0]
mov dword [eax + 0x10c], 0
divss xmm0, dword [0x4e00c4]
addss xmm0, xmm1
movss xmm1, dword [eax + 0x114]
movss dword [eax + 0x108], xmm0
call fcn.0045a470
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 0x453ff2
cmp dword [0x4ffed8], 0
jne 0x453e09
cmp dword [edi + 0x210], 0xffffffff
jne 0x453ff2
mov dword [edi + 8], ecx
lea edx, [ebp - 0x488]
mov ecx, dword [0x4ffd78]
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.0045b3e0
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.0046bcf0
mov eax, dword [ebp - 0x434]
mov ecx, edi
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.0045b040
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x438], eax
cmp dword [eax + 0xc], 0
je 0x453ee4
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
test edx, edx
je 0x453ed8
mov ecx, dword [ebp - 0x434]
cmp edx, ecx
je 0x45400d
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
test edx, edx
jne 0x453ec6
mov ecx, dword [ebp - 0x438]
mov eax, dword [ecx + 4]
mov dword [ecx + 8], eax
cmp dword [0x4fff08], 0
jne 0x453fec
cmp dword [0x4ebd28], 0
mov dword [ebp - 0x428], 0xc3fa0000
mov dword [ebp - 0x42c], 0xc3fa0000
mov dword [ebp - 0x430], 0xc3fa0000
je 0x453fec
movq xmm0, qword [ebp - 0x430]
sub esp, 0xc
mov esi, dword [ebp - 0x428]
mov eax, esp
mov ecx, dword [0x4ffee8]
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.00492c20
movq xmm0, qword [ebp - 0x430]
sub esp, 0xc
mov ecx, dword [0x4ffeec]
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.00492c20
movq xmm0, qword [ebp - 0x430]
sub esp, 0xc
mov ecx, dword [0x4ffef0]
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.00492c20
movq xmm0, qword [ebp - 0x430]
sub esp, 0xc
mov ecx, dword [0x4ffef4]
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.00492c20
mov esi, dword [ebp - 0x43c]
mov ecx, dword [ebp - 0x434]
cmp byte [esi], 0x34
jne case.0x45364a.8
movzx eax, word [esi + 7]
push eax
push ecx
mov ecx, edi
call fcn.0045a4c0
jmp case.0x45364a.8
mov ecx, dword [ebp - 0x438]
jmp 0x453ee1
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x45364a.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.0x45364a.8
nop
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
jle 0x454122
cmp ecx, dword [esi + 1]
mov ecx, dword [edi + 0x18]
jne 0x454125
push eax
call fcn.00434d50
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.00434d00
test eax, eax
je 0x4540c1
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 0x4540f4
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 0x4540fe
mov dword [ebp - 0x434], 0
mov eax, dword [esi + 1]
cmp eax, dword [edi + 0x208]
jne 0x45410f
mov eax, dword [edi + 0xc]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x434]
test eax, eax
jne 0x454040
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x45364a.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 0x454115
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x45364a.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.0x45364a.8
nop word [eax + eax]
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
jle 0x454382
cmp ecx, dword [esi + 1]
jne 0x454382
mov ecx, dword [edi + 4]
push dword [eax + 0x170]
mov ecx, dword [ecx + 4]
call fcn.00434d00
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 0x454264
inc ecx
mov dword [ebp - 0x458], ecx
cmp ecx, 0x1c
jl 0x454250
jmp 0x454269
cmp ecx, 0xffffffff
jne 0x4542aa
movzx eax, byte [esi + 7]
mov ecx, dword [ebp - 0x440]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4e0008]
movss dword [ecx + 0x110], xmm0
movzx eax, byte [esi + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4e0008]
movss dword [ecx + 0x114], xmm0
jmp 0x454362
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.0046c2c0
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 [0x4e0008]
addss xmm0, dword [ebp - 0x44c]
movss dword [ecx + 0x110], xmm0
movzx eax, byte [esi + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4e0008]
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 [0x500da0]
cmove ecx, eax
mov dword [0x500da0], ecx
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x45364a.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 0x454170
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0xc], 0
je case.0x45364a.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.0x45364a.8
nop word [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x45448f
cmp eax, dword [esi + 1]
jne 0x45448f
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 [0x4ffd6c]
push dword [esi + 5]
push dword [eax + 0x2a3d8]
call fcn.0044a790
lea eax, [esi + 0x1c]
push eax
mov eax, dword [ebp - 0x438]
add eax, 0x1b0
push eax
call fcn.0045c0e0
mov ecx, dword [edi + 8]
add esp, 8
mov eax, dword [ecx + 0x178]
cmp eax, dword [esi + 1]
jne 0x45448f
lea eax, [ecx + 0x1b0]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x40]
mov dword [0x500d9c], eax
mov al, byte [esi + 0x4c]
mov byte [0x4ed8e4], al
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov ecx, eax
mov dword [ebp - 0x438], eax
test ecx, ecx
jne 0x4543e0
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x438], eax
call fcn.00434be0
mov edx, eax
mov dword [ebp - 0x434], edx
test edx, edx
je 0x4547c5
nop dword [eax]
cmp dword [edx + 0x178], 0xffffffff
jne 0x4547a1
mov eax, dword [edx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x4547a1
mov al, byte [esi + 5]
cmp al, 6
je 0x4546cc
cmp al, 0xd
je 0x4546cc
cmp al, 7
je 0x4546cc
cmp al, 0xe
je 0x4546cc
cmp al, 0x17
je 0x4546cc
cmp al, 0x11
je 0x4546cc
cmp al, 0xa
je 0x4546cc
mov ecx, dword [edi + 4]
push edx
push dword [edx + 0x170]
call fcn.0046a760
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.0046c460
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.0046c3d0
mov ecx, dword [edi + 0x158]
mov dword [ebp - 0x438], eax
cmp eax, 0xffffffff
jne 0x45460a
mov eax, dword [ebp - 0x434]
push dword [eax + 0x164]
call fcn.0046c0a0
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
movss dword [eax + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.0046c0a0
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 0x4546c4
push 1
push eax
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.0046c430
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.0046c2c0
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.0046c0a0
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.0046c0a0
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 0x454762
cmp dword [0x4ffed8], 0
jne 0x454762
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.0046bcf0
mov eax, dword [ebp - 0x434]
mov ecx, edi
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.0045b040
mov eax, dword [ebp - 0x434]
mov ecx, dword [edi + 0x18]
push eax
call fcn.00434cb0
mov edx, dword [ebp - 0x434]
cmp byte [esi + 5], 1
jne 0x454797
cmp byte [esi], 0x19
jne 0x454797
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.0045c700
mov dword [ebp - 0x438], 1
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov edx, eax
mov dword [ebp - 0x434], eax
test edx, edx
jne 0x4544d0
cmp dword [ebp - 0x438], eax
jne case.0x45364a.8
push 0x4ec
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
push 0x4d3f28
push 0
mov ecx, eax
mov dword [ebp - 4], 2
call fcn.0045c100
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x434], eax
call fcn.00434c40
mov edx, dword [ebp - 0x434]
movzx ecx, byte [esi + 5]
mov dword [edx + 0x160], ecx
cmp ecx, 0x18
jb 0x454822
movzx eax, byte [esi + 5]
mov dword [edx + 0x160], eax
mov al, byte [esi + 5]
cmp al, 1
jne 0x454899
movzx eax, word [esi + 8]
mov ecx, edx
push eax
movzx eax, word [esi + 6]
push eax
call fcn.0045c4d0
mov eax, dword [0x4fff08]
cmp eax, 1
je 0x454849
cmp eax, 3
jne 0x45485b
mov edx, dword [ebp - 0x434]
movzx eax, byte [esi + 0xa]
mov dword [edx + 0x188], eax
jmp 0x454861
mov edx, dword [ebp - 0x434]
cmp byte [esi], 0x19
jne 0x454a31
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.0045c700
jmp 0x454a2b
cmp al, 5
jne 0x4548cb
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.0045c0e0
add esp, 0xc
jmp 0x454a2b
cmp al, 0xd
jne 0x4548d9
push 0x4d095a
jmp 0x454a1c
cmp al, 6
jne 0x4548e7
push str.Items
jmp 0x454a1c
cmp al, 7
jne 0x45495b
lea eax, [edx + 0x1b0]
push 0x4d095b
push eax
call fcn.0045c0e0
mov ecx, dword [edi + 0x1c]
add esp, 8
call fcn.00434be0
mov edx, eax
test edx, edx
je 0x454941
movzx ecx, byte [esi + 0xb]
cmp dword [edx + 0x164], ecx
jne 0x454933
movzx eax, byte [esi + 0xc]
cmp dword [edx + 0x168], eax
jne 0x454933
mov dword [edx + 0x160], 1
mov ecx, dword [edi + 0x1c]
call fcn.00434c20
mov edx, eax
test edx, edx
jne 0x454911
movzx eax, byte [esi + 0xc]
mov ecx, dword [edi + 0x158]
push eax
movzx eax, byte [esi + 0xb]
push eax
call fcn.0046d0a0
jmp 0x454a2b
cmp al, 8
jne 0x454969
push 0x4d0973
jmp 0x454a1c
cmp al, 0xc
jne 0x454977
push 0x4d09ae
jmp 0x454a1c
cmp al, 0xe
jne 0x454982
push 0x4d09af
jmp 0x45498b
cmp al, 0x17
jne 0x4549af
push 0x4d09f3
lea eax, [edx + 0x1b0]
push eax
call fcn.0045c0e0
mov edx, dword [ebp - 0x434]
add esp, 8
movzx eax, word [esi + 8]
mov dword [edx + 0x184], eax
jmp 0x454a31
cmp al, 3
jne 0x4549ba
push 0x4d3f4c
jmp 0x454a1c
cmp al, 4
jne 0x4549c5
push str.Town_Mage
jmp 0x454a1c
cmp al, 0x10
jne 0x4549d0
push str.Witch
jmp 0x454a1c
cmp al, 0x16
jne 0x4549db
push str.Mall_Director
jmp 0x454a1c
cmp al, 0x15
jne 0x4549ea
cmp byte [esi], 0x19
jne 0x454a31
lea eax, [esi + 0x15]
push eax
jmp 0x454a1c
cmp word [esi + 8], 1
jne 0x454a17
lea eax, [edx + 0x1b0]
push str.Community_Merchant
push eax
call fcn.0045c0e0
mov edx, dword [ebp - 0x434]
add esp, 8
mov dword [edx + 0x184], 1
jmp 0x454a31
push str.Merchant
lea eax, [edx + 0x1b0]
push eax
call fcn.0045c0e0
add esp, 8
mov edx, dword [ebp - 0x434]
mov al, byte [esi + 5]
cmp al, 6
je 0x454c8d
cmp al, 0xd
je 0x454c8d
cmp al, 0xe
je 0x454c8d
cmp al, 0x17
je 0x454c8d
cmp al, 7
je 0x454c8d
mov ecx, dword [edi + 4]
push edx
call fcn.0046a630
mov ecx, dword [ebp - 0x434]
push ecx
push eax
mov dword [ecx + 0x170], eax
mov ecx, dword [edi + 4]
call fcn.0046a760
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 0x454aa5
push 1
jmp 0x454aa7
push 0
push edx
push ecx
mov ecx, dword [edi + 0x158]
call fcn.0046c3d0
mov dword [ebp - 0x440], eax
cmp eax, 0xffffffff
jne 0x454afa
mov ecx, dword [ebp - 0x434]
push dword [ecx + 0x164]
mov ecx, dword [edi + 0x158]
call fcn.0046c0a0
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
movss dword [eax + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.0046c0a0
jmp 0x454b92
mov ecx, dword [edi + 0x158]
push 1
push eax
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.0046c430
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.0046c2c0
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.0046c0a0
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.0046c0a0
addss xmm0, dword [ebp - 0x450]
mov ecx, dword [ebp - 0x434]
movss xmm1, dword [0x4dffc0]
movss dword [ecx + 0x11c], xmm0
xorps xmm0, xmm0
call fcn.0044b520
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.0045a470
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 0x454c79
mov dword [ecx + 0x128], 0x3f800000
mov ecx, dword [ebp - 0x434]
mov eax, dword [esi + 1]
mov dword [ecx + 0x17c], eax
jmp case.0x45364a.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.0046c0a0
addss xmm0, dword [0x4dffe8]
mov eax, dword [ebp - 0x434]
push dword [eax + 0x168]
movss dword [eax + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.0046c0a0
mov eax, dword [ebp - 0x434]
mov ecx, edi
addss xmm0, dword [0x4dffe8]
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.0045a470
mov ecx, dword [ebp - 0x434]
movss dword [ecx + 0x118], xmm0
mov eax, dword [esi + 1]
mov dword [ecx + 0x17c], eax
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov dword [ebp - 0x43c], eax
test eax, eax
je case.0x45364a.8
cmp dword [eax + 0x178], 0xffffffff
jne 0x454dde
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x454dde
mov ecx, dword [edi + 0x18]
push eax
call fcn.00434d50
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ecx + 0x160]
cmp eax, 6
je 0x454dce
cmp eax, 0xa
je 0x454dce
cmp eax, 0x11
je 0x454dce
cmp eax, 0xd
je 0x454dce
cmp eax, 0xe
je 0x454dce
cmp eax, 0x17
je 0x454dce
cmp eax, 7
je 0x454dce
push dword [ecx + 0x16c]
push dword [ecx + 0x168]
push dword [ecx + 0x164]
mov ecx, dword [edi + 0x158]
call fcn.0046c460
mov eax, dword [ebp - 0x43c]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.0046a770
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.00434be0
jmp 0x454de6
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov dword [ebp - 0x43c], eax
test eax, eax
jne 0x454d42
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x440], eax
call fcn.00434be0
test eax, eax
je 0x454e51
mov edx, 1
cmp dword [eax + 0x178], 0xffffffff
jne 0x454e33
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.00434c20
mov edx, 1
test eax, eax
jne 0x454e12
cmp dword [ebp - 0x440], 0
jne case.0x45364a.8
push 0x4ec
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
push 0x4d3fa0
push 0
mov ecx, eax
mov dword [ebp - 4], 3
call fcn.0045c100
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x18]
push esi
call fcn.00434c40
lea ecx, [esi + 0x1b0]
mov dword [esi + 0x160], 0x11
push 0x4d0a31
push ecx
call fcn.0045c0e0
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.0046c0a0
addss xmm0, dword [0x4dffe8]
push dword [esi + 0x168]
movss dword [esi + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.0046c0a0
movss xmm1, dword [esi + 0x114]
movaps xmm2, xmm0
addss xmm2, dword [0x4dffe8]
mov ecx, edi
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 0
movss dword [esi + 0x11c], xmm2
call fcn.0045a470
mov edx, dword [ebp - 0x43c]
movss dword [esi + 0x118], xmm0
movss xmm1, dword [0x4dfe28]
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.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov edx, eax
mov dword [ebp - 0x43c], edx
test edx, edx
je case.0x45364a.8
nop dword [eax]
nop word [eax + eax]
movzx ecx, byte [esi + 5]
cmp ecx, dword [edx + 0x160]
jne 0x4550c5
mov eax, dword [edx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x4550c5
mov ecx, dword [edi + 0x18]
push edx
call fcn.00434d50
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 [0x4dff04]
movss dword [ebp - 0x464], xmm0
movq xmm0, qword [ebp - 0x468]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x4fff28]
call fcn.004882c0
movaps xmm0, xmmword [0x4e0200]
sub esp, 0x10
mov ecx, dword [0x4fff28]
mov eax, esp
push 0x3c
movups xmmword [eax], xmm0
call fcn.004882e0
mov ecx, dword [ebp - 0x43c]
push 1
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov edx, eax
mov dword [ebp - 0x43c], edx
jmp 0x4550d5
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov edx, eax
mov dword [ebp - 0x43c], eax
test edx, edx
jne 0x455010
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov ecx, eax
mov dword [ebp - 0x43c], ecx
test ecx, ecx
je case.0x45364a.8
nop word [eax + eax]
cmp dword [ecx + 0x178], 0xffffffff
jne 0x455294
mov eax, dword [ecx + 0x17c]
cmp eax, dword [esi + 1]
jne 0x455294
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.0046a760
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.0046c460
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.0046c3d0
mov ecx, dword [edi + 0x158]
mov dword [ebp - 0x438], eax
cmp eax, 0xffffffff
jne 0x4551c9
movzx eax, byte [esi + 7]
push eax
call fcn.0046c0a0
mov eax, dword [ebp - 0x444]
movss dword [eax + 0x110], xmm0
movzx eax, byte [esi + 8]
mov ecx, dword [edi + 0x158]
push eax
call fcn.0046c0a0
mov eax, dword [ebp - 0x444]
movss dword [eax + 0x114], xmm0
jmp 0x455277
push 1
push eax
mov eax, dword [ebp - 0x43c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.0046c430
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.0046c2c0
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.0046c0a0
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.0046c0a0
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 0x455294
cmp dword [esi + 9], 1
jne 0x455294
mov eax, dword [ebp - 0x43c]
mov eax, dword [eax + 0x17c]
mov dword [edi + 0x210], eax
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov ecx, eax
mov dword [ebp - 0x43c], eax
test ecx, ecx
jne 0x455100
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
test eax, eax
je case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434c20
test eax, eax
jne 0x4552c1
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov ecx, eax
mov dword [ebp - 0x434], ecx
test ecx, ecx
je case.0x45364a.8
nop word [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4557bd
mov edx, dword [esi + 9]
cmp eax, edx
jne 0x4557bd
mov eax, dword [edi + 8]
cmp dword [eax + 0x178], edx
jne 0x45531e
mov eax, dword [esi + 5]
mov dword [edi + 0x280], eax
mov ecx, dword [ecx + 0x26c]
test ecx, ecx
je 0x45532e
mov eax, dword [ecx]
push 1
call dword [eax]
push 0x174
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
mov ecx, eax
mov dword [ebp - 4], 4
call fcn.00441a70
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 0x4554cc
mov eax, dword [0x4ffd6c]
push str.dat_staff.ase
push dword [eax + 0x2a3d8]
call fcn.00441bd0
mov eax, dword [0x4ffd6c]
mov ecx, dword [ebp - 0x434]
push 0
push str.dat_staff.png
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x26c]
call fcn.00442410
movzx ecx, byte [esi + 0x1c]
movzx eax, byte [esi + 0x1d]
or ecx, 0x3700
movss xmm1, dword [0x4dfe28]
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 0x4555d4
cmp al, 1
jne 0x4554f1
mov eax, dword [0x4ffd6c]
push str.datkatana.ase
push dword [eax + 0x2a3d8]
call fcn.00441bd0
push 0
push str.datkatana.png
jmp 0x4555b8
cmp al, 4
jne 0x455516
mov eax, dword [0x4ffd6c]
push str.datclaws.ASE
push dword [eax + 0x2a3d8]
call fcn.00441bd0
push 0
push str.datclaws.png
jmp 0x4555b8
cmp al, 3
jne 0x45553b
mov eax, dword [0x4ffd6c]
push str.datchaosBlade.ASE
push dword [eax + 0x2a3d8]
call fcn.00441bd0
push 0
push str.datchaosBlade.png
jmp 0x4555b8
cmp al, 5
jne 0x45555d
mov eax, dword [0x4ffd6c]
push str.dat_bladeStaff.ASE
push dword [eax + 0x2a3d8]
call fcn.00441bd0
push 0
push str.dat_bladeStaff.png
jmp 0x4555b8
cmp al, 2
jne 0x45557f
mov eax, dword [0x4ffd6c]
push str.datmace.ASE
push dword [eax + 0x2a3d8]
call fcn.00441bd0
push 0
push str.datmace.png
jmp 0x4555b8
cmp al, 5
mov eax, dword [0x4ffd6c]
jbe 0x4555a1
push str.dat_scythe.ASE
push dword [eax + 0x2a3d8]
call fcn.00441bd0
push 0
push str.dat_scythe.png
jmp 0x4555b8
push str.dat_blade.ase
push dword [eax + 0x2a3d8]
call fcn.00441bd0
push 0
push str.dat_bladeMetal.png
mov eax, dword [0x4ffd6c]
push dword [eax + 0x2a3d8]
mov eax, dword [ebp - 0x434]
mov ecx, dword [eax + 0x26c]
call fcn.00442410
movss xmm2, dword [esi + 1]
mulss xmm2, dword [0x4dfe0c]
mov eax, dword [0x4ffd6c]
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.004426f0
mov eax, dword [0x4ffd6c]
push dword [eax + 0x2a3d8]
mov eax, dword [ebp - 0x434]
mov ecx, dword [eax + 0x26c]
call fcn.00442b20
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.00442a80
mov edx, dword [ebp - 0x434]
mov eax, dword [esi + 1]
movaps xmm0, xmmword [0x4e0270]
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 [0x4e02a0]
movups xmmword [edx + 0x2c0], xmm0
movaps xmm0, xmmword [0x4e01b0]
movups xmmword [edx + 0x290], xmm0
movaps xmm0, xmmword [0x4e0210]
movups xmmword [edx + 0x2a0], xmm0
movaps xmm0, xmmword [0x4e0250]
movups xmmword [edx + 0x2d0], xmm0
movaps xmm0, xmmword [0x4e01e0]
movups xmmword [edx + 0x2e0], xmm0
movzx eax, word [esi + 0x19]
add eax, 0xffffffe7
cmp eax, 8
ja case.default.0x45574a
jmp dword [eax*4 + 0x457ab4]
movaps xmm0, xmmword [0x4e02a0]
movups xmmword [edx + 0x2f0], xmm0
mov dword [edx + 0x300], 1
jmp 0x4557bd
movaps xmm0, xmmword [0x4e01b0]
jmp 0x455758
movaps xmm0, xmmword [0x4e0270]
jmp 0x455758
movaps xmm0, xmmword [0x4e0210]
jmp 0x455758
movaps xmm0, xmmword [0x4e0290]
jmp 0x455758
movaps xmm0, xmmword [0x4e0280]
jmp 0x455758
movaps xmm0, xmmword [0x4e0220]
jmp 0x455758
movaps xmm0, xmmword [0x4e01d0]
jmp 0x455758
movaps xmm0, xmmword [0x4e0260]
jmp 0x455758
mov dword [edx + 0x300], 0
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov ecx, eax
mov dword [ebp - 0x434], eax
test ecx, ecx
jne 0x4552f0
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov ecx, eax
mov dword [ebp - 0x438], ecx
test ecx, ecx
je case.0x45364a.8
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x45583b
mov edx, dword [esi + 1]
cmp eax, edx
jne 0x45583b
mov eax, dword [edi + 8]
cmp dword [eax + 0x178], edx
jne 0x455819
mov dword [edi + 0x280], 0
mov edx, dword [ecx + 0x26c]
test edx, edx
je 0x455831
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.00434c20
mov ecx, eax
mov dword [ebp - 0x438], eax
test ecx, ecx
jne 0x4557f2
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x444], eax
mov dword [ebp - 0x43c], eax
call fcn.00434be0
mov ecx, eax
mov dword [ebp - 0x438], ecx
test ecx, ecx
je case.0x45364a.8
nop word [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4558d9
cmp eax, dword [esi + 1]
jne 0x4558f1
call fcn.004a5b0a
and eax, 0x80000001
jns 0x4558a1
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 0x4558f1
mov dword [ecx + 0x210], eax
mov eax, dword [esi + 0x11]
mov dword [ecx + 0x214], eax
jmp 0x4558f1
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.00434c20
mov ecx, eax
mov dword [ebp - 0x438], eax
test ecx, ecx
jne 0x455880
mov ecx, dword [ebp - 0x43c]
test ecx, ecx
je case.0x45364a.8
mov eax, dword [ebp - 0x444]
test eax, eax
je case.0x45364a.8
mov edx, dword [esi + 9]
cmp edx, 0xffffffff
jne 0x45595d
test byte [0x500de4], 2
je 0x4559c6
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.004349c0
add esp, 0x10
jmp 0x4559b5
cmp dword [esi + 0x15], 0
jne 0x45598a
test byte [0x500de4], 1
je 0x4559c6
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.004349c0
add esp, 0x10
jmp 0x4559b5
test byte [0x500de4], 1
je 0x4559c6
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.004349c0
add esp, 0x14
lea ecx, [ebp - 0x418]
call fcn.004722d0
mov ecx, dword [ebp - 0x43c]
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.0046a760
mov esi, eax
mov eax, dword [ebp - 0x444]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.0046a760
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.00434600
add esp, 8
movss dword [esi + 0x118], xmm0
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
test eax, eax
je case.0x45364a.8
cmp dword [eax + 0x178], 0xffffffff
jg 0x455a6b
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x455a6b
mov dword [eax + 0x1a4], 1
mov dword [eax + 0x190], 0
mov ecx, dword [edi + 0x18]
call fcn.00434c20
test eax, eax
jne 0x455a43
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x43c], eax
mov dword [ebp - 0x444], eax
call fcn.00434be0
mov ecx, eax
test ecx, ecx
je case.0x45364a.8
nop dword [eax]
mov edx, dword [ecx + 0x178]
mov eax, dword [ebp - 0x43c]
mov dword [ebp - 0x438], eax
cmp edx, 0xffffffff
jle 0x455ac5
cmp edx, dword [esi + 5]
mov eax, ecx
cmovne eax, dword [ebp - 0x438]
jmp 0x455af2
mov edx, dword [ecx + 0x17c]
cmp edx, dword [esi + 1]
jne 0x455aec
mov dword [ecx + 0x19c], 1
mov dword [ecx + 0x190], 0
mov dword [ebp - 0x444], ecx
jmp 0x455af8
cmp edx, dword [esi + 5]
cmove eax, ecx
mov dword [ebp - 0x43c], eax
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov ecx, eax
test ecx, ecx
jne 0x455aa0
mov ecx, dword [ebp - 0x444]
test ecx, ecx
je case.0x45364a.8
mov edx, dword [ebp - 0x43c]
test edx, edx
je case.0x45364a.8
mov eax, dword [esi + 9]
cmp eax, 0xffffffff
jne 0x455b69
test byte [0x500de4], 2
je 0x455c0d
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.004349c0
add esp, 0x10
lea ecx, [ebp - 0x418]
call fcn.004722d0
jmp 0x455c07
test byte [0x500de4], 1
je 0x455ba6
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.004349c0
add esp, 0x14
lea ecx, [ebp - 0x418]
call fcn.004722d0
mov edx, dword [ebp - 0x43c]
mov ecx, dword [edi + 8]
cmp edx, ecx
jne 0x455bcf
mov eax, dword [esi + 9]
sub dword [ecx + 0x210], eax
mov ecx, dword [edi + 8]
mov eax, dword [ecx + 0x210]
mov dword [0x500da4], eax
mov eax, dword [ecx + 0x214]
mov dword [0x500d98], eax
movq xmm0, qword [edx + 0x114]
sub esp, 0xc
mov eax, dword [edx + 0x11c]
mov ecx, esp
movss xmm2, dword [0x4e0040]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x578]
call fcn.00443e10
mov ecx, dword [edi + 0x578]
call fcn.00443c80
mov ecx, dword [ebp - 0x444]
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.0046a760
mov esi, eax
mov eax, dword [ebp - 0x43c]
jmp 0x4559dd
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x438], eax
call fcn.00434be0
test eax, eax
je case.0x45364a.8
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x455c66
mov dword [eax + 0x1a0], 1
mov dword [eax + 0x190], 0
mov dword [ebp - 0x438], eax
mov ecx, dword [edi + 0x18]
call fcn.00434c20
test eax, eax
jne 0x455c41
mov eax, dword [ebp - 0x438]
test eax, eax
je case.0x45364a.8
test byte [0x500de4], 2
je case.0x45364a.8
add eax, 0x1b0
push eax
lea eax, [ebp - 0x418]
push str.The__s_attacks_everyone_
push eax
call fcn.004349c0
add esp, 0xc
lea ecx, [ebp - 0x418]
call fcn.004722d0
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov edx, eax
test edx, edx
je case.0x45364a.8
nop dword [eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x455cee
mov eax, dword [esi + 5]
mov dword [edx + 0x1ac], eax
mov dword [edx + 0x190], 0
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov edx, eax
test edx, edx
jne 0x455cd0
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov dword [ebp - 0x43c], eax
test eax, eax
je case.0x45364a.8
nop word [eax + eax]
mov ecx, dword [eax + 0x178]
cmp ecx, dword [esi + 1]
jne 0x455db2
mov ecx, dword [edi + 0x18]
push eax
call fcn.00434d50
mov eax, dword [ebp - 0x43c]
mov ecx, dword [edi + 0x158]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.0046c460
mov eax, dword [ebp - 0x43c]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.0046a770
mov eax, dword [ebp - 0x43c]
add eax, 0x1b0
push eax
lea eax, [ebp - 0x418]
push str._s_is_defeated_
push eax
call fcn.004349c0
add esp, 0xc
lea ecx, [ebp - 0x418]
call fcn.004722d0
mov ecx, dword [ebp - 0x43c]
cmp dword [edi + 8], ecx
jne 0x455dac
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.00434c20
mov dword [ebp - 0x43c], eax
test eax, eax
jne 0x455d20
jmp case.0x45364a.8
and dword [0x4ffd60], 0xfffffffe
call fcn.0046a130
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.00434be0
test eax, eax
je 0x455e7a
mov esi, eax
mov ecx, dword [edi + 0x18]
cmp esi, dword [edi + 8]
je 0x455e69
push esi
call fcn.00434d50
mov eax, dword [esi + 0x16c]
cmp eax, 0xffffffff
jle 0x455e57
mov ecx, dword [edi + 0x158]
push eax
push dword [esi + 0x168]
push dword [esi + 0x164]
call fcn.0046c460
mov ecx, dword [edi + 4]
push esi
push dword [esi + 0x170]
call fcn.0046a770
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.00434be0
jmp 0x455e6e
call fcn.00434c20
mov esi, eax
test esi, esi
jne 0x455e17
mov esi, dword [ebp - 0x43c]
call fcn.0046a130
mov ecx, edi
call fcn.0045b3e0
call fcn.0046a130
movsx eax, byte [esi + 2]
mov dword [0x4fff08], eax
cmp eax, 1
je 0x45674f
cmp eax, 3
je 0x45674f
cmp eax, 4
jne 0x456224
push 0xfffffffffffffffe
lea ecx, [edi + 0x434]
call fcn.0044b2b0
call fcn.0046a130
mov eax, dword [edi + 0x168]
add esi, 0xf
test eax, eax
je 0x455ee0
movsx ecx, byte [eax + 0x1c0]
movzx eax, byte [esi]
cmp eax, ecx
je 0x45621c
push str.delete_realm_ptr
mov ecx, 0x4ffd58
call fcn.00430e00
cmp dword [0x4ffd58], 0
je 0x455f03
mov ecx, dword [edi + 0x168]
call fcn.00430e40
push 0x4d4194
mov ecx, 0x4ffd58
call fcn.00430e00
mov ecx, dword [edi + 0x168]
test ecx, ecx
je 0x455f2c
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x168], 0
call fcn.0046a130
movzx eax, byte [esi]
mov ecx, 0x4ffd58
sub eax, 1
je 0x456180
sub eax, 1
je 0x4560dc
sub eax, 4
je 0x456038
push str.new_realm_object_for_spirits_n
call fcn.00430e00
push 0x1d0
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 7
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00491460
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x4ffd58
push 0x4d41b8
mov dword [edi + 0x168], eax
call fcn.00430e00
mov ecx, dword [edi + 0x168]
push 0x4d41c0
push str.dat_realm_spirits_color.png
call fcn.004915e0
push 0x4d41f8
mov ecx, 0x4ffd58
call fcn.00430e00
call fcn.0046a130
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_spirits_height.png
call fcn.00491ca0
push 0x4d4224
mov ecx, 0x4ffd58
call fcn.00430e00
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x168]
push 0x4d4234
push dword [eax + 0x2a3d8]
call fcn.00492920
push str.CreateSpiritStaticPositions___n
mov ecx, 0x4ffd58
call fcn.00430e00
call fcn.0046a130
mov ecx, dword [edi + 0x168]
push 0
call fcn.00492970
movzx eax, byte [esi]
jmp 0x456531
push str.test_realm_object_n
call fcn.00430e00
push 0x1d0
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xa
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00491460
push str.dat_realm_dead_sky.png
mov dword [ebp - 4], 0xffffffff
mov ecx, eax
push 0x4d43bc
mov dword [edi + 0x168], eax
call fcn.004915e0
call fcn.0046a130
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_test_height.png
call fcn.00491ca0
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x168]
push str.dat_test_texture.png
push dword [eax + 0x2a3d8]
call fcn.00492920
call fcn.0046a130
mov ecx, dword [edi + 0x168]
push 6
call fcn.00492970
movzx eax, byte [esi]
jmp 0x456531
push str.new_realm_object_for_dragons_n
call fcn.00430e00
push 0x1d0
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 9
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00491460
push str.dat_realm_dragon_sky.png
mov dword [ebp - 4], 0xffffffff
mov ecx, eax
push 0x4d4338
mov dword [edi + 0x168], eax
call fcn.004915e0
call fcn.0046a130
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_dragons_height.png
call fcn.00491ca0
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x168]
push str.dat_realm_dragon_color.png
push dword [eax + 0x2a3d8]
call fcn.00492920
call fcn.0046a130
mov ecx, dword [edi + 0x168]
push 2
call fcn.00492970
movzx eax, byte [esi]
jmp 0x456531
push str.new_realm_object_for_the_dead_n
call fcn.00430e00
push 0x1d0
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 8
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00491460
push 0x4d4290
mov dword [ebp - 4], 0xffffffff
mov ecx, eax
push 0x4d42a8
mov dword [edi + 0x168], eax
call fcn.004915e0
call fcn.0046a130
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x168]
push 0x19
push dword [eax + 0x2a3d8]
push str.dat_realm_dead_height.png
call fcn.00491ca0
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x168]
push str.dat_realm_dead_color.png
push dword [eax + 0x2a3d8]
call fcn.00492920
call fcn.0046a130
mov ecx, dword [edi + 0x168]
push 1
call fcn.00492970
movzx eax, byte [esi]
jmp 0x456531
cmp eax, 2
jne 0x456555
push 0xfffffffffffffffd
lea ecx, [edi + 0x434]
call fcn.0044b2b0
call fcn.0046a130
mov eax, dword [edi + 0x16c]
add esi, 0xf
test eax, eax
je 0x456260
mov dl, byte [esi]
movsx ecx, byte [eax + 0x1c0]
movzx eax, dl
cmp eax, ecx
je 0x45652e
push str.delete_labyrinth_ptr
mov ecx, 0x4ffd58
call fcn.00430e00
cmp dword [0x4ffd58], 0
je 0x456283
mov ecx, dword [edi + 0x16c]
call fcn.00430e40
push 0x4d4418
mov ecx, 0x4ffd58
call fcn.00430e00
mov ecx, dword [edi + 0x16c]
test ecx, ecx
je 0x4562ac
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x16c], 0
call fcn.0046a130
movzx eax, byte [esi]
mov ecx, 0x4ffd58
sub eax, 4
je 0x456452
sub eax, 1
je 0x45638d
push 0x4d441c
call fcn.00430e00
push 0x41d4
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xb
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00482750
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x4ffd58
push 0x4d4434
mov dword [edi + 0x16c], eax
call fcn.00430e00
mov ecx, dword [edi + 0x16c]
push 0
push 0x4d443c
call fcn.004828b0
push 0x4d4454
mov ecx, 0x4ffd58
call fcn.00430e00
call fcn.0046a130
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x16c]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth_height.png
call fcn.00482f40
push 0x4d447c
mov ecx, 0x4ffd58
call fcn.00430e00
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x16c]
push 0x4d448c
push dword [eax + 0x2a3d8]
call fcn.00484360
push 0x4d44a4
jmp 0x456512
push str.new_labyrinth_object_n
call fcn.00430e00
push 0x41d4
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xd
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00482750
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x4ffd58
push str.init___n
mov dword [edi + 0x16c], eax
call fcn.00430e00
mov ecx, dword [edi + 0x16c]
push str.datlabyrinth3_ceiling.png
push str.datlabyrinth_color.png
call fcn.004828b0
push str.generate___n
mov ecx, 0x4ffd58
call fcn.00430e00
call fcn.0046a130
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x16c]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth3_height.png
call fcn.00482f40
push str.loadTexture___n
mov ecx, 0x4ffd58
call fcn.00430e00
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x16c]
push str.datlabyrinth3_floor.png
push dword [eax + 0x2a3d8]
call fcn.00484360
push str.CreateStaticPositions___n
jmp 0x456512
push 0x4d44c0
call fcn.00430e00
push 0x41d4
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xc
movzx ecx, byte [esi]
push ecx
mov ecx, eax
call fcn.00482750
mov dword [ebp - 4], 0xffffffff
mov ecx, 0x4ffd58
push 0x4d44d8
mov dword [edi + 0x16c], eax
call fcn.00430e00
mov ecx, dword [edi + 0x16c]
push 0x4d44e0
push 0x4d44fc
call fcn.004828b0
push 0x4d4514
mov ecx, 0x4ffd58
call fcn.00430e00
call fcn.0046a130
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x16c]
push 0x19
push dword [eax + 0x2a3d8]
push str.datlabyrinth2_height.png
call fcn.00482f40
push 0x4d453c
mov ecx, 0x4ffd58
call fcn.00430e00
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x16c]
push str.datlabyrinth2_texture.png
push dword [eax + 0x2a3d8]
call fcn.00484360
push 0x4d4568
mov ecx, 0x4ffd58
call fcn.00430e00
call fcn.0046a130
mov ecx, dword [edi + 0x16c]
call fcn.00484710
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.0x45364a.8
test eax, eax
jne case.0x45364a.8
mov ecx, dword [edi + 0x158]
mov al, byte [esi + 0xf]
movzx edx, al
cmp edx, dword [ecx + 0x110]
je 0x45673b
push edx
call fcn.0046b5b0
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x158]
push 0
push 0x100
push 0x100
push dword [eax + 0x2a3d8]
call fcn.0046bb00
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x158]
push str.datgrassfull.png
push dword [eax + 0x2a3d8]
call fcn.0046bfa0
mov ecx, dword [edi + 0x158]
call fcn.0046c490
mov ecx, dword [0x4ffee8]
test ecx, ecx
je 0x4565d4
push 1
call fcn.0044dd20
mov ecx, dword [0x4ffeec]
test ecx, ecx
je 0x4565e5
push 1
call fcn.0044dd20
mov ecx, dword [0x4ffef0]
test ecx, ecx
je 0x4565f6
push 1
call fcn.0044dd20
mov ecx, dword [0x4ffef4]
test ecx, ecx
je 0x456607
push 1
call fcn.0044dd20
push 0x24
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xe
mov edx, dword [0x4ebd28]
movss xmm3, dword [0x4dfe98]
shl edx, 5
add edx, dword [0x4ebd28]
push 0x4d465c
lea ecx, [edx*2 + 5]
push ecx
mov ecx, eax
call fcn.00492b00
mov dword [ebp - 4], 0xffffffff
push 0x24
mov dword [0x4ffee8], eax
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xf
mov edx, dword [0x4ebd28]
movss xmm3, dword [0x4dfea0]
shl edx, 5
add edx, dword [0x4ebd28]
push 0x4d4674
lea ecx, [edx*2 + 5]
push ecx
mov ecx, eax
call fcn.00492b00
mov dword [ebp - 4], 0xffffffff
push 0x24
mov dword [0x4ffeec], eax
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0x10
mov edx, dword [0x4ebd28]
movss xmm3, dword [0x4dfeac]
shl edx, 5
add edx, dword [0x4ebd28]
push 0x4d468c
lea ecx, [edx*2 + 5]
push ecx
mov ecx, eax
call fcn.00492b00
mov dword [ebp - 4], 0xffffffff
push 0x24
mov dword [0x4ffef0], eax
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0x11
mov edx, dword [0x4ebd28]
movss xmm3, dword [0x4dfeac]
shl edx, 5
add edx, dword [0x4ebd28]
push 0x4d46a4
lea ecx, [edx*2 + 5]
push ecx
mov ecx, eax
call fcn.00492b00
mov dword [0x4ffef4], eax
mov al, byte [esi + 0xf]
movzx eax, al
mov dword [edi + 0x2a4], eax
mov dword [edi + 0x29c], eax
jmp case.0x45364a.8
mov dword [ebp - 0x440], 0
lea ecx, [edi + 0x434]
cmp eax, 3
jne 0x456777
push 0xfffffffffffffffc
call fcn.0044b2b0
mov dword [ebp - 0x440], 1
jmp 0x45677e
push 0xfffffffffffffffe
call fcn.0044b2b0
call fcn.0046a130
mov ecx, dword [edi + 0x164]
test ecx, ecx
jne 0x4567ae
push 0x1c0
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 5
push 0x4d4170
jmp 0x4567de
mov eax, dword [esi + 0xb]
cmp eax, dword [0x4ffefc]
je 0x4567f8
mov eax, dword [ecx]
push 1
call dword [eax]
push 0x1c0
call fcn.00495ca1
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.00465a80
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x164], eax
call fcn.0046a130
mov eax, dword [esi + 0x10]
lea edx, [ebp - 0x478]
mov ecx, dword [0x4ffd78]
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.0x45364a.8
mov ecx, dword [edi + 0x164]
test ecx, ecx
je case.0x45364a.8
push esi
call fcn.00466420
jmp case.0x45364a.8
mov ecx, dword [edi + 0x164]
test ecx, ecx
je case.0x45364a.8
push esi
call fcn.004665e0
jmp case.0x45364a.8
mov eax, dword [esi + 1]
mov dword [edi + 0x424], eax
jmp case.0x45364a.8
mov eax, dword [esi + 1]
mov dword [edi + 0x750], eax
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov edx, eax
mov dword [ebp - 0x438], edx
test edx, edx
je 0x45692a
nop word [eax + eax]
mov ecx, dword [edx + 0x178]
cmp ecx, dword [esi + 1]
jne 0x456916
mov eax, dword [esi + 5]
cmp dword [edx + 0x210], eax
jle 0x456907
movq xmm0, qword [edx + 0x114]
sub esp, 0xc
mov eax, dword [edx + 0x11c]
mov ecx, esp
movss xmm2, dword [0x4e0040]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x578]
call fcn.00443e10
mov ecx, dword [edi + 0x578]
call fcn.00443c80
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.00434c20
mov edx, eax
mov dword [ebp - 0x438], eax
test edx, edx
jne 0x4568b0
mov ecx, dword [edi + 8]
test ecx, ecx
je case.0x45364a.8
mov eax, dword [ecx + 0x210]
mov dword [0x500da4], eax
mov eax, dword [ecx + 0x214]
mov dword [0x500d98], eax
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov edx, eax
mov dword [ebp - 0x440], edx
test edx, edx
je case.0x45364a.8
nop dword [eax + eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x456a00
mov eax, dword [esi + 5]
cmp dword [edx + 0x210], eax
jle 0x4569df
movq xmm0, qword [edx + 0x114]
sub esp, 0xc
mov eax, dword [edx + 0x11c]
mov ecx, esp
movss xmm2, dword [0x4e0040]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edx + 0x180]
mov ecx, dword [edi + ecx*4 + 0x4f0]
call fcn.00443e10
mov eax, dword [ebp - 0x440]
mov ecx, dword [eax + 0x180]
mov ecx, dword [edi + ecx*4 + 0x4f0]
call fcn.00443c80
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.00434c00
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov edx, eax
mov dword [ebp - 0x440], eax
test edx, edx
jne 0x456970
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov ecx, eax
mov dword [ebp - 0x438], ecx
test ecx, ecx
je case.0x45364a.8
movss xmm1, dword [0x4dfe28]
nop dword [eax]
mov eax, dword [esi + 1]
cmp eax, 0xffffffff
je 0x456a80
cmp dword [ecx + 0x178], eax
jne 0x456a77
movsx eax, byte [esi + 9]
movaps xmm0, xmmword [0x4e0160]
mov dword [ecx + 0x254], eax
mov dword [ecx + 0x258], 0
movups xmmword [ecx + 0x25c], xmm0
jmp 0x456b3c
cmp eax, 0xffffffff
jne 0x456b44
mov eax, dword [ecx + 0x17c]
cmp eax, dword [esi + 5]
jne 0x456b44
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 + 0x4d3880]
movzx eax, byte [ecx + ecx*2 + 0x4d3881]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + ecx*2 + 0x4d3882]
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.00434c00
mov ecx, dword [edi + 0x18]
call fcn.00434c20
movss xmm1, dword [0x4dfe28]
mov ecx, eax
mov dword [ebp - 0x438], eax
test ecx, ecx
jne 0x456a40
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov edx, eax
test edx, edx
je case.0x45364a.8
nop dword [eax + eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x456ba7
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.00434c00
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov edx, eax
test edx, edx
jne 0x456b80
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov edx, eax
test edx, edx
je case.0x45364a.8
nop dword [eax]
mov ecx, dword [edx + 0x17c]
cmp ecx, dword [esi + 1]
jne 0x456bec
mov al, byte [esi + 5]
mov byte [edx + 0x18e], al
mov ecx, dword [edi + 0x18]
call fcn.00434c00
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov edx, eax
test edx, edx
jne 0x456bd0
jmp case.0x45364a.8
mov dword [edi + 0x2a4], 0
mov dword [0x500de0], 1
jmp case.0x45364a.8
cmp byte [esi + 0xe], 1
mov dword [ebp - 0x43c], 0
jne 0x456cbe
lea ecx, [ebp - 0x430]
call fcn.00438b10
movzx eax, byte [esi + 9]
mov ecx, dword [edi + 0x158]
push eax
call fcn.0046c0a0
movzx eax, byte [esi + 0xa]
mov ecx, dword [edi + 0x158]
push eax
movss dword [ebp - 0x430], xmm0
call fcn.0046c0a0
movss xmm1, dword [ebp - 0x430]
movaps xmm2, xmm0
mov ecx, edi
movss dword [ebp - 0x428], xmm0
call fcn.0045a470
mov eax, dword [ebp - 0x428]
sub esp, 0xc
movss xmm2, dword [0x4e0040]
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.00443e10
mov ecx, dword [edi + 0x584]
call fcn.00443c80
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov dword [ebp - 0x444], eax
test eax, eax
je 0x456d21
xor ecx, ecx
test ecx, ecx
jne 0x456d21
mov ecx, dword [eax + 0x178]
cmp ecx, 0xffffffff
je 0x456ceb
cmp ecx, dword [esi + 1]
je 0x456cfc
cmp ecx, 0xffffffff
jne 0x456d09
mov eax, dword [eax + 0x17c]
cmp eax, dword [esi + 5]
jne 0x456d09
mov eax, dword [ebp - 0x444]
mov ecx, 1
mov dword [ebp - 0x43c], ecx
jmp 0x456d1d
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov ecx, dword [ebp - 0x43c]
mov dword [ebp - 0x444], eax
test eax, eax
jne 0x456cd2
push 0x4ec
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
push 0x4d46bc
push 0
mov ecx, eax
mov dword [ebp - 4], 0x12
call fcn.0045c100
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x18]
push eax
mov dword [ebp - 0x440], eax
call fcn.00434c40
mov ecx, dword [ebp - 0x440]
push 0x4d0a32
mov dword [ecx + 0x160], 0xa
add ecx, 0x1b0
push ecx
call fcn.0045c0e0
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 0x456daf
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 [0x4dfe28]
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 0x456ed1
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.0x45364a.8
cmp dword [0x4fff08], 4
push ecx
jne 0x456f09
mov ecx, dword [edi + 0x168]
call fcn.0046c0a0
addss xmm0, dword [0x4dffe8]
push dword [esi + 0x168]
movss dword [esi + 0x114], xmm0
mov ecx, dword [edi + 0x168]
call fcn.0046c0a0
jmp 0x456f35
mov ecx, dword [edi + 0x158]
call fcn.0046c0a0
addss xmm0, dword [0x4dffe8]
push dword [esi + 0x168]
movss dword [esi + 0x114], xmm0
mov ecx, dword [edi + 0x158]
call fcn.0046c0a0
movss xmm1, dword [esi + 0x114]
movaps xmm2, xmm0
addss xmm2, dword [0x4dffe8]
mov ecx, edi
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 0
movss dword [esi + 0x11c], xmm2
call fcn.0045a470
addss xmm0, dword [0x4dfef0]
movss dword [esi + 0x118], xmm0
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov dword [ebp - 0x438], eax
test eax, eax
je case.0x45364a.8
nop word [eax + eax]
mov eax, dword [eax + 0x178]
cmp eax, dword [esi + 1]
jne 0x457083
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edx, dword [ebp - 0x438]
movss xmm1, dword [0x4dfe28]
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 0x45707b
cmp byte [esi + 6], 0
jne 0x45707b
cmp byte [esi + 7], 0
jne 0x45707b
mov dword [edx + 0x23c], 0xffffffff
mov ecx, dword [edi + 0x18]
call fcn.00434c00
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov dword [ebp - 0x438], eax
test eax, eax
jne 0x456fa0
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov edx, eax
mov dword [ebp - 0x438], edx
test edx, edx
je case.0x45364a.8
nop word [eax + eax]
mov ecx, dword [edx + 0x178]
cmp ecx, dword [esi + 1]
jne 0x457112
movzx eax, byte [esi + 8]
imul ecx, eax, 0xd0
push esi
add ecx, 0x34c
add ecx, edx
call fcn.0045c9a0
cmp byte [esi + 0xd], 0
jne 0x45710a
mov eax, dword [ebp - 0x438]
mov ecx, dword [edi + 8]
mov eax, dword [eax + 0x178]
cmp eax, dword [ecx + 0x178]
jne 0x45710a
mov dword [edi + 0x294], 1
mov ecx, dword [edi + 0x18]
call fcn.00434c00
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov edx, eax
mov dword [ebp - 0x438], eax
test edx, edx
jne 0x4570c0
jmp case.0x45364a.8
mov ecx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0x444], eax
mov dword [ebp - 0x434], eax
call fcn.00434be0
mov ecx, eax
test ecx, ecx
je case.0x45364a.8
nop dword [eax + eax]
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x457187
cmp eax, dword [esi + 1]
jne 0x45719f
movzx eax, byte [esi + 9]
imul eax, eax, 0xd0
cmp dword [eax + ecx + 0x34c], 0
je 0x45719f
mov dword [eax + ecx + 0x38c], 1
mov dword [ebp - 0x434], ecx
jmp 0x45719f
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.00434c20
mov ecx, eax
test ecx, ecx
jne 0x457150
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je case.0x45364a.8
mov eax, dword [ebp - 0x444]
test eax, eax
je case.0x45364a.8
test byte [0x500de4], 1
je 0x457213
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.004349c0
add esp, 0x14
lea ecx, [ebp - 0x418]
call fcn.004722d0
mov ecx, dword [ebp - 0x434]
push ecx
push dword [ecx + 0x170]
mov ecx, dword [edi + 4]
call fcn.0046a760
mov ecx, dword [edi + 4]
mov esi, eax
mov eax, dword [ebp - 0x444]
push eax
push dword [eax + 0x170]
call fcn.0046a760
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.00434600
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 [0x4dfec4]
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.0x45364a.8
mov eax, dword [esi + 1]
mov dword [0x500de4], eax
jmp case.0x45364a.8
push 0x14
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x438], eax
push 0x46
mov ecx, eax
mov dword [ebp - 4], 0x13
call fcn.00430e80
push dword [ebx + 0xc]
mov dword [ebp - 0x440], eax
push esi
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, esi
call fcn.00430f10
push 0
mov ecx, esi
call fcn.0042ef20
lea eax, [ebp - 0x46d]
mov ecx, esi
push eax
call fcn.00430eb0
lea eax, [ebp - 0x47c]
mov ecx, esi
push eax
call fcn.00430ee0
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov dword [ebp - 0x438], eax
test eax, eax
je 0x4573ca
mov ecx, dword [eax + 0x178]
cmp ecx, dword [ebp - 0x47c]
jne 0x4573b2
xor edi, edi
mov ecx, dword [ebp - 0x440]
lea esi, [eax + 0x1d0]
add esi, edi
push esi
call fcn.00430eb0
cmp byte [esi], 0
mov eax, 0x3e8
cmove edi, eax
mov eax, dword [ebp - 0x438]
inc edi
cmp edi, 0x41
jl 0x457381
mov edi, dword [ebp - 0x448]
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov dword [ebp - 0x438], eax
test eax, eax
jne 0x457371
mov esi, dword [ebp - 0x440]
test esi, esi
je case.0x45364a.8
push 1
mov ecx, esi
call fcn.0042f480
jmp case.0x45364a.8
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x178]
cmp eax, dword [esi + 1]
jne case.0x45364a.8
mov dword [edi + 0x284], 1
jmp case.0x45364a.8
lea ecx, [ebp - 0x424]
call fcn.00438b10
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 [0x4e0008]
cvtdq2ps xmm2, xmm2
addss xmm1, dword [0x4dffe8]
mulss xmm2, dword [0x4e0008]
addss xmm2, dword [0x4dffe8]
movss dword [ebp - 0x424], xmm1
movss dword [ebp - 0x41c], xmm2
call fcn.0045a470
cmp dword [esi + 1], 0
addss xmm0, dword [0x4dfeac]
movss dword [ebp - 0x420], xmm0
je 0x457549
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov ecx, eax
test ecx, ecx
je 0x457549
mov eax, dword [ecx + 0x178]
cmp eax, 0xffffffff
jle 0x4574d3
cmp eax, dword [esi + 1]
jne 0x4574d3
movq xmm0, qword [ecx + 0x114]
movq qword [ebp - 0x424], xmm0
movss xmm0, dword [ebp - 0x420]
addss xmm0, dword [0x4dfebc]
mov eax, dword [ecx + 0x11c]
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x41c], eax
movss dword [ebp - 0x420], xmm0
call fcn.00434c00
mov ecx, eax
cmp dword [ecx + 0x160], 0xc
jne 0x457537
movzx eax, byte [esi + 5]
cmp dword [ecx + 0x164], eax
jne 0x457537
movzx eax, byte [esi + 6]
cmp dword [ecx + 0x168], eax
jne 0x457537
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.0045a470
addss xmm0, dword [0x4dfeac]
movss dword [ebp - 0x420], xmm0
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov ecx, eax
test ecx, ecx
jne 0x457485
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.004345d0
cmp byte [esi + 7], 0
movss dword [ebp - 0x440], xmm0
mov dword [ebp - 0x43c], 0
jne 0x4575a5
cmp byte [esi + 8], 0
jne 0x4575a5
cmp byte [esi + 9], 0
je 0x457628
movss xmm1, dword [0x4e0010]
mov eax, 1
comiss xmm1, xmm0
mov dword [ebp - 0x43c], eax
jbe 0x457725
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 [0x4fff04]
call fcn.0048ad90
sub esp, 0x10
mov ecx, dword [0x4fff04]
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 [0x4e0060]
call fcn.0048adc0
movss xmm0, dword [ebp - 0x440]
movss xmm1, dword [0x4e0010]
comiss xmm1, xmm0
jbe 0x45771f
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 [0x4ffecc]
call fcn.0048bab0
movzx edx, byte [esi + 7]
sub esp, 0x10
movzx eax, byte [esi + 8]
or edx, 0xffff9b00
movss xmm1, dword [0x4dfe28]
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 [0x4e0028]
mov ecx, dword [0x4ffecc]
call fcn.0048bae0
movss xmm1, dword [ebp - 0x440]
addss xmm1, dword [0x4dfef0]
movss xmm0, dword [esi + 0xf]
divss xmm0, xmm1
movss dword [0x4fff0c], xmm0
movss xmm0, dword [ebp - 0x440]
mov eax, dword [ebp - 0x43c]
movss xmm1, dword [esi + 0xf]
comiss xmm1, dword [0x4e00b0]
jbe 0x4577ba
test eax, eax
je 0x4577ba
cmp dword [edi + 8], 0
je 0x457782
comiss xmm0, dword [0x4e0008]
jbe 0x457782
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x4e0040]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x5a0]
call fcn.00443e10
mov ecx, dword [edi + 0x5a0]
jmp 0x457903
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x4e0040]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x59c]
call fcn.00443e10
mov ecx, dword [edi + 0x59c]
jmp 0x457903
comiss xmm1, dword [0x4e0060]
jbe 0x45784a
test eax, eax
je 0x45784a
cmp dword [edi + 8], 0
je 0x457812
comiss xmm0, dword [0x4dfff8]
jbe 0x457812
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x4e0040]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x598]
call fcn.00443e10
mov ecx, dword [edi + 0x598]
jmp 0x457903
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x4e0040]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x594]
call fcn.00443e10
mov ecx, dword [edi + 0x594]
jmp 0x457903
comiss xmm1, dword [0x4e0008]
jbe 0x4578d0
test eax, eax
je 0x4578d0
cmp dword [edi + 8], 0
je 0x45789b
comiss xmm0, dword [0x4dffe0]
jbe 0x45789b
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x4e0040]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x590]
call fcn.00443e10
mov ecx, dword [edi + 0x590]
jmp 0x457903
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x4e0040]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x58c]
call fcn.00443e10
mov ecx, dword [edi + 0x58c]
jmp 0x457903
movq xmm0, qword [ebp - 0x424]
sub esp, 0xc
mov eax, dword [ebp - 0x41c]
mov ecx, esp
movss xmm2, dword [0x4e0040]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x588]
call fcn.00443e10
mov ecx, dword [edi + 0x588]
call fcn.00443c80
mov ecx, dword [edi + 0x18]
call fcn.00434be0
mov ecx, eax
mov dword [ebp - 0x43c], ecx
test ecx, ecx
je case.0x45364a.8
cmp dword [ecx + 0x160], 0xc
jne 0x45798e
movzx eax, byte [esi + 5]
cmp dword [ecx + 0x164], eax
jne 0x45798e
movzx eax, byte [esi + 6]
cmp dword [ecx + 0x168], eax
jne 0x45798e
push ecx
mov ecx, dword [edi + 0x18]
call fcn.00434d50
mov eax, dword [ebp - 0x43c]
mov ecx, dword [edi + 0x158]
push dword [eax + 0x16c]
push dword [eax + 0x168]
push dword [eax + 0x164]
call fcn.0046c460
mov eax, dword [ebp - 0x43c]
mov ecx, dword [edi + 4]
push eax
push dword [eax + 0x170]
call fcn.0046a770
mov ecx, dword [ebp - 0x43c]
push 1
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [edi + 0x18]
call fcn.00434c20
mov ecx, eax
mov dword [ebp - 0x43c], eax
test ecx, ecx
jne 0x457920
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.00495a90
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8