Function at 0x40d9e0
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 + 0x14], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp + 0x10], eax
mov word [esp], 0x6f6d
mov byte [esp + 2], 0x76
mov word [esp + 3], 0
mov byte [esp + 5], 0
xor ebp, ebp
nop
movzx edi, byte [esp + ebp]
mov ebx, ebp
xor ebx, 0xf7a30fe9
mov eax, ebp
or eax, 0x85cf016
and ebx, eax
add ebx, eax
mov ecx, ebx
and ecx, edi
mov edx, ecx
or edx, 0xfd
inc edx
mov eax, ecx
and eax, 0x1d
imul eax, edx
mov edx, ecx
and edx, 2
or ecx, 2
imul ecx, edx
add ebx, edi
sub ebx, ecx
add ebx, eax
add bl, 0x92
mov byte [esp + ebp], bl
inc ebp
cmp ebp, 6
jne 0x40da10
mov dword [esp + 8], 0x868884b2
mov dword [esp + 0xc], 0xadb6
mov edi, 0x8024689c
mov ebp, 0x7fdb9763
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edi + 0x7fdb976c]
mov ecx, ebp
and ecx, 0x5b838637
mov ebx, edi
and ebx, 0x80202808
or ebx, ecx
xor ebx, eax
mov eax, ebx
and eax, 0x73
add eax, eax
xor eax, 0x66
xor ebx, 0x44
add ebx, eax
inc bl
mov byte [esp + edi + 0x7fdb976c], bl
inc edi
dec ebp
cmp edi, 0x802468a4
jne 0x40da80
mov dword [esp + 0x18], 0x9e845053
mov dword [esp + 0x1c], 0x829e6c68
mov dword [esp + 0x20], 0x858e8473
mov dword [esp + 0x24], 0x8a818689
mov dword [esp + 0x28], 0x42898586
mov dword [esp + 0x2c], 0xbc6f2927
mov dword [esp + 0x30], 0xbfb183ba
mov dword [esp + 0x34], 0xbe567c84
mov dword [esp + 0x38], 0x8cb7b789
mov dword [esp + 0x3c], 0xacb98fbb
mov dword [esp + 0x40], 0xa77e55aa
mov dword [esp + 0x44], 0x62ada9a9
mov dword [esp + 0x48], 0xb29ab4a8
mov dword [esp + 0x4c], 0xcea47355
mov dword [esp + 0x50], 0xb29d0db
mov byte [esp + 0x54], 0x68
mov dword [esp + 0x55], 0
mov dword [esp + 0x58], 0
xor ebx, ebx
nop
nop
nop
mov eax, ebx
add al, 0x89
xor al, byte [esp + ebx + 0x18]
add al, 0x53
mov byte [esp + ebx + 0x18], al
mov eax, ebx
and eax, 1
xor ebx, 1
lea ebx, [ebx + eax*2]
cmp ebx, 0x44
jb 0x40db50
mov eax, dword [esp + 0x70]
add eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x18]
mov edi, eax
test cl, cl
je 0x40db9b
lea ebx, [esp + 0x19]
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x40db90
mov byte [edi], 0
movzx ecx, byte [esi]
test cl, cl
mov edx, dword [esp + 0x78]
je 0x40dbbb
inc esi
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40dbb0
mov byte [edi], 0
movzx ecx, byte [esp + 8]
test cl, cl
je 0x40dbdb
lea esi, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40dbd0
mov byte [edi], 0
movzx ecx, byte [edx]
test cl, cl
je 0x40dbfb
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40dbf0
mov byte [edi], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40dc1b
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40dc10
mov byte [edi], 0
sub edi, eax
mov eax, dword [esp + 0x14]
add dword [eax + 0x60], edi
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret 0xc