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

Disassembly:
sub esp, 0x60
mov eax, dword [0x767500]
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 0x4c15cf
mov dword [eax], esi
mov eax, dword [esp + 0x7c]
push eax
push ecx
mov ecx, dword [edi + 4]
call fcn.004c7c00
mov ebp, dword [esp + 0x74]
mov ebx, eax
test ebx, ebx
je 0x4c1642
mov ecx, ebx
call fcn.004c63b0
cmp eax, 6
jne 0x4c1c09
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.004c7670
cmp ebp, 3
ja case.default.0x4c1616
jmp dword [ebp*4 + 0x4c1c20]
dec dword [esp + 0x14]
jmp case.default.0x4c1616
inc dword [esp + 0x14]
jmp case.default.0x4c1616
dec dword [esp + 0x18]
jmp case.default.0x4c1616
inc dword [esp + 0x18]
mov ecx, ebx
call fcn.004c63e0
test eax, eax
je 0x4c1c09
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x4c1c09
mov edi, edi
cmp ebp, 3
ja case.default.0x4c1659
jmp dword [ebp*4 + 0x4c1c30]
cmp dword [esp + 0x14], 0
jl case.default.0x4c1659
jmp 0x4c1670
test esi, esi
jne 0x4c1bb8
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push ecx
push edx
push eax
mov ecx, edi
call fcn.004bf6c0
mov esi, eax
test esi, esi
je 0x4c169f
mov ecx, esi
call fcn.004c63e0
test eax, eax
jne 0x4c1720
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 0x4c16c4
mov edx, dword [edi + 0x6bc]
lea ecx, [eax + eax*2]
cmp ebx, dword [edx + ecx*8]
jge 0x4c1724
jmp 0x4c16e9
mov ecx, dword [esp + 0x14]
push ecx
push ebp
push eax
mov ecx, edi
call fcn.004bf6c0
mov esi, eax
test esi, esi
je 0x4c16e5
mov ecx, esi
call fcn.004c63e0
test eax, eax
jne 0x4c1720
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 0x4c171c
mov edx, dword [esp + 0x14]
push edx
push ebx
push eax
mov ecx, edi
call fcn.004bf6c0
mov esi, eax
test esi, esi
je 0x4c1718
mov ecx, esi
call fcn.004c63e0
test eax, eax
jne 0x4c1720
xor esi, esi
mov eax, dword [esp + 0x10]
dec ebp
inc ebx
jmp 0x4c16b0
mov eax, dword [esp + 0x10]
sub dword [esp + 0x14], 1
jns 0x4c1670
jmp 0x4c19e1
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.0x4c1659
jmp 0x4c1750
test esi, esi
jne 0x4c1bb8
push ecx
mov ecx, dword [esp + 0x1c]
push ecx
push eax
mov ecx, edi
call fcn.004bf6c0
mov esi, eax
test esi, esi
je 0x4c177b
mov ecx, esi
call fcn.004c63e0
test eax, eax
jne 0x4c1800
mov eax, dword [esp + 0x18]
lea ebp, [eax - 1]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x4c1790
test ebp, ebp
jge 0x4c17a4
mov ecx, dword [edi + 0x6bc]
lea edx, [eax + eax*2]
cmp ebx, dword [ecx + edx*8]
jge 0x4c1804
jmp 0x4c17c9
mov edx, dword [esp + 0x14]
push edx
push ebp
push eax
mov ecx, edi
call fcn.004bf6c0
mov esi, eax
test esi, esi
je 0x4c17c5
mov ecx, esi
call fcn.004c63e0
test eax, eax
jne 0x4c1800
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 0x4c17fc
mov ecx, dword [esp + 0x14]
push ecx
push ebx
push eax
mov ecx, edi
call fcn.004bf6c0
mov esi, eax
test esi, esi
je 0x4c17f8
mov ecx, esi
call fcn.004c63e0
test eax, eax
jne 0x4c1800
xor esi, esi
mov eax, dword [esp + 0x10]
dec ebp
inc ebx
jmp 0x4c1790
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 0x4c1750
jmp 0x4c19e1
cmp dword [esp + 0x18], 0
jl case.default.0x4c1659
test esi, esi
jne 0x4c1bb8
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push ecx
push edx
push eax
mov ecx, edi
call fcn.004bf6c0
mov esi, eax
test esi, esi
je 0x4c185f
mov ecx, esi
call fcn.004c63e0
test eax, eax
jne 0x4c18e2
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 0x4c1885
mov edx, dword [edi + 0x6bc]
lea ecx, [eax + eax*2]
cmp ebx, dword [edx + ecx*8 + 4]
jge 0x4c18e6
jmp 0x4c18a6
push ecx
push ebp
push eax
mov ecx, edi
call fcn.004bf6c0
mov esi, eax
test esi, esi
je 0x4c18a2
mov ecx, esi
call fcn.004c63e0
test eax, eax
jne 0x4c18e2
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 0x4c18da
mov ecx, dword [esp + 0x14]
push ecx
push ebx
push eax
mov ecx, edi
call fcn.004bf6c0
mov esi, eax
test esi, esi
je 0x4c18d6
mov ecx, esi
call fcn.004c63e0
test eax, eax
jne 0x4c18e2
xor esi, esi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
dec ebp
inc ebx
jmp 0x4c1870
mov eax, dword [esp + 0x10]
sub dword [esp + 0x18], 1
jns 0x4c1830
jmp 0x4c19e1
mov ebx, dword [edi + 0x6bc]
mov ecx, dword [esp + 0x18]
lea edx, [eax + eax*2]
cmp ecx, dword [ebx + edx*8]
jge case.default.0x4c1659
lea esp, [esp]
test esi, esi
jne 0x4c1bb8
mov edx, dword [esp + 0x14]
push edx
push ecx
push eax
mov ecx, edi
call fcn.004bf6c0
mov esi, eax
test esi, esi
je 0x4c193b
mov ecx, esi
call fcn.004c63e0
test eax, eax
jne 0x4c19c2
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
xor esi, esi
lea ebp, [ecx - 1]
lea ebx, [ecx + 1]
jmp 0x4c1950
test ebp, ebp
jge 0x4c1965
mov edx, dword [edi + 0x6bc]
lea ecx, [eax + eax*2]
cmp ebx, dword [edx + ecx*8 + 4]
jge 0x4c19c6
jmp 0x4c1986
push ecx
push ebp
push eax
mov ecx, edi
call fcn.004bf6c0
mov esi, eax
test esi, esi
je 0x4c1982
mov ecx, esi
call fcn.004c63e0
test eax, eax
jne 0x4c19c2
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 0x4c19ba
mov ecx, dword [esp + 0x14]
push ecx
push ebx
push eax
mov ecx, edi
call fcn.004bf6c0
mov esi, eax
test esi, esi
je 0x4c19b6
mov ecx, esi
call fcn.004c63e0
test eax, eax
jne 0x4c19c2
xor esi, esi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
dec ebp
inc ebx
jmp 0x4c1950
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 0x4c1910
test esi, esi
jne 0x4c1bb8
mov ebp, dword [esp + 0x74]
cmp dword [esp + 0x1c], 0
je 0x4c1b8a
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x28]
call fcn.004c76f0
test eax, eax
je 0x4c1b7e
mov edx, dword [esp + 0x38]
mov ecx, dword [edi + 4]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.004c7c00
mov ebx, eax
test ebx, ebx
je 0x4c1b7e
mov ecx, ebx
call fcn.004c63b0
mov ecx, ebx
cmp eax, 0xd
jne 0x4c1ab1
call fcn.004cb6a0
mov ecx, ebx
mov ebp, eax
call fcn.004cb6e0
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x34]
push edx
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.004cb640
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x2c], eax
mov ecx, ebx
call fcn.004cb870
test eax, eax
mov eax, dword [esp + 0x74]
jne 0x4c1a7c
sub eax, 0
jmp 0x4c1a7f
sub eax, 2
je 0x4c1a8f
sub eax, 1
jne 0x4c1b0f
lea eax, [ebp + 1]
jmp 0x4c1a92
lea eax, [ebp - 1]
cmp eax, ebp
je 0x4c1b0f
cmp eax, dword [esp + 0x30]
jl 0x4c1b0f
cmp eax, dword [esp + 0x2c]
jg 0x4c1b0f
push 1
push eax
mov ecx, ebx
call fcn.004cb670
jmp 0x4c1bfb
call fcn.004c63b0
cmp eax, 0xf
jne 0x4c1b0f
mov ecx, ebx
call fcn.004caab0
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x4c]
push edx
mov ecx, ebx
mov ebp, eax
call fcn.004ca9a0
mov ecx, ebx
call fcn.004cac10
test eax, eax
mov eax, dword [esp + 0x74]
jne 0x4c1ae9
sub eax, 2
jmp 0x4c1aec
sub eax, 0
je 0x4c1af8
sub eax, 1
jne 0x4c1b0f
lea eax, [ebp + 1]
jmp 0x4c1afb
lea eax, [ebp - 1]
cmp eax, ebp
je 0x4c1b0f
cmp eax, dword [esp + 0x48]
jl 0x4c1b0f
cmp eax, dword [esp + 0x40]
jle 0x4c1be5
mov ecx, ebx
call fcn.004c63b0
cmp eax, 0xe
jne 0x4c1b7e
mov ecx, ebx
call fcn.004cb0d0
mov ecx, ebx
mov ebp, eax
call fcn.004cb100
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, ebx
call fcn.004cafc0
mov edx, dword [esp + 0x1c]
sub dword [esp + 0x24], edx
mov ecx, ebx
call fcn.004cb270
test eax, eax
mov eax, dword [esp + 0x74]
jne 0x4c1b5c
sub eax, 2
jmp 0x4c1b5f
sub eax, 0
je 0x4c1b6b
sub eax, 1
jne 0x4c1b7e
lea eax, [ebp + 1]
jmp 0x4c1b6e
lea eax, [ebp - 1]
cmp eax, ebp
je 0x4c1b7e
cmp eax, dword [esp + 0x34]
jl 0x4c1b7e
cmp eax, dword [esp + 0x24]
jle 0x4c1bf1
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.004c04d0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
test eax, eax
jge 0x4c1650
jmp 0x4c1c09
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
push ecx
mov ecx, dword [edi + 4]
push edx
push esi
call fcn.004c7980
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x5c]
xor ecx, esp
call fcn.0055d4e2
add esp, 0x60
ret 0x18
push 1
push eax
mov ecx, ebx
call fcn.004caa80
jmp 0x4c1bfb
push 1
push eax
mov ecx, ebx
call fcn.004cb0a0
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4c1c09
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.0055d4e2
add esp, 0x60
ret 0x18