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

Disassembly:
sub esp, 0x60
mov eax, dword [0x7664f8]
xor eax, esp
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ebx
push ebp
push esi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x84]
xor esi, esi
push edi
mov edi, ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], 1
cmp eax, esi
je 0x4c16ef
mov dword [eax], esi
mov eax, dword [esp + 0x7c]
push eax
push ecx
mov ecx, dword [edi + 4]
call fcn.004c7340
mov ebp, dword [esp + 0x74]
mov ebx, eax
test ebx, ebx
je 0x4c1762
mov ecx, ebx
call fcn.004c6000
cmp eax, 6
jne 0x4c1d29
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
push eax
mov ecx, ebx
mov dword [esp + 0x2c], ebx
call fcn.004c6e00
cmp ebp, 3
ja case.default.0x4c1736
jmp dword [ebp*4 + 0x4c1d40]
dec dword [esp + 0x14]
jmp case.default.0x4c1736
inc dword [esp + 0x14]
jmp case.default.0x4c1736
dec dword [esp + 0x18]
jmp case.default.0x4c1736
inc dword [esp + 0x18]
mov ecx, ebx
call fcn.004c6030
test eax, eax
je 0x4c1d29
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x4c1d29
mov edi, edi
cmp ebp, 3
ja case.default.0x4c1779
jmp dword [ebp*4 + 0x4c1d50]
cmp dword [esp + 0x14], 0
jl case.default.0x4c1779
jmp 0x4c1790
test esi, esi
jne 0x4c1cd8
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push ecx
push edx
push eax
mov ecx, edi
call fcn.004bf7e0
mov esi, eax
test esi, esi
je 0x4c17bf
mov ecx, esi
call fcn.004c6030
test eax, eax
jne 0x4c1840
mov eax, dword [esp + 0x18]
lea ebp, [eax - 1]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x10]
xor esi, esi
nop
test ebp, ebp
jge 0x4c17e4
mov edx, dword [edi + 0x6bc]
lea ecx, [eax + eax*2]
cmp ebx, dword [edx + ecx*8]
jge 0x4c1844
jmp 0x4c1809
mov ecx, dword [esp + 0x14]
push ecx
push ebp
push eax
mov ecx, edi
call fcn.004bf7e0
mov esi, eax
test esi, esi
je 0x4c1805
mov ecx, esi
call fcn.004c6030
test eax, eax
jne 0x4c1840
xor esi, esi
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x6bc]
lea edx, [eax + eax*2]
cmp ebx, dword [ecx + edx*8]
jge 0x4c183c
mov edx, dword [esp + 0x14]
push edx
push ebx
push eax
mov ecx, edi
call fcn.004bf7e0
mov esi, eax
test esi, esi
je 0x4c1838
mov ecx, esi
call fcn.004c6030
test eax, eax
jne 0x4c1840
xor esi, esi
mov eax, dword [esp + 0x10]
dec ebp
inc ebx
jmp 0x4c17d0
mov eax, dword [esp + 0x10]
sub dword [esp + 0x14], 1
jns 0x4c1790
jmp 0x4c1b01
mov ebx, dword [edi + 0x6bc]
mov ecx, dword [esp + 0x14]
lea edx, [eax + eax*2]
cmp ecx, dword [ebx + edx*8 + 4]
jge case.default.0x4c1779
jmp 0x4c1870
test esi, esi
jne 0x4c1cd8
push ecx
mov ecx, dword [esp + 0x1c]
push ecx
push eax
mov ecx, edi
call fcn.004bf7e0
mov esi, eax
test esi, esi
je 0x4c189b
mov ecx, esi
call fcn.004c6030
test eax, eax
jne 0x4c1920
mov eax, dword [esp + 0x18]
lea ebp, [eax - 1]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x4c18b0
test ebp, ebp
jge 0x4c18c4
mov ecx, dword [edi + 0x6bc]
lea edx, [eax + eax*2]
cmp ebx, dword [ecx + edx*8]
jge 0x4c1924
jmp 0x4c18e9
mov edx, dword [esp + 0x14]
push edx
push ebp
push eax
mov ecx, edi
call fcn.004bf7e0
mov esi, eax
test esi, esi
je 0x4c18e5
mov ecx, esi
call fcn.004c6030
test eax, eax
jne 0x4c1920
xor esi, esi
mov eax, dword [esp + 0x10]
mov edx, dword [edi + 0x6bc]
lea ecx, [eax + eax*2]
cmp ebx, dword [edx + ecx*8]
jge 0x4c191c
mov ecx, dword [esp + 0x14]
push ecx
push ebx
push eax
mov ecx, edi
call fcn.004bf7e0
mov esi, eax
test esi, esi
je 0x4c1918
mov ecx, esi
call fcn.004c6030
test eax, eax
jne 0x4c1920
xor esi, esi
mov eax, dword [esp + 0x10]
dec ebp
inc ebx
jmp 0x4c18b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov ebx, dword [edi + 0x6bc]
inc ecx
lea edx, [eax + eax*2]
mov dword [esp + 0x14], ecx
cmp ecx, dword [ebx + edx*8 + 4]
jl 0x4c1870
jmp 0x4c1b01
cmp dword [esp + 0x18], 0
jl case.default.0x4c1779
test esi, esi
jne 0x4c1cd8
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push ecx
push edx
push eax
mov ecx, edi
call fcn.004bf7e0
mov esi, eax
test esi, esi
je 0x4c197f
mov ecx, esi
call fcn.004c6030
test eax, eax
jne 0x4c1a02
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
xor esi, esi
lea ebp, [ecx - 1]
lea ebx, [ecx + 1]
nop
test ebp, ebp
jge 0x4c19a5
mov edx, dword [edi + 0x6bc]
lea ecx, [eax + eax*2]
cmp ebx, dword [edx + ecx*8 + 4]
jge 0x4c1a06
jmp 0x4c19c6
push ecx
push ebp
push eax
mov ecx, edi
call fcn.004bf7e0
mov esi, eax
test esi, esi
je 0x4c19c2
mov ecx, esi
call fcn.004c6030
test eax, eax
jne 0x4c1a02
xor esi, esi
mov eax, dword [esp + 0x10]
mov edx, dword [edi + 0x6bc]
lea ecx, [eax + eax*2]
cmp ebx, dword [edx + ecx*8 + 4]
jge 0x4c19fa
mov ecx, dword [esp + 0x14]
push ecx
push ebx
push eax
mov ecx, edi
call fcn.004bf7e0
mov esi, eax
test esi, esi
je 0x4c19f6
mov ecx, esi
call fcn.004c6030
test eax, eax
jne 0x4c1a02
xor esi, esi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
dec ebp
inc ebx
jmp 0x4c1990
mov eax, dword [esp + 0x10]
sub dword [esp + 0x18], 1
jns 0x4c1950
jmp 0x4c1b01
mov ebx, dword [edi + 0x6bc]
mov ecx, dword [esp + 0x18]
lea edx, [eax + eax*2]
cmp ecx, dword [ebx + edx*8]
jge case.default.0x4c1779
lea esp, [esp]
test esi, esi
jne 0x4c1cd8
mov edx, dword [esp + 0x14]
push edx
push ecx
push eax
mov ecx, edi
call fcn.004bf7e0
mov esi, eax
test esi, esi
je 0x4c1a5b
mov ecx, esi
call fcn.004c6030
test eax, eax
jne 0x4c1ae2
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
xor esi, esi
lea ebp, [ecx - 1]
lea ebx, [ecx + 1]
jmp 0x4c1a70
test ebp, ebp
jge 0x4c1a85
mov edx, dword [edi + 0x6bc]
lea ecx, [eax + eax*2]
cmp ebx, dword [edx + ecx*8 + 4]
jge 0x4c1ae6
jmp 0x4c1aa6
push ecx
push ebp
push eax
mov ecx, edi
call fcn.004bf7e0
mov esi, eax
test esi, esi
je 0x4c1aa2
mov ecx, esi
call fcn.004c6030
test eax, eax
jne 0x4c1ae2
xor esi, esi
mov eax, dword [esp + 0x10]
mov edx, dword [edi + 0x6bc]
lea ecx, [eax + eax*2]
cmp ebx, dword [edx + ecx*8 + 4]
jge 0x4c1ada
mov ecx, dword [esp + 0x14]
push ecx
push ebx
push eax
mov ecx, edi
call fcn.004bf7e0
mov esi, eax
test esi, esi
je 0x4c1ad6
mov ecx, esi
call fcn.004c6030
test eax, eax
jne 0x4c1ae2
xor esi, esi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
dec ebp
inc ebx
jmp 0x4c1a70
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov ebx, dword [edi + 0x6bc]
inc ecx
lea edx, [eax + eax*2]
mov dword [esp + 0x18], ecx
cmp ecx, dword [ebx + edx*8]
jl 0x4c1a30
test esi, esi
jne 0x4c1cd8
mov ebp, dword [esp + 0x74]
cmp dword [esp + 0x1c], 0
je 0x4c1caa
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x28]
call fcn.004c6e80
test eax, eax
je 0x4c1c9e
mov edx, dword [esp + 0x38]
mov ecx, dword [edi + 4]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.004c7340
mov ebx, eax
test ebx, ebx
je 0x4c1c9e
mov ecx, ebx
call fcn.004c6000
mov ecx, ebx
cmp eax, 0xd
jne 0x4c1bd1
call fcn.004caec0
mov ecx, ebx
mov ebp, eax
call fcn.004caf00
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x34]
push edx
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.004cae60
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x2c], eax
mov ecx, ebx
call fcn.004cb090
test eax, eax
mov eax, dword [esp + 0x74]
jne 0x4c1b9c
sub eax, 0
jmp 0x4c1b9f
sub eax, 2
je 0x4c1baf
sub eax, 1
jne 0x4c1c2f
lea eax, [ebp + 1]
jmp 0x4c1bb2
lea eax, [ebp - 1]
cmp eax, ebp
je 0x4c1c2f
cmp eax, dword [esp + 0x30]
jl 0x4c1c2f
cmp eax, dword [esp + 0x2c]
jg 0x4c1c2f
push 1
push eax
mov ecx, ebx
call fcn.004cae90
jmp 0x4c1d1b
call fcn.004c6000
cmp eax, 0xf
jne 0x4c1c2f
mov ecx, ebx
call fcn.004ca2d0
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x4c]
push edx
mov ecx, ebx
mov ebp, eax
call fcn.004ca1c0
mov ecx, ebx
call fcn.004ca430
test eax, eax
mov eax, dword [esp + 0x74]
jne 0x4c1c09
sub eax, 2
jmp 0x4c1c0c
sub eax, 0
je 0x4c1c18
sub eax, 1
jne 0x4c1c2f
lea eax, [ebp + 1]
jmp 0x4c1c1b
lea eax, [ebp - 1]
cmp eax, ebp
je 0x4c1c2f
cmp eax, dword [esp + 0x48]
jl 0x4c1c2f
cmp eax, dword [esp + 0x40]
jle 0x4c1d05
mov ecx, ebx
call fcn.004c6000
cmp eax, 0xe
jne 0x4c1c9e
mov ecx, ebx
call fcn.004ca8f0
mov ecx, ebx
mov ebp, eax
call fcn.004ca920
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, ebx
call fcn.004ca7e0
mov edx, dword [esp + 0x1c]
sub dword [esp + 0x24], edx
mov ecx, ebx
call fcn.004caa90
test eax, eax
mov eax, dword [esp + 0x74]
jne 0x4c1c7c
sub eax, 2
jmp 0x4c1c7f
sub eax, 0
je 0x4c1c8b
sub eax, 1
jne 0x4c1c9e
lea eax, [ebp + 1]
jmp 0x4c1c8e
lea eax, [ebp - 1]
cmp eax, ebp
je 0x4c1c9e
cmp eax, dword [esp + 0x34]
jl 0x4c1c9e
cmp eax, dword [esp + 0x24]
jle 0x4c1d11
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push ecx
push edx
lea eax, [esp + 0x1c]
push eax
push ebp
mov ecx, edi
call fcn.004c05f0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
test eax, eax
jge 0x4c1770
jmp 0x4c1d29
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
push ecx
mov ecx, dword [edi + 4]
push edx
push esi
call fcn.004c70c0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x5c]
xor ecx, esp
call fcn.0055c6a2
add esp, 0x60
ret 0x18
push 1
push eax
mov ecx, ebx
call fcn.004ca2a0
jmp 0x4c1d1b
push 1
push eax
mov ecx, ebx
call fcn.004ca8c0
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4c1d29
mov dword [eax], 1
mov ecx, dword [esp + 0x6c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0055c6a2
add esp, 0x60
ret 0x18