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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x44]
cmp eax, dword [ecx + 8]
jbe 0x4c6534
sub esp, 0xc4
mov edx, dword [esp + 0xec]
test edx, edx
je 0x4c64aa
mov ecx, dword [esp + 0xf0]
lea ebx, [ecx - 1]
mov ebp, dword [esp + 0xd8]
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0xc8]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xb0], eax
xor eax, eax
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0xc0], eax
xor eax, eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xb0]
jmp 0x4c609f
mov esi, dword [esp + 0x64]
mov ebx, edx
lea edx, [0x64f440]
test ebx, ebx
jle 0x4c5ec3
lea edx, [ebx - 1]
cmp edx, ecx
jae 0x4c6520
lea esi, [ebx + ebx*4]
mov esi, dword [edi + esi*4 - 8]
cmp esi, ebp
jg 0x4c5e9d
cmp ebx, ecx
jae 0x4c6519
lea edx, [ebx + ebx*4]
mov ebp, dword [edi + edx*4 + 0xc]
mov esi, dword [esp + 0x64]
cmp ebp, esi
jge 0x4c6141
xor edx, edx
test dl, dl
je 0x4c613a
lea edx, [ebx - 1]
test edx, edx
jl 0x4c6501
cmp edx, ecx
jae 0x4c64fa
mov dword [esp + 0x70], edx
lea ecx, [edx + edx*4]
mov dword [esp + 0x80], ecx
mov ebx, dword [edi + ecx*4 + 8]
mov ebp, dword [edi + ecx*4 + 4]
mov esi, dword [edi + ecx*4]
mov edx, dword [esp + 0xbc]
mov dword [esp], edx
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov edi, dword [esp + 0xc0]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebx
call fcn.004bf860
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0xd0], ebx
mov ebp, dword [esp + 0x34]
mov dword [esp + 0xcc], ebp
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x80]
mov ebx, dword [esp + 0xec]
mov edi, dword [ebx + edi*4 + 0x10]
mov ebp, dword [esp + 0x84]
sub ebp, edi
mov edi, dword [esp + 0x84]
cmp ebp, edi
ja 0x4c64f1
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x78], ebp
mov dword [esp + 0xb8], edx
mov dword [esp + 0xc8], esi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov esi, dword [esp + 0xdc]
sub esi, ebp
mov dword [esp + 0x80], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebp
mov eax, dword [esp + 0xd4]
add esi, eax
mov dword [esp + 0xc], esi
sub edi, ebp
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x80]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x18], esi
mov edi, dword [esp + 0xe4]
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
mov edi, dword [esp + 0x70]
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x2c], eax
call fcn.004c5e20
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0xb8]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x70]
mov ecx, eax
mov edx, dword [esp + 0xec]
mov eax, dword [esp + 0xcc]
mov edi, dword [esp + 0xc8]
mov esi, dword [esp + 0xd0]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0xc0], ebp
mov ebp, dword [esp + 0x78]
cmp dword [0x64a0f4], eax
jge 0x4c61ce
mov dword [esp + 0xbc], edi
mov dword [esp + 0x50], esi
mov dword [esp + 0x84], ebp
lea ebp, [eax - 1]
test ebp, ebp
jl 0x4c61c1
mov esi, dword [edi + eax*4 - 4]
nop
cmp esi, 0x10000
jb 0x4c61a8
shr esi, 0x10
mov dword [esp + 0xa0], eax
mov eax, 0x10
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xa0]
cmp esi, 0x100
jb 0x4c619f
shr esi, 8
mov edi, dword [esp + 0x60]
add edi, 8
cmp esi, 0x100
jae 0x4c6527
shl ebp, 5
lea edx, [0x64f440]
movzx esi, byte [edx + esi]
add esi, edi
add ebp, esi
mov dword [esp + 0x64], ebp
mov esi, ebp
sar ebp, 1
mov edi, dword [esp + 0xec]
jmp 0x4c5ea9
mov edx, ebx
jmp 0x4c5ef3
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x4c], eax
mov ecx, dword [edi + edx*4]
mov ebx, dword [edi + edx*4 + 8]
mov edx, dword [edi + edx*4 + 4]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x50]
mov dword [esp + 0x14], edx
call fcn.004bcd50
mov eax, dword [esp + 0x18]
test eax, eax
setge dl
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xf0]
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0xec]
jmp 0x4c5ee0
mov edi, dword [esp + 0x60]
jmp 0x4c6109
mov dword [esp + 0xa8], eax
xor eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xa8]
jmp 0x4c60f3
lea edx, [0x64f440]
xor ebp, ebp
jmp 0x4c6126
mov dword [esp + 0xd8], ebp
mov edx, dword [esp + 0xe0]
cmp edx, 0xa
jne 0x4c634c
mov ecx, ebp
jmp 0x4c6281
lea edx, [ebx + 0x30]
mov ebx, dword [esp + 0x84]
mov byte [ebx + esi - 1], dl
mov edx, dword [esp + 0x68]
inc edx
mov ebx, dword [esp + 0xe4]
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x68], edx
mov dword [esp + 0x84], ebp
mov edx, dword [esp + 0xcc]
mov ebp, dword [esp + 0xe4]
mov edx, dword [esp + 0x68]
cmp edx, ebp
jge 0x4c6319
mov ebx, dword [esp + 0x84]
test ebx, ebx
jle 0x4c6268
mov dword [esp + 0x5c], eax
lea ebp, [ebx - 1]
mov eax, 0xcccccccd
mov edx, dword [esp + 0x5c]
mul edx
shr edx, 3
mov eax, edx
lea edx, [edx + edx*4]
shl edx, 1
mov ebx, dword [esp + 0x5c]
sub ebx, edx
cmp ebp, edi
jb 0x4c61ec
jmp 0x4c64e8
mov esi, ecx
mov eax, dword [esp + 0xcc]
mov edi, dword [esp + 0xc8]
mov ebp, ebx
mov ecx, dword [esp + 0xd8]
test eax, eax
jle 0x4c6325
mov dword [esp + 0x74], ebp
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x18], eax
call fcn.004bf600
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xcc], edx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xc8], ebx
mov ebp, dword [esp + 0xe4]
mov esi, dword [esp + 0xd4]
mov edi, dword [esp + 0xd8]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
jmp 0x4c6226
mov ebx, dword [esp + 0x84]
jmp 0x4c6268
mov edx, dword [esp + 0xd4]
jmp 0x4c6335
mov byte [ebp + edx - 1], 0x30
mov ebp, eax
test ebp, ebp
jle 0x4c6345
lea eax, [ebp - 1]
cmp eax, ecx
jb 0x4c632e
jmp 0x4c64cb
add esp, 0xc4
ret
mov ecx, ebp
jmp 0x4c640d
mov byte [esp + 0x4b], dl
mov edx, dword [esp + 0xd4]
movzx esi, byte [esp + 0x4b]
xchg esi, eax
mov byte [ebx + edx - 1], al
xchg esi, eax
mov edx, dword [esp + 0x6c]
inc edx
mov dword [esp + 0x6c], edx
mov esi, eax
mov eax, ecx
xor edx, edx
div ebp
mov edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xd0]
mov ebx, dword [esp + 0xcc]
mov edi, ecx
mov ecx, eax
mov dword [esp + 0x84], esi
mov eax, dword [esp + 0xc8]
mov esi, dword [esp + 0xd8]
mov edx, dword [esp + 0x6c]
cmp edx, edi
jge 0x4c649e
mov ebx, dword [esp + 0x84]
test ebx, ebx
jle 0x4c63f7
test ebp, ebp
je 0x4c64e3
mov eax, ecx
xor edx, edx
div ebp
cmp edx, 0x3e
jae 0x4c64d7
lea eax, [ebx - 1]
lea edi, [0x566577]
movzx edx, byte [edi + edx]
cmp eax, esi
jb 0x4c6353
jmp 0x4c64d0
mov ecx, esi
mov edx, ebp
mov edi, eax
mov esi, dword [esp + 0xd0]
mov eax, dword [esp + 0xcc]
mov ebp, ebx
test eax, eax
jle 0x4c6325
mov dword [esp + 0x74], ebp
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x18], eax
call fcn.004bf600
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov dword [esp + 0xd0], edx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0xcc], ebx
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0xe4]
mov dword [esp + 0x88], eax
xor eax, eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x88]
jmp 0x4c63af
mov ebx, dword [esp + 0x84]
jmp 0x4c63f7
mov ebp, dword [esp + 0xd8]
mov eax, dword [esp + 0xcc]
mov edi, dword [esp + 0xc8]
mov esi, dword [esp + 0xd0]
jmp 0x4c61ce
call fcn.00455c70
mov ecx, esi
call fcn.00455c70
mov eax, edx
mov ecx, 0x3e
call fcn.00455c80
call fcn.0042ca10
mov eax, ebp
mov ecx, edi
call fcn.00455c70
mov eax, ebp
mov ecx, edi
call fcn.00455cd0
mov eax, edx
call fcn.00455c70
lea eax, [0x53b300]
mov dword [esp], eax
lea eax, [0x5892c8]
mov dword [esp + 4], eax
call fcn.0042db00
mov eax, ebx
call fcn.00455c70
mov eax, edx
call fcn.00455c70
mov eax, esi
mov ecx, 0x100
call fcn.00455c80
nop
call fcn.004543b0
jmp fcn.004c5e20