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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x434]
cmp eax, dword [ecx + 8]
jbe 0x5c3c24
sub esp, 0x4b4
mov eax, dword [esp + 0x4cc]
test eax, eax
je 0x5c1564
test eax, 0x200
jne 0x5c1564
lea ecx, [0x663100]
mov edx, dword [esp + 0x4c4]
jmp 0x5c158e
mov ecx, dword [esp + 0x4c4]
mov dword [esp], ecx
mov edx, dword [esp + 0x4c8]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov ecx, eax
mov dword [esp + 0x108], edx
mov dword [esp + 0x5c], ecx
mov eax, dword [ecx + 0x4c]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 0x50]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
cmp eax, 0x18
je 0x5c16c8
cmp eax, 0x14
je 0x5c16c8
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x4c]
mov ecx, dword [esp + 0x108]
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
mov eax, dword [esp + 4]
mov dword [esp + 0xdc], eax
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1d4], 0
mov ecx, dword [esp + 0x4bc]
mov dword [esp], ecx
mov ecx, dword [esp + 0x4c0]
mov dword [esp + 4], ecx
call fcn.00409680
mov eax, dword [esp + 8]
lea ecx, [0x5e1fa0]
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1cc], eax
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
call fcn.00409570
mov eax, dword [esp + 4]
lea ecx, [0x5e4380]
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], eax
lea eax, [0x61b75d]
mov dword [esp], eax
mov dword [esp + 4], 0x30
lea eax, [esp + 0x1c8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x4dc], eax
mov dword [esp + 0x4e0], ecx
add esp, 0x4b4
ret
lea edi, [esp + 0x210]
xor eax, eax
call fcn.00463959
lea edi, [esp + 0x448]
call fcn.00463945
lea ecx, [esp + 0x448]
mov dword [esp + 0x21c], ecx
call fcn.0044ef70
mov ecx, dword [esp]
mov dword [esp + 0x218], ecx
lea edi, [esp + 0x1f4]
xor eax, eax
call fcn.00463959
lea edi, [esp + 0x3fc]
call fcn.0046394d
lea ecx, [esp + 0x3fc]
mov dword [esp + 0x200], ecx
call fcn.0044ef70
mov ecx, dword [esp]
mov dword [esp + 0x1fc], ecx
mov ecx, dword [esp + 0x4c4]
mov dword [esp], ecx
mov edx, dword [esp + 0x4c8]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x4cc]
mov dword [esp + 8], ebx
call fcn.004bd0c0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp + 0xd8], edx
xor eax, eax
jmp 0x5c186d
mov dword [esp + 0xd4], eax
mov dword [esp + 0x188], ecx
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ebx, dword [ecx + 8]
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1c4], ebx
lea eax, [0x5e31e0]
mov dword [esp], eax
lea edx, [esp + 0x210]
mov dword [esp + 4], edx
lea ebx, [esp + 0x1bc]
mov dword [esp + 8], ebx
call fcn.0040d140
mov eax, dword [esp + 0xc]
test byte [eax], al
mov eax, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x1c0]
mov edx, dword [esp + 0x1c4]
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov byte [esp + 0xc], 1
call fcn.004bc5d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], ecx
lea eax, [0x5e2e60]
mov dword [esp], eax
lea ecx, [esp + 0x1f4]
mov dword [esp + 4], ecx
lea edx, [esp + 0x1ac]
mov dword [esp + 8], edx
call fcn.0040d140
mov eax, dword [esp + 0xc]
test byte [eax], al
mov eax, dword [esp + 0x188]
lea ecx, [eax + 0xc]
mov eax, dword [esp + 0xd4]
inc eax
mov edx, dword [esp + 0xd8]
cmp eax, edx
jl 0x5c1771
lea edi, [esp + 0x1d8]
xor eax, eax
call fcn.00463959
lea edi, [esp + 0x3b0]
call fcn.0046394d
lea ecx, [esp + 0x3b0]
mov dword [esp + 0x1e4], ecx
call fcn.0044ef70
mov ecx, dword [esp]
mov dword [esp + 0x1e0], ecx
lea ecx, [0x5e1fa0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call fcn.0044a130
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x188], ecx
lea edi, [esp + 0x2f4]
xor eax, eax
call fcn.00463951
mov ecx, dword [esp + 0x4d8]
mov dword [esp + 0x2fc], ecx
mov ecx, dword [esp + 0x4d0]
mov dword [esp + 0x2f4], ecx
mov ecx, dword [esp + 0x4d4]
mov dword [esp + 0x2f8], ecx
mov ecx, dword [esp + 0x188]
lea edx, [esp + 0x2f4]
mov ebx, 1
mov ebp, 5
xor esi, esi
lea edi, [esp + 0x3c]
xor eax, eax
mov dword [esp + 0xa0], eax
xor eax, eax
mov dword [esp + 0x118], eax
xor eax, eax
mov dword [esp + 0xac], eax
xor eax, eax
mov dword [esp + 0xa8], eax
xor eax, eax
jmp 0x5c1995
mov ecx, dword [esp + 0x158]
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x118]
mov ebp, dword [esp + 0xa0]
mov edi, dword [esp + 0x138]
mov esi, dword [esp + 0x9c]
xor eax, eax
mov edx, dword [esp + 0x114]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x9c], esi
test ebx, ebx
je 0x5c1a76
mov dword [esp + 0x138], edi
mov dword [esp + 0x140], ecx
mov dword [esp + 0x78], ebx
mov eax, dword [edx + 8]
mov dword [esp + 0xd0], eax
mov ecx, dword [edx + 4]
mov dword [esp + 0x188], ecx
mov esi, dword [edx]
mov dword [esp + 0x184], esi
dec ebp
mov dword [esp + 0x7c], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 0xc
add edx, ebp
mov dword [esp + 0x114], edx
test eax, eax
je 0x5c1a08
test eax, 0x200
jne 0x5c1a08
mov ebp, esi
lea ebp, [0x663100]
mov dword [esp + 0x58], ebp
mov ebp, esi
jmp 0x5c1a4b
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x188]
mov edx, dword [esp + 0x114]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x184]
mov edi, dword [esp + 0x138]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x104], esi
dec ebx
mov dword [esp + 0xe0], eax
xor eax, eax
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0x158], eax
jmp 0x5c346b
xor edx, edx
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0xa8]
jmp 0x5c1aab
mov eax, dword [esp + 0x188]
lea edi, [eax + 0x40]
mov eax, dword [esp + 0xd8]
inc eax
mov ebx, esi
mov ecx, ebp
mov esi, dword [esp + 0x9c]
mov ebp, edx
mov edx, eax
xor eax, eax
mov dword [esp + 0x140], ecx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xa8], ebp
cmp edx, esi
jge 0x5c219f
mov dword [esp + 0xd8], edx
mov dword [esp + 0x188], edi
mov esi, edi
lea edi, [esp + 0x330]
call fcn.00463dd0
lea edi, [esp + 0x2c0]
lea esi, [esp + 0x330]
call fcn.00463dee
mov eax, dword [esp + 0x4b8]
mov ecx, dword [eax]
mov edx, dword [esp + 0x36c]
mov dword [esp + 0xd0], edx
mov ebx, dword [esp + 0x364]
mov dword [esp + 0x184], ebx
mov ebp, dword [esp + 0x368]
mov dword [esp + 0x180], ebp
mov ebp, dword [esp + 0x2c0]
mov dword [esp + 0x13c], ebp
mov ebx, dword [esp + 0x2c4]
mov dword [esp + 0xa4], ebx
mov eax, dword [esp + 0x2d8]
mov edx, dword [esp + 0x2dc]
mov ebx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
call fcn.004b6210
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x60b3d5]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 2
call fcn.004cef80
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jbe 0x5c3415
mov ecx, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
jne 0x5c1bcb
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x13c]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x13c], eax
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409680
mov eax, dword [esp + 8]
nop
movzx ecx, byte [0x7a1de0]
test cl, cl
je 0x5c1c20
lea ecx, [0x5e1fa0]
mov dword [0x7a1de4], ecx
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x5c1c13
mov dword [0x7a1de8], eax
jmp 0x5c1c26
lea edi, [0x7a1de8]
call fcn.00463730
jmp 0x5c1c26
lea ecx, [0x5e1fa0]
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1a0], eax
mov edx, dword [esp + 0x19c]
test edx, edx
je 0x5c1c58
nop
movzx ebx, byte [edx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x5c1c5e
or ebx, 0x80
jmp 0x5c1c5e
xor ebx, ebx
xor edx, edx
xor eax, eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0xec], eax
mov dword [esp + 0xe8], edx
mov ecx, dword [esp + 0x4c4]
mov dword [esp], ecx
mov ebp, dword [esp + 0x4c8]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x4cc]
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
call fcn.004bce60
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
test edx, edx
je 0x5c1cc8
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0xe8]
mov esi, dword [esp + 0xec]
jmp 0x5c1da0
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x178], eax
lea edi, [esp + 0x25c]
xor eax, eax
call fcn.00463954
lea ecx, [0x5e31e0]
mov dword [esp], ecx
lea edx, [esp + 0x210]
mov dword [esp + 4], edx
lea ebx, [esp + 0x25c]
mov dword [esp + 8], ebx
call fcn.0040d9c0
jmp 0x5c3342
mov eax, dword [esp + 0x4c4]
mov dword [esp], eax
mov ecx, dword [esp + 0x4c8]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x4cc]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x154]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0x150]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x14], esi
call fcn.004bce60
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xb4]
mov ebp, dword [esp + 0x154]
mov esi, dword [esp + 0x150]
jmp 0x5c1d98
xor edx, edx
mov eax, dword [esp + 0x178]
mov ecx, dword [esp + 0x17c]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0xe8]
mov esi, dword [esp + 0xec]
test edx, edx
je 0x5c2129
mov edi, edx
mov edx, dword [esp + 0xd0]
test edx, edx
je 0x5c33fd
and edx, 0x160
cmp edx, 0x100
je 0x5c1dd9
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov ebp, dword [esp + 0x140]
jmp 0x5c1a88
mov dword [esp + 0xb4], edi
mov dword [esp + 0x124], ecx
mov dword [esp + 0x120], eax
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1a8], 0
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov byte [esp + 0xc], 1
call fcn.004bc5d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], ecx
lea eax, [0x5e2e60]
mov dword [esp], eax
lea ecx, [esp + 0x1f4]
mov dword [esp + 4], ecx
lea edx, [esp + 0x1a4]
mov dword [esp + 8], edx
call fcn.0040d620
mov eax, dword [esp + 0x4c0]
test eax, eax
jne 0x5c1e7c
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x13c]
jmp 0x5c1ec7
mov dword [esp], 0
mov ecx, dword [esp + 0x4bc]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
lea edx, [0x6604c0]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 1
mov ebx, dword [esp + 0x13c]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x18], ebx
call fcn.0044dcb0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x13c], eax
mov edx, dword [esp + 0x120]
mov dword [esp], edx
mov edx, dword [esp + 0x124]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 8], edx
mov byte [esp + 0xc], 1
call fcn.004bc5d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], ecx
mov edx, dword [esp + 0x4b8]
mov dword [esp], edx
mov ebx, dword [esp + 0x13c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x184]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x1c], eax
call fcn.005b8580
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
test eax, eax
jne 0x5c1f95
mov esi, dword [esp + 0xac]
mov edx, dword [esp + 0xa8]
mov ebp, dword [esp + 0x140]
jmp 0x5c1a88
test ecx, ecx
je 0x5c2083
lea ecx, [0x661b20]
cmp ebx, ecx
jne 0x5c2083
mov eax, dword [edx + 4]
mov ebx, dword [esp + 0xa8]
lea ebp, [eax + ebx]
mov edx, dword [edx]
mov esi, dword [esp + 0xac]
cmp esi, ebp
jb 0x5c1fce
mov edi, dword [esp + 0x140]
jmp 0x5c2026
mov dword [esp + 0x158], edx
mov dword [esp + 0xd4], eax
mov ecx, dword [esp + 0x140]
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
lea ecx, [0x5e1fa0]
mov dword [esp + 0x10], ecx
call fcn.0044a1f0
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x158]
mov esi, ebx
mov edi, ecx
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x50], ebp
mov dword [esp + 0xfc], edi
lea ecx, [0x5e1fa0]
mov dword [esp], ecx
sub esi, ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
shl ebx, 3
sar esi, 0x1f
and esi, ebx
lea ebx, [edi + esi]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xa8]
sub ebp, ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
call fcn.00410970
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0xfc]
jmp 0x5c1a88
mov eax, dword [eax + 0x10]
mov dword [esp], ebp
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xa8]
inc edx
mov ebx, dword [esp + 0xac]
cmp ebx, edx
jb 0x5c20af
mov ebp, dword [esp + 0x140]
jmp 0x5c2102
mov dword [esp + 0x168], eax
mov dword [esp + 0xd4], ecx
mov eax, dword [esp + 0x140]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e1fa0]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x168]
mov ebp, ecx
mov ecx, dword [esp + 0xd4]
mov esi, ebx
lea ebx, [ebp + edx*8 - 4]
mov dword [ebx], ecx
lea edi, [ebp + edx*8 - 8]
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x5c211f
mov dword [edi], eax
jmp 0x5c1a88
call fcn.00463730
jmp 0x5c1a88
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
call fcn.00409680
mov eax, dword [esp + 8]
lea ecx, [0x5e1fa0]
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x1b8], eax
lea eax, [0x5e2e60]
mov dword [esp], eax
lea edx, [esp + 0x1d8]
mov dword [esp + 4], edx
lea ebx, [esp + 0x1b4]
mov dword [esp + 8], ebx
call fcn.0040d140
mov eax, dword [esp + 0xc]
test byte [eax], al
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov ebp, dword [esp + 0x140]
jmp 0x5c1a88
mov edx, dword [esp + 0x118]
test edx, edx
je 0x5c2204
mov esi, dword [esp + 0x1f4]
test esi, esi
jg 0x5c21be
lea edx, [esp + 0x1f4]
jmp 0x5c220b
call fcn.0040c820
mov eax, dword [esp]
mov dword [esp + 0x11c], eax
lea edi, [esp + 0x22c]
xor eax, eax
call fcn.00463954
lea ecx, [0x5e2e60]
mov dword [esp], ecx
lea edx, [esp + 0x1f4]
mov dword [esp + 4], edx
lea edx, [esp + 0x22c]
mov dword [esp + 8], edx
call fcn.0040d9c0
jmp 0x5c2fac
lea edx, [esp + 0x1f4]
mov dword [esp + 0x144], edx
mov esi, dword [esp + 0x4b8]
mov edi, esi
mov esi, dword [esi]
movzx esi, byte [esi + 8]
xchg esi, eax
test al, al
xchg esi, eax
je 0x5c22cf
test edx, edx
je 0x5c2233
mov esi, dword [edx]
jmp 0x5c2235
xor esi, esi
test esi, esi
jle 0x5c22cf
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xc8], ebp
mov dword [esp + 0x174], ecx
test edx, edx
je 0x5c225a
mov esi, dword [edx]
jmp 0x5c225c
xor esi, esi
mov dword [esp + 0x8c], esi
lea eax, [0x5e1fa0]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], esi
call fcn.0044a130
mov eax, dword [esp + 0xc]
mov dword [esp + 0x188], eax
lea edi, [esp + 0x22c]
xor eax, eax
call fcn.00463954
lea ecx, [0x5e2e60]
mov dword [esp], ecx
mov edx, dword [esp + 0x144]
mov dword [esp + 4], edx
lea ebx, [esp + 0x22c]
mov dword [esp + 8], ebx
call fcn.0040d9c0
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x8c]
xor edx, edx
jmp 0x5c2bd5
mov esi, dword [edi]
movzx esi, byte [esi + 9]
xchg esi, eax
test al, al
xchg esi, eax
je 0x5c2376
mov esi, dword [esp + 0x1d8]
test esi, esi
jle 0x5c2376
mov dword [esp + 0x88], esi
mov dword [esp + 0x170], ecx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc0], ebp
lea eax, [0x5e1fa0]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], esi
call fcn.0044a130
mov eax, dword [esp + 0xc]
mov dword [esp + 0x188], eax
lea edi, [esp + 0x22c]
xor eax, eax
call fcn.00463954
lea ecx, [0x5e2e60]
mov dword [esp], ecx
lea edx, [esp + 0x1d8]
mov dword [esp + 4], edx
lea ebx, [esp + 0x22c]
mov dword [esp + 8], ebx
call fcn.0040d9c0
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x88]
xor edx, edx
jmp 0x5c27d9
test ebp, ebp
jne 0x5c23c3
mov ecx, dword [edi]
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x5c243a
lea edi, [esp + 0x22c]
call fcn.00463954
lea ecx, [0x5e2e60]
mov dword [esp], ecx
mov dword [esp + 4], edx
lea edx, [esp + 0x22c]
mov dword [esp + 8], edx
call fcn.0040d9c0
mov ecx, dword [esp + 0x4b8]
mov edx, dword [esp + 0x4c0]
jmp 0x5c247d
mov dword [esp + 0xac], ebx
mov dword [esp + 0xa8], ebp
mov dword [esp + 0x140], ecx
lea eax, [0x5e8520]
mov dword [esp], eax
call fcn.0040bd40
mov edi, dword [esp + 4]
mov eax, dword [esp + 0xa8]
mov dword [edi + 4], eax
mov eax, dword [esp + 0xac]
mov dword [edi + 8], eax
mov eax, dword [0x7c78f0]
test eax, eax
jne 0x5c2413
mov eax, dword [esp + 0x140]
mov dword [edi], eax
jmp 0x5c241f
mov eax, dword [esp + 0x140]
call fcn.00463730
lea eax, [0x661b20]
mov dword [esp + 0x4dc], eax
mov dword [esp + 0x4e0], edi
add esp, 0x4b4
ret
mov dword [esp + 0x4dc], 0
mov dword [esp + 0x4e0], 0
add esp, 0x4b4
ret
lea eax, [esp + 0x22c]
mov dword [esp], eax
call fcn.0040dbf0
mov eax, dword [esp + 0x4b8]
mov ecx, dword [esp + 0x4c0]
mov ecx, eax
mov edx, dword [esp + 0x4c0]
mov ebx, dword [esp + 0x22c]
test ebx, ebx
je 0x5c25c7
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
lea esi, [0x5e1fa0]
cmp ebp, esi
jne 0x5c278f
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
test edx, edx
je 0x5c24f9
mov dword [esp], 0
mov eax, dword [esp + 0x4bc]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
lea ecx, [0x6604c0]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebx
call fcn.0044dcb0
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x4b8]
mov edx, dword [esp + 0x4c0]
lea esi, [0x5e1fa0]
mov dword [esp + 0x134], ebp
mov eax, ecx
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x10]
mov edi, edx
mov edx, dword [ecx + 0xc]
mov esi, dword [ecx + 0x14]
mov ebp, dword [ecx + 0x10]
inc ebp
cmp esi, ebp
jae 0x5c258f
mov dword [esp + 0x94], ebx
mov dword [esp + 0x16c], ecx
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5e1fa0]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x16c]
mov dword [ebx + 0x14], edx
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x5c256c
mov dword [ebx + 0xc], eax
jmp 0x5c2574
lea edi, [ebx + 0xc]
call fcn.00463730
mov edi, dword [esp + 0x4c0]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x4b8]
mov ecx, ebx
mov ebx, dword [esp + 0x94]
mov dword [ecx + 0x10], ebp
lea ecx, [edx + ebp*8 - 4]
mov dword [ecx], ebx
lea ecx, [edx + ebp*8 - 8]
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x5c25b4
mov edx, dword [esp + 0x134]
mov dword [ecx], edx
jmp 0x5c2457
mov edi, ecx
mov eax, dword [esp + 0x134]
call fcn.00463730
jmp 0x5c2457
lea edi, [esp + 0x22c]
xor eax, eax
call fcn.00463954
lea ecx, [0x5e2e60]
mov dword [esp], ecx
lea ecx, [esp + 0x1d8]
mov dword [esp + 4], ecx
lea ecx, [esp + 0x22c]
mov dword [esp + 8], ecx
call fcn.0040d9c0
mov ecx, dword [esp + 0x4b8]
mov edx, dword [esp + 0x4c0]
jmp 0x5c262f
lea eax, [esp + 0x22c]
mov dword [esp], eax
call fcn.0040dbf0
mov eax, dword [esp + 0x4b8]
mov ecx, dword [esp + 0x4c0]
mov ecx, eax
mov edx, dword [esp + 0x4c0]
mov ebx, dword [esp + 0x22c]
test ebx, ebx
je 0x5c243a
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
lea esi, [0x5e1fa0]
cmp ebp, esi
jne 0x5c2779
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
test edx, edx
je 0x5c26ab
mov dword [esp], 0
mov eax, dword [esp + 0x4bc]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
lea ecx, [0x6604c0]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebx
call fcn.0044dcb0
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x4b8]
mov edx, dword [esp + 0x4c0]
lea esi, [0x5e1fa0]
mov dword [esp + 0x130], ebp
mov eax, ecx
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x10]
mov edi, edx
mov edx, dword [ecx + 0x18]
mov esi, dword [ecx + 0x20]
mov ebp, dword [ecx + 0x1c]
inc ebp
cmp esi, ebp
jae 0x5c2741
mov dword [esp + 0x90], ebx
mov dword [esp + 0x16c], ecx
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5e1fa0]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x16c]
mov dword [ebx + 0x20], edx
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x5c271e
mov dword [ebx + 0x18], eax
jmp 0x5c2726
lea edi, [ebx + 0x18]
call fcn.00463730
mov edi, dword [esp + 0x4c0]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x4b8]
mov ecx, ebx
mov ebx, dword [esp + 0x90]
mov dword [ecx + 0x1c], ebp
lea ecx, [edx + ebp*8 - 4]
mov dword [ecx], ebx
lea ecx, [edx + ebp*8 - 8]
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x5c2766
mov edx, dword [esp + 0x130]
mov dword [ecx], edx
jmp 0x5c2609
mov edi, ecx
mov eax, dword [esp + 0x130]
call fcn.00463730
jmp 0x5c2609
mov dword [esp], ebp
mov dword [esp + 4], esi
lea eax, [0x5e18e0]
mov dword [esp + 8], eax
call fcn.00409340
mov dword [esp], ebp
mov dword [esp + 4], esi
lea eax, [0x5e18e0]
mov dword [esp + 8], eax
call fcn.00409340
lea eax, [esp + 0x22c]
mov dword [esp], eax
call fcn.0040dbf0
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x88]
mov ecx, edx
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0x22c]
test ebx, ebx
je 0x5c288b
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
lea esi, [0x5e1fa0]
cmp ebp, esi
jne 0x5c2b8b
inc edx
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
cmp ecx, edx
jae 0x5c284f
mov dword [esp + 0xd8], ebx
mov dword [esp + 0x168], ebp
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], esi
call fcn.0044a1f0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x168]
lea esi, [0x5e1fa0]
mov dword [esp + 0x128], eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x88], ecx
lea esi, [eax + edx*8 - 4]
mov dword [esi], ebx
lea edi, [eax + edx*8 - 8]
mov ebx, dword [0x7c78f0]
test ebx, ebx
jne 0x5c287f
mov dword [edi], ebp
jmp 0x5c27a5
mov eax, ebp
call fcn.00463730
jmp 0x5c27a5
mov dword [esp + 0x164], eax
mov dword [esp + 0x80], edx
mov dword [esp + 0xbc], ecx
nop
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00409700
mov eax, dword [esp + 0xc]
lea ecx, [0x662360]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004900e0
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 8], eax
lea eax, [0x60b3fd]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
call fcn.004cf1b0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x168], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1d4], 0
mov edx, dword [esp + 0x4bc]
mov dword [esp], edx
mov ebx, dword [esp + 0x4c0]
mov dword [esp + 4], ebx
call fcn.00409680
mov eax, dword [esp + 8]
lea ecx, [0x5e1fa0]
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1cc], eax
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
call fcn.00409680
mov eax, dword [esp + 8]
lea ecx, [0x5e1fa0]
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], eax
lea eax, [0x6135c7]
mov dword [esp], eax
mov dword [esp + 4], 0x19
lea eax, [esp + 0x1c8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
test eax, eax
je 0x5c2ad6
lea eax, [0x661b20]
cmp edx, eax
jne 0x5c2ad6
mov edx, dword [ecx + 4]
mov ebx, dword [esp + 0xc0]
lea ebp, [edx + ebx]
mov ecx, dword [ecx]
mov esi, dword [esp + 0xc4]
cmp esi, ebp
jb 0x5c2a22
mov edi, dword [esp + 0x170]
jmp 0x5c2a7a
mov dword [esp + 0x174], ecx
mov dword [esp + 0xd8], edx
mov eax, dword [esp + 0x170]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
lea eax, [0x5e1fa0]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0xd8]
mov esi, ebx
mov edi, ecx
mov ecx, dword [esp + 0x174]
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0xf0], edi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x60], esi
lea eax, [0x5e1fa0]
mov dword [esp], eax
sub esi, ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
shl ebx, 3
sar esi, 0x1f
and ebx, esi
add ebx, edi
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xc0]
sub ebp, ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
call fcn.00410970
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0xf0]
jmp 0x5c2b72
mov eax, dword [ebx + 0x10]
mov dword [esp], ebp
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc0]
inc edx
mov ebx, dword [esp + 0xc4]
cmp ebx, edx
jb 0x5c2b02
mov ebp, dword [esp + 0x170]
jmp 0x5c2b55
mov dword [esp + 0x168], eax
mov dword [esp + 0xd8], ecx
mov eax, dword [esp + 0x170]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e1fa0]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x168]
mov ebp, ecx
mov ecx, dword [esp + 0xd8]
lea esi, [ebp + edx*8 - 4]
mov dword [esi], ecx
lea edi, [ebp + edx*8 - 8]
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x5c2b6d
mov dword [edi], eax
jmp 0x5c2b72
call fcn.00463730
xor eax, eax
mov edi, dword [esp + 0x4b8]
mov ecx, ebp
mov ebp, edx
mov edx, dword [esp + 0x144]
jmp 0x5c2376
mov dword [esp], ebp
mov dword [esp + 4], esi
lea eax, [0x5e18e0]
mov dword [esp + 8], eax
call fcn.00409340
lea eax, [esp + 0x22c]
mov dword [esp], eax
call fcn.0040dbf0
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x8c]
mov ecx, edx
mov eax, dword [esp + 0x12c]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x22c]
test ebx, ebx
je 0x5c2c87
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
lea esi, [0x5e1fa0]
cmp ebp, esi
jne 0x5c2f87
inc edx
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
cmp ecx, edx
jae 0x5c2c4b
mov dword [esp + 0x168], ebp
mov dword [esp + 0xd8], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], esi
call fcn.0044a1f0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x168]
lea esi, [0x5e1fa0]
mov dword [esp + 0x12c], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], ecx
lea esi, [eax + edx*8 - 4]
mov dword [esi], ebx
lea edi, [eax + edx*8 - 8]
mov ebx, dword [0x7c78f0]
test ebx, ebx
jne 0x5c2c7b
mov dword [edi], ebp
jmp 0x5c2ba1
mov eax, ebp
call fcn.00463730
jmp 0x5c2ba1
mov dword [esp + 0x160], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0xb8], ecx
nop
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00409700
mov eax, dword [esp + 0xc]
lea ecx, [0x662360]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004900e0
mov eax, dword [esp + 0x160]
mov dword [esp], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 8], eax
lea eax, [0x60b3fd]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
call fcn.004cf1b0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x168], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1d4], 0
mov edx, dword [esp + 0x4bc]
mov dword [esp], edx
mov ebx, dword [esp + 0x4c0]
mov dword [esp + 4], ebx
call fcn.00409680
mov eax, dword [esp + 8]
lea ecx, [0x5e1fa0]
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1cc], eax
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
call fcn.00409680
mov eax, dword [esp + 8]
lea ecx, [0x5e1fa0]
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], eax
lea eax, [0x6135ae]
mov dword [esp], eax
mov dword [esp + 4], 0x19
lea eax, [esp + 0x1c8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
test eax, eax
je 0x5c2ed2
lea eax, [0x661b20]
cmp edx, eax
jne 0x5c2ed2
mov edx, dword [ecx + 4]
mov ebx, dword [esp + 0xc8]
lea ebp, [edx + ebx]
mov ecx, dword [ecx]
mov esi, dword [esp + 0xcc]
cmp esi, ebp
jb 0x5c2e1e
mov edi, dword [esp + 0x174]
jmp 0x5c2e76
mov dword [esp + 0xd8], edx
mov dword [esp + 0x160], ecx
mov eax, dword [esp + 0x174]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
lea eax, [0x5e1fa0]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0xd8]
mov esi, ebx
mov edi, ecx
mov ecx, dword [esp + 0x160]
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x48], ebp
mov dword [esp + 0xf4], edi
mov dword [esp + 0x64], esi
lea eax, [0x5e1fa0]
mov dword [esp], eax
sub esi, ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
shl ebx, 3
sar esi, 0x1f
and ebx, esi
add ebx, edi
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xc8]
sub ebp, ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
call fcn.00410970
mov ebx, dword [esp + 0x64]
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0xf4]
jmp 0x5c2f6e
mov eax, dword [ebx + 0x10]
mov dword [esp], ebp
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc8]
inc edx
mov ebx, dword [esp + 0xcc]
cmp ebx, edx
jb 0x5c2efe
mov ebp, dword [esp + 0x174]
jmp 0x5c2f51
mov dword [esp + 0x168], eax
mov dword [esp + 0xd8], ecx
mov eax, dword [esp + 0x174]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e1fa0]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x168]
mov ebp, ecx
mov ecx, dword [esp + 0xd8]
lea esi, [ebp + edx*8 - 4]
mov dword [esi], ecx
lea edi, [ebp + edx*8 - 8]
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x5c2f69
mov dword [edi], eax
jmp 0x5c2f6e
call fcn.00463730
xor eax, eax
mov edi, dword [esp + 0x4b8]
mov ecx, ebp
mov ebp, edx
mov edx, dword [esp + 0x144]
jmp 0x5c22cf
mov dword [esp], ebp
mov dword [esp + 4], esi
lea eax, [0x5e18e0]
mov dword [esp + 8], eax
call fcn.00409340
lea eax, [esp + 0x22c]
mov dword [esp], eax
call fcn.0040dbf0
mov ecx, dword [esp + 0x22c]
test ecx, ecx
je 0x5c3113
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [esp + 0x18c], edx
mov dword [esp + 0x190], eax
test edx, edx
je 0x5c3039
nop
movzx ecx, byte [0x7a1de0]
test cl, cl
je 0x5c3001
mov dword [0x7a1de4], edx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x5c2ff6
mov dword [0x7a1de8], eax
jmp 0x5c3001
lea edi, [0x7a1de8]
call fcn.00463730
mov dword [esp + 0x194], edx
mov dword [esp + 0x198], eax
mov ecx, dword [esp + 0x194]
test ecx, ecx
je 0x5c3031
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x5c303f
or edx, 0x80
jmp 0x5c303f
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x5c303f
xor edx, edx
xor ecx, ecx
xor eax, eax
mov ebx, dword [esp + 0x4c4]
mov dword [esp], ebx
mov ebp, dword [esp + 0x4c8]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x4cc]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004bce60
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov byte [esp + 0xc], 1
call fcn.004bc5d0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x168], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x1b8], eax
lea edx, [0x5e2e20]
mov dword [esp], edx
mov ebx, dword [esp + 0x11c]
mov dword [esp + 4], ebx
lea ebp, [esp + 0x18c]
mov dword [esp + 8], ebp
call fcn.0040d140
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x15c]
mov dword [eax], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x5c30ff
mov ecx, dword [esp + 0x168]
mov dword [eax + 4], ecx
jmp 0x5c2f9d
lea edi, [eax + 4]
mov eax, dword [esp + 0x168]
call fcn.00463730
jmp 0x5c2f9d
mov eax, dword [esp + 0x118]
mov ecx, dword [eax + 0x38]
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x34]
mov ebx, dword [esp + 0x4b8]
mov dword [esp], ebx
mov ebp, dword [esp + 0x4bc]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x4c0]
mov dword [esp + 8], esi
lea edi, [0x5e2e20]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x11c]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.005bc9e0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
test eax, eax
je 0x5c3311
test ecx, ecx
je 0x5c3273
lea ecx, [0x661b20]
cmp ebx, ecx
jne 0x5c3273
mov eax, dword [edx + 4]
mov ebx, dword [esp + 0xa8]
lea ebp, [eax + ebx]
mov edx, dword [edx]
mov esi, dword [esp + 0xac]
cmp esi, ebp
jb 0x5c31be
mov edi, dword [esp + 0x140]
jmp 0x5c3216
mov dword [esp + 0xd8], eax
mov dword [esp + 0x158], edx
mov ecx, dword [esp + 0x140]
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
lea ecx, [0x5e1fa0]
mov dword [esp + 0x10], ecx
call fcn.0044a1f0
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0x158]
mov esi, ebx
mov edi, ecx
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x68], esi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0xf8], edi
lea ecx, [0x5e1fa0]
mov dword [esp], ecx
sub esi, ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
shl ebx, 3
sar esi, 0x1f
and esi, ebx
lea ebx, [edi + esi]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xa8]
sub ebp, ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
call fcn.00410970
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0xf8]
jmp 0x5c3326
mov eax, dword [eax + 0x10]
mov dword [esp], ebp
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xa8]
inc edx
mov ebx, dword [esp + 0xac]
cmp ebx, edx
jb 0x5c329f
mov ebp, dword [esp + 0x140]
jmp 0x5c32f2
mov dword [esp + 0x168], eax
mov dword [esp + 0xd8], ecx
mov eax, dword [esp + 0x140]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e1fa0]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x168]
mov ebp, ecx
mov ecx, dword [esp + 0xd8]
lea esi, [ebp + edx*8 - 4]
mov dword [esi], ecx
lea edi, [ebp + edx*8 - 8]
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x5c330a
mov dword [edi], eax
jmp 0x5c3326
call fcn.00463730
jmp 0x5c3326
mov ebx, dword [esp + 0xac]
mov edx, dword [esp + 0xa8]
mov ebp, dword [esp + 0x140]
xor eax, eax
mov ecx, ebp
mov ebp, edx
xor edx, edx
jmp 0x5c220b
lea eax, [esp + 0x25c]
mov dword [esp], eax
call fcn.0040dbf0
mov ecx, dword [esp + 0x25c]
test ecx, ecx
je 0x5c1d76
mov eax, dword [ecx]
mov dword [esp + 0x154], eax
mov edx, dword [ecx + 4]
mov dword [esp + 0x150], edx
mov ecx, dword [ecx + 8]
mov dword [esp + 0xb4], ecx
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov byte [esp + 0xc], 1
call fcn.004bc5d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x1b8], edx
lea edx, [0x5e1fa0]
cmp ecx, edx
jne 0x5c33ae
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x5c33b8
mov eax, 0
mov ecx, 0
jne 0x5c3333
mov ebx, dword [esp + 0x4b8]
mov ebp, dword [ebx]
mov edx, dword [ebp + 0x28]
mov ebp, dword [edx]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xc], ecx
call ebp
movzx eax, byte [esp + 0x10]
test al, al
je 0x5c3333
jmp 0x5c1d0d
lea eax, [0x5e1fa0]
mov dword [esp], eax
lea eax, [0x66141c]
mov dword [esp + 4], eax
call fcn.00435720
xor eax, eax
mov ecx, eax
call fcn.004637b0
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x98]
inc eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x7c], ebx
mov ebx, ecx
mov dword [esp + 0xa0], edi
mov edi, dword [esp + 0x138]
mov dword [esp + 0xac], edx
mov dword [esp + 0xa8], ebp
mov dword [esp + 0x158], esi
mov esi, dword [esp + 0x104]
mov edx, dword [esp + 0x114]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x114], edx
mov dword [esp + 0x138], edi
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x64]
mov dword [esp], esi
call ecx
mov eax, dword [esp + 0x98]
cmp dword [esp + 4], eax
jle 0x5c1953
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx + 0x2c]
mov ebx, dword [esp + 0x104]
mov dword [esp], ebx
mov dword [esp + 4], eax
call edx
lea edi, [esp + 0x28c]
lea esi, [esp + 8]
call fcn.00463dee
mov eax, dword [esp + 0x184]
mov dword [esp], eax
mov ecx, dword [esp + 0x188]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xd0]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x98]
mov dword [esp + 0xc], ebx
call fcn.004bc330
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, edx
and edx, 0x1f
cmp edx, 0x16
jne 0x5c3582
mov dword [esp + 0xb4], ebx
mov dword [esp + 0x180], ecx
mov dword [esp + 0x154], eax
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.004bc180
mov eax, dword [esp + 0x14]
and eax, 0x1f
cmp eax, 0x19
je 0x5c354f
mov ebx, dword [esp + 0xb4]
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x180]
jmp 0x5c3582
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
call fcn.004bc180
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x110], ecx
mov dword [esp + 0x10c], eax
mov edx, dword [esp + 0x4b8]
mov ebp, dword [edx]
movzx esi, byte [ebp + 0xc]
xchg esi, eax
test al, al
xchg esi, eax
je 0x5c35bc
nop
mov esi, ebx
and ebx, 0x1f
cmp ebx, 0x19
jne 0x5c35be
movzx ebx, byte [esp + 0x2bc]
jmp 0x5c35c0
mov esi, ebx
xor ebx, ebx
mov byte [esp + 0x3f], bl
mov eax, dword [esp + 0x2a4]
mov ecx, dword [esp + 0x2a8]
mov edx, dword [ebp + 0x1c]
mov ebp, dword [ebp + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
call fcn.004b6210
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x60b3d5]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0xffffffff
call fcn.004cef80
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
cmp eax, 1
jb 0x5c3c17
dec ecx
neg ecx
sar ecx, 0x1f
and ecx, 8
add ecx, edx
lea edx, [eax - 1]
xor eax, eax
jmp 0x5c3bcd
mov eax, 1
xor ecx, ecx
jmp 0x5c3668
movzx eax, byte [esp + 0x3f]
mov ecx, 1
jmp 0x5c3668
movzx eax, byte [esp + 0x3f]
xor ecx, ecx
test al, al
je 0x5c39bc
nop
mov ecx, dword [esp + 0x74]
mov edx, ecx
and ecx, 0x1f
cmp ecx, 0x19
jne 0x5c373f
mov ecx, dword [esp + 0x78]
inc ecx
mov ebx, dword [esp + 0x7c]
cmp ebx, ecx
jb 0x5c3699
mov eax, dword [esp + 0x114]
jmp 0x5c36d6
mov eax, dword [esp + 0x114]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x60ad60]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ebx, eax
mov eax, edx
mov edx, dword [esp + 0x74]
lea ebp, [ecx + ecx*2]
mov dword [eax + ebp*4 - 4], edx
mov edx, dword [0x7c78f0]
lea edi, [eax + ebp*4 - 0xc]
lea esi, [eax + ebp*4 - 8]
test edx, edx
jne 0x5c3707
mov edx, dword [esp + 0x10c]
mov dword [eax + ebp*4 - 0xc], edx
mov edx, dword [esp + 0x110]
mov dword [eax + ebp*4 - 8], edx
jmp 0x5c3725
mov edx, eax
mov eax, dword [esp + 0x10c]
call fcn.00463730
mov edi, esi
mov eax, dword [esp + 0x110]
call fcn.00463730
mov eax, edx
mov edx, dword [esp + 0xac]
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0x158]
jmp 0x5c39b0
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1d4], 0
mov eax, dword [esp + 0x28c]
mov ecx, dword [esp + 0x290]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409680
mov eax, dword [esp + 8]
lea ecx, [0x5e1fa0]
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1cc], eax
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call fcn.00409570
mov eax, dword [esp + 4]
lea ecx, [0x5e4380]
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], eax
lea eax, [0x618129]
mov dword [esp], eax
mov dword [esp + 4], 0x23
lea edx, [esp + 0x1c8]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
test eax, eax
je 0x5c38fd
lea eax, [0x661b20]
cmp edx, eax
jne 0x5c38fd
mov edx, dword [ecx + 4]
mov ebx, dword [esp + 0xa8]
lea ebp, [edx + ebx]
mov ecx, dword [ecx]
mov esi, dword [esp + 0xac]
cmp esi, ebp
jb 0x5c3849
mov edi, dword [esp + 0x158]
jmp 0x5c38a1
mov dword [esp + 0xd8], edx
mov dword [esp + 0x14c], ecx
mov eax, dword [esp + 0x158]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
lea eax, [0x5e1fa0]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xd8]
mov ebx, dword [esp + 0xa8]
mov esi, ecx
mov edi, eax
mov ecx, dword [esp + 0x14c]
mov dword [esp + 0x100], edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x54], ebp
lea eax, [0x5e1fa0]
mov dword [esp], eax
sub esi, ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
shl ebx, 3
sar esi, 0x1f
and ebx, esi
add ebx, edi
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xa8]
sub ebp, ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
call fcn.00410970
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x100]
jmp 0x5c399b
mov eax, dword [ebx + 0x10]
mov dword [esp], ebp
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xa8]
inc edx
mov ebx, dword [esp + 0xac]
cmp ebx, edx
jb 0x5c3929
mov ebp, dword [esp + 0x158]
jmp 0x5c397e
mov dword [esp + 0x168], eax
mov dword [esp + 0xd8], ecx
mov eax, dword [esp + 0x158]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5e1fa0]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebp, eax
mov ebx, ecx
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0xd8]
lea esi, [ebp + edx*8 - 4]
mov dword [esi], ecx
lea edi, [ebp + edx*8 - 8]
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x5c3996
mov dword [edi], eax
jmp 0x5c399b
call fcn.00463730
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x114]
mov esi, ebp
mov ebp, edx
mov edx, ebx
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0xa0]
jmp 0x5c341e
test cl, cl
jne 0x5c3ad6
lea edi, [esp + 0x370]
xor eax, eax
call fcn.00463950
lea edi, [esp + 0x370]
lea esi, [esp + 0x28c]
call fcn.00463dee
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0x3a4], ecx
mov ecx, dword [esp + 0x110]
mov dword [esp + 0x3a8], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x3ac], ecx
mov ecx, dword [esp + 0x9c]
inc ecx
mov edx, dword [esp + 0xa0]
cmp edx, ecx
jb 0x5c3a2a
mov edi, dword [esp + 0x138]
mov eax, edx
jmp 0x5c3a5f
mov eax, dword [esp + 0x138]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5ec1a0]
mov dword [esp + 0x10], eax
call fcn.0044a1f0
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x9c], ecx
mov edx, dword [0x7c78f0]
lea ebx, [ecx - 1]
shl ebx, 6
add ebx, edi
test edx, edx
jne 0x5c3a8a
lea esi, [esp + 0x370]
mov edx, edi
mov edi, ebx
call fcn.00463dd0
jmp 0x5c3ac3
mov dword [esp + 0x148], edi
mov dword [esp + 0xb0], eax
lea eax, [0x5ec1a0]
mov dword [esp], eax
mov dword [esp + 4], ebx
lea eax, [esp + 0x370]
mov dword [esp + 8], eax
call fcn.00410860
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x148]
mov ecx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x118]
jmp 0x5c3b8c
lea eax, [0x5ec1a0]
mov dword [esp], eax
call fcn.0040bd40
mov edi, dword [esp + 4]
mov dword [esp + 0x118], edi
mov eax, dword [0x7c78f0]
test eax, eax
jne 0x5c3b07
lea esi, [esp + 0x28c]
call fcn.00463dee
jmp 0x5c3b24
lea eax, [0x5fd120]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x28c]
mov dword [esp + 8], eax
call fcn.00410860
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x118]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x5c3b52
mov eax, dword [esp + 0x10c]
mov dword [edx + 0x34], eax
mov eax, dword [esp + 0x110]
mov dword [edx + 0x38], eax
jmp 0x5c3b70
lea edi, [edx + 0x34]
mov eax, dword [esp + 0x10c]
call fcn.00463730
lea edi, [edx + 0x38]
mov eax, dword [esp + 0x110]
call fcn.00463730
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x138]
mov ebx, dword [esp + 0x118]
mov edi, eax
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x138], edx
mov dword [esp + 0x118], ebx
mov edx, dword [esp + 0xac]
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x114]
jmp 0x5c341e
inc eax
cmp eax, edx
jge 0x5c3661
lea ebx, [ecx + eax*8]
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
cmp ebx, 6
jne 0x5c3bcc
cmp dword [ebp], 0x61757173
jne 0x5c3bfc
cmp word [ebp + 4], 0x6873
je 0x5c364c
cmp ebx, 6
jmp 0x5c3bff
cmp ebx, 6
jne 0x5c3bcc
cmp dword [ebp], 0x616d6572
jne 0x5c3bcc
cmp word [ebp + 4], 0x6e69
jne 0x5c3bcc
jmp 0x5c3655
mov eax, 1
xor ecx, ecx
call fcn.00463810
nop
call fcn.00462320
jmp fcn.005c1520