Function at 0x40d6d0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga
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], 0x7d7f
mov byte [esp + 2], 0x4a
mov word [esp + 3], 0
xor eax, eax
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebp]
mov edx, eax
and edx, 6
mov ebx, ebp
xor ebx, 0xd9cd293
add ebx, edx
mov edx, ebx
and edx, ecx
mov esi, edx
or esi, 0xfd
inc esi
mov edi, edx
and edi, 0xffffff9d
imul edi, esi
mov esi, edx
and esi, 2
or edx, 2
imul edx, esi
sub edi, edx
add ebx, ecx
add ebx, edi
add bl, 0x21
mov byte [esp + ebp], bl
inc ebp
add eax, 2
cmp ebp, 5
jne 0x40d700
mov dword [esp + 8], 0xf2f0f4ee
mov word [esp + 0xc], 0xcdf2
mov dword [esp + 0xe], 0
mov word [esp + 0x12], 0
mov ebp, 0xd2
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ebp - 0xca]
mov ecx, ebx
and ecx, ebp
mov eax, ecx
or al, 0xfd
inc al
mov edx, ecx
and dl, 0xfd
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, 0xe6
mov byte [esp + ebp - 0xca], al
inc ebp
cmp ebp, 0xde
jne 0x40d770
mov dword [esp + 0x1c], 0x9294686f
mov dword [esp + 0x20], 0x8e8a7c60
mov dword [esp + 0x24], 0x8db2b47f
mov dword [esp + 0x28], 0x86b982b1
mov dword [esp + 0x2c], 0x7681b5b2
mov dword [esp + 0x30], 0x845b615b
mov dword [esp + 0x34], 0x83b98f86
mov dword [esp + 0x38], 0x8a524c8c
mov dword [esp + 0x3c], 0x848b8b81
mov dword [esp + 0x40], 0x94919b8f
mov dword [esp + 0x44], 0xab624596
mov dword [esp + 0x48], 0x5e9d9191
mov dword [esp + 0x4c], 0xa696a4a0
mov dword [esp + 0x50], 0xdae4174d
mov dword [esp + 0x54], 0x1f31d8e7
mov byte [esp + 0x58], 0x70
mov dword [esp + 0x59], 0
mov dword [esp + 0x5c], 0
mov eax, 0x8e24980b
mov edx, 0x71db67f4
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x71db6811]
mov esi, edx
or esi, ecx
lea ebp, [ecx + ecx]
not ebp
add ebp, ecx
or ebp, eax
and ebp, esi
mov esi, ebp
not esi
mov edi, esi
and edi, 0x48
or esi, 0x40926037
mov ecx, ebp
or ecx, 0x394907c8
and ecx, esi
not ecx
lea esi, [ecx + edi*2]
and ecx, 1
and ebp, 1
and esi, 0xfe
or esi, ebp
lea ecx, [esi + ecx*2]
mov byte [esp + eax + 0x71db6811], cl
inc eax
dec edx
cmp eax, 0x8e24984f
jne 0x40d850
mov esi, dword [esp + 0x74]
add esi, dword [esp + 0x14]
movzx ecx, byte [esp + 0x1c]
mov eax, esi
test cl, cl
je 0x40d8cb
lea edx, [esp + 0x1d]
mov eax, esi
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40d8c0
mov byte [eax], 0
mov edx, dword [esp + 0x78]
movzx ecx, byte [edx]
test cl, cl
je 0x40d8eb
inc edx
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40d8e0
mov byte [eax], 0
movzx ecx, byte [esp + 8]
test cl, cl
je 0x40d90b
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 0x40d900
mov byte [eax], 0
mov edx, dword [esp + 0x7c]
movzx ecx, byte [edx]
test cl, cl
je 0x40d92b
inc edx
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40d920
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40d94b
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 0x40d940
mov byte [eax], 0
sub eax, esi
mov ecx, dword [esp + 0x18]
add dword [ecx + 0x60], eax
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret 0xc