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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x60
mov dword [esp + 0x18], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp + 0x14], eax
mov word [esp], 0x2537
mov byte [esp + 2], 0x2a
mov dword [esp + 3], 0
mov byte [esp + 7], 0
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0x47
xor cl, byte [esp + eax]
add cl, 0x9d
mov byte [esp + eax], cl
inc eax
cmp eax, 8
jne 0x40d370
mov dword [esp + 8], 0x2e24201e
mov word [esp + 0xc], 0x332a
mov dword [esp + 0xe], 0
mov ebx, 0xc4a57dca
mov ecx, 0x3b5a8235
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0x3b5a822d]
mov ebp, ecx
xor ebp, edi
or ebp, ebx
mov eax, ebp
not eax
mov edx, eax
and edx, 0x7d
mov esi, eax
and esi, 2
or eax, 2
imul eax, esi
mov esi, ebp
and esi, 2
imul esi, edx
shr ebp, 1
and ebp, 1
imul ebp, edx
add esi, eax
lea eax, [eax + ebp*2]
lea edx, [ebx + esi]
inc edx
not eax
add eax, ecx
and eax, edi
not edi
and edi, edx
sub eax, edi
mov edx, 1
sub edx, eax
mov esi, eax
and esi, 1
xor eax, 1
add eax, 0xf6
or eax, esi
not edx
and edx, 1
add eax, edx
mov byte [esp + ecx - 0x3b5a822d], al
dec ebx
inc ecx
cmp ebx, 0xc4a57dc0
jne 0x40d3b0
mov dword [esp + 0x1c], 0xf6fcc0c3
mov dword [esp + 0x20], 0xf2f6c4d8
mov dword [esp + 0x24], 0xed868cc3
mov dword [esp + 0x28], 0xea91ee99
mov dword [esp + 0x2c], 0xd2e99d9e
mov dword [esp + 0x30], 0x94c7393f
mov dword [esp + 0x34], 0xa7e1939a
mov dword [esp + 0x38], 0xa6fee4ac
mov dword [esp + 0x3c], 0xa4afafa9
mov dword [esp + 0x40], 0xa4a9a7ab
mov dword [esp + 0x44], 0xcf16fdaa
mov dword [esp + 0x48], 0xf2b5b9b9
mov dword [esp + 0x4c], 0xc2baccc8
mov dword [esp + 0x50], 0xc6bc03ed
mov dword [esp + 0x54], 0xfbe9c0bb
mov byte [esp + 0x58], 0xd8
mov dword [esp + 0x59], 0
mov byte [esp + 0x5d], 0
mov eax, 0xc5
mov ecx, 0x3a
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0xa9]
mov edx, eax
xor edx, ecx
and edx, esi
xor edx, ecx
mov bl, 0x26
sub bl, dl
mov byte [esp + eax - 0xa9], bl
inc eax
dec ecx
cmp eax, 0x107
jne 0x40d4c0
mov edx, dword [esp + 0x74]
add edx, dword [esp + 0x14]
movzx eax, byte [esp + 0x1c]
mov edi, edx
test al, al
je 0x40d50b
lea ecx, [esp + 0x1d]
mov edi, edx
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40d500
mov byte [edi], 0
mov ecx, dword [esp + 0x78]
movzx eax, byte [ecx]
test al, al
je 0x40d52b
inc ecx
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40d520
mov byte [edi], 0
movzx eax, byte [esp + 8]
test al, al
je 0x40d54b
lea ecx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40d540
mov byte [edi], 0
mov ecx, dword [esp + 0x7c]
movzx eax, byte [ecx]
test al, al
je 0x40d56b
inc ecx
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40d560
mov byte [edi], 0
movzx eax, byte [esp]
test al, al
je 0x40d58b
lea ecx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40d580
mov byte [edi], 0
sub edi, edx
mov eax, dword [esp + 0x18]
add dword [eax + 0x60], edi
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret 0xc