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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4c1226
sub esp, 0x6c
mov ebx, dword [esp + 0x80]
cmp ebx, 0x102
jl 0x4c0fcd
mov ebx, 0x102
mov ebp, dword [esp + 0x70]
test byte [ebp], al
mov esi, dword [ebp + 0xa003c]
mov edx, dword [ebp + 0xa0044]
mov eax, dword [esp + 0x74]
lea ecx, [ebx + eax]
cmp edx, ecx
jb 0x4c1220
mov edi, dword [ebp + 0xc]
cmp ebx, edi
jg 0x4c0ff8
mov edi, ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], edi
mov edi, dword [ebp + 0x10]
mov ebx, dword [esp + 0x7c]
cmp dword [ebp + 4], ebx
jg 0x4c100f
sar edi, 2
lea ebp, [ebx + eax]
cmp ebp, ecx
jae 0x4c1219
movzx ebp, byte [esi + ebp]
cmp eax, ecx
ja 0x4c1214
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x64], esi
sub edx, eax
mov dword [esp + 0x2c], edx
neg edx
sar edx, 0x1f
and edx, eax
add edx, esi
mov dword [esp + 0x68], edx
lea edx, [eax - 0x8000]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x40], eax
mov dword [esp + 0x54], ecx
xor ecx, ecx
mov dword [esp + 0x48], ecx
xor ecx, ecx
mov byte [esp + 0x23], cl
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
jmp 0x4c1090
mov esi, dword [esp + 0x30]
dec esi
mov dword [esp + 0x40], ebx
mov ebx, eax
mov dword [esp + 0x48], ebp
mov eax, dword [esp + 0x74]
mov ebp, edi
mov edi, esi
mov esi, dword [esp + 0x64]
test edi, edi
jle 0x4c11db
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x40]
lea edx, [edi + ebx]
cmp edx, ecx
jae 0x4c120d
add edx, esi
xchg ebp, eax
cmp byte [edx], al
xchg ebp, eax
je 0x4c10c4
mov edx, eax
mov eax, ebx
mov ebx, edi
mov edi, ebp
mov ebp, dword [esp + 0x48]
jmp 0x4c1199
cmp edi, ecx
ja 0x4c1206
mov dword [esp + 0x44], ebx
xchg ebp, eax
mov byte [esp + 0x22], al
xchg ebp, eax
mov eax, dword [esp + 0x28]
sub eax, edi
mov ebx, eax
neg eax
sar eax, 0x1f
and eax, edi
add eax, esi
mov dword [esp], eax
sub ecx, edi
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x10], ebx
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebx
call fcn.004c13b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
cmp ecx, eax
jge 0x4c117a
cmp eax, 4
jle 0x4c1130
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x74]
jmp 0x4c1144
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x40]
mov ebp, edx
sub edx, ebx
cmp edx, 0x1000
jg 0x4c1182
mov edx, ebp
sub ebp, ebx
mov esi, dword [esp + 0x34]
cmp esi, eax
jle 0x4c11c6
lea edi, [eax + edx]
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jae 0x4c11ff
mov esi, dword [esp + 0x64]
movzx edi, byte [esi + edi]
mov dword [esp + 0x4c], eax
mov eax, 1
mov byte [esp + 0x23], al
mov eax, dword [esp + 0x4c]
jmp 0x4c1199
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x74]
mov ecx, dword [esp + 0x24]
mov edx, ebp
mov esi, dword [esp + 0x64]
movzx edi, byte [esp + 0x22]
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
cmp ebx, edx
je 0x4c11d4
and ebx, 0x7fff
mov esi, dword [esp + 0x70]
mov ebx, dword [esi + ebx*4 + 0x80034]
sub ebx, dword [esi + 0xa0034]
cmp ebx, edx
jl 0x4c11cd
test ebx, ebx
jge 0x4c1075
jmp 0x4c11cd
mov ecx, 1
jmp 0x4c11e6
movzx ecx, byte [esp + 0x23]
jmp 0x4c11e6
movzx ecx, byte [esp + 0x23]
jmp 0x4c11e6
mov eax, ebx
mov ebp, dword [esp + 0x48]
movzx ecx, byte [esp + 0x23]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ebp
mov byte [esp + 0x8c], cl
add esp, 0x6c
ret
mov eax, edi
call fcn.0045ca00
mov eax, edi
call fcn.0045ca60
mov eax, edx
call fcn.0045ca00
call fcn.0045ca60
mov eax, ebp
call fcn.0045ca00
call fcn.0045ca40
nop
call fcn.0045b540
jmp fcn.004c0fa0