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

Disassembly:
sub esp, 0x60
push ebx
push ebp
mov ebp, dword [esp + 0x70]
cmp byte [ebp + 0x20], 0
push esi
mov esi, dword [esp + 0x70]
mov ebx, ecx
push edi
mov dword [esp + 0x20], ebx
jne 0x4c5b16
push ebp
push esi
call fcn.004c5390
xor edi, edi
mov byte [ebp + 0x20], 1
cmp eax, edi
je 0x4c5b18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 0x10
xor edi, edi
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x40]
push edi
push edx
call eax
test al, al
jne 0x4c5b3a
pop edi
pop esi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x60
ret 0x10
test byte [ebp + 8], 1
je 0x4c5b5a
push ebp
push esi
lea ecx, [esp + 0x34]
push ecx
mov ecx, ebx
call fcn.004c5a00
cmp eax, edi
jne 0x4c5e24
add dword [ebp + 0x14], 0xfffffff4
mov eax, dword [ebp + 0x14]
cmp eax, edi
jne 0x4c5b75
mov eax, dword [ebp + 0x10]
pop edi
neg eax
pop esi
sbb eax, eax
pop ebp
and eax, 5
pop ebx
add esp, 0x60
ret 0x10
mov esi, eax
push edi
and eax, 0x3ffff
push edi
shr esi, 0x12
push edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x80], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
call fcn.004da610
mov dword [esp + 0x1c], eax
movzx eax, word [ebp + 0xa]
add esp, 0xc
cmp ax, di
jne 0x4c5c87
mov eax, 0x40000
cmp dword [esp + 0x74], esi
jb 0x4c5bc1
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 0xc]
push edi
push eax
lea eax, [ebx + 0x10]
push eax
call dword [0x6ab460]
mov edi, edx
mov esi, eax
test edi, edi
jl 0x4c5c78
jg 0x4c5be6
test esi, esi
jbe 0x4c5c66
test byte [ebp + 8], 1
je 0x4c5bfe
push edi
push esi
lea eax, [ebx + 0x10]
push eax
lea edx, [esp + 0x38]
push edx
mov ecx, ebx
call fcn.004c4fc0
mov eax, dword [ebx + 0x80010]
mov ecx, dword [esp + 0x10]
push esi
push eax
push ecx
call fcn.004da610
mov ecx, dword [esp + 0x88]
add esp, 0xc
push edi
mov dword [esp + 0x14], eax
push esi
lea eax, [ebx + 0x10]
push eax
call dword [0x6ab44c]
cmp eax, esi
jne 0x4c5dda
cmp edx, edi
jne 0x4c5dda
mov edx, dword [esp + 0x24]
inc dword [esp + 0x74]
mov eax, dword [ebp + 0x14]
add edx, esi
adc dword [esp + 0x28], edi
xor ecx, ecx
mov dword [esp + 0x24], edx
cmp edx, eax
jne 0x4c5c5b
cmp dword [esp + 0x28], ecx
je 0x4c5c66
mov esi, dword [esp + 0x18]
xor edi, edi
jmp 0x4c5bb2
test edi, edi
jg 0x4c5e16
jl 0x4c5c78
test esi, esi
jae 0x4c5e16
pop edi
pop esi
pop ebp
mov eax, 9
pop ebx
add esp, 0x60
ret 0x10
cmp ax, 8
jne 0x4c5e16
push 0x38
push str.1.2.5
lea edx, [esp + 0x40]
push 0xfffffffffffffff1
push edx
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
call fcn.004da60a
add esp, 0x10
test eax, eax
jne 0x4c5df6
mov eax, 0x40000
cmp dword [esp + 0x74], esi
jb 0x4c5cd2
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 0xc]
push edi
push eax
lea ebp, [ebx + 0x10]
push ebp
call dword [0x6ab460]
mov edi, edx
mov esi, eax
or eax, edi
je 0x4c5e05
test edi, edi
jl 0x4c5db1
jg 0x4c5cff
test esi, esi
jb 0x4c5db1
mov ecx, dword [esp + 0x78]
test byte [ecx + 8], 1
je 0x4c5d18
push edi
push esi
push ebp
lea edx, [esp + 0x38]
push edx
mov ecx, ebx
call fcn.004c4fc0
inc dword [esp + 0x74]
add dword [esp + 0x24], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], ebp
adc dword [esp + 0x28], edi
add ebx, 0x40010
lea eax, [esp + 0x38]
push 0
mov esi, 0x40000
push eax
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], ebx
call fcn.004da604
add esp, 8
cmp eax, 0xfffffffc
mov dword [esp + 0x1c], eax
jl 0x4c5d61
cmp eax, 0xfffffffd
jle 0x4c5dcd
cmp eax, 2
je 0x4c5dcd
sub esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x7c]
mov eax, esi
cdq
mov ebp, edx
push ebp
mov edi, eax
push edi
push ebx
call dword [0x6ab44c]
cmp eax, edi
jne 0x4c5de9
cmp edx, ebp
jne 0x4c5de9
mov ecx, dword [esp + 0x10]
push esi
push ebx
push ecx
call fcn.004da610
add esp, 0xc
cmp dword [esp + 0x48], 0
mov dword [esp + 0x10], eax
je 0x4c5d32
cmp dword [esp + 0x1c], 1
je 0x4c5e05
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
xor edi, edi
jmp 0x4c5cc3
lea edx, [esp + 0x38]
push edx
call fcn.004da5fe
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 9
pop ebx
add esp, 0x60
ret 0x10
lea eax, [esp + 0x38]
push eax
call fcn.004da5fe
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 0xa
pop ebx
add esp, 0x60
ret 0x10
lea ecx, [esp + 0x38]
push ecx
call fcn.004da5fe
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x60
ret 0x10
lea edx, [esp + 0x38]
push edx
call fcn.004da5fe
mov ebp, dword [esp + 0x7c]
add esp, 4
mov eax, dword [esp + 0x10]
sub eax, dword [ebp + 0x10]
neg eax
sbb eax, eax
and eax, 5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 0x10