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

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
mov esi, ecx
mov ecx, 0x5537d8
call fcn.00405670
mov ecx, dword [0x552ae0]
cmp dword [ecx], 0
jne 0x4c18c3
xor eax, eax
jmp 0x4c18db
cmp dword [ecx + 8], 0
je 0x4c18d1
mov eax, dword [ecx + 8]
mov edx, dword [eax + 0xc]
jmp 0x4c18d3
xor edx, edx
mov eax, dword [ecx + 4]
imul eax, edx
add eax, dword [ecx]
cmp byte [eax + 0x30], 0
jne 0x4c1e59
mov ecx, 0x5537d8
call fcn.00405670
mov ecx, dword [0x552ae0]
cmp dword [ecx], 0
jne 0x4c18fe
xor eax, eax
jmp 0x4c1916
cmp dword [ecx + 8], 0
je 0x4c190c
mov edx, dword [ecx + 8]
mov edx, dword [edx + 0xc]
jmp 0x4c190e
xor edx, edx
mov eax, dword [ecx + 4]
imul eax, edx
add eax, dword [ecx]
cmp byte [eax + 0x13], 0
je 0x4c1926
cmp dword [eax + 0x28], 0
je 0x4c1e59
cmp dword [esi + 0x6c], 0
push edi
mov dword [ebp - 4], 0xfffffffe
jl 0x4c19ba
mov ecx, 0x5537d8
call fcn.00405670
mov eax, dword [0x552ae0]
mov edx, dword [eax + 0x18]
test edx, edx
jne 0x4c1952
xor ecx, ecx
jmp 0x4c1968
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4c195e
mov edi, dword [ecx + 0xc]
jmp 0x4c1960
xor edi, edi
mov ecx, dword [eax + 0x1c]
imul ecx, edi
add ecx, edx
push 5
call fcn.004326b0
test al, al
je 0x4c1989
mov byte [esi + 0x74], 1
cmp byte [esi + 0x74], 0
je 0x4c19ba
pop edi
pop esi
mov eax, 0xfffffffd
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi + 0x74], 0
je 0x4c19ba
mov ecx, 0x5537d8
call fcn.00405670
mov ecx, dword [0x552ae0]
push 5
call fcn.0045bb70
mov ecx, eax
call fcn.00406860
test al, al
jne 0x4c1977
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x70]
inc eax
cmp eax, 4
ja case.default.0x4c19c7
jmp dword [eax*4 + 0x4c1e78]
push 9
call fcn.00408700
mov ecx, eax
call fcn.0045bb70
mov ecx, eax
call fcn.00406860
test al, al
jne 0x4c1a04
xor eax, eax
pop edi
mov dword [esi + 0x7c], eax
mov dword [esi + 0x78], eax
mov eax, dword [ebp - 4]
mov dword [esi + 0x70], 0xffffffff
mov byte [esi + 0x74], 0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x78]
cmp eax, dword [esi + 0x7c]
jge 0x4c1a1a
inc eax
pop edi
mov dword [esi + 0x78], eax
mov eax, dword [ebp - 4]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
mov ecx, esi
call fcn.004c15e0
mov edi, eax
test edi, edi
jns 0x4c1a3b
or ebx, 0xffffffff
pop edi
mov dword [esi + 0x70], ebx
pop esi
mov dword [ebp - 4], ebx
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, edi
sub edi, 0x1f
mov ebx, 0xffffffff
jns 0x4c1a4c
xor edi, edi
mov dword [esi + 0x70], ebx
cmp eax, edi
je 0x4c1a82
push 1
push edi
mov ecx, esi
call fcn.004c0a70
lea eax, [esi + 0x5c]
push eax
mov ecx, esi
call fcn.004be470
push edi
lea ecx, [esi + 0x9c]
call fcn.00406a30
mov ecx, eax
call fcn.004c0340
mov dword [esi + 0x6c], ebx
mov dword [ebp - 4], 0xfffffffd
mov ecx, dword [esi + 0x78]
mov eax, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [esi + 0x7c]
pop edi
setle dl
mov dword [esi + 0x78], 0
dec edx
and edx, 0xf
mov dword [esi + 0x7c], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.00408700
mov ecx, eax
call fcn.0045bb70
mov ecx, eax
call fcn.00406860
test al, al
je 0x4c19e7
mov eax, dword [esi + 0x78]
cmp eax, dword [esi + 0x7c]
jl 0x4c1a0c
push 0
mov ecx, esi
call fcn.004c15e0
mov edi, eax
test edi, edi
js 0x4c1a29
mov dword [ebp - 8], edi
push 6
add edi, 0x1f
call fcn.00417f90
mov ecx, eax
call fcn.00404740
mov ecx, dword [eax + 0x24]
sub ecx, dword [eax + 0x20]
lea edx, [edi + 0x1f]
sar ecx, 1
or ebx, 0xffffffff
cmp edx, ecx
jl 0x4c1b23
push 6
call fcn.00417f90
mov ecx, eax
call fcn.00404740
mov edi, dword [eax + 0x24]
sub edi, dword [eax + 0x20]
mov dword [esi + 0x70], ebx
sar edi, 1
sub edi, 0x1f
cmp dword [ebp - 8], edi
je 0x4c1a82
push 1
push edi
mov ecx, esi
call fcn.004c0a70
lea eax, [esi + 0x5c]
push eax
mov ecx, esi
call fcn.004be470
push edi
lea ecx, [esi + 0x9c]
call fcn.00406a30
mov ecx, eax
call fcn.004c0340
mov ecx, dword [esi + 0x78]
xor edx, edx
cmp ecx, dword [esi + 0x7c]
pop edi
setle dl
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x78], 0
mov dword [ebp - 4], 0xfffffffd
mov eax, dword [ebp - 4]
dec edx
and edx, 0xf
mov dword [esi + 0x7c], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 1
call fcn.00408700
mov ecx, eax
call fcn.0045bb70
mov ecx, eax
call fcn.00406860
test al, al
je 0x4c19e7
mov eax, dword [esi + 0x78]
cmp eax, dword [esi + 0x7c]
jl 0x4c1a0c
mov ecx, esi
call fcn.004be6b0
mov edi, eax
push edi
mov ecx, esi
call fcn.004be4d0
test edi, edi
jns 0x4c1c07
mov ecx, dword [esi + 0x3c]
sub ecx, dword [esi + 0x38]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov edi, edx
shr edi, 0x1f
xor ebx, ebx
add edi, edx
mov dword [ebp - 4], ebx
test edi, edi
jle 0x4c1c15
mov eax, dword [esi + 0x38]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
call fcn.00406a30
cmp byte [eax + 4], 0
jne 0x4c1c00
add dword [ebp - 8], 0xc
inc ebx
cmp ebx, edi
jl 0x4c1be4
mov edi, dword [ebp - 4]
jmp 0x4c1c17
mov dword [ebp - 4], ebx
mov edi, ebx
jmp 0x4c1c17
dec edi
jns 0x4c1c17
mov ecx, esi
call fcn.004c1720
xor edi, edi
jmp 0x4c1c17
mov edi, ebx
mov dword [esi + 0x6c], edi
push edi
mov ecx, esi
call fcn.004be5c0
mov ecx, dword [esi + 0x78]
xor edx, edx
cmp ecx, dword [esi + 0x7c]
pop edi
setle dl
mov dword [esi + 0x78], 0
mov dword [ebp - 4], 0xfffffffd
mov eax, dword [ebp - 4]
dec edx
and edx, 0xf
mov dword [esi + 0x7c], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 2
call fcn.00408700
mov ecx, eax
call fcn.0045bb70
mov ecx, eax
call fcn.00406860
test al, al
je 0x4c19e7
mov eax, dword [esi + 0x78]
cmp eax, dword [esi + 0x7c]
jl 0x4c1a0c
mov ecx, esi
call fcn.004be6b0
mov ebx, eax
push ebx
mov ecx, esi
call fcn.004be4d0
mov ecx, dword [esi + 0x3c]
sub ecx, dword [esi + 0x38]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
test ebx, ebx
jns 0x4c1ce6
mov edi, edx
shr edi, 0x1f
add edi, edx
lea ebx, [edi - 1]
mov dword [ebp - 4], 0
test edi, edi
jle 0x4c1d11
mov eax, dword [esi + 0x38]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
call fcn.00406a30
cmp byte [eax + 4], 0
jne 0x4c1cda
mov eax, dword [ebp - 4]
add dword [ebp - 8], 0xc
inc eax
mov dword [ebp - 4], eax
cmp eax, edi
jl 0x4c1cb4
mov dword [esi + 0x6c], ebx
push ebx
jmp 0x4c1c1b
mov ebx, dword [ebp - 4]
mov dword [esi + 0x6c], ebx
push ebx
jmp 0x4c1c1b
mov ecx, edx
shr ecx, 0x1f
inc ebx
add ecx, edx
cmp ebx, ecx
jl 0x4c1d11
mov ecx, esi
call fcn.004c17c0
mov ecx, dword [esi + 0x3c]
sub ecx, dword [esi + 0x38]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ebx, [edx + eax - 1]
mov dword [esi + 0x6c], ebx
push ebx
jmp 0x4c1c1b
push 9
call fcn.00408700
mov ecx, eax
call fcn.0045bb70
mov ecx, eax
call fcn.004326b0
test al, al
je 0x4c1d70
push 6
call fcn.00417f90
mov ecx, eax
call fcn.00404740
mov ecx, dword [eax + 0x24]
sub ecx, dword [eax + 0x20]
and ecx, 0xfffffffe
cmp ecx, 0x3e
jle case.default.0x4c19c7
xor eax, eax
pop edi
mov dword [esi + 0x7c], eax
mov dword [esi + 0x70], eax
mov eax, dword [ebp - 4]
mov byte [esi + 0x74], 0
mov dword [esi + 0x78], 0xf
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.00408700
mov ecx, eax
call fcn.0045bb70
mov ecx, eax
call fcn.004326b0
test al, al
je 0x4c1dcc
push 6
call fcn.00417f90
mov ecx, eax
call fcn.00404740
mov edx, dword [eax + 0x24]
sub edx, dword [eax + 0x20]
and edx, 0xfffffffe
cmp edx, 0x3e
jle case.default.0x4c19c7
mov eax, dword [ebp - 4]
pop edi
mov byte [esi + 0x74], 0
mov dword [esi + 0x7c], 0
mov dword [esi + 0x70], 1
mov dword [esi + 0x78], 0xf
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 1
call fcn.00408700
mov ecx, eax
call fcn.0045bb70
mov ecx, eax
call fcn.004326b0
test al, al
je 0x4c1e08
mov eax, dword [ebp - 4]
pop edi
mov byte [esi + 0x74], 0
mov dword [esi + 0x7c], 0
mov dword [esi + 0x70], 2
mov dword [esi + 0x78], 0xf
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 2
call fcn.00408700
mov ecx, eax
call fcn.0045bb70
mov ecx, eax
call fcn.004326b0
test al, al
je 0x4c1e44
mov eax, dword [ebp - 4]
pop edi
mov byte [esi + 0x74], 0
mov dword [esi + 0x7c], 0
mov dword [esi + 0x70], 3
mov dword [esi + 0x78], 0xf
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
or ebx, 0xffffffff
cmp dword [esi + 0x6c], ebx
jne case.default.0x4c19c7
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
or ebx, 0xffffffff
xor eax, eax
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x7c], eax
mov dword [esi + 0x78], eax
mov byte [esi + 0x74], 0
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret