Function at 0x423180
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x160
mov dword [esp + 0x10], 0xb4b0d61
mov dword [esp + 0x14], 0x17a609b8
mov dword [esp + 0x18], 0x13b31558
mov dword [esp + 0x1c], 0x1fbf11ac
mov dword [esp + 0x20], 0x1b1a1d71
lea eax, [esp + 0x24]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0xb8], 0
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x1b
ja 0x423251
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
movzx esi, byte [esp + edx + 0x10]
lea edx, [ecx + esi]
add edx, 0x750b10aa
add ecx, 0xaa
and ecx, esi
add ecx, ecx
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xd4]
add cl, 0x5a
mov edx, dword [esp + 0xb8]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x1c
jb 0x4231f0
lea esi, [esp + 0x132]
lea edx, [esp + 0x10]
mov ecx, 5
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x146]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x8c]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x447498]
mov ebx, dword [esp + 0x8c]
test ebx, ebx
jns 0x4232a0
mov eax, 0xffffffff
jmp 0x4232a3
lea eax, [ebx + ebx]
push eax
call fcn.00408da0
add esp, 4
push edi
push ebx
mov dword [esp + 0x84], eax
push eax
push 9
push esi
push 0
call dword [0x447498]
mov dword [esp + 0x10], 0x9b3399d4
mov dword [esp + 0x14], 0xe745e557
mov dword [esp + 0x18], 0xe350e157
mov dword [esp + 0x1c], 0xefeeed40
lea edx, [esp + 0x20]
mov word [esp + 0x20], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0x11
ja 0x423365
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0x10]
lea esi, [eax + ecx]
add esi, 0x930434bc
add eax, 0x930434bc
and eax, ecx
add eax, eax
sub esi, eax
mov dword [esp + 0xd4], esi
mov eax, dword [esp + 0xd4]
add al, 0xdc
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0x12
jb 0x423310
lea edi, [esp + 0x122]
lea esi, [esp + 0x10]
mov ecx, 4
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0x132]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x10], 0x8b238d40
mov dword [esp + 0x14], 0x97398937
mov dword [esp + 0x18], 0x932c9527
mov dword [esp + 0x1c], 0x9f51913c
mov dword [esp + 0x20], 0x9b289d3d
mov dword [esp + 0x24], 0x67d89939
mov dword [esp + 0x28], 0x636265dd
lea esi, [esp + 0x2c]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x9c], 0
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x27
ja 0x423461
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x9c]
movzx edx, byte [esp + edx + 0x10]
lea edi, [ecx + edx]
add edi, 0x9f91a06a
add ecx, 0x9f91a06a
and ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, edi
not ecx
and ecx, edi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xd4]
add cl, 0x1a
mov edx, dword [esp + 0x9c]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x28
jb 0x423400
lea edx, [esp + 0xb8]
lea ebx, [esp + 0x10]
mov edi, edx
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0xd4]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 0x10], 0x9b339954
mov dword [esp + 0x14], 0x87258517
mov dword [esp + 0x18], 0x83108117
mov dword [esp + 0x1c], 0x8f3e8d20
mov dword [esp + 0x20], 0x8b488934
lea ebx, [esp + 0x24]
mov dword [esp + 0x24], 0x7574
mov dword [esp + 0x9c], 0
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x17
ja 0x423537
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x9c]
movzx esi, byte [esp + esi + 0x10]
lea edi, [ecx + esi]
add edi, 0x54f1f4ec
add ecx, 0x54f1f4ec
and ecx, esi
add ecx, ecx
sub edi, ecx
mov dword [esp + 0xd4], edi
mov ecx, dword [esp + 0xd4]
add cl, 0x8c
mov esi, dword [esp + 0x9c]
mov byte [esp + esi + 0x10], cl
inc dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x18
jb 0x4234e0
lea esi, [esp + 0x146]
lea eax, [esp + 0x10]
mov ecx, 5
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x15a]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
lea eax, [esp + 0x122]
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], edx
mov dword [esp + 0x11c], esi
mov eax, dword [esp + 0x7c]
add eax, 2
mov dword [esp + 0x94], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x84], 0
cmp ecx, 3
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x443638]