Function at 0x40d200
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x5c
mov esi, dword [esp + 0x74]
mov dword [esp + 0x18], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp + 0x14], eax
mov word [esp], 0x2517
mov byte [esp + 2], 0x2a
mov dword [esp + 3], 0
mov byte [esp + 7], 0
mov ebp, 0x37
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ebp - 0x37]
lea ecx, [ebp - 0x70c4a500]
or ecx, ebp
and ecx, ebx
mov eax, ecx
or al, 0xfd
inc al
mov edx, ecx
and dl, 0x3d
mul dl
mov edx, eax
add dl, bl
mov eax, ecx
shr al, 1
and al, 1
or cl, 2
mul cl
add al, al
sub dl, al
movzx eax, dl
add eax, ebp
add al, 0xed
mov byte [esp + ebp - 0x37], al
inc ebp
cmp ebp, 0x3f
jne 0x40d240
mov dword [esp + 8], 0xe6f8e492
mov word [esp + 0xc], 0xfdf6
mov dword [esp + 0xe], 0
mov byte [esp + 0x12], 0
mov eax, 0x706c8fd4
mov edx, 0x8f93702b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0x706c8fcc]
mov ebp, edx
xor ebp, 0x8e90403e
mov ecx, eax
and ecx, 0x70088b3e
or ecx, ebp
xor ecx, ebx
mov ebx, ecx
and ebx, 0x5b
add ebx, ebx
xor ecx, 0xe5
xor ebx, 0x82
sub ebx, ecx
mov byte [esp + eax - 0x706c8fcc], bl
inc eax
dec edx
cmp eax, 0x706c8fdf
jne 0x40d2b0
mov dword [esp + 0x1c], 0xe6e02c2d
mov dword [esp + 0x20], 0xe2e2101c
mov dword [esp + 0x24], 0xefdae01d
mov dword [esp + 0x28], 0xeae7eee3
mov dword [esp + 0x2c], 0xe2172322
mov dword [esp + 0x30], 0x18f5bfb9
mov dword [esp + 0x34], 0x151f2d16
mov dword [esp + 0x38], 0x16fad028
mov dword [esp + 0x3c], 0x300d3133
mov dword [esp + 0x40], 0x80f310d
mov dword [esp + 0x44], 0xdcaf306
mov dword [esp + 0x48], 0xc2033f03
mov dword [esp + 0x4c], 0x32063034
mov dword [esp + 0x50], 0x3638f5cf
mov dword [esp + 0x54], 0xf9c73c35
mov byte [esp + 0x58], 0x9c
mov word [esp + 0x59], 0
mov byte [esp + 0x5b], 0
mov ebp, 0x12bd7f70
mov edx, 0xcd42808f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebp - 0x12bd7f54]
mov ebx, edx
and ebx, 0x8100809f
mov eax, ebp
and eax, 0x10955060
or eax, ebx
xor eax, ecx
mov ecx, eax
and ecx, 0x91915031
xor ecx, 0x5c935020
and eax, 0x480ce
xor eax, 0x208828e
sub eax, ecx
mov ecx, eax
not ecx
or ecx, 1
add ecx, eax
inc ecx
mov edi, ecx
and edi, 2
mov ebx, ecx
or ecx, 2
imul ecx, edi
xor edi, 2
and ebx, 0xfd
imul ebx, edi
xor eax, 1
add eax, ecx
add eax, ebx
mov byte [esp + ebp - 0x12bd7f54], al
inc ebp
dec edx
cmp ebp, 0x12bd7fb0
jne 0x40d390
mov edi, dword [esp + 0x70]
add edi, dword [esp + 0x14]
movzx ecx, byte [esp + 0x1c]
mov eax, edi
test cl, cl
je 0x40d42b
lea edx, [esp + 0x1d]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40d420
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x40d44b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40d440
mov byte [eax], 0
movzx ecx, byte [esp + 8]
test cl, cl
je 0x40d46b
lea edx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40d460
mov byte [eax], 0
mov edx, dword [esp + 0x78]
movzx ecx, byte [edx]
test cl, cl
je 0x40d48b
inc edx
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40d480
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40d4ab
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40d4a0
mov byte [eax], 0
sub eax, edi
mov ecx, dword [esp + 0x18]
add dword [ecx + 0x60], eax
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret 0xc