Function at 0x403e10
Capabilities:
Access peb ldr_data
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 0x34], eax
mov dword [ebp - 8], ebx
nop word [eax + eax]
mov eax, dword fs:[0x30]
xorps xmm0, xmm0
movlpd qword [ebp - 0x40], xmm0
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x10], edx
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x40]
add ecx, 0xc
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0xc], eax
mov ebx, dword [ecx]
mov dword [ebp - 4], ebx
cmp ebx, ecx
je 0x40405a
cmp dword [ebx + 0x30], 0
je 0x404046
mov edi, dword [ebx + 0x18]
mov eax, edi
cdq
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], edx
test edi, edi
je 0x404046
mov edx, dword [edi + 0x3c]
mov esi, 0x5a4d
add edx, edi
mov dword [ebp - 0x3c], edx
mov ecx, dword [edx + 0x78]
add ecx, edi
cmp word [eax], si
mov dword [ebp - 0x24], ecx
mov esi, 0x10b
jne 0x404061
cmp word [edx + 0x18], si
jne 0x403eb1
cmp dword [edx + 0x7c], 0
jbe 0x404043
xor esi, esi
mov dword [ebp - 0x1c], esi
cmp dword [ecx + 0x18], esi
jbe 0x40402f
mov edx, dword [ecx + 0x20]
add edx, edi
mov dword [ebp - 0x20], edx
mov edi, dword [edx]
mov ebx, 0xd0dc4f96
add edi, eax
mov dword [ebp - 0x18], ebx
xor eax, eax
mov ch, byte [edi]
test ch, ch
je 0x403f2e
nop dword [eax + eax]
mov bl, ch
lea esi, [eax - 0x2f23b06a]
mov cl, ch
sub bl, 0x41
add cl, 0x20
cmp bl, 0x19
movzx edx, cl
mov ebx, 0xd0dc4f96
movzx ecx, ch
cmova edx, ecx
movsx edx, dl
imul esi, edx
mov ecx, edx
xor ecx, dword [ebp - 0x18]
add esi, ecx
test eax, eax
mov ecx, eax
cmove ecx, ebx
inc eax
xor ecx, ebx
imul esi, ecx
mov ch, byte [eax + edi]
lea ebx, [edx + esi]
mov dword [ebp - 0x18], ebx
test ch, ch
jne 0x403ee0
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
cmp dword [ebp - 8], ebx
jne 0x403f39
cmp dword [ebp - 0x34], 0
je 0x403f57
mov eax, dword [ebp - 0x24]
inc esi
add edx, 4
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], edx
cmp esi, dword [eax + 0x18]
jae 0x404034
mov eax, dword [ebp - 0x28]
jmp 0x403ec7
mov edx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + ebx]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x3c]
mov esi, dword [eax + ebx]
xor eax, eax
add esi, ebx
mov dword [ebp - 0xc], esi
adc eax, dword [ebp - 0x2c]
xor edi, edi
mov edx, dword [ecx + 0x78]
mov ecx, dword [ecx + 0x7c]
add edx, ebx
mov dword [ebp - 0x10], eax
adc edi, dword [ebp - 0x2c]
cmp eax, edi
jb 0x404037
ja 0x403f9f
cmp esi, edx
jb 0x404037
xor eax, eax
add ecx, edx
adc eax, edi
cmp dword [ebp - 0x10], eax
jb 0x403fb8
ja 0x404037
cmp esi, ecx
jae 0x404037
mov bl, byte [esi]
mov edi, esi
test bl, bl
je 0x403fd3
inc esi
cmp bl, 0x2e
mov eax, esi
cmovne eax, edi
mov edi, eax
mov bl, byte [esi]
test bl, bl
jne 0x403fc0
mov bl, byte [eax]
xor esi, esi
mov dword [ebp - 8], 0xd0dc4f96
test bl, bl
je 0x404023
lea edx, [ebx - 0x41]
cmp dl, 0x19
lea eax, [ebx + 0x20]
movzx ecx, al
lea edx, [esi - 0x2f23b06a]
movzx eax, bl
mov ebx, 0xd0dc4f96
cmova ecx, eax
movsx ecx, cl
imul edx, ecx
mov eax, ecx
xor eax, dword [ebp - 8]
add edx, eax
test esi, esi
mov eax, esi
cmove eax, ebx
inc esi
xor eax, ebx
imul edx, eax
mov bl, byte [esi + edi]
add edx, ecx
mov dword [ebp - 8], edx
test bl, bl
jne 0x403fe0
mov dword [ebp - 0x34], 0
jmp 0x403e30
mov esi, dword [ebp - 0xc]
jmp 0x40403a
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
mov eax, esi
or eax, ecx
jne 0x40404d
mov ecx, dword [ebp - 0x30]
mov ebx, dword [ebx]
jmp 0x403e55
pop edi
mov eax, esi
mov edx, ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.Cannot_find_desired_import.
jmp 0x404066
push str.DOS_header_e_magic_mismatch
lea ecx, [ebp - 0x14]
call fcn.00401270
push 0x4252c4
mov eax, ecx
push eax
call fcn.0040542e
int3