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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4c6617
add esp, 0xffffff80
mov edx, dword [esp + 0x94]
cmp edx, 0x12
jg 0x4c65f6
mov ebx, dword [esp + 0x8c]
test ebx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
mov edi, dword [esp + 0x88]
test edi, edi
mov eax, edx
sete dl
and edx, ebp
test dl, dl
je 0x4c6026
mov eax, dword [esp + 0x84]
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
sub esp, 0xffffff80
ret
cmp ebx, 1
sete dl
xchg ebp, ebx
seta bl
xchg ebp, ebx
and edx, 1
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4c6049
mov ecx, ebx
xor edx, edx
mov ebp, 0x20
jmp 0x4c6051
mov ecx, ebx
mov edx, ecx
mov ebx, edi
xor ebp, ebp
mov dword [esp + 0x44], edx
mov dword [esp + 0x4c], ebp
cmp ebx, 0x10000
mov esi, edi
xchg edi, ebx
setae bl
xchg edi, ebx
test edx, edx
xchg ebp, ebx
sete bl
xchg ebp, ebx
seta dl
and edi, ebp
or edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x4c609a
shr ebx, 0x10
mov edx, dword [esp + 0x44]
mov edi, edx
shl edx, 0x10
or ebx, edx
shr edi, 0x10
mov edx, edi
mov edi, dword [esp + 0x4c]
lea ebp, [edi + 0x10]
jmp 0x4c60a2
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x44], edx
mov dword [esp + 0x4c], ebp
cmp ebx, 0x100
xchg edi, ebx
setae bl
xchg edi, ebx
test edx, edx
xchg ebp, ebx
sete bl
xchg ebp, ebx
seta dl
and edi, ebp
or edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x4c60e9
shr ebx, 8
mov edx, dword [esp + 0x44]
mov edi, edx
shl edx, 0x18
or ebx, edx
shr edi, 8
mov edx, edi
mov edi, dword [esp + 0x4c]
lea ebp, [edi + 8]
jmp 0x4c60f1
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x4c65e8
cmp ebx, 0x100
jae 0x4c65dc
lea edx, [0x5d8bb9]
movzx edx, byte [edx + ebx]
lea ebx, [edx + ebp]
cmp ebx, 0x37
jge 0x4c6187
mov dword [esp + 0x4c], ebx
lea edx, [edx + ebp - 0x37]
neg edx
mov dword [esp + 0x7c], edx
cmp edx, 0x20
sbb ebp, ebp
lea edi, [edx - 0x20]
mov dword [esp + 0x78], edi
cmp edi, 0x20
sbb eax, eax
xchg edi, ebx
neg ebx
xchg edi, ebx
cmp edi, 0x20
sbb ebx, ebx
mov ecx, edx
shl esi, cl
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x88]
shl edx, cl
mov ecx, edi
mov edi, dword [esp + 0x88]
shr edi, cl
and edi, ebx
and esi, ebp
and eax, edx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x8c]
shl edx, cl
and edx, ebp
or edx, edi
or edx, eax
mov eax, dword [esp + 0x90]
mov ebx, dword [esp + 0x4c]
lea eax, [ebx + eax - 0x37]
jmp 0x4c6190
mov eax, dword [esp + 0x90]
mov edx, ecx
imul ecx, eax, 0x13441
add ecx, 0x4105b6
sar ecx, 0x12
mov ebx, dword [esp + 0x94]
sub ebx, ecx
mov dword [esp + 0x7c], ebx
lea ecx, [ebx - 1]
cmp ecx, 0x37
jg 0x4c61bf
test ecx, ecx
xchg edi, ebx
setge bl
xchg edi, ebx
jmp 0x4c61c1
xor edi, edi
mov dword [esp + 0x34], ecx
xchg edi, eax
mov byte [esp + 0x22], al
xchg edi, eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], esi
mov dword [esp + 4], edx
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.004c7f90
movzx eax, byte [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
test ecx, ecx
jge 0x4c65bc
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ebx
mov ebp, dword [esp + 0x7c]
lea esi, [ebp + 0x15]
cmp esi, 0x16
jae 0x4c624d
mov esi, dword [esp + 0x2c]
test esi, esi
xchg edi, ebx
sete bl
xchg edi, ebx
mov ebp, dword [esp + 0x30]
test ebp, ebp
sete dl
and edx, edi
test dl, dl
jne 0x4c64b9
mov byte [esp + 0x21], al
mov edi, dword [esp + 0x34]
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [esp + 0x40], edi
xor edx, edx
jmp 0x4c64e8
movzx esi, byte [esp + 0x22]
mov dword [esp + 0x50], ecx
xchg esi, eax
mov byte [esp + 0x22], al
xchg esi, eax
mov byte [esp + 0x21], al
lea edi, [ecx + 0x20]
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [esp + 0x78], edi
cmp edi, 0x20
sbb ebp, ebp
neg ecx
mov dword [esp + 0x74], ecx
lea eax, [ecx - 0x20]
neg eax
cmp eax, 0x20
sbb esi, esi
cmp ecx, 0x20
sbb edx, edx
mov ecx, edi
mov ebx, 1
shl ebx, cl
mov ecx, eax
mov edi, 1
shr edi, cl
and edi, esi
and ebx, ebp
or ebx, edi
mov ecx, dword [esp + 0x74]
mov edi, 1
shl edi, cl
and edi, edx
add edi, 0xffffffff
mov dword [esp + 0x48], edi
adc ebx, 0xffffffff
mov dword [esp + 0x70], ebx
mov edi, dword [esp + 0x24]
shr edi, cl
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x28]
shr ebx, cl
mov ecx, eax
mov eax, dword [esp + 0x28]
shl eax, cl
and edi, edx
and eax, esi
or eax, edi
and ebx, ebp
or ebx, eax
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x28]
mov ebp, eax
shr eax, cl
and eax, edx
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x70]
and edx, ebp
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x24]
and ebp, esi
mov dword [esp + 0x38], ebp
movzx esi, byte [esp + 0x22]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4c63d4
mov dword [esp + 0x24], ebx
mov esi, dword [esp + 0x50]
inc esi
xchg esi, ebx
neg ebx
xchg esi, ebx
lea ecx, [esi - 0x20]
mov dword [esp + 0x78], ecx
cmp ecx, 0x20
sbb edi, edi
neg ecx
mov dword [esp + 0x6c], ecx
cmp ecx, 0x20
sbb eax, eax
mov ecx, dword [esp + 0x78]
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x6c]
mov ebp, 1
shr ebp, cl
and ebp, eax
and ebx, edi
or ebx, ebp
cmp ebx, edx
sete al
setb bl
cmp esi, 0x20
sbb ebp, ebp
mov ecx, esi
mov esi, 1
shl esi, cl
and esi, ebp
mov ebp, dword [esp + 0x38]
cmp esi, ebp
xchg edi, ebx
setb bl
xchg edi, ebx
and edi, eax
or edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x4c6389
movzx ecx, byte [esp + 0x21]
jmp 0x4c63b6
cmp esi, ebp
sete cl
and eax, ecx
test al, al
je 0x4c63c4
movzx ecx, byte [esp + 0x21]
test cl, cl
je 0x4c63b6
test al, al
je 0x4c63c9
test cl, cl
je 0x4c63c9
mov eax, dword [esp + 0x24]
test eax, 1
setne bl
jmp 0x4c645a
mov eax, dword [esp + 0x24]
mov ebx, 1
jmp 0x4c645a
movzx ecx, byte [esp + 0x21]
mov eax, dword [esp + 0x24]
xor ebx, ebx
jmp 0x4c645a
mov dword [esp + 0x3c], edx
mov esi, dword [esp + 0x50]
lea ecx, [esi + 1]
neg ecx
mov dword [esp + 0x68], ecx
cmp ecx, 0x20
sbb esi, esi
lea edi, [ecx - 0x20]
mov dword [esp + 0x78], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
cmp edi, 0x20
sbb eax, eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x78]
cmp eax, 0x20
sbb ebp, ebp
shr edx, cl
test esi, edx
sete dl
mov byte [esp + 0x23], dl
mov ecx, edi
mov edx, dword [esp + 0x3c]
mov edi, edx
shl edx, cl
mov ecx, eax
shr edi, cl
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x38]
shr eax, cl
and eax, esi
mov esi, dword [esp + 0x6c]
and edx, esi
or edx, eax
and edi, ebp
or edi, edx
cmp edi, 1
sete al
movzx edx, byte [esp + 0x23]
and eax, edx
movzx ecx, byte [esp + 0x21]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov esi, eax
mov eax, ebx
mov ebx, esi
test edx, edx
setne dl
test ebp, ebp
xchg ebp, ebx
setne bl
xchg ebp, ebx
or edx, ebp
test dl, dl
je 0x4c6470
xor ecx, ecx
mov edx, dword [esp + 0x84]
mov dword [esp], edx
mov ebp, dword [esp + 0x28]
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
xor ecx, 1
mov byte [esp + 0xc], cl
mov byte [esp + 0xd], bl
mov eax, dword [esp + 0x94]
mov dword [esp + 0x10], eax
call fcn.004c6630
mov eax, dword [esp + 0x84]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x7c]
sub ecx, edx
inc ecx
mov dword [eax + 0x10], ecx
sub esp, 0xffffff80
ret
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 0x7c]
mov eax, 1
mov esi, 1
jmp 0x4c6252
mov eax, dword [esp + 0x54]
lea edx, [eax + 1]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x64]
movzx eax, byte [esp + 0x21]
mov ebx, dword [esp + 0x24]
cmp edx, edi
jge 0x4c64b9
mov dword [esp + 0x54], edx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], esi
mov eax, 0xcccccccd
mul ebp
shr edx, 2
mov dword [esp + 0x78], edx
lea ebx, [edx + edx*4]
sub ebp, ebx
mov eax, 0x33333333
mul ebp
mov dword [esp + 0x6c], edx
mov dword [esp + 0x64], eax
mov eax, 0xcccccccd
mul esi
shr edx, 2
mov dword [esp + 0x60], edx
lea ebx, [edx + edx*4]
sub esi, ebx
lea ebx, [esi + ebp]
mov eax, 0xcccccccd
mov esi, edx
mul ebx
shr edx, 2
mov dword [esp + 0x5c], edx
add esi, 0
mov dword [esp + 0x58], esi
mov ebx, dword [esp + 0x64]
add esi, ebx
add edx, esi
mov dword [esp + 0x64], edx
mov eax, edx
mov ebp, 5
mul ebp
mov ebp, dword [esp + 0x60]
add ebp, 0
mov ebp, dword [esp + 0x78]
adc ebp, 0
mov edi, dword [esp + 0x58]
add edi, ebx
mov ebx, dword [esp + 0x6c]
adc ebp, ebx
mov ebx, dword [esp + 0x5c]
add ebx, esi
adc ebp, 0
lea ebx, [ebp + ebp*4]
add edx, ebx
mov ebx, dword [esp + 0x30]
cmp ebx, edx
setne dl
mov ebx, dword [esp + 0x2c]
cmp eax, ebx
setne bl
or edx, ebx
test dl, dl
je 0x4c64d0
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x7c]
movzx eax, byte [esp + 0x21]
movzx esi, byte [esp + 0x22]
jmp 0x4c6252
call fcn.004ca880
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
mov esi, edx
mov eax, ebx
mov ecx, 0x100
call fcn.00452170
call fcn.004ca4f0
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.004c5fc0