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

Disassembly:
mov ecx, dword [0x6c4e70]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x138]
cmp eax, dword [ecx + 8]
jbe 0x4c3e3d
sub esp, 0x1b8
mov eax, dword [esp + 0x1c0]
mov dword [esp], eax
mov ecx, dword [esp + 0x1c4]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x1c8]
mov dword [esp + 8], edx
mov byte [esp + 0xc], 0
call fcn.004c1470
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test eax, eax
jne 0x4c277a
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4c22c8
mov eax, dword [esp + 0x1c8]
test eax, eax
je 0x4c21c8
test eax, 0x200
jne 0x4c21c8
lea eax, [0x5c13b8]
mov ecx, dword [esp + 0x1c0]
jmp 0x4c21ee
mov ecx, dword [esp + 0x1c0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x1c4]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0048a890
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x110], ecx
mov dword [esp + 0x34], eax
lea edx, [0x572c20]
mov dword [esp], edx
call fcn.0040bd30
mov eax, dword [esp + 4]
mov dword [eax + 4], 6
lea ecx, [0x586a25]
mov dword [eax], ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 8], ecx
mov ecx, dword [0x6c4f80]
test ecx, ecx
jne 0x4c2234
mov ecx, dword [esp + 0x110]
jmp 0x4c2242
call fcn.00460ef0
mov ecx, dword [esp + 0x110]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x1bc]
mov edx, dword [ecx + 0xc]
mov dword [eax + 0x10], edx
sar edx, 0x1f
mov dword [eax + 0x14], edx
mov edx, dword [ecx + 0x3c]
test edx, edx
jne 0x4c22a3
mov dword [esp], ecx
lea edx, [0x5c05b4]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004c0db0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1bc]
mov dword [edx + 0x3c], eax
mov eax, dword [0x6c4f80]
test eax, eax
je 0x4c229e
call fcn.00460f00
mov dword [edi], ecx
mov eax, dword [edx + 0x40]
mov dword [edi + 4], eax
mov dword [edx + 0x40], ecx
mov ecx, edx
mov dword [esp], ecx
call fcn.004c0ec0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
add esp, 0x1b8
ret
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x164], edx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x160], ebx
test ecx, ecx
je 0x4c22ff
test ecx, 0x200
jne 0x4c22ff
mov eax, ebx
lea ebp, [0x5c13b8]
jmp 0x4c232e
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0048a890
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x164]
mov ebp, eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x30], ebp
mov esi, ecx
and ecx, 0x1f
mov dword [esp + 0x9c], ecx
nop
cmp ecx, 0x14
je 0x4c234f
xor edi, edi
jmp 0x4c2391
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], esi
call fcn.00489450
mov eax, dword [esp + 0xc]
test eax, eax
sete al
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x164]
mov ebx, dword [esp + 0x10c]
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0xa0]
mov edi, eax
mov eax, dword [esp + 0x160]
xchg edi, eax
test al, al
xchg edi, eax
jne 0x4c26d6
lea edi, [esp + 0x1a4]
xor eax, eax
call fcn.004610eb
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x15
je 0x4c24bc
cmp ecx, 0x19
jne 0x4c23ed
mov dword [esp], ebp
mov dword [esp + 4], ebx
call fcn.004ce450
lea edi, [esp + 0x1a4]
lea esi, [esp + 8]
call fcn.004615ce
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x164]
jmp 0x4c25cd
lea eax, [0x572c20]
mov dword [esp], eax
call fcn.0040bd30
mov eax, dword [esp + 4]
mov dword [eax + 4], 6
lea ecx, [0x586a25]
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 8], ecx
mov ecx, dword [0x6c4f80]
test ecx, ecx
jne 0x4c2428
mov ecx, dword [esp + 0x10c]
jmp 0x4c2436
call fcn.00460ef0
mov ecx, dword [esp + 0x10c]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x1bc]
mov edx, dword [ecx + 0xc]
mov dword [eax + 0x10], edx
sar edx, 0x1f
mov dword [eax + 0x14], edx
mov edx, dword [ecx + 0x3c]
test edx, edx
jne 0x4c2497
mov dword [esp], ecx
lea edx, [0x5c05b4]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004c0db0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1bc]
mov dword [edx + 0x3c], eax
mov eax, dword [0x6c4f80]
test eax, eax
je 0x4c2492
call fcn.00460f00
mov dword [edi], ecx
mov eax, dword [edx + 0x40]
mov dword [edi + 4], eax
mov dword [edx + 0x40], ecx
mov ecx, edx
mov dword [esp], ecx
call fcn.004c0ec0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
add esp, 0x1b8
ret
mov eax, dword [ebp + 0x4c]
mov dword [esp], ebx
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]
lea ecx, [eax - 2]
cmp ecx, 0xa
jbe 0x4c2543
cmp eax, 0x18
je 0x4c2543
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x4c]
mov edx, dword [esp + 0x10c]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
lea ecx, [0x5c13b8]
cmp eax, ecx
jne 0x4c3e20
mov eax, dword [esp + 8]
mov dword [esp], eax
call fcn.00482380
mov eax, dword [0x69fee8]
mov ecx, dword [0x69feec]
mov edx, dword [esp + 4]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00482640
movzx eax, byte [esp + 0xc]
test al, al
je 0x4c2607
mov ecx, dword [esp + 0xa0]
test ecx, 0x200
je 0x4c255b
mov ebx, dword [esp + 0x164]
jmp 0x4c25cd
test ecx, 0x80
je 0x4c256e
mov ebx, dword [esp + 0x164]
mov edx, dword [ebx]
jmp 0x4c2577
mov ebx, dword [esp + 0x164]
mov edx, ebx
test edx, edx
jne 0x4c25cd
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov ecx, dword [esp + 0x10c]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
call fcn.0048b1e0
mov eax, dword [esp + 0x160]
mov dword [esp], eax
mov ecx, dword [esp + 0x164]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp + 8], edx
call fcn.00489770
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x164]
lea edi, [esp + 0x190]
xor eax, eax
call fcn.004610eb
mov ecx, dword [esp + 0x1bc]
mov esi, dword [ecx + 0x38]
test esi, esi
je 0x4c25fc
lea edi, [esp + 0x190]
call fcn.004615ce
mov ecx, dword [esp + 0x1bc]
xor edx, edx
xor ebp, ebp
xor esi, esi
jmp 0x4c282d
lea eax, [0x572c20]
mov dword [esp], eax
call fcn.0040bd30
mov eax, dword [esp + 4]
mov dword [eax + 4], 6
lea ecx, [0x586a25]
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 8], ecx
mov ecx, dword [0x6c4f80]
test ecx, ecx
jne 0x4c2642
mov ecx, dword [esp + 0x10c]
jmp 0x4c2650
call fcn.00460ef0
mov ecx, dword [esp + 0x10c]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x1bc]
mov edx, dword [ecx + 0xc]
mov dword [eax + 0x10], edx
sar edx, 0x1f
mov dword [eax + 0x14], edx
mov edx, dword [ecx + 0x3c]
test edx, edx
jne 0x4c26b1
mov dword [esp], ecx
lea edx, [0x5c05b4]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004c0db0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1bc]
mov dword [edx + 0x3c], eax
mov eax, dword [0x6c4f80]
test eax, eax
je 0x4c26ac
call fcn.00460f00
mov dword [edi], ecx
mov eax, dword [edx + 0x40]
mov dword [edi + 4], eax
mov dword [edx + 0x40], ecx
mov ecx, edx
mov dword [esp], ecx
call fcn.004c0ec0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
add esp, 0x1b8
ret
mov eax, dword [esp + 0x1bc]
mov dword [esp], eax
call fcn.004c6ac0
mov eax, dword [esp + 4]
lea ecx, [0x5625a0]
mov dword [esp + 0x180], ecx
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x180]
test eax, eax
je 0x4c2726
movzx ecx, byte [eax + 0xf]
nop
mov edx, ecx
and ecx, 0x1f
test dl, 0x20
jne 0x4c271d
or ecx, 0x80
mov edx, dword [esp + 0x184]
jmp 0x4c272c
xor ecx, ecx
xor eax, eax
xor edx, edx
mov ebx, dword [esp + 0x160]
mov dword [esp], ebx
mov ebx, dword [esp + 0x164]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call fcn.00489770
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
add esp, 0x1b8
ret
mov dword [esp + 0x38], eax
mov dword [esp + 0x114], ecx
nop
mov eax, dword [esp + 0x1bc]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x98], ecx
mov dword [esp], eax
call fcn.004c0ec0
mov eax, dword [esp + 0x1bc]
mov edx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
cmp edx, ecx
jb 0x4c2814
mov ebx, dword [esp + 0x98]
lea ebp, [ebx - 1]
cmp ecx, ebp
jb 0x4c280d
mov esi, dword [esp + 0x38]
mov esi, dword [esi + 0x10]
mov eax, dword [eax]
mov edi, dword [esp + 0x114]
mov dword [esp], edi
sub edx, ebx
sub ecx, ebx
inc edx
mov ebx, edx
neg edx
inc ecx
sar edx, 0x1f
and ebp, edx
add eax, ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
call esi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
add esp, 0x1b8
ret
mov eax, ebp
call fcn.00460fc0
call fcn.00460fa0
mov ecx, eax
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x128]
mov esi, dword [esp + 0x12c]
mov dword [esp + 0x58], edx
mov dword [esp + 0x12c], esi
mov dword [esp + 0x128], ebp
mov dword [esp], ecx
mov dword [esp + 4], 9
call fcn.004c0fe0
mov eax, dword [esp + 0x1bc]
mov ecx, dword [eax + 0x10]
cmp ecx, 5
je 0x4c3849
cmp ecx, 1
jne 0x4c3e08
nop
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x98], ecx
mov dword [esp], eax
call fcn.004c10a0
mov eax, dword [esp + 0x1bc]
mov edx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
lea ebx, [ecx - 1]
cmp edx, ebx
jb 0x4c3e01
mov ebp, dword [esp + 0x98]
lea esi, [ebp - 1]
cmp ebx, esi
jb 0x4c3df8
mov ebx, dword [eax]
sub ecx, ebp
mov dword [esp + 0x68], ecx
sub edx, ebp
inc edx
mov dword [esp + 0x6c], edx
mov edi, edx
neg edx
sar edx, 0x1f
and esi, edx
lea edx, [ebx + esi]
mov dword [esp + 0x138], edx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.004c7000
movzx eax, byte [esp + 0x18]
test al, al
je 0x4c3de0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x134], edx
mov ebx, dword [esp + 0x9c]
cmp ebx, 0x15
jne 0x4c29a8
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x28]
mov edx, dword [esp + 0x10c]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4c295f
mov ecx, dword [esp + 0x128]
mov dword [esp], ecx
mov edx, dword [esp + 0x12c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00488640
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x128]
mov esi, dword [esp + 0x12c]
jmp 0x4c299b
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0048b360
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00487840
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
xor ecx, ecx
mov eax, edx
mov ebx, ebp
mov edi, esi
jmp 0x4c2b9d
mov ecx, dword [esp + 0x1b0]
lea ebx, [0x562720]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
call fcn.0040f5b0
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
test eax, eax
jne 0x4c2a4a
lea edi, [esp + 0xac]
xor eax, eax
call fcn.004610e8
lea ecx, [esp + 0xac]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0x20
mov ecx, dword [esp + 0x134]
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x10], edx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x14], ebx
call fcn.004ce5e0
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea ebp, [0x562720]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.0040f5b0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
test eax, eax
je 0x4c2a9a
mov dword [esp + 0x13c], eax
movzx ebp, byte [eax + 0x3d]
xchg ebp, eax
mov byte [esp + 0x2f], al
xchg ebp, eax
mov esi, dword [eax + 0x28]
mov dword [esp + 0x15c], esi
mov edi, dword [eax + 0x2c]
mov dword [esp + 0x94], edi
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x160]
mov edx, dword [esp + 0x164]
mov dword [esp + 0xa4], eax
xor eax, eax
mov dword [esp + 0x78], eax
jmp 0x4c3a15
mov eax, dword [esp + 0x1bc]
movzx ecx, byte [eax + 0x45]
test cl, cl
je 0x4c2b7f
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], 0
mov eax, dword [esp + 0x134]
mov dword [esp], eax
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x64]
mov dword [esp + 8], edx
call fcn.00409600
mov eax, dword [esp + 0xc]
lea ecx, [0x55a480]
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], eax
lea eax, [0x58b475]
mov dword [esp], eax
mov dword [esp + 4], 0x16
lea edx, [esp + 0x188]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004adf70
mov eax, dword [esp + 0x1bc]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x4c2b7f
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004c0db0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1bc]
mov dword [edx + 0x3c], eax
mov eax, dword [0x6c4f80]
test eax, eax
je 0x4c2b7a
call fcn.00460f00
mov dword [edi], ecx
mov eax, dword [edx + 0x40]
mov dword [edi + 4], eax
mov dword [edx + 0x40], ecx
mov eax, edx
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
mov esi, dword [esp + 0x12c]
mov eax, edx
mov edi, ebp
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x128]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x12c], esi
mov dword [esp + 0x128], ebp
mov dword [esp + 0x11c], edi
mov dword [esp + 0x118], ebx
mov byte [esp + 0x2f], cl
mov edx, dword [esp + 0x1bc]
cmp dword [edx + 0x10], 9
jne 0x4c2c0e
mov dword [esp], edx
mov dword [esp + 4], 9
call fcn.004c0fe0
mov eax, dword [esp + 0x3c]
movzx ecx, byte [esp + 0x2f]
mov edx, dword [esp + 0x1bc]
mov ebx, dword [esp + 0x118]
mov ebp, dword [esp + 0x128]
mov esi, dword [esp + 0x12c]
mov edi, dword [esp + 0x11c]
cmp dword [edx + 0x10], 3
jne 0x4c39b3
mov dword [esp], edx
mov dword [esp + 4], 9
call fcn.004c0fe0
movzx eax, byte [esp + 0x2f]
test al, al
je 0x4c2eac
mov eax, dword [esp + 0x1bc]
mov dword [esp], eax
call fcn.004c13b0
mov eax, dword [esp + 4]
test eax, eax
je 0x4c2e36
cmp dword [eax + 8], 0x778cdb8
jne 0x4c2cff
mov eax, dword [esp + 4]
lea ecx, [0x560820]
cmp eax, ecx
jne 0x4c2d05
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044d3e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1bc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x118]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x18], edx
mov byte [esp + 0x1c], 1
call fcn.004c4030
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4c3866
mov eax, dword [esp + 0x9c]
cmp eax, 0x15
mov eax, dword [esp + 0x1bc]
mov ebx, dword [esp + 0x9c]
jmp 0x4c2efd
lea ecx, [0x560820]
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4c2d23
test eax, 0x200
jne 0x4c2d23
lea edx, [0x5c13b8]
mov ebx, dword [esp + 0x118]
jmp 0x4c2d55
mov ecx, dword [esp + 0x118]
mov dword [esp], ecx
mov edx, dword [esp + 0x11c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0048a890
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
lea ecx, [0x560820]
mov edx, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], 0
test edx, edx
je 0x4c2d72
mov edx, dword [edx + 4]
mov dword [esp + 0x188], edx
mov dword [esp + 0x18c], ebx
lea eax, [0x5946c0]
mov dword [esp], eax
mov dword [esp + 4], 0x53
lea ecx, [esp + 0x188]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004adf70
mov eax, dword [esp + 0x1bc]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x4c2dce
mov ebx, dword [esp + 0x9c]
cmp ebx, 0x15
jmp 0x4c2efd
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004c0db0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1bc]
mov dword [edx + 0x3c], eax
mov eax, dword [0x6c4f80]
test eax, eax
jne 0x4c2e0e
mov eax, dword [esp + 0x9c]
cmp eax, 0x15
jmp 0x4c2e25
call fcn.00460f00
mov dword [edi], ecx
mov eax, dword [edx + 0x40]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x9c]
cmp eax, 0x15
mov dword [edx + 0x40], ecx
mov eax, edx
mov ebx, dword [esp + 0x9c]
jmp 0x4c2efd
mov eax, dword [0x69abf0]
mov ecx, dword [0x69abf4]
mov edx, dword [0x69abf8]
mov ebx, dword [esp + 0x1bc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x118]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x18], edx
mov byte [esp + 0x1c], 0
call fcn.004c4030
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4c3883
mov eax, dword [esp + 0x9c]
cmp eax, 0x15
mov eax, dword [esp + 0x1bc]
mov ebx, dword [esp + 0x9c]
jmp 0x4c2efd
mov eax, dword [esp + 0x1bc]
mov dword [esp], eax
mov ecx, dword [esp + 0x118]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x11c]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0xc], ebx
call fcn.004c11f0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4c38bd
mov eax, dword [esp + 0x9c]
cmp eax, 0x15
mov eax, dword [esp + 0x1bc]
mov ebx, dword [esp + 0x9c]
jne 0x4c37c6
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x4c]
mov edx, dword [esp + 0x10c]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
lea edx, [0x5c13b8]
cmp eax, edx
jne 0x4c3997
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x158], eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
mov dword [esp + 0x130], ecx
mov dword [esp], eax
call fcn.00482380
mov eax, dword [0x69fee8]
mov ecx, dword [0x69feec]
mov edx, dword [esp + 4]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00482640
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4c36ad
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0x50]
mov edx, dword [esp + 0x130]
mov dword [esp], edx
call ecx
cmp dword [esp + 4], 0x18
jne 0x4c303c
mov eax, dword [esp + 0x134]
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
call fcn.00409600
mov eax, dword [esp + 0xc]
lea ecx, [0x55a480]
mov dword [esp + 0x178], ecx
mov dword [esp + 0x17c], eax
mov edx, dword [esp + 0x178]
test edx, edx
je 0x4c2ff4
movzx ebx, byte [edx + 0xf]
nop
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x4c2ffa
or ebx, 0x80
jmp 0x4c2ffa
xor ebx, ebx
xor edx, edx
xor eax, eax
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x158]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x10], eax
call fcn.0048b6e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, ecx
mov ecx, eax
mov eax, dword [esp + 0x1bc]
jmp 0x4c3765
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x50]
mov ecx, dword [esp + 0x130]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
lea ecx, [eax - 2]
cmp ecx, 4
jbe 0x4c3377
add eax, 0xfffffff9
cmp eax, 5
ja 0x4c397f
lea eax, [esp + 0xcc]
mov dword [esp], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
call fcn.0044d240
mov eax, dword [esp + 0xc]
mov dword [esp + 0x120], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0x40
call fcn.0046d480
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test eax, eax
je 0x4c30d6
mov ebx, 1
jmp 0x4c31ca
mov dword [esp + 0x54], ecx
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x158]
mov dword [esp], eax
mov ecx, dword [esp + 0x130]
mov dword [esp + 4], ecx
call fcn.0048b280
mov eax, dword [esp + 0x10]
and eax, 0x1f
lea ecx, [eax - 7]
cmp ecx, 5
ja 0x4c393b
mov eax, dword [esp + 8]
mov eax, dword [eax]
shl eax, 3
lea ecx, [eax - 0x40]
neg ecx
mov eax, dword [esp + 0x48]
mov edx, eax
shl eax, cl
mov ebx, dword [esp + 0x54]
shl ebx, cl
lea esi, [ecx - 0x20]
mov edi, ecx
mov ecx, esi
shl edx, cl
neg ecx
mov dword [esp + 0x90], ecx
mov ebp, dword [esp + 0x48]
shr ebp, cl
mov dword [esp + 0x8c], ebp
cmp edi, 0x20
sbb ebp, ebp
mov dword [esp + 0x88], ebp
and eax, ebp
and ebx, ebp
mov ecx, edi
shr eax, cl
and eax, ebp
mov dword [esp + 0x84], eax
cmp esi, 0x20
sbb eax, eax
and edx, eax
mov ebp, dword [esp + 0x90]
cmp ebp, 0x20
sbb ebp, ebp
mov edi, dword [esp + 0x8c]
and edi, ebp
or edi, ebx
or edi, edx
mov edx, ecx
mov ecx, esi
mov ebx, edi
shr edi, cl
and edi, eax
mov ecx, edx
mov eax, ebx
shr ebx, cl
mov edx, dword [esp + 0x88]
and ebx, edx
mov ecx, dword [esp + 0x90]
shl eax, cl
and eax, ebp
mov edx, dword [esp + 0x84]
or edx, eax
or edx, edi
mov eax, dword [esp + 0x54]
cmp eax, ebx
setne bl
mov ebp, dword [esp + 0x48]
cmp ebp, edx
setne dl
or ebx, edx
mov ecx, eax
mov edx, ebp
test bl, bl
je 0x4c32e7
lea eax, [0x572c20]
mov dword [esp], eax
call fcn.0040bd30
mov eax, dword [esp + 4]
mov dword [esp + 0x154], eax
mov dword [esp], 0
lea ecx, [0x586e4f]
mov dword [esp + 4], ecx
mov dword [esp + 8], 7
mov edx, dword [esp + 0x120]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x10], edx
call fcn.0044cfa0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x154]
mov dword [edx + 4], eax
mov eax, dword [0x6c4f80]
test eax, eax
je 0x4c3244
call fcn.00460f00
mov dword [edi], ecx
mov eax, dword [edx]
mov dword [edi + 4], eax
mov dword [edx], ecx
mov eax, dword [esp + 0x158]
mov dword [edx + 8], eax
mov eax, dword [0x6c4f80]
test eax, eax
jne 0x4c3263
mov eax, dword [esp + 0x130]
jmp 0x4c3277
call fcn.00460f00
mov eax, dword [esp + 0x130]
mov dword [edi], eax
mov ebx, dword [edx + 0xc]
mov dword [edi + 4], ebx
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x98]
mov dword [edx + 0x10], eax
sar eax, 0x1f
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x1bc]
mov ebx, dword [eax + 0x3c]
test ebx, ebx
jne 0x4c32dc
mov dword [esp], eax
lea ecx, [0x5c05b4]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004c0db0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1bc]
mov dword [edx + 0x3c], eax
mov eax, dword [0x6c4f80]
test eax, eax
je 0x4c32d7
call fcn.00460f00
mov dword [edi], ecx
mov eax, dword [edx + 0x40]
mov dword [edi + 4], eax
mov dword [edx + 0x40], ecx
mov eax, edx
xor edx, edx
xor ecx, ecx
xor ebx, ebx
jmp 0x4c3765
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.004094d0
mov eax, dword [esp + 8]
lea ecx, [0x560c20]
mov dword [esp + 0x168], ecx
mov dword [esp + 0x16c], eax
mov edx, dword [esp + 0x168]
test edx, edx
je 0x4c332f
movzx ebx, byte [edx + 0xf]
nop
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x4c3335
or ebx, 0x80
jmp 0x4c3335
xor ebx, ebx
xor edx, edx
xor eax, eax
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x158]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x10], eax
call fcn.0048b6e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, ecx
mov ecx, eax
mov eax, dword [esp + 0x1bc]
jmp 0x4c3765
lea eax, [esp + 0xec]
mov dword [esp], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
call fcn.0044d240
mov eax, dword [esp + 0xc]
mov dword [esp + 0x124], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], ecx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0x40
call fcn.0046dea0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test eax, eax
je 0x4c33e2
mov eax, 1
jmp 0x4c3500
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x158]
mov dword [esp], eax
mov ecx, dword [esp + 0x130]
mov dword [esp + 4], ecx
call fcn.0048b280
mov eax, dword [esp + 0x10]
and eax, 0x1f
lea ecx, [eax - 2]
cmp ecx, 4
ja 0x4c38f7
mov eax, dword [esp + 8]
mov eax, dword [eax]
shl eax, 3
lea ecx, [eax - 0x40]
neg ecx
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x50]
shl eax, cl
mov ebx, dword [esp + 0x4c]
mov ebp, ebx
shl ebx, cl
lea esi, [ecx - 0x20]
mov edi, ecx
mov ecx, esi
shl ebp, cl
neg ecx
mov dword [esp + 0x90], ecx
mov edx, dword [esp + 0x4c]
shr edx, cl
mov dword [esp + 0x8c], edx
shr edi, 5
cmp esi, 0x20
sbb edx, edx
and ebp, edx
mov dword [esp + 0x88], ebp
not edx
or edx, esi
mov dword [esp + 0x84], edx
mov esi, dword [esp + 0x80]
cmp esi, 0x20
sbb edx, edx
sbb ebp, ebp
and ebx, edx
and eax, edx
mov ecx, esi
shr ebx, cl
and ebx, edx
xchg ebp, ebx
not ebx
xchg ebp, ebx
or ecx, ebp
cmp edi, 1
sbb edx, edx
xor edx, 0xffffffff
mov ebp, dword [esp + 0x90]
cmp ebp, 0x20
sbb esi, esi
mov edi, dword [esp + 0x8c]
and edi, esi
or edi, eax
mov eax, dword [esp + 0x88]
or edi, eax
mov dword [esp + 0x90], edi
mov eax, ecx
mov ecx, ebp
mov ebp, edi
shl edi, cl
mov ecx, dword [esp + 0x84]
sar ebp, cl
mov ecx, eax
mov eax, dword [esp + 0x90]
sar eax, cl
and edi, esi
and edx, ebp
or ebx, edi
or edx, ebx
mov ebx, dword [esp + 0x4c]
cmp ebx, edx
setne dl
mov ebp, dword [esp + 0x50]
cmp ebp, eax
setne al
or eax, edx
mov ecx, ebp
mov edx, ebx
test al, al
je 0x4c361d
lea eax, [0x572c20]
mov dword [esp], eax
call fcn.0040bd30
mov eax, dword [esp + 4]
mov dword [esp + 0x154], eax
mov dword [esp], 0
lea ecx, [0x586e4f]
mov dword [esp + 4], ecx
mov dword [esp + 8], 7
mov edx, dword [esp + 0x124]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x10], edx
call fcn.0044cfa0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x154]
mov dword [edx + 4], eax
mov eax, dword [0x6c4f80]
test eax, eax
je 0x4c357a
call fcn.00460f00
mov dword [edi], ecx
mov eax, dword [edx]
mov dword [edi + 4], eax
mov dword [edx], ecx
mov eax, dword [esp + 0x158]
mov dword [edx + 8], eax
mov eax, dword [0x6c4f80]
test eax, eax
jne 0x4c3599
mov eax, dword [esp + 0x130]
jmp 0x4c35ad
call fcn.00460f00
mov eax, dword [esp + 0x130]
mov dword [edi], eax
mov ebx, dword [edx + 0xc]
mov dword [edi + 4], ebx
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x98]
mov dword [edx + 0x10], eax
sar eax, 0x1f
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x1bc]
mov ebx, dword [eax + 0x3c]
test ebx, ebx
jne 0x4c3612
mov dword [esp], eax
lea ecx, [0x5c05b4]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004c0db0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1bc]
mov dword [edx + 0x3c], eax
mov eax, dword [0x6c4f80]
test eax, eax
je 0x4c360d
call fcn.00460f00
mov dword [edi], ecx
mov eax, dword [edx + 0x40]
mov dword [edi + 4], eax
mov dword [edx + 0x40], ecx
mov eax, edx
xor edx, edx
xor ecx, ecx
xor ebx, ebx
jmp 0x4c3765
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.004094d0
mov eax, dword [esp + 8]
lea ecx, [0x560a60]
mov dword [esp + 0x170], ecx
mov dword [esp + 0x174], eax
mov edx, dword [esp + 0x170]
test edx, edx
je 0x4c3665
movzx ebx, byte [edx + 0xf]
nop
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x4c366b
or ebx, 0x80
jmp 0x4c366b
xor ebx, ebx
xor edx, edx
xor eax, eax
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x158]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x10], eax
call fcn.0048b6e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, ecx
mov ecx, eax
mov eax, dword [esp + 0x1bc]
jmp 0x4c3765
mov eax, dword [esp + 0x158]
mov dword [esp], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 4], eax
call fcn.0048b360
mov eax, dword [esp + 8]
mov dword [esp + 0x150], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x14c], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x7c], edx
mov ebx, dword [esp + 0x1bc]
mov dword [esp], ebx
mov ebp, dword [esp + 0x138]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x68]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov byte [esp + 0x1c], 1
call fcn.004c4030
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4c38a0
mov eax, dword [esp + 0x150]
mov dword [esp], eax
mov eax, dword [esp + 0x14c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 8], eax
call fcn.00487840
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, ecx
mov ecx, eax
mov eax, dword [esp + 0x1bc]
test edx, edx
je 0x4c37bf
mov eax, dword [esp + 0x160]
mov dword [esp], eax
mov ebp, dword [esp + 0x164]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0xa0]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x20], ecx
call fcn.00489e80
mov eax, dword [esp + 0x1bc]
mov ebx, dword [esp + 0x9c]
cmp dword [eax + 0x10], 9
jne 0x4c37ea
mov dword [esp], eax
mov dword [esp + 4], 9
call fcn.004c0fe0
mov eax, dword [esp + 0x1bc]
mov ebx, dword [esp + 0x9c]
mov ebp, dword [eax + 0x38]
test ebp, ebp
je 0x4c3833
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x19c]
cmp ecx, edx
ja 0x4c38f2
mov dword [ebp + 0xc], ecx
mov ecx, dword [eax + 0x38]
mov edx, dword [esp + 0x190]
mov ebp, dword [esp + 0x194]
mov dword [ecx], edx
mov edx, dword [0x6c4f80]
test edx, edx
je 0x4c3830
call fcn.00460f00
mov dword [edi], ebp
mov edx, dword [ecx + 4]
mov dword [edi + 4], edx
mov dword [ecx + 4], ebp
mov ecx, dword [eax + 0x10]
cmp ecx, 5
je 0x4c3849
cmp ecx, 4
je 0x4c2819
jmp 0x4c38da
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
add esp, 0x1b8
ret
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
add esp, 0x1b8
ret
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
add esp, 0x1b8
ret
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
add esp, 0x1b8
ret
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
add esp, 0x1b8
ret
lea eax, [0x560820]
mov dword [esp], eax
lea eax, [0x5c0208]
mov dword [esp + 4], eax
call fcn.00435490
call fcn.00460fa0
mov dword [esp + 0xa0], eax
lea eax, [0x569800]
mov dword [esp], eax
call fcn.0040bd30
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x19
lea ecx, [0x58c0f4]
mov dword [eax], ecx
mov ecx, dword [esp + 0xa0]
mov dword [eax + 8], ecx
lea ecx, [0x563fc0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435490
mov dword [esp + 0xa0], eax
lea eax, [0x569800]
mov dword [esp], eax
call fcn.0040bd30
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1a
lea ecx, [0x58c7b9]
mov dword [eax], ecx
mov ecx, dword [esp + 0xa0]
mov dword [eax + 8], ecx
lea ecx, [0x563fc0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435490
lea eax, [0x560820]
mov dword [esp], eax
lea eax, [0x5c0210]
mov dword [esp + 4], eax
call fcn.00435490
mov ecx, dword [0x5c13bc]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x57c740]
mov dword [esp + 8], eax
call fcn.00409310
lea eax, [0x560820]
mov dword [esp], eax
lea eax, [0x5c0208]
mov dword [esp + 4], eax
call fcn.00435490
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
call fcn.004879f0
mov eax, dword [esp + 0x78]
inc eax
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x15c]
mov esi, dword [esp + 0x94]
movzx ebp, byte [esp + 0x2f]
mov esi, dword [esp + 0x15c]
mov edi, dword [esp + 0x94]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
cmp eax, edi
jge 0x4c3c4e
mov dword [esp + 0x74], ecx
and ecx, 0x1f
mov ebp, dword [esi + eax*4]
nop
cmp ecx, 0x16
jne 0x4c3b4c
mov dword [esp + 0x70], ebp
mov ecx, dword [esp + 0x74]
test ecx, 0x200
jne 0x4c3b27
mov dword [esp + 0x148], edx
test ecx, 0x80
je 0x4c3a63
mov esi, dword [edx]
mov edx, esi
mov esi, dword [esp + 0x15c]
test edx, edx
je 0x4c3a73
mov edx, dword [esp + 0x148]
jmp 0x4c3b27
mov edx, ecx
and ecx, 0x160
cmp ecx, 0x100
jne 0x4c3b55
mov dword [esp + 0x144], ebx
test edx, 0x200
jne 0x4c3a9e
lea ecx, [0x5c13b8]
jmp 0x4c3abf
mov dword [esp], ebx
mov eax, dword [esp + 0x148]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0048a890
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [ecx + 0x28]
mov dword [esp], ebx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0048b360
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x144]
mov dword [esp], ebx
mov ebp, dword [esp + 0x148]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x74]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.00489770
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x148]
mov ebx, dword [esp + 0x144]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00487840
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x70]
jmp 0x4c39cb
mov ecx, dword [esp + 0x74]
jmp 0x4c39cb
test edx, 0x200
jne 0x4c3b65
lea eax, [0x5c13b8]
jmp 0x4c3b84
mov dword [esp], ebx
mov eax, dword [esp + 0x148]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0048a890
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov eax, dword [eax + 0x28]
mov dword [esp], ebx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], 0
test eax, eax
je 0x4c3bb1
mov eax, dword [eax + 4]
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], ecx
lea eax, [0x593a72]
mov dword [esp], eax
mov dword [esp + 4], 0x3a
lea ecx, [esp + 0x188]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004adf70
mov eax, dword [esp + 0x1bc]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x4c3c44
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004c0db0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1bc]
mov dword [edx + 0x3c], eax
mov eax, dword [0x6c4f80]
test eax, eax
je 0x4c3c3f
call fcn.00460f00
mov dword [edi], ecx
mov eax, dword [edx + 0x40]
mov dword [edi + 4], eax
mov dword [edx + 0x40], ecx
mov eax, edx
xor ebp, ebp
xor ecx, ecx
xor ebx, ebx
xor edx, edx
jmp 0x4c3c55
mov eax, dword [esp + 0x1bc]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x11c], edx
mov dword [esp + 0x118], ebx
xchg ebp, eax
mov byte [esp + 0x2f], al
xchg ebp, eax
mov esi, dword [eax + 0x38]
test esi, esi
jne 0x4c3cc7
lea eax, [0x56a700]
mov dword [esp], eax
call fcn.0040bd30
mov eax, dword [0x6c4f80]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x4c3c99
mov eax, dword [esp + 0x1bc]
jmp 0x4c3cad
call fcn.00460f00
mov dword [edi], ecx
mov eax, dword [esp + 0x1bc]
mov edx, dword [eax + 0x38]
mov dword [edi + 4], edx
mov dword [eax + 0x38], ecx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x11c]
mov ebx, dword [esp + 0x118]
movzx ebp, byte [esp + 0x2f]
mov esi, dword [eax + 0x38]
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
inc ecx
mov edx, dword [esi + 8]
mov ebx, dword [esp + 0x13c]
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
cmp edi, ecx
jae 0x4c3d6c
mov dword [esp + 0x140], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x158], ebp
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x560820]
mov dword [esp + 0x10], eax
call fcn.004495c0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x140]
mov dword [ebx + 0x10], eax
mov eax, dword [0x6c4f80]
test eax, eax
je 0x4c3d4c
call fcn.00460f00
mov dword [edi], ecx
mov eax, dword [ebx + 8]
mov dword [edi + 4], eax
mov dword [ebx + 8], ecx
mov eax, dword [esp + 0x1bc]
mov ebp, dword [esp + 0x158]
mov esi, ebx
mov ebx, dword [esp + 0x94]
mov edi, ecx
mov ecx, edx
mov edx, edi
mov dword [esi + 0xc], ecx
lea esi, [edx + ecx*8 - 4]
mov dword [esi], ebx
mov ebx, dword [0x6c4f80]
lea ecx, [edx + ecx*8 - 8]
test ebx, ebx
je 0x4c3d8f
call fcn.00460f00
mov dword [edi], ebp
mov edx, dword [ecx]
mov dword [edi + 4], edx
mov dword [ecx], ebp
mov ecx, dword [eax + 0x38]
mov edx, dword [esp + 0x30]
mov dword [ecx], edx
mov ebx, dword [0x6c4f80]
test ebx, ebx
jne 0x4c3dad
mov ebx, dword [esp + 0x10c]
jmp 0x4c3dc1
call fcn.00460f00
mov ebx, dword [esp + 0x10c]
mov dword [edi], ebx
mov ebp, dword [ecx + 4]
mov dword [edi + 4], ebp
mov dword [ecx + 4], ebx
movzx ecx, byte [esp + 0x2f]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x118]
mov ebp, dword [esp + 0x11c]
jmp 0x4c2b87
lea eax, [0x560820]
mov dword [esp], eax
lea eax, [0x5c0208]
mov dword [esp + 4], eax
call fcn.00435490
mov eax, esi
mov ecx, ebx
call fcn.00460fc0
mov ecx, ebx
call fcn.00460fa0
lea eax, [0x560820]
mov dword [esp], eax
lea eax, [0x5c0208]
mov dword [esp + 4], eax
call fcn.00435490
mov ecx, dword [0x5c13bc]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x57c740]
mov dword [esp + 8], eax
call fcn.00409310
nop
call fcn.0045faf0
jmp fcn.004c2140