Function at 0x409440
Capabilities:
Encode data using xor
Encrypt data using rc4 prga
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xb0
mov eax, dword [ebp + 8]
add eax, dword [ecx + 0x60]
mov dword [esp + 0x60], 0
mov word [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov word [esp + 0x60], 0xb3b9
mov byte [esp + 0x62], 0xb8
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x10]
cmp edx, 0x19
ja 0x4094d7
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add dl, 0x97
xor dl, byte [esp + esi + 0x60]
add dl, 0xdf
mov esi, dword [esp + 0x10]
mov byte [esp + esi + 0x60], dl
inc dword [esp + 0x10]
mov edx, dword [esp + 0x10]
cmp edx, 0x1a
jb 0x4094b0
mov dword [esp + 0x80], 0xfefcc0ea
mov word [esp + 0x84], 0xf1fe
mov dword [esp + 0x86], 0
mov dword [esp + 0x8a], 0
mov dword [esp + 0x8d], 0
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x10]
cmp edx, 0x10
ja 0x40956a
nop
nop
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
movzx edi, byte [esp + esi + 0x80]
lea esi, [edx + edi]
add esi, 0x3e80ff5e
add edx, 0x3e80ff5e
and edx, edi
add edx, edx
mov ebx, edx
not ebx
and ebx, esi
not esi
and esi, edx
sub ebx, esi
add bl, 0x6e
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x80], bl
inc dword [esp + 0x10]
mov edx, dword [esp + 0x10]
cmp edx, 0x11
jb 0x409520
mov dword [esp + 0x10], 0xe6e4d0d1
mov dword [esp + 0x14], 0xe2e2d4c8
mov dword [esp + 0x18], 0xdfaa9cd1
mov dword [esp + 0x1c], 0xdaa7deab
mov dword [esp + 0x20], 0xe2d7abaa
mov dword [esp + 0x24], 0xa4f10f0d
mov dword [esp + 0x28], 0xb9cfa1a6
mov dword [esp + 0x2c], 0xb6eaf4bc
mov dword [esp + 0x30], 0xb4b1bdbb
mov dword [esp + 0x34], 0xb4bfb5b9
mov dword [esp + 0x38], 0x41faebb6
mov dword [esp + 0x3c], 0x2434f4b
mov dword [esp + 0x40], 0x32463c38
mov dword [esp + 0x44], 0x3644f11f
mov dword [esp + 0x48], 0xed073049
mov byte [esp + 0x4c], 0xc8
mov dword [esp + 0x4d], 0
mov dword [esp + 0x51], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xc]
cmp edx, 0x47
ja 0x40964a
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edi, byte [esp + edx + 0x10]
lea edx, [esi + edi]
add edx, 0x37e5fbd6
add esi, 0x37e5fbd6
and esi, edi
add esi, esi
sub edx, esi
add dl, 0x26
mov esi, dword [esp + 0xc]
mov byte [esp + esi + 0x10], dl
inc dword [esp + 0xc]
mov edx, dword [esp + 0xc]
cmp edx, 0x48
jb 0x409610
mov esi, dword [ebp + 0xc]
movzx ebx, byte [esp + 0x10]
mov edx, eax
test bl, bl
je 0x40966b
lea edi, [esp + 0x11]
mov edx, eax
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409660
mov byte [edx], 0
movzx ebx, byte [esi]
test bl, bl
je 0x40968b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409680
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
movzx ebx, byte [esp + 0x80]
test bl, bl
je 0x4096bb
lea edi, [esp + 0x81]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x4096b0
mov byte [edx], 0
movzx ebx, byte [esi]
test bl, bl
je 0x4096db
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x4096d0
mov byte [edx], 0
movzx ebx, byte [esp + 0x60]
test bl, bl
je 0x4096fb
lea esi, [esp + 0x61]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x4096f0
mov byte [edx], 0
sub edx, eax
add dword [ecx + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc