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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [ebp + 0x20]
and dword [ebp - 0x18], 0
mov edx, dword [ebp + 0xc]
push ebx
and dword [eax], 0
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x3c]
mov esi, dword [eax + edi + 0x78]
mov ecx, dword [eax + edi + 0x7c]
lea ebx, [ecx + esi]
mov dword [ebp - 0x10], ebx
cmp esi, edx
jae 0x40900a
lea eax, [esi + 0x28]
cmp eax, edx
ja 0x40900a
cmp ecx, edx
ja 0x40900a
cmp ebx, edx
ja 0x40900a
mov eax, dword [esi + edi + 0x14]
mov edx, dword [esi + edi + 0x18]
mov dword [ebp - 4], eax
mov dword [ebp - 0x20], edx
cmp eax, edx
jb 0x40900a
test eax, eax
je 0x40900a
mov eax, dword [esi + edi + 0x20]
mov dword [ebp - 0x24], eax
cmp eax, esi
jb 0x40900a
shl edx, 2
add eax, edx
cmp eax, ebx
ja 0x40900a
cmp edx, ecx
jae 0x40900a
mov ebx, dword [esi + edi + 0x24]
cmp ebx, esi
jb 0x40900a
mov eax, dword [ebp - 0x20]
lea edx, [ecx + esi]
lea eax, [ebx + eax*2]
cmp eax, edx
ja 0x40900a
mov edx, dword [esi + edi + 0x1c]
cmp edx, esi
jb 0x40900a
mov eax, dword [ebp - 4]
shl eax, 2
add eax, edx
cmp eax, dword [ebp - 0x10]
ja 0x40900a
mov eax, dword [ebp - 4]
shl eax, 2
cmp eax, ecx
jae 0x40900a
and dword [ebp + 8], 0
lea eax, [edx + edi]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
add eax, edi
mov dword [ebp - 0x30], eax
lea eax, [ebx + edi]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0xc]
lea ecx, [edi + eax]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 0x14]
add ecx, eax
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 4]
test ecx, ecx
je 0x40900a
mov edx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 8]
cmp edx, 0x256
jb 0x408ffe
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ecx + ebx*4]
push ebx
push eax
push edi
call fcn.00404da2
test eax, eax
je 0x408ff2
push eax
call fcn.0040543a
cmp al, 1
mov eax, dword [ebp + 0xc]
jne 0x408ff5
cmp ebx, eax
jae 0x408ff5
cmp ebx, esi
jb 0x408fb3
cmp ebx, dword [ebp - 0x10]
jb 0x408ff5
push dword [ebp - 0x1c]
lea eax, [ebx + edi]
add ebx, dword [ebp + 0x14]
push eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], ebx
call fcn.00409bc0
mov edx, eax
mov dword [ebp - 0x38], ebx
mov eax, dword [ebp - 8]
xor ecx, ecx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x34], eax
test edx, edx
je 0x408ff2
mov al, byte [eax]
cmp al, byte [ebx]
jne 0x409016
mov eax, dword [ebp - 8]
inc ecx
inc eax
inc ebx
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], ebx
cmp ecx, edx
jb 0x408fdc
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 4]
inc ebx
mov dword [ebp + 8], ebx
cmp ebx, ecx
jb 0x408f7f
mov eax, dword [ebp - 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
push dword [ebp - 0x1c]
push ebx
push dword [ebp - 8]
call fcn.00409c44
mov ebx, eax
test ebx, ebx
je 0x408ff2
cmp ebx, dword [ebp - 0x24]
jae 0x408ff2
cmp ebx, 0x32
jae 0x408ff2
push ebx
push dword [ebp - 8]
call fcn.0040a940
cmp al, 1
jne 0x408ff2
push ebx
push dword [ebp - 0xc]
call fcn.0040a940
cmp al, 1
jne 0x408ff2
push dword [ebp - 0x14]
push dword [ebp - 0xc]
call fcn.0040aa20
test al, al
jne 0x408ff2
and dword [ebp - 0x24], 0
xor ecx, ecx
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x40908f
mov eax, dword [ebp - 0x2c]
movzx eax, word [eax + ecx*2]
cmp eax, dword [ebp + 8]
je 0x40907b
inc ecx
cmp ecx, edx
jb 0x409068
jmp 0x40908f
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + ecx*4]
cmp eax, esi
jb 0x40908f
cmp eax, dword [ebp - 0x10]
jae 0x40908f
add eax, edi
mov dword [ebp - 0x24], eax
lea eax, [ebx*2 + 0x254]
cmp dword [ebp + 0x1c], eax
jb 0x4091ae
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp - 0xc]
push dword [ebp - 8]
sub eax, dword [ebp + 0x14]
add eax, dword [ebp + 0x10]
push dword [ebp - 0x34]
and dword [ecx + 4], 0
mov dword [ecx], eax
call fcn.00409b86
test eax, eax
je 0x4090c7
mov ecx, dword [ebp - 0x38]
add ecx, eax
jmp 0x4090ca
mov ecx, dword [ebp - 0xc]
lea edx, [ebx + 0x10]
lea eax, [edx + ecx]
cmp eax, dword [ebp - 0x14]
jbe 0x4090da
mov edx, dword [ebp - 0x14]
sub edx, ecx
lea eax, [ebp - 0x3c]
push eax
mov eax, ecx
sub eax, dword [ebp + 0x14]
add eax, dword [ebp + 0x10]
push eax
push edx
push ecx
call fcn.00406510
cmp al, 1
jne 0x4090fb
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x3c]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x18]
xor ecx, ecx
mov word [eax + 8], cx
mov eax, dword [eax + 4]
test eax, eax
je 0x409135
push eax
call fcn.0040a248
test eax, eax
je 0x409135
push 0x104
push eax
mov eax, dword [ebp + 0x18]
add eax, 8
push eax
call fcn.0047d8b0
mov ecx, dword [ebp + 0x18]
xor eax, eax
mov word [ecx + 0x20e], ax
jmp 0x409138
mov ecx, dword [ebp + 0x18]
lea eax, [ecx + 0x210]
mov ecx, dword [ebp - 0x24]
mov byte [eax], 0
test ecx, ecx
je 0x40915d
push 0x40
push ecx
push eax
call fcn.0047d6a8
mov eax, dword [ebp + 0x18]
mov byte [eax + 0x24f], 0
jmp 0x409160
mov eax, dword [ebp + 0x18]
push ebx
push dword [ebp - 8]
mov dword [eax + 0x250], ebx
add eax, 0x254
push eax
call sub.ntoskrnl.exe_memcpy
mov eax, dword [ebp + 0x18]
push ebx
push dword [ebp - 0xc]
add eax, 0x254
add eax, ebx
push eax
call sub.ntoskrnl.exe_memcpy
mov ecx, dword [ebp + 0x20]
lea eax, [ebx*2 + 0x254]
mov edx, dword [ebp + 0x1c]
add esp, 0x18
add dword [ebp + 0x18], eax
sub edx, eax
inc dword [ebp - 0x18]
add dword [ecx], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x1c], edx
jmp 0x408ff8
xor edx, edx
inc edx
jmp 0x4091a3