Function at 0x40dc80
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], 0xdfdd
mov byte [esp + 2], 0xd6
mov dword [esp + 3], 0
mov ebx, 0xbbecace
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx - 0xbbecace]
lea eax, [ebx - 0x30000000]
mov edx, ebx
and edx, 0x98802cf
and eax, 0xd236c810
or eax, edx
mov edx, eax
xor edx, 0x2d8913cf
xor eax, ecx
xor ecx, 0xcf
not eax
and eax, edx
add ecx, edx
add eax, eax
sub ecx, eax
add cl, 0xfa
mov byte [esp + ebx - 0xbbecace], cl
inc ebx
cmp ebx, 0xbbecad5
jne 0x40dcb0
mov dword [esp + 8], 0x8a8488a2
mov word [esp + 0xc], 0xbf86
mov dword [esp + 0xe], 0
mov word [esp + 0x12], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x9f
xor cl, byte [esp + eax + 8]
add cl, 0xe5
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 0xc
jne 0x40dd20
mov dword [esp + 0x1c], 0xae90e4e5
mov dword [esp + 0x20], 0xb2b2e0e4
mov dword [esp + 0x24], 0xb7bab0e5
mov dword [esp + 0x28], 0xbabf86b3
mov dword [esp + 0x2c], 0xf2bfb3b2
mov dword [esp + 0x30], 0x88dde7e9
mov dword [esp + 0x34], 0x8d87958e
mov dword [esp + 0x38], 0x8eaac098
mov dword [esp + 0x3c], 0x80858183
mov dword [esp + 0x40], 0x98978195
mov dword [esp + 0x44], 0x95eac39e
mov dword [esp + 0x48], 0xd2939793
mov dword [esp + 0x4c], 0xa28ea09c
mov dword [esp + 0x50], 0x5e681d37
mov dword [esp + 0x54], 0x193f646d
mov byte [esp + 0x58], 0xf4
mov dword [esp + 0x59], 0
mov ebx, 0x75cc
mov eax, 0x3fff0a33
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx - 0x75b0]
lea edi, [ebx - 0x75c0]
mov edx, ebx
and edx, 0x6604
mov ebp, eax
and ebp, 0x33dd01fb
or ebp, edx
xor ebp, ecx
xor ebp, 4
lea esi, [eax - 0x3fff0a00]
mov edx, esi
and edx, 0xd4
and edi, 0x2b
or edi, edx
xor edi, 0x2b
or edi, esi
mov edx, esi
and edx, ecx
or edx, ebp
and edi, ecx
not edx
or edx, edi
add dl, 4
mov byte [esp + ebx - 0x75b0], dl
inc ebx
dec eax
cmp ebx, 0x760d
jne 0x40ddd0
mov edx, dword [esp + 0x74]
add edx, dword [esp + 0x14]
movzx eax, byte [esp + 0x1c]
mov edi, edx
test al, al
je 0x40de5b
lea ecx, [esp + 0x1d]
mov edi, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40de50
mov byte [edi], 0
mov ecx, dword [esp + 0x78]
movzx eax, byte [ecx]
test al, al
je 0x40de7b
inc ecx
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40de70
mov byte [edi], 0
movzx eax, byte [esp + 8]
test al, al
je 0x40de9b
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 0x40de90
mov byte [edi], 0
mov ecx, dword [esp + 0x7c]
movzx eax, byte [ecx]
test al, al
je 0x40debb
inc ecx
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40deb0
mov byte [edi], 0
movzx eax, byte [esp]
test al, al
je 0x40dedb
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 0x40ded0
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