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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x68]
cmp eax, dword [ecx + 8]
jbe 0x4c5fab
sub esp, 0xe8
mov edx, dword [esp + 0xf8]
test edx, edx
jge 0x4c5b66
lea edi, [esp + 0xc0]
lea esi, [0x5d48b6]
call fcn.004526dc
lea edi, [esp + 0x98]
lea esi, [0x5d488e]
call fcn.004526dc
xor eax, eax
jmp 0x4c5f48
cmp edx, 9
jle 0x4c5ba0
mov dword [esp + 0x75], 0xcb88b4be
lea edi, [esp + 0x78]
lea esi, [0x5d3a3f]
call fcn.004526f0
mov dword [esp + 0x52], 0x11fd2d30
lea edi, [esp + 0x55]
lea esi, [0x5d39f9]
call fcn.004526f0
xor eax, eax
jmp 0x4c5eda
mov ebx, dword [esp + 0xf0]
test ebx, ebx
jne 0x4c5bc7
mov eax, dword [esp + 0xec]
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
add esp, 0xe8
ret
cmp ebx, 0x10000
jb 0x4c5bdb
mov ebp, ebx
shr ebx, 0x10
mov eax, 0x10
jmp 0x4c5bdf
mov ebp, ebx
xor eax, eax
cmp ebx, 0x100
jb 0x4c5bed
shr ebx, 8
add eax, 8
cmp ebx, 0x100
jae 0x4c5ec2
lea esi, [0x5d8bb9]
movzx ebx, byte [esi + ebx]
lea esi, [ebx + eax]
cmp esi, 0x19
jge 0x4c5c27
lea ecx, [ebx + eax - 0x19]
neg ecx
cmp ecx, 0x20
sbb eax, eax
shl ebp, cl
and ebp, eax
mov eax, dword [esp + 0xf4]
lea eax, [esi + eax - 0x19]
jmp 0x4c5c2e
mov eax, dword [esp + 0xf4]
imul ecx, eax, 0x13441
add ecx, 0x1ce618
sar ecx, 0x12
sub edx, ecx
mov dword [esp + 0x4c], edx
lea ecx, [edx - 1]
cmp ecx, 0x1b
jg 0x4c5c56
test ecx, ecx
xchg esi, ebx
setge bl
xchg esi, ebx
jmp 0x4c5c58
xor esi, esi
mov dword [esp + 0x28], ecx
xchg esi, eax
mov byte [esp + 0x1b], al
xchg esi, eax
mov dword [esp + 0x20], ebp
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004c7e80
mov ecx, dword [esp + 0x10]
movzx eax, byte [esp + 0x14]
mov edx, dword [esp + 0xc]
test ecx, ecx
jge 0x4c5ea2
mov dword [esp + 0x1c], edx
mov ebx, dword [esp + 0x4c]
lea ebp, [ebx + 9]
cmp ebp, 0xa
jae 0x4c5cd6
mov ebp, dword [esp + 0x20]
test ebp, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, 1
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4c5da3
mov byte [esp + 0x1a], al
mov esi, dword [esp + 0x28]
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0x2c], esi
xor edi, edi
xor edi, edi
mov dword [esp + 0x24], edi
xor edi, edi
jmp 0x4c5dd2
movzx ebp, byte [esp + 0x1b]
mov esi, ecx
neg ecx
cmp ecx, 0x20
sbb edi, edi
mov ebx, 1
shl ebx, cl
and ebx, edi
dec ebx
shr edx, cl
and edx, edi
mov edi, dword [esp + 0x1c]
and ebx, edi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4c5d39
lea ecx, [esi + 1]
neg ecx
cmp ecx, 0x20
sbb ebp, ebp
mov esi, 1
shl esi, cl
and esi, ebp
cmp esi, ebx
jb 0x4c5d2e
jne 0x4c5d35
test al, al
je 0x4c5d2e
cmp esi, ebx
jne 0x4c5d35
test al, al
je 0x4c5d35
test edx, 1
setne cl
jmp 0x4c5d51
mov ecx, 1
jmp 0x4c5d51
xor ecx, ecx
jmp 0x4c5d51
lea ecx, [esi + 1]
neg ecx
cmp ecx, 0x20
sbb ebp, ebp
mov esi, ebx
shr ebx, cl
and ebx, ebp
cmp ebx, 1
sete cl
mov ebx, esi
test ebx, ebx
je 0x4c5d57
xor eax, eax
mov ebx, dword [esp + 0xec]
mov dword [esp], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], edx
xor eax, 1
mov byte [esp + 0xc], al
mov byte [esp + 0xd], cl
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x10], eax
call fcn.004c6630
mov eax, dword [esp + 0xec]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x4c]
sub ecx, edx
inc ecx
mov dword [eax + 0x10], ecx
add esp, 0xe8
ret
mov eax, 1
mov ebp, 1
jmp 0x4c5cdb
mov eax, dword [esp + 0x30]
inc eax
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x24], edi
mov edi, eax
movzx eax, byte [esp + 0x1a]
cmp edi, esi
jge 0x4c5da3
mov dword [esp + 0x20], ebp
mov dword [esp + 0x30], edi
mov eax, 0xcccccccd
mov ebx, dword [esp + 0x24]
mul ebx
shr edx, 2
mov dword [esp + 0x48], edx
lea esi, [edx + edx*4]
sub ebx, esi
mov eax, ebx
mov esi, 0x33333333
mul esi
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
mov eax, 0xcccccccd
mul ebp
shr edx, 2
mov dword [esp + 0x3c], edx
lea esi, [edx + edx*4]
sub ebp, esi
add ebx, ebp
mov eax, ebx
mov esi, 0xcccccccd
mov ebx, edx
mul esi
shr edx, 2
mov dword [esp + 0x38], edx
add ebx, 0
mov dword [esp + 0x34], ebx
mov esi, dword [esp + 0x40]
add ebx, esi
add edx, ebx
mov dword [esp + 0x40], edx
mov eax, 5
mul edx
mov edi, dword [esp + 0x3c]
add edi, 0
mov edi, dword [esp + 0x48]
adc edi, 0
mov ebp, dword [esp + 0x34]
add ebp, esi
mov ebp, dword [esp + 0x44]
adc edi, ebp
mov ebp, dword [esp + 0x38]
add ebp, ebx
adc edi, 0
lea ebx, [edi + edi*4]
add edx, ebx
mov ebx, dword [esp + 0x24]
cmp ebx, edx
setne dl
mov ebx, dword [esp + 0x20]
cmp eax, ebx
setne bl
or edx, ebx
test dl, dl
je 0x4c5db2
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4c]
movzx eax, byte [esp + 0x1a]
movzx ebp, byte [esp + 0x1b]
jmp 0x4c5cdb
call fcn.004ca990
call fcn.00408340
mov eax, dword [esp + 8]
lea ecx, [0x5b08e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0042e870
mov eax, ebx
mov ecx, 0x100
call fcn.004520b0
movzx ebx, byte [esp + eax + 0x52]
sub ebx, edx
mov byte [esp + eax + 0x52], bl
inc eax
cmp eax, 0x23
jge 0x4c5ef0
movzx edx, byte [esp + eax + 0x75]
jb 0x4c5ece
mov ecx, 0x23
call fcn.004520a0
mov dword [esp], 0
lea eax, [esp + 0x52]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x23
call fcn.00441fd0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00408340
mov eax, dword [esp + 8]
lea ecx, [0x5b08e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0042e870
movzx ebx, byte [esp + eax + 0x98]
add edx, ebx
mov byte [esp + eax + 0x98], dl
inc eax
cmp eax, 0x28
jge 0x4c5f61
movzx edx, byte [esp + eax + 0xc0]
jb 0x4c5f36
mov ecx, 0x28
call fcn.004520a0
mov dword [esp], 0
lea eax, [esp + 0x98]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x28
call fcn.00441fd0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00408340
mov eax, dword [esp + 8]
lea ecx, [0x5b08e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0042e870
nop
call fcn.00450c10
jmp fcn.004c5b10