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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4c264e
sub esp, 0x64
mov eax, dword [esp + 0x6c]
cmp eax, 0x63
jne 0x4c226a
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
call fcn.004c1e30
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
add esp, 0x64
ret
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.004c1340
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.004c1730
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
call fcn.004c1c10
mov eax, dword [esp + 8]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x58], edx
mov ebx, dword [esp + 0x6c]
cmp ebx, 0x55
jne 0x4c24f3
mov eax, dword [esp + 0x68]
mov dword [esp], eax
lea ecx, [0x6a15b4]
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov byte [esp + 0xc], 0
call fcn.004c15d0
movzx eax, byte [esp + 0x10]
test al, al
jne 0x4c24c3
mov eax, 1
test al, al
jne 0x4c25e3
xor eax, eax
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x34], ebx
mov ebp, dword [esp + 0x68]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov byte [esp + 0xc], al
call fcn.004c1cf0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], ecx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x34]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x40
call fcn.0046ca60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
test ebx, ebx
jne 0x4c25a0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x70]
add edx, 0xffffffc0
neg edx
mov dword [esp + 0x4c], edx
cmp edx, 0x20
sbb ebx, ebx
lea ebp, [edx - 0x20]
mov dword [esp + 0x48], ebp
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov dword [esp + 0x44], ebp
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0x40], edi
cmp esi, 0x20
sbb edi, edi
mov dword [esp + 0x3c], edi
cmp edx, 0x20
sbb edi, edi
shr edx, 5
cmp edx, 1
sbb edx, edx
mov dword [esp + 0x38], edx
mov ecx, ebp
mov edx, dword [esp + 0x28]
shr edx, cl
mov ecx, esi
mov ebp, dword [esp + 0x28]
shl ebp, cl
mov ecx, dword [esp + 0x4c]
shl eax, cl
and eax, ebx
mov esi, dword [esp + 0x40]
and edx, esi
or edx, eax
mov eax, dword [esp + 0x3c]
and ebp, eax
or edx, ebp
xchg edi, ebx
not ebx
xchg edi, ebx
or edi, ecx
mov ebp, ecx
mov ecx, edi
mov edi, edx
sar edx, cl
mov eax, dword [esp + 0x2c]
cmp edx, eax
setne dl
mov ecx, ebp
mov eax, dword [esp + 0x28]
shl eax, cl
and eax, ebx
shr eax, cl
and eax, ebx
mov ecx, dword [esp + 0x44]
mov ebx, edi
shl edi, cl
and edi, esi
or eax, edi
mov ecx, dword [esp + 0x3c]
not ecx
mov ebp, dword [esp + 0x48]
or ecx, ebp
sar ebx, cl
mov ebp, dword [esp + 0x38]
xor ebp, 0xffffffff
and ebp, ebx
or ebp, eax
mov eax, dword [esp + 0x28]
cmp ebp, eax
setne bl
or edx, ebx
test dl, dl
jne 0x4c2449
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x78], eax
add esp, 0x64
ret
mov dword [esp], 0
lea eax, [0x6a9322]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1a
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
call fcn.0043f6b0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x54], ecx
lea edx, [0x666840]
mov dword [esp], edx
call fcn.0040a500
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x24]
mov dword [edi + 4], eax
mov eax, dword [0x8c1150]
test eax, eax
jne 0x4c24b5
mov eax, dword [esp + 0x54]
mov dword [edi], eax
jmp 0x4c2558
mov eax, dword [esp + 0x54]
call fcn.00450d20
jmp 0x4c2558
mov eax, dword [esp + 0x68]
mov dword [esp], eax
lea ecx, [0x6a159c]
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov byte [esp + 0xc], 0
call fcn.004c15d0
movzx eax, byte [esp + 0x10]
xor eax, 1
jmp 0x4c22f0
nop
mov eax, dword [esp + 0x68]
mov dword [esp], eax
lea ecx, [0x6a15de]
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
mov byte [esp + 0xc], 1
call fcn.004c15d0
mov eax, dword [esp + 0x6c]
cmp eax, 0x76
je 0x4c2539
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
xor edx, edx
mov ebx, dword [esp + 0x34]
mov ebp, eax
mov eax, edx
mov edx, ebp
jmp 0x4c2306
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.004c2010
mov ebx, dword [esp + 4]
movzx edx, byte [esp + 0x10]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
jmp 0x4c252e
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
lea eax, [0x704760]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edi
lea eax, [0x6668a0]
mov dword [esp], eax
lea eax, [esp + 0x5c]
mov dword [esp + 4], eax
call fcn.00407cd0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0042a9b0
nop
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], edx
lea eax, [0x6668a0]
mov dword [esp], eax
lea eax, [esp + 0x5c]
mov dword [esp + 4], eax
call fcn.00407cd0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0042a9b0
nop
lea eax, [0x666840]
mov dword [esp], eax
call fcn.0040a500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x13
lea ecx, [0x6a6094]
mov dword [eax], ecx
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
lea ecx, [0x704760]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
lea eax, [0x6668a0]
mov dword [esp], eax
lea eax, [esp + 0x5c]
mov dword [esp + 4], eax
call fcn.00407cd0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0042a9b0
nop
call fcn.0044f4e0
jmp fcn.004c2220