Function at 0x654b20
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x5c]
cmp eax, dword [ecx + 8]
jbe 0x65724a
sub esp, 0xdc
mov eax, dword [esp + 0xe8]
test eax, eax
jne 0x654cb1
mov eax, dword [esp + 0xf0]
mov dword [esp], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 8], eax
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 8], edx
call fcn.00407f00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x654bbb
mov ecx, dword [ecx + 4]
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea edx, [0x730c00]
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xd8], eax
lea eax, [0x7bbfb0]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0xcc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c7280
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0x4c]
test ebx, ebx
je 0x654c74
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
add esp, 0xdc
ret
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00651170
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], eax
mov eax, dword [0xa918d0]
test eax, eax
jne 0x654ca5
mov dword [edx + 0x50], ecx
jmp 0x654c57
lea edi, [edx + 0x50]
mov eax, ecx
call fcn.00451480
jmp 0x654c57
mov eax, dword [esp + 0xe4]
cmp byte [eax], 0x6e
mov ecx, dword [esp + 0xf0]
mov dword [esp], ecx
mov edx, dword [esp + 0xf4]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xf8]
mov dword [esp + 8], ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg ebp, eax
mov byte [esp + 0xc], al
xchg ebp, eax
call fcn.00651860
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
test ebx, ebx
jne 0x65719d
test ecx, ecx
je 0x6551c4
mov edx, dword [esp + 0xe4]
movzx ebx, byte [edx]
cmp bl, 0x22
je 0x655027
movzx eax, byte [esp + 0xfc]
test al, al
jne 0x654ec7
cmp bl, 0x66
jne 0x654e99
mov eax, 4
lea ecx, [0x7a5b6f]
mov dword [esp + 0x44], eax
mov dword [esp + 0x88], ecx
mov edx, dword [esp + 0xf0]
mov dword [esp], edx
mov edx, dword [esp + 0xf4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xf8]
mov dword [esp + 8], edx
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x74], ebx
lea ebp, [0x779d80]
mov dword [esp], ebp
call fcn.0040a580
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x44]
mov dword [edi + 4], eax
mov eax, dword [0xa918d0]
test eax, eax
jne 0x654e88
mov ecx, dword [esp + 0x88]
mov dword [edi], ecx
mov ecx, dword [esp + 0x78]
mov dword [edi + 8], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x654e6c
mov eax, dword [esp + 0xa8]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x74]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je 0x654e29
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
add esp, 0xdc
ret
mov dword [esp], eax
lea ecx, [0x82d400]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00651170
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], eax
mov eax, dword [0xa918d0]
test eax, eax
jne 0x654e60
mov dword [edx + 0x50], ecx
jmp 0x654e0c
lea edi, [edx + 0x50]
mov eax, ecx
call fcn.00451480
jmp 0x654e0c
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa8]
call fcn.00451480
mov edi, edx
jmp 0x654df0
mov eax, dword [esp + 0x88]
call fcn.00451480
jmp 0x654dd1
cmp bl, 0x6e
jne 0x654eae
mov eax, 4
lea ecx, [0x7a5c73]
jmp 0x654d50
cmp bl, 0x74
je 0x654d45
mov eax, 6
lea ecx, [0x7a652a]
jmp 0x654d50
mov eax, dword [esp + 0xf0]
mov dword [esp], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 8], eax
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 8], edx
call fcn.00407f00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x654f33
mov ecx, dword [ecx + 4]
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea edx, [0x730c00]
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xd8], eax
lea eax, [0x7bbfb0]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0xcc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c7280
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0x4c]
test ebx, ebx
je 0x654fec
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
add esp, 0xdc
ret
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00651170
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x65501d
mov dword [edx + 0x50], eax
jmp 0x654fcf
lea edi, [edx + 0x50]
call fcn.00451480
jmp 0x654fcf
mov dword [esp + 0x8c], eax
mov dword [esp + 0x48], ecx
mov dword [esp], edx
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xec]
mov dword [esp + 8], ecx
call fcn.00657a50
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
test al, al
jne 0x655188
movzx eax, byte [esp + 0xfc]
test al, al
je 0x657231
mov eax, dword [esp + 0xf0]
mov dword [esp], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 8], eax
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 8], edx
call fcn.00407f00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x6550e5
mov ecx, dword [ecx + 4]
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea edx, [0x730c00]
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xd8], eax
lea eax, [0x7bbfb0]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0xcc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c7280
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
add esp, 0xdc
ret
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x10]
mov ebp, dword [esp + 0x8c]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
call eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
add esp, 0xdc
ret
mov dword [esp + 0x70], ebp
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa0], edi
mov eax, dword [esp + 0xe4]
movzx ecx, byte [eax]
cmp cl, 0x66
ja 0x656fa4
cmp cl, 0x22
je 0x6567dd
cmp cl, 0x66
jne 0x65588c
movzx edx, byte [esp + 0xfc]
test dl, dl
je 0x655880
mov ebx, dword [esp + 0xe8]
cmp ebx, 4
je 0x655861
mov dword [esp + 0x7c], eax
mov eax, 1
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x7c]
movzx esi, byte [esp + 0x2f]
xchg esi, eax
test al, al
xchg esi, eax
je 0x65524f
cmp ebx, 5
je 0x655845
mov esi, 1
xchg esi, eax
test al, al
xchg esi, eax
jne 0x655704
cmp cl, 0x74
sete cl
nop
mov esi, ebp
and ebp, 0x1f
cmp ebp, 1
je 0x6556e4
cmp ebp, 0x14
je 0x6554e0
test dl, dl
je 0x6553c9
mov dword [esp], edi
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 8], edx
call fcn.00407f00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x6552d3
mov ecx, dword [ecx + 4]
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea edx, [0x730c00]
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xd8], eax
lea eax, [0x7bbfb0]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0xcc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c7280
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0x4c]
test ebx, ebx
je 0x65538c
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
add esp, 0xdc
ret
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00651170
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], eax
mov eax, dword [0xa918d0]
test eax, eax
jne 0x6553bd
mov dword [edx + 0x50], ecx
jmp 0x65536f
lea edi, [edx + 0x50]
mov eax, ecx
call fcn.00451480
jmp 0x65536f
mov dword [esp], edi
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00481520
mov eax, dword [esp + 0xc]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa8], ecx
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x74], ebx
lea ebp, [0x779d80]
mov dword [esp], ebp
call fcn.0040a580
mov edi, dword [esp + 4]
mov dword [edi + 4], 4
mov eax, dword [0xa918d0]
test eax, eax
jne 0x6554d0
lea ecx, [0x7a5b6f]
mov dword [edi], ecx
mov ecx, dword [esp + 0x78]
mov dword [edi + 8], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x6554b4
mov eax, dword [esp + 0xa8]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x74]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x65536f
mov dword [esp], eax
lea ecx, [0x82d400]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00651170
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], eax
mov eax, dword [0xa918d0]
test eax, eax
jne 0x6554a5
mov dword [edx + 0x50], ecx
jmp 0x65536f
lea edi, [edx + 0x50]
mov eax, ecx
call fcn.00451480
jmp 0x65536f
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa8]
call fcn.00451480
mov edi, edx
jmp 0x65544b
lea eax, [0x7a5b6f]
call fcn.00451480
jmp 0x655430
mov byte [esp + 0x2e], cl
mov dword [esp], edi
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.0047f1a0
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x6555c2
movzx ecx, byte [esp + 0x2e]
movzx ecx, cl
lea edx, [0xa45ea0]
lea eax, [edx + ecx]
nop
movzx ecx, byte [0xa7e5f0]
test cl, cl
je 0x6555ba
lea ecx, [0x744bc0]
mov dword [0xa7e5f4], ecx
mov edx, dword [0xa918d0]
test edx, edx
jne 0x6555ad
mov dword [0xa7e5f8], eax
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x6555a5
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x655572
or edx, 0x80
mov ebx, dword [esp + 0xa0]
mov dword [esp], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.0047ff40
jmp 0x65536f
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x655572
lea edi, [0xa7e5f8]
call fcn.00451480
jmp 0x655544
lea ecx, [0x744bc0]
jmp 0x655544
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.00481520
mov eax, dword [esp + 0xc]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa8], ecx
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x74], ebx
lea ebp, [0x779d80]
mov dword [esp], ebp
call fcn.0040a580
mov edi, dword [esp + 4]
mov dword [edi + 4], 4
mov eax, dword [0xa918d0]
test eax, eax
jne 0x6556d4
lea ecx, [0x7a5b6f]
mov dword [edi], ecx
mov ecx, dword [esp + 0x78]
mov dword [edi + 8], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x6556b8
mov eax, dword [esp + 0xa8]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x74]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x65536f
mov dword [esp], eax
lea ecx, [0x82d400]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00651170
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], eax
mov eax, dword [0xa918d0]
test eax, eax
jne 0x6556a9
mov dword [edx + 0x50], ecx
jmp 0x65536f
lea edi, [edx + 0x50]
mov eax, ecx
call fcn.00451480
jmp 0x65536f
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa8]
call fcn.00451480
mov edi, edx
jmp 0x65564f
lea eax, [0x7a5b6f]
call fcn.00451480
jmp 0x655634
mov dword [esp], edi
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov byte [esp + 0xc], cl
call fcn.00480050
jmp 0x65536f
mov dword [esp], edi
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.00481520
mov eax, dword [esp + 0xc]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa8], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 8], edx
call fcn.00407f00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x655762
mov ecx, dword [ecx + 4]
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea edx, [0x730c00]
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xd8], eax
lea eax, [0x7bbfb0]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0xcc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c7280
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0x4c]
test ebx, ebx
jne 0x65536f
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00651170
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], eax
mov eax, dword [0xa918d0]
test eax, eax
jne 0x655836
mov dword [edx + 0x50], ecx
jmp 0x65536f
lea edi, [edx + 0x50]
mov eax, ecx
call fcn.00451480
jmp 0x65536f
cmp dword [eax], 0x736c6166
jne 0x655240
cmp byte [eax + 4], 0x65
xchg esi, ebx
setne bl
xchg esi, ebx
jmp 0x655245
cmp dword [eax], 0x65757274
xchg esi, ebx
setne bl
xchg esi, ebx
xchg esi, eax
mov byte [esp + 0x2f], al
xchg esi, eax
mov esi, dword [esp + 0xa4]
jmp 0x65522c
mov ebx, dword [esp + 0xe8]
jmp 0x65524f
cmp cl, 0x2d
je 0x6559b5
cmp cl, 0x30
jae 0x6567d2
mov ecx, 1
test cl, cl
je 0x6559b5
movzx ecx, byte [esp + 0xfc]
test cl, cl
je 0x6571fc
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 8], edx
call fcn.00407f00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x655912
mov ecx, dword [ecx + 4]
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea edx, [0x730c00]
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xd8], eax
lea eax, [0x7bbfb0]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0xcc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c7280
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], eax
add esp, 0xdc
ret
mov dword [esp], 0
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xe8]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0xec]
mov dword [esp + 0xc], edx
call fcn.0043fc80
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x94], ecx
nop
mov edx, dword [esp + 0x70]
mov ebx, edx
and edx, 0x1f
cmp edx, 0xc
ja 0x6562a8
lea ebp, [edx - 2]
cmp ebp, 4
jbe 0x656019
lea ebp, [edx - 7]
cmp ebp, 5
jbe 0x655dab
cmp edx, 0x18
je 0x655d48
xor edx, edx
test dl, dl
jne 0x655c5d
movzx eax, byte [esp + 0xfc]
test al, al
je 0x655b44
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 8], edx
call fcn.00407f00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x655aa1
mov ecx, dword [ecx + 4]
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea edx, [0x730c00]
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xd8], eax
lea eax, [0x7bbfb0]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0xcc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c7280
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], eax
add esp, 0xdc
ret
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x74], ebx
lea ebp, [0x779d80]
mov dword [esp], ebp
call fcn.0040a580
mov edi, dword [esp + 4]
mov dword [edi + 4], 6
mov eax, dword [0xa918d0]
test eax, eax
jne 0x655c4d
lea ecx, [0x7a652a]
mov dword [edi], ecx
mov ecx, dword [esp + 0x78]
mov dword [edi + 8], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x655c34
mov eax, dword [esp + 0xa8]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x74]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x65536f
mov dword [esp], eax
lea ecx, [0x82d400]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00651170
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x655c27
mov dword [edx + 0x50], eax
jmp 0x65536f
lea edi, [edx + 0x50]
call fcn.00451480
jmp 0x65536f
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa8]
call fcn.00451480
mov edi, edx
jmp 0x655bcd
lea eax, [0x7a652a]
call fcn.00451480
jmp 0x655bb2
mov edx, dword [esp + 0xa0]
mov dword [esp], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.00480d20
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
call fcn.00650f90
movzx eax, byte [esp + 8]
test al, al
jne 0x65536f
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 8], eax
call fcn.00407f00
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
lea ecx, [0x730c00]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], eax
lea eax, [0x7bb855]
mov dword [esp], eax
mov dword [esp + 4], 0x40
lea eax, [esp + 0xc4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004c7280
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], eax
add esp, 0xdc
ret
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00481520
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
cmp dword [0xa7dee8], ecx
je 0x655d8e
xor eax, eax
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0x70]
mov edx, eax
mov eax, dword [esp + 0x4c]
jmp 0x655a24
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [0xa7deec]
mov dword [esp + 8], eax
call fcn.00402f30
movzx eax, byte [esp + 0xc]
jmp 0x655d78
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0x40
call fcn.0045f8b0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x655f2f
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x74], ebx
lea ebp, [0x779d80]
mov dword [esp], ebp
call fcn.0040a580
mov eax, dword [esp + 4]
mov dword [esp + 0x9c], eax
mov dword [esp], 0
lea ecx, [0x7a69d7]
mov dword [esp + 4], ecx
mov dword [esp + 8], 7
mov ecx, dword [esp + 0x94]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x10], ecx
call fcn.0043fb00
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x9c]
mov dword [edi + 4], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x655f25
mov dword [edi], eax
mov ecx, dword [esp + 0x78]
mov dword [edi + 8], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x655f0c
mov eax, dword [esp + 0xa8]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x74]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x65536f
mov dword [esp], eax
lea ecx, [0x82d400]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00651170
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x655eff
mov dword [edx + 0x50], eax
jmp 0x65536f
lea edi, [edx + 0x50]
call fcn.00451480
jmp 0x65536f
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa8]
call fcn.00451480
mov edi, edx
jmp 0x655ea5
call fcn.00451480
jmp 0x655e8a
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0xa0]
mov ebx, dword [eax]
shl ebx, 3
add ebx, 0xffffffc0
neg ebx
lea ebp, [ebx - 0x20]
mov dword [esp + 0x6c], ebp
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0x68], edi
cmp ebx, 0x20
sbb eax, eax
mov dword [esp + 0x64], eax
cmp esi, 0x20
sbb eax, eax
mov dword [esp + 0x60], eax
mov ecx, ebp
mov eax, dword [esp + 0x38]
shr eax, cl
mov ecx, ebx
shl edx, cl
and eax, edi
mov ecx, esi
mov edi, dword [esp + 0x38]
shl edi, cl
mov esi, dword [esp + 0x60]
and edi, esi
mov esi, dword [esp + 0x64]
and edx, esi
or edx, eax
or edx, edi
mov ecx, ebx
mov edi, edx
shr edx, cl
and edx, esi
mov eax, dword [esp + 0x3c]
cmp edx, eax
setne dl
mov ecx, ebp
mov ebp, edi
shl edi, cl
mov ecx, ebx
mov eax, dword [esp + 0x38]
shl eax, cl
and eax, esi
shr eax, cl
and eax, esi
mov ebx, dword [esp + 0x68]
and edi, ebx
or eax, edi
mov ecx, dword [esp + 0x6c]
shr ebp, cl
mov ebx, dword [esp + 0x60]
and ebp, ebx
or eax, ebp
mov ebx, dword [esp + 0x38]
cmp eax, ebx
setne al
or eax, edx
test al, al
jne 0x655ddb
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
call fcn.00480b00
jmp 0x65536f
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0x40
call fcn.004600c0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x65619d
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x74], ebx
lea ebp, [0x779d80]
mov dword [esp], ebp
call fcn.0040a580
mov eax, dword [esp + 4]
mov dword [esp + 0x9c], eax
mov dword [esp], 0
lea ecx, [0x7a69d7]
mov dword [esp + 4], ecx
mov dword [esp + 8], 7
mov ecx, dword [esp + 0x94]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x10], ecx
call fcn.0043fb00
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x9c]
mov dword [edi + 4], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x656193
mov dword [edi], eax
mov ecx, dword [esp + 0x78]
mov dword [edi + 8], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x65617a
mov eax, dword [esp + 0xa8]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x74]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x65536f
mov dword [esp], eax
lea ecx, [0x82d400]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00651170
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x65616d
mov dword [edx + 0x50], eax
jmp 0x65536f
lea edi, [edx + 0x50]
call fcn.00451480
jmp 0x65536f
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa8]
call fcn.00451480
mov edi, edx
jmp 0x656113
call fcn.00451480
jmp 0x6560f8
mov dword [esp + 0x34], ecx
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0xa0]
mov ebx, dword [eax]
shl ebx, 3
add ebx, 0xffffffc0
neg ebx
mov ebp, ebx
shr ebx, 5
cmp ebx, 1
sbb ebx, ebx
mov dword [esp + 0x6c], ebx
cmp ebp, 0x20
sbb esi, esi
mov dword [esp + 0x68], esi
sbb edi, edi
mov dword [esp + 0x78], edi
lea eax, [ebp - 0x20]
mov dword [esp + 0x64], eax
cmp eax, 0x20
sbb edi, edi
neg eax
cmp eax, 0x20
sbb ebx, ebx
mov dword [esp + 0x60], ebx
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x34]
shl esi, cl
mov ecx, eax
mov ebx, dword [esp + 0x34]
shr ebx, cl
mov ecx, ebp
shl edx, cl
and esi, edi
mov ebp, dword [esp + 0x60]
and ebx, ebp
mov ebp, dword [esp + 0x68]
and edx, ebp
or edx, ebx
or edx, esi
mov ebx, ecx
mov ecx, eax
mov esi, edx
shl edx, cl
xchg edi, ebx
not ebx
xchg edi, ebx
mov eax, dword [esp + 0x64]
or edi, eax
mov ecx, ebx
mov eax, dword [esp + 0x34]
shl eax, cl
and eax, ebp
shr eax, cl
mov ecx, edi
mov edi, esi
sar esi, cl
and eax, ebp
mov ebp, dword [esp + 0x60]
and edx, ebp
or eax, edx
mov edx, dword [esp + 0x6c]
xor edx, 0xffffffff
and edx, esi
or edx, eax
mov eax, dword [esp + 0x34]
cmp edx, eax
setne dl
mov ecx, dword [esp + 0x78]
not ecx
or ecx, ebx
sar edi, cl
mov ebx, dword [esp + 0x40]
cmp edi, ebx
xchg ebp, ebx
setne bl
xchg ebp, ebx
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x656049
mov ecx, dword [esp + 0xa0]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
call fcn.00480560
jmp 0x65536f
lea ebp, [edx - 0xd]
cmp ebp, 1
jbe 0x656561
cmp edx, 0x14
jne 0x655a19
mov edx, dword [esp + 0xe0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00654950
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
test edx, edx
je 0x65633c
nop
mov ecx, dword [esp + 0xe0]
mov ebx, dword [ecx + 0x4c]
test ebx, ebx
jne 0x65536f
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00651170
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x65632f
mov dword [edx + 0x50], eax
jmp 0x65536f
lea edi, [edx + 0x50]
call fcn.00451480
jmp 0x65536f
mov dword [esp + 0x84], ecx
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x70]
mov dword [esp + 8], edx
call fcn.0047f1a0
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x65643f
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x656437
nop
movzx edx, byte [0xa7e5f0]
test dl, dl
je 0x65642b
mov dword [0xa7e5f4], ecx
mov edx, dword [0xa918d0]
test edx, edx
jne 0x656417
mov eax, dword [esp + 0x84]
mov dword [0xa7e5f8], eax
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0xbc]
test ecx, ecx
je 0x65640f
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x6563dc
or edx, 0x80
mov ebx, dword [esp + 0xa0]
mov dword [esp], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.0047ff40
jmp 0x65536f
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x6563dc
lea edi, [0xa7e5f8]
mov eax, dword [esp + 0x84]
call fcn.00451480
jmp 0x6563ae
mov eax, dword [esp + 0x84]
jmp 0x6563ae
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x6563dc
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x74], ebx
lea ebp, [0x779d80]
mov dword [esp], ebp
call fcn.0040a580
mov edi, dword [esp + 4]
mov dword [edi + 4], 6
mov eax, dword [0xa918d0]
test eax, eax
jne 0x656551
lea ecx, [0x7a652a]
mov dword [edi], ecx
mov ecx, dword [esp + 0x78]
mov dword [edi + 8], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x656535
mov eax, dword [esp + 0xa8]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x74]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x65536f
mov dword [esp], eax
lea ecx, [0x82d400]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00651170
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], eax
mov eax, dword [0xa918d0]
test eax, eax
jne 0x656526
mov dword [edx + 0x50], ecx
jmp 0x65536f
lea edi, [edx + 0x50]
mov eax, ecx
call fcn.00451480
jmp 0x65536f
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa8]
call fcn.00451480
mov edi, edx
jmp 0x6564cc
lea eax, [0x7a652a]
call fcn.00451480
jmp 0x6564b1
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00481520
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0045f320
movsd xmm0, qword [esp + 0xc]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x65671a
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x74], ebx
lea ebp, [0x779d80]
mov dword [esp], ebp
call fcn.0040a580
mov eax, dword [esp + 4]
mov dword [esp + 0x9c], eax
mov dword [esp], 0
lea ecx, [0x7a69d7]
mov dword [esp + 4], ecx
mov dword [esp + 8], 7
mov ecx, dword [esp + 0x94]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x10], ecx
call fcn.0043fb00
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x9c]
mov dword [edi + 4], eax
mov eax, dword [0xa918d0]
test eax, eax
jne 0x65670e
mov dword [edi], ecx
mov ecx, dword [esp + 0x78]
mov dword [edi + 8], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x6566f5
mov eax, dword [esp + 0xa8]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x74]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x65536f
mov dword [esp], eax
lea ecx, [0x82d400]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00651170
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x6566e8
mov dword [edx + 0x50], eax
jmp 0x65536f
lea edi, [edx + 0x50]
call fcn.00451480
jmp 0x65536f
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa8]
call fcn.00451480
mov edi, edx
jmp 0x65668e
mov eax, ecx
call fcn.00451480
jmp 0x656673
mov eax, dword [esp + 0x5c]
cmp eax, 0xd
jne 0x656789
nop
xorps xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x656739
movsd xmm1, qword [0x827840]
pxor xmm0, xmm1
movsd xmm1, qword [0x827828]
ucomisd xmm0, xmm1
jbe 0x656785
movsd xmm1, qword [0x827830]
ucomisd xmm1, xmm0
setae al
test al, al
jne 0x6565c4
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.00480480
jmp 0x65536f
xor eax, eax
jmp 0x656756
cmp eax, 0xe
jne 0x656792
xor eax, eax
jmp 0x656756
lea eax, [0x764780]
mov dword [esp], eax
call fcn.0040a580
mov edi, dword [esp + 4]
mov dword [edi + 4], 0x1b
mov eax, dword [0xa918d0]
test eax, eax
jne 0x6567c2
lea eax, [0x7af6ac]
mov dword [edi], eax
jmp 0x6571e3
lea eax, [0x7af6ac]
call fcn.00451480
jmp 0x6571e3
cmp cl, 0x39
seta cl
jmp 0x6558a3
mov dword [esp], eax
mov ecx, dword [esp + 0xe8]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xec]
mov dword [esp + 8], edx
call fcn.00657a50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x18]
mov ebx, dword [esp + 0x10]
test dl, dl
je 0x656e88
mov dword [esp + 0x54], eax
mov dword [esp + 0x90], ecx
mov dword [esp + 0x50], ebx
nop
mov edx, dword [esp + 0x70]
mov ebp, edx
and edx, 0x1f
cmp edx, 0x14
je 0x656c58
cmp edx, 0x17
je 0x6569ac
cmp edx, 0x18
jne 0x656893
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
call fcn.0043fc80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xa0]
mov dword [esp], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.00480d20
jmp 0x65536f
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x74], ebx
lea ebp, [0x779d80]
mov dword [esp], ebp
call fcn.0040a580
mov edi, dword [esp + 4]
mov dword [edi + 4], 6
mov eax, dword [0xa918d0]
test eax, eax
jne 0x65699c
lea ecx, [0x7a65e4]
mov dword [edi], ecx
mov ecx, dword [esp + 0x78]
mov dword [edi + 8], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x656983
mov eax, dword [esp + 0xa8]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x74]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x65536f
mov dword [esp], eax
lea ecx, [0x82d400]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00651170
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x656976
mov dword [edx + 0x50], eax
jmp 0x65536f
lea edi, [edx + 0x50]
call fcn.00451480
jmp 0x65536f
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa8]
call fcn.00451480
mov edi, edx
jmp 0x65691c
lea eax, [0x7a65e4]
call fcn.00451480
jmp 0x656901
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.00481520
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x28]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 0x50]
mov dword [esp], ecx
call eax
cmp dword [esp + 4], 8
jne 0x656b36
mov eax, dword [0xa7d7dc]
cmp dword [eax + 0x140], 0xffffffff
jne 0x656b27
mov eax, dword [esp + 0x50]
lea ecx, [eax + eax*2]
mov edx, ecx
shl ecx, 1
sar ecx, 0x1f
shr ecx, 0x1d
lea ecx, [ecx + edx*2]
sar ecx, 3
mov dword [esp + 0x58], ecx
lea eax, [0x7488c0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.0043c700
mov eax, dword [esp + 0xc]
mov dword [esp + 0x98], eax
mov ecx, dword [0xa7d7dc]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x58]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x18], edx
call fcn.0054ba40
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
test edx, edx
je 0x656ae1
nop
mov ecx, dword [esp + 0xe0]
mov ebx, dword [ecx + 0x4c]
test ebx, ebx
jne 0x65536f
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00651170
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x656ad4
mov dword [edx + 0x50], eax
jmp 0x65536f
lea edi, [edx + 0x50]
call fcn.00451480
jmp 0x65536f
mov edx, dword [esp + 0x58]
cmp ecx, edx
ja 0x657214
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.00480120
jmp 0x65536f
mov eax, dword [esp + 0x50]
shr eax, 2
lea ecx, [eax + eax*2]
jmp 0x656a1f
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x74], ebx
lea ebp, [0x779d80]
mov dword [esp], ebp
call fcn.0040a580
mov edi, dword [esp + 4]
mov dword [edi + 4], 6
mov eax, dword [0xa918d0]
test eax, eax
jne 0x656c48
lea ecx, [0x7a65e4]
mov dword [edi], ecx
mov ecx, dword [esp + 0x78]
mov dword [edi + 8], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x656c2c
mov eax, dword [esp + 0xa8]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x74]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x65536f
mov dword [esp], eax
lea ecx, [0x82d400]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00651170
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], eax
mov eax, dword [0xa918d0]
test eax, eax
jne 0x656c1d
mov dword [edx + 0x50], ecx
jmp 0x65536f
lea edi, [edx + 0x50]
mov eax, ecx
call fcn.00451480
jmp 0x65536f
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa8]
call fcn.00451480
mov edi, edx
jmp 0x656bc3
lea eax, [0x7a65e4]
call fcn.00451480
jmp 0x656ba8
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.0047f1a0
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x656d6b
mov dword [esp], 0
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], eax
call fcn.0043fc80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00407e80
mov eax, dword [esp + 8]
nop
movzx ecx, byte [0xa7e5f0]
test cl, cl
je 0x656d63
lea ecx, [0x748600]
mov dword [0xa7e5f4], ecx
mov edx, dword [0xa918d0]
test edx, edx
jne 0x656d56
mov dword [0xa7e5f8], eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0xb4]
test ecx, ecx
je 0x656d4e
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x656d1b
or edx, 0x80
mov ebx, dword [esp + 0xa0]
mov dword [esp], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.0047ff40
jmp 0x65536f
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x656d1b
lea edi, [0xa7e5f8]
call fcn.00451480
jmp 0x656ced
lea ecx, [0x748600]
jmp 0x656ced
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x74], ebx
lea ebp, [0x779d80]
mov dword [esp], ebp
call fcn.0040a580
mov edi, dword [esp + 4]
mov dword [edi + 4], 6
mov eax, dword [0xa918d0]
test eax, eax
jne 0x656e78
lea ecx, [0x7a65e4]
mov dword [edi], ecx
mov ecx, dword [esp + 0x78]
mov dword [edi + 8], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x656e5f
mov eax, dword [esp + 0xa8]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x74]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x65536f
mov dword [esp], eax
lea ecx, [0x82d400]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00651170
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], ecx
mov ecx, dword [0xa918d0]
test ecx, ecx
jne 0x656e52
mov dword [edx + 0x50], eax
jmp 0x65536f
lea edi, [edx + 0x50]
call fcn.00451480
jmp 0x65536f
lea ecx, [edi + 0xc]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa8]
call fcn.00451480
mov edi, edx
jmp 0x656df8
lea eax, [0x7a65e4]
call fcn.00451480
jmp 0x656ddd
movzx eax, byte [esp + 0xfc]
test al, al
je 0x657219
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 8], edx
call fcn.00407f00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x656f01
mov ecx, dword [ecx + 4]
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea edx, [0x730c00]
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xd8], eax
lea eax, [0x7bbfb0]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0xcc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c7280
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], eax
add esp, 0xdc
ret
cmp cl, 0x6e
jne 0x65718f
movzx ecx, byte [esp + 0xfc]
test cl, cl
je 0x656fd2
mov ecx, dword [esp + 0xe8]
cmp ecx, 4
je 0x657181
mov edx, 1
test dl, dl
jne 0x657047
mov eax, ebp
and ebp, 0x1f
lea ecx, [ebp - 0x14]
nop
cmp ecx, 3
ja 0x65536f
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call fcn.00481520
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00482380
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0xa0]
mov dword [esp], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call fcn.0047ff40
jmp 0x65536f
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call fcn.00481520
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 8], edx
call fcn.00407f00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x65709e
mov ecx, dword [ecx + 4]
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea edx, [0x730c00]
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xd8], eax
lea eax, [0x7bbfb0]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0xcc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c7280
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx + 0x4c]
test ebx, ebx
jne 0x65536f
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00651170
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xe0]
mov dword [edx + 0x4c], eax
mov eax, dword [0xa918d0]
test eax, eax
jne 0x657172
mov dword [edx + 0x50], ecx
jmp 0x65536f
lea edi, [edx + 0x50]
mov eax, ecx
call fcn.00451480
jmp 0x65536f
cmp dword [eax], 0x6c6c756e
setne dl
jmp 0x656fce
cmp cl, 0x74
je 0x6551fb
jmp 0x65588c
mov eax, dword [ebx + 0x10]
mov dword [esp], edx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xe8]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xec]
mov dword [esp + 0xc], ecx
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], eax
add esp, 0xdc
ret
mov eax, dword [esp + 0x5c]
mov dword [edi + 8], eax
lea eax, [0x7535a0]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0042af30
lea eax, [0x748600]
mov dword [esp], eax
lea eax, [0x827fe8]
mov dword [esp + 4], eax
call fcn.0042af30
call fcn.00451540
lea eax, [0x748600]
mov dword [esp], eax
lea eax, [0x827fe0]
mov dword [esp + 4], eax
call fcn.0042af30
lea eax, [0x748600]
mov dword [esp], eax
lea eax, [0x827fd8]
mov dword [esp + 4], eax
call fcn.0042af30
nop
call fcn.0044fc40
jmp fcn.00654b20