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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
cmp dword [ebp + 0x10], 0
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov eax, dword [ebx + 0x508]
mov edi, dword [eax]
mov dword [ebp - 4], edi
je 0x4cda71
push 1
push ebx
call fcn.004cca70
add esp, 8
test eax, eax
je 0x4cdab9
cmp byte [eax], 1
jne 0x4cdab9
push 1
push ebx
call fcn.004cca70
add esp, 8
test eax, eax
je 0x4cdab9
cmp byte [eax], 2
jne 0x4cdad2
push 1
push ebx
call fcn.004cca70
add esp, 8
test eax, eax
je 0x4cdab9
cmp byte [eax], 0
je 0x4cdac3
lea eax, [ebp - 0x18]
push eax
push ebx
call fcn.004ccef0
add esp, 8
test eax, eax
js 0x4cdab9
push 1
push ebx
call fcn.004cca70
add esp, 8
test eax, eax
jne 0x4cda94
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret
push 1
push ebx
call fcn.004cca70
add esp, 8
test eax, eax
je 0x4cdab9
cmp byte [eax], 4
jne 0x4cdaf4
push edi
push ebx
call fcn.004ce250
add esp, 8
test eax, eax
js 0x4cdab9
push 1
push ebx
call fcn.004cca70
add esp, 8
test eax, eax
je 0x4cdab9
mov al, byte [eax]
test al, al
je 0x4ce0ac
cmp al, 5
jne 0x4cdab9
lea esi, [edi + 0x78]
push esi
push ebx
call fcn.004ccef0
add esp, 8
test eax, eax
js 0x4cdab9
cmp dword [esi + 4], 0
mov eax, dword [esi]
ja 0x4cdab9
jb 0x4cdb24
cmp eax, 0x5f5e100
ja 0x4cdab9
push 0x48
push eax
call fcn.0050bad7
add esp, 8
mov dword [ebp - 0xc], eax
mov dword [edi + 0x80], eax
test eax, eax
je 0x4cdab9
xor ecx, ecx
push 1
push ebx
mov dword [ebp - 8], ecx
call fcn.004cca70
add esp, 8
test eax, eax
je 0x4cdab9
nop dword [eax + eax]
movzx edi, byte [eax]
test edi, edi
je 0x4cded5
lea eax, [ebp - 0x18]
push eax
push ebx
call fcn.004ccef0
add esp, 8
test eax, eax
js 0x4cdab9
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x54]
cmp eax, dword [ebp - 0x14]
jb 0x4cdab9
mov esi, dword [ebp - 0x18]
ja 0x4cdb9d
cmp dword [ecx + 0x50], esi
jb 0x4cdab9
lea eax, [edi - 0xe]
cmp eax, 0xb
ja case.0x4cdba9.22
jmp dword [eax*4 + 0x4ce0b8]
mov esi, dword [ebp + 0xc]
cmp dword [esi + 8], 0
jne 0x4cdab9
lea edi, [ecx + 0x78]
push 1
push dword [edi]
call fcn.0050bad7
add esp, 8
mov dword [esi + 8], eax
test eax, eax
je 0x4cdab9
push dword [edi]
push eax
push ebx
call fcn.004cd110
add esp, 0xc
test eax, eax
js 0x4cdab9
mov esi, dword [edi + 4]
xor ecx, ecx
mov edx, dword [edi]
mov dword [ebp - 8], ecx
test esi, esi
jb 0x4cdc2f
ja 0x4cdbff
test edx, edx
je 0x4cdc2f
mov edi, dword [ebp + 0xc]
mov ebx, ecx
mov edi, dword [edi + 8]
nop word [eax + eax]
cmp byte [edi + ecx], 0
lea eax, [ebx + 1]
cmove eax, ebx
inc ecx
mov ebx, eax
xor eax, eax
cmp eax, esi
jb 0x4cdc10
ja 0x4cdc29
cmp ecx, edx
jb 0x4cdc10
mov dword [ebp - 8], ebx
mov ebx, dword [ebp + 8]
push 1
push ebx
call fcn.004cca70
add esp, 8
test eax, eax
jne 0x4cdb60
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 8]
test edi, edi
jg 0x4cdc67
push esi
push ebx
call fcn.004cca70
add esp, 8
test eax, eax
je 0x4cdab9
jmp 0x4cdc2f
mov esi, dword [ebp + 0xc]
cmp dword [esi + 0xc], 0
jne 0x4cdab9
push 1
push edi
call fcn.0050bad7
mov dword [esi + 0xc], eax
add esp, 8
test eax, eax
je 0x4cdab9
push edi
push eax
push ebx
call fcn.004cd110
add esp, 0xc
test eax, eax
js 0x4cdab9
jmp 0x4cdc2f
mov edi, dword [ebp - 8]
test edi, edi
jle case.0x4cdba9.22
mov esi, dword [ebp + 0xc]
cmp dword [esi + 0x10], 0
jne 0x4cdab9
push 1
push edi
call fcn.0050bad7
mov dword [esi + 0x10], eax
jmp 0x4cdc7f
push edi
push dword [ebp + 0xc]
push ebx
call fcn.004ce7b0
jmp 0x4cdc92
push 1
push ebx
call fcn.004cca70
add esp, 8
test eax, eax
je 0x4cdab9
lea ebx, [esi - 1]
test bl, 1
jne 0x4cdab9
mov esi, dword [ebp - 4]
xor edx, edx
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x7c]
shld eax, ecx, 2
shl ecx, 2
cmp edx, eax
jb 0x4cdab9
ja 0x4cdd0f
cmp ebx, ecx
jb 0x4cdab9
cmp dword [esi + 0x88], edx
jne 0x4cdab9
push ebx
call fcn.0050bafd
add esp, 4
mov dword [ebp + 0x10], eax
mov dword [esi + 0x88], eax
test eax, eax
je 0x4cdab9
mov edi, ebx
test ebx, ebx
je 0x4cdd7b
nop dword [eax + eax]
cmp edi, 0x10000
mov eax, 0x10000
mov esi, edi
cmova esi, eax
push esi
push dword [ebp + 8]
call fcn.004cca70
add esp, 8
test eax, eax
je 0x4cdab9
push esi
push eax
push dword [ebp + 0x10]
call fcn.00504640
add dword [ebp + 0x10], esi
add esp, 0xc
sub edi, esi
jne 0x4cdd40
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 4]
mov eax, dword [esi + 0x88]
xor esi, esi
cmp dword [edi + 0x7c], esi
jb 0x4cdc2c
ja 0x4cdd9a
cmp dword [edi + 0x78], esi
jbe 0x4cdc2c
mov edx, dword [ebp - 0xc]
add edx, 4
mov dword [edx], eax
cmp ebx, 2
jb 0x4cdab9
nop dword [eax + eax]
cmp byte [eax], 0
jne 0x4cddbb
cmp byte [eax + 1], 0
je 0x4cddd0
sub ebx, 2
add eax, 2
cmp ebx, 2
jae 0x4cddb0
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, eax
sub ebx, 2
sub ecx, dword [edx]
add eax, 2
mov dword [edx - 4], ecx
inc esi
xor ecx, ecx
add edx, 0x48
cmp ecx, dword [edi + 0x7c]
jb 0x4cdda0
ja 0x4cdc2c
cmp esi, dword [edi + 0x78]
jb 0x4cdda0
jmp 0x4cdc2c
push 2
push ebx
call fcn.004cca70
add esp, 8
test eax, eax
je 0x4cdab9
mov esi, dword [ebp + 0xc]
mov al, byte [eax]
mov byte [ebp + 0x13], al
cmp dword [esi + 0x14], 0
jne 0x4cdab9
mov edi, dword [ebp - 4]
push 1
push dword [edi + 0x78]
call fcn.0050bad7
add esp, 8
mov dword [esi + 0x14], eax
test eax, eax
je 0x4cdab9
cmp byte [ebp + 0x13], 0
mov ecx, dword [edi + 0x78]
push ecx
je 0x4cde4f
push 1
push eax
call fcn.00504e30
add esp, 0xc
jmp 0x4cde61
push eax
push ebx
call fcn.004cd110
add esp, 0xc
test eax, eax
js 0x4cdab9
xor esi, esi
cmp dword [edi + 0x7c], esi
jb 0x4cdc2f
ja 0x4cde77
cmp dword [edi + 0x78], esi
jbe 0x4cdc2f
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
add edi, 0x40
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x14]
cmp byte [esi + eax], 0
je 0x4cdead
push 4
push ebx
call fcn.004cca70
add esp, 8
test eax, eax
je 0x4cdab9
push eax
call fcn.004cb160
mov ecx, dword [ebp - 4]
add esp, 4
mov dword [edi], eax
xor edx, edx
inc esi
add edi, 0x48
cmp edx, dword [ecx + 0x7c]
jb 0x4cde80
ja 0x4cdc2f
cmp esi, dword [ecx + 0x78]
jb 0x4cde80
jmp 0x4cdc2f
test esi, esi
je 0x4cdc2f
jmp case.0x4cdba9.22
mov edx, dword [ebp - 4]
xor ebx, ebx
xor ecx, ecx
mov dword [ebp + 8], ebx
xor edi, edi
mov dword [ebp - 8], ebx
mov dword [ebp - 0x14], ecx
mov eax, dword [edx + 0x28]
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp + 0x10], eax
cmp dword [edx + 0x7c], eax
jb 0x4ce0ac
ja 0x4cdf06
cmp dword [edx + 0x78], eax
jbe 0x4ce0ac
mov edx, dword [ebp - 0xc]
add edx, 0x3c
nop dword [eax]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 8]
test eax, eax
je 0x4cdf20
cmp byte [eax + ecx], 0
jne 0x4cdf24
or dword [edx - 0x2c], 0x10
mov ecx, dword [edx - 0x2c]
movzx esi, word [edx + 6]
mov dword [edx], esi
test cl, 0x10
je 0x4cdf6d
mov esi, dword [ebp - 4]
mov eax, dword [ebp + 8]
cmp eax, dword [esi + 0x38]
movzx esi, word [edx + 6]
jae 0x4cdab9
test esi, esi
jne 0x4cdf4f
mov dword [edx], 0x81b6
mov eax, dword [ebp - 4]
mov esi, dword [ebp + 8]
mov eax, dword [eax + 0x40]
cmp byte [esi + eax], 0
je 0x4cdf64
or ecx, 8
mov dword [edx - 0x2c], ecx
inc esi
mov dword [ebp + 8], esi
jmp 0x4ce000
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4cdf7c
lea ebx, [eax + 1]
jmp 0x4cdf8c
mov ecx, dword [ebp - 8]
xor ebx, ebx
add eax, ecx
inc ecx
mov dword [ebp - 8], ecx
cmp byte [eax], bl
sete bl
test esi, esi
jne 0x4cdfa1
test ebx, ebx
mov ecx, 0x41ff
mov eax, 0x81b6
cmove ecx, eax
jmp 0x4cdfc1
mov ecx, esi
test ebx, ebx
je 0x4cdfc3
mov eax, esi
and eax, 0xf000
cmp eax, 0x4000
je 0x4cdfc3
and ecx, 0xffff4fff
or ecx, 0x4000
mov dword [edx], ecx
and ecx, 0xf000
cmp ecx, 0x4000
jne 0x4cdffd
mov ecx, dword [edx - 0x3c]
cmp ecx, 2
jb 0x4cdffd
mov eax, dword [edx - 0x38]
cmp byte [eax + ecx - 2], 0x2f
jne 0x4cdfea
cmp byte [eax + ecx - 1], 0
je 0x4cdffd
mov byte [eax + ecx], 0x2f
mov eax, dword [edx - 0x3c]
mov ecx, dword [edx - 0x38]
mov byte [ecx + eax + 1], 0
add dword [edx - 0x3c], 2
or ebx, 0xffffffff
mov dword [edx - 0x30], ebx
test byte [edx + 4], 1
je 0x4ce00f
and dword [edx], 0xffffff6d
mov esi, dword [edx - 0x2c]
mov ecx, dword [ebp + 0x10]
and esi, 0x10
test ecx, ecx
jne 0x4ce05f
test esi, esi
jne 0x4ce029
mov dword [edx - 0x34], 0xffffffff
jmp 0x4ce086
mov ecx, dword [ebp - 0x10]
imul eax, edi, 0x68
add ecx, 0x50
add ecx, eax
mov eax, dword [ebp - 4]
xor ebx, ebx
cmp ebx, dword [eax + 0x24]
mov ebx, dword [eax + 0x20]
ja 0x4cdab9
jb 0x4ce04f
cmp edi, ebx
jae 0x4cdab9
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x4ce05c
inc edi
add ecx, 0x68
jmp 0x4ce034
mov ecx, dword [ebp + 0x10]
mov dword [edx - 0x34], edi
test esi, esi
je 0x4ce086
mov ebx, dword [ebp - 0x10]
inc ecx
imul eax, edi, 0x68
xor esi, esi
mov dword [ebp + 0x10], ecx
cmp esi, dword [eax + ebx + 0x54]
jb 0x4ce086
ja 0x4ce080
cmp ecx, dword [eax + ebx + 0x50]
jb 0x4ce086
inc edi
xor eax, eax
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 4]
xor ebx, ebx
mov ecx, dword [ebp - 0x14]
add edx, 0x48
inc ecx
mov dword [ebp - 0x14], ecx
cmp ebx, dword [eax + 0x7c]
mov ebx, dword [ebp + 8]
jb 0x4cdf10
ja 0x4ce0ac
cmp ecx, dword [eax + 0x78]
jb 0x4cdf10
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret