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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x274
mov ecx, dword [esp + 0x28c]
mov edi, dword [esp + 0x288]
test edi, edi
je 0x4cda31
mov ecx, dword [esp + 0x290]
mov edx, ecx
and edx, 0xc
mov eax, 0xffffff2f
cmp edx, 0xc
je 0x4cda3d
test edx, edx
setne dl
mov ebx, ecx
not ebx
test bl, 0x82
je 0x4cda3d
mov ebx, ecx
and ebx, 0x40
shr ebx, 6
and dl, bl
jne 0x4cda3d
mov eax, ecx
or eax, 8
test cl, 0x44
cmovne eax, ecx
test al, 0x40
mov dword [esp + 8], eax
jne 0x4cda48
push edi
call fcn.00784240
add esp, 4
inc eax
lea ecx, [esp + 0x178]
push ecx
push 0
push eax
push edi
call fcn.00784250
add esp, 0x10
test eax, eax
je 0x4ce230
mov esi, eax
mov eax, dword [esp + 8]
and eax, 4
mov dword [esp + 0x10], eax
cmp dword [esp + 0x178], 1
jne 0x4cddc5
mov bl, 1
xor edi, edi
jmp 0x4cdeaa
xor eax, eax
test ecx, ecx
je 0x4cda3d
mov dword [ecx], 0
add esp, 0x274
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, eax
and ecx, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], 0
mov ecx, eax
and ecx, 1
mov dword [esp + 0x18], ecx
mov ecx, eax
and eax, 8
shl eax, 0xa
and ecx, 0x20
shl ecx, 9
or ecx, eax
xor ecx, 0x4d5b
mov dword [esp + 0x34], ecx
mov dword [esp], 0
lea ebp, [esp + 0x38]
lea esi, [esp + 0x20]
jmp 0x4cdaa4
mov dword [esp], edi
mov byte [esp + edi + 0x78], 0
mov edi, eax
inc edi
cmp byte [eax], 0
je 0x4cdd79
push 0x2e
push edi
call fcn.004cf640
add esp, 8
mov ebx, eax
mov dword [esp + 4], eax
sub ebx, edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x28], 0x3f
push ebx
push edi
call fcn.004cf940
add esp, 8
test al, al
je 0x4cdb10
cmp byte [esp + 8], 0
js 0x4cdaf1
cmp ebx, 4
jb 0x4cdaf1
cmp dword [edi], 0x2d2d6e78
je 0x4cdc13
cmp ebx, 0x3f
ja 0x4ce09a
push ebx
push edi
push ebp
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
jmp 0x4cdcb9
mov byte [esp + 0x14], al
mov ecx, ebx
mov eax, edi
xor edi, edi
mov dword [esp + 0x24], 0
xor ebx, ebx
push dword [esp + 0x18]
push esi
lea edx, [esp + 0x24]
push edx
push ecx
push eax
call fcn.004cf810
add esp, 0x14
test eax, eax
jne 0x4cdc90
cmp dword [esp + 0x10], 0
je 0x4cdc71
mov dword [esp + 0x38], 0x2d2d6e78
mov dword [esp + 0x30], 0x3b
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x28]
push dword [esp + 0x28]
call fcn.004cead0
add esp, 0x10
test eax, eax
jne 0x4cdc90
mov eax, dword [esp + 0x30]
lea ecx, [eax + 4]
cmp byte [esp + 0x14], 0
je 0x4cdd0a
mov eax, 0xfffffec6
cmp ebx, ecx
jne 0x4cdd68
cmp edi, ebp
mov dword [esp + 0x14], ecx
sete cl
test ebx, ebx
sete dl
or dl, cl
mov ecx, dword [esp + 0x14]
jne 0x4cdd66
mov ecx, 1
nop dword [eax + eax]
movzx ebp, byte [edi + ecx - 1]
lea esi, [ebp - 0x41]
lea edx, [ebp + 0x20]
cmp esi, 0x1a
cmovae edx, ebp
movzx esi, byte [esp + ecx + 0x37]
lea ebp, [esi - 0x41]
lea eax, [esi + 0x20]
cmp ebp, 0x1a
cmovae eax, esi
movzx edx, dl
movzx ebp, al
cmp ebx, ecx
je 0x4cdbf5
test edx, edx
je 0x4cdbf5
inc ecx
cmp edx, ebp
je 0x4cdbc0
cmp edx, ebp
lea ebp, [esp + 0x38]
lea esi, [esp + 0x20]
mov eax, 0xfffffec6
mov ecx, dword [esp + 0x14]
je 0x4cdd66
jmp 0x4cdc95
mov byte [esp + 0x14], al
lea eax, [edi + 4]
lea ecx, [ebx - 4]
lea edx, [esp + 0x28]
push edx
lea esi, [esp + 0x17c]
push esi
push ecx
push eax
call fcn.004cee10
add esp, 0x10
test eax, eax
jne 0x4ce09f
mov dword [esp + 0xc], 0x3f
lea eax, [esp + 0xc]
push eax
push 0
push dword [esp + 0x30]
push esi
call fcn.00783ef0
add esp, 0x10
test eax, eax
je 0x4ce209
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], eax
lea esi, [esp + 0x20]
jmp 0x4cdb24
push dword [esp + 0x20]
push dword [esp + 0x20]
push dword [esp + 0x3c]
call fcn.004cf980
add esp, 0xc
test eax, eax
je 0x4cdb4b
nop dword [eax]
mov ebx, 0x3f
push dword [esp + 0x1c]
mov edi, eax
call fcn.004cf4f0
add esp, 4
push dword [esp + 0x24]
call fcn.004cf4f0
mov eax, edi
add esp, 4
test edi, edi
jne 0x4ce09f
mov eax, 0xfd
test ebx, ebx
jne 0x4cdcd3
mov eax, dword [esp + 4]
cmp byte [eax], 1
mov eax, 0
adc eax, 0xfd
mov ecx, dword [esp]
lea edi, [ebx + ecx]
cmp edi, eax
ja 0x4cdd6f
lea eax, [esp + ecx]
add eax, 0x78
push ebx
push ebp
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 4]
cmp byte [eax], 0x2e
jne 0x4cda90
mov byte [esp + edi + 0x78], 0x2e
inc edi
jmp 0x4cda90
cmp byte [esp + 8], 0
js 0x4cdd66
mov ebx, ecx
lea ecx, [esp + 0x28]
push ecx
lea edi, [esp + 0x17c]
push edi
push eax
lea eax, [esp + 0x48]
push eax
call fcn.004cee10
add esp, 0x10
mov ecx, eax
mov eax, 0xfffffec6
test ecx, ecx
jne 0x4cdc95
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x28]
jne 0x4cdc95
push ecx
push edi
push dword [esp + 0x24]
call fcn.00783e10
add esp, 0xc
mov ecx, eax
mov eax, 0xfffffec6
test ecx, ecx
mov ecx, ebx
jne 0x4cdd68
xor eax, eax
mov ebx, ecx
jmp 0x4cdc95
mov eax, 0xffffff33
jmp 0x4ce09f
push dword [esp + 0x2c]
call fcn.004cf4f0
add esp, 4
xor eax, eax
mov edi, dword [esp + 0x28c]
test edi, edi
je 0x4cda3d
mov esi, dword [esp]
inc esi
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
test eax, eax
je 0x4ce1ff
lea ecx, [esp + 0x78]
push esi
push ecx
push eax
mov esi, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [edi], esi
xor eax, eax
jmp 0x4cda3d
xor ebx, ebx
lea ebp, [esp + 0x78]
xor edi, edi
jmp 0x4cddfd
push 2
push ebp
call fcn.004cf3b0
add esp, 8
test eax, eax
je 0x4cde25
mov eax, dword [esp + 0x80]
and eax, 0x1f
add edi, eax
inc ebx
mov eax, dword [esp + 0x178]
lea ecx, [eax - 1]
cmp ebx, ecx
jae 0x4cde89
push ebp
push dword [esi + ebx*4]
call fcn.004cf210
add esp, 8
push 0x10
push ebp
call fcn.004cf3b0
add esp, 8
test eax, eax
je 0x4cddcf
cmp dword [esi + ebx*4], 0
jne 0x4ce1b4
inc edi
jmp 0x4cddea
push 1
push ebp
call fcn.004cf3b0
add esp, 8
test eax, eax
jne 0x4cde22
push 4
push ebp
call fcn.004cf3b0
add esp, 8
test eax, eax
jne 0x4cddea
push 8
push ebp
call fcn.004cf3b0
add esp, 8
test eax, eax
je 0x4cde5b
cmp dword [esp + 0x10], 0
jne 0x4cddde
jmp 0x4cde22
test byte [esp + 8], 0x20
jne 0x4cddea
push 0x40
push ebp
call fcn.004cf3b0
add esp, 8
test eax, eax
jne 0x4cde22
push 0x20
push ebp
call fcn.004cf3b0
add esp, 8
test eax, eax
jne 0x4cddde
jmp 0x4cddea
cmp eax, 1
sete bl
cmp edi, 0xff
jb 0x4cdeaa
push esi
call fcn.004cf4f0
add esp, 4
mov eax, 0xffffff33
jmp 0x4cda3d
lea eax, [edi*4 + 4]
push eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov dword [esp + 4], eax
test eax, eax
je 0x4ce087
mov eax, ebx
xor ebx, ebx
test al, al
je 0x4ce0b4
push esi
call fcn.004cf4f0
add esp, 4
mov esi, dword [esp + 4]
mov dword [esi + ebx*4], 0
inc ebx
mov eax, dword [0xadb860]
lea ecx, [esp + 0x178]
push ecx
push 0
push ebx
push esi
push eax
call fcn.00783610
add esp, 0x14
mov edi, eax
push esi
call fcn.004cf4f0
add esp, 4
test edi, edi
je 0x4ce230
mov ecx, dword [edi]
test ecx, ecx
je 0x4ce1c7
xor eax, eax
cmp dword [esp + 0x10], 0
sete al
shl eax, 0xc
mov edx, dword [esp + 8]
and edx, 0x20
mov ebx, edx
shl ebx, 9
add eax, ebx
add eax, 0x100f
xor eax, 0x4000
mov dword [esp + 4], eax
xor eax, eax
test edx, edx
sete al
shl eax, 0xe
or eax, 0x200f
mov dword [esp + 0x24], eax
xor ebp, ebp
lea ebx, [esp + 0x78]
mov dword [esp + 0x18], edi
mov eax, edi
nop word cs:[eax + eax]
xor edx, edx
mov esi, ecx
mov edi, eax
test esi, esi
je 0x4cdf92
nop word [eax + eax]
cmp esi, 0x2e
je 0x4cdf92
mov esi, dword [edi + 4]
add edi, 4
add edx, 4
test esi, esi
jne 0x4cdf80
mov esi, ebx
sar edx, 2
cmp edx, 4
setl bl
cmp ecx, 0x78
setne cl
or cl, bl
jne 0x4ce040
cmp dword [eax + 4], 0x6e
jne 0x4ce040
cmp dword [eax + 8], 0x2d
jne 0x4ce040
cmp dword [eax + 0xc], 0x2d
jne 0x4ce040
mov dword [esp + 0xc], 0x3f
add eax, 0x10
add edx, 0xfffffffc
lea ecx, [esp + 0x38]
push ecx
push 0
push edx
push eax
call fcn.00783ef0
add esp, 0x10
test eax, eax
je 0x4ce224
mov ecx, eax
mov ebx, esi
lea eax, [esp + 0xc]
push eax
push esi
push dword [esp + 0x40]
push ecx
mov esi, ecx
call fcn.004cee10
add esp, 0x10
mov dword [esp], eax
push esi
call fcn.004cf4f0
mov eax, dword [esp + 4]
add esp, 4
test eax, eax
jne 0x4ce24b
push dword [esp + 0xc]
push ebx
push dword [esp + 0x2c]
call fcn.004cf980
add esp, 0xc
test eax, eax
cmovne ebp, eax
jmp 0x4ce055
push edx
push eax
push dword [esp + 0xc]
call fcn.004cf980
add esp, 0xc
test eax, eax
cmovne ebp, eax
mov ebx, esi
xor ecx, ecx
cmp dword [edi], 0
setne cl
lea eax, [edi + ecx*4]
mov ecx, dword [edi + ecx*4]
test ecx, ecx
jne 0x4cdf70
test ebp, ebp
mov edi, dword [esp + 0x18]
je 0x4ce1c7
push edi
call fcn.004cf4f0
add esp, 4
mov eax, ebp
jmp 0x4cda3d
push esi
call fcn.004cf4f0
add esp, 4
mov eax, 0xffffff9c
jmp 0x4cda3d
mov eax, 0xffffff32
push dword [esp + 0x2c]
mov esi, eax
call fcn.004cf4f0
mov eax, esi
add esp, 4
jmp 0x4cda3d
xor ebp, ebp
xor ebx, ebx
mov dword [esp], esi
nop dword [eax + eax]
mov edi, dword [esi + ebp*4]
lea esi, [esp + 0x78]
push esi
push edi
call fcn.004cf210
add esp, 8
push 0x10
push esi
call fcn.004cf3b0
add esp, 8
test eax, eax
je 0x4ce0ea
mov eax, dword [esp + 4]
mov dword [eax + ebx*4], edi
inc ebx
jmp 0x4ce10c
push 2
push esi
call fcn.004cf3b0
add esp, 8
test eax, eax
je 0x4ce121
mov eax, dword [esp + 4]
lea eax, [eax + ebx*4]
push esi
push eax
call fcn.004cf410
add esp, 8
add ebx, eax
mov esi, dword [esp]
inc ebp
mov eax, dword [esp + 0x178]
dec eax
cmp ebp, eax
jb 0x4ce0c0
jmp 0x4cded2
push 1
push esi
call fcn.004cf3b0
add esp, 8
test eax, eax
jne 0x4ce0e0
push 4
push esi
call fcn.004cf3b0
add esp, 8
test eax, eax
jne 0x4ce10c
push 8
push esi
call fcn.004cf3b0
add esp, 8
test eax, eax
je 0x4ce162
cmp dword [esp + 0x10], 0
mov esi, dword [esp]
jne 0x4ce198
mov eax, dword [esp + 4]
mov dword [eax + ebx*4], edi
inc ebx
jmp 0x4ce10f
test byte [esp + 8], 0x20
jne 0x4ce10c
push 0x40
lea esi, [esp + 0x7c]
push esi
call fcn.004cf3b0
add esp, 8
test eax, eax
jne 0x4ce0e0
push 0x20
push esi
call fcn.004cf3b0
add esp, 8
test eax, eax
jne 0x4ce0f9
jmp 0x4ce10c
mov eax, dword [esp + 4]
lea eax, [eax + ebx*4]
lea ecx, [esp + 0x78]
push ecx
push eax
call fcn.004cf410
add esp, 8
add ebx, eax
jmp 0x4ce10f
push esi
call fcn.004cf4f0
add esp, 4
mov eax, 0xfffffed0
jmp 0x4cda3d
lea eax, [esp + 0x178]
push eax
push 0
push dword [esp + 0x180]
push edi
call fcn.00783ef0
add esp, 0x10
mov esi, eax
push edi
call fcn.004cf4f0
add esp, 4
test esi, esi
je 0x4ce230
mov dword [esp + 0x2c], esi
mov edi, esi
mov eax, dword [esp + 8]
jmp 0x4cda59
mov eax, 0xffffff9c
jmp 0x4cda3d
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [eax], 0xc
mov ecx, 0xffffff9c
mov eax, 0xffffff38
cmove eax, ecx
jmp 0x4ce09f
push dword [esp + 0x18]
call fcn.004cf4f0
add esp, 4
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [eax], 0xc
mov ecx, 0xffffff9c
mov eax, 0xffffff38
cmove eax, ecx
jmp 0x4cda3d
push dword [esp + 0x18]
jmp 0x4ce0a3