Function at 0x4243c0
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, 0x158
mov dword [esp + 8], 0x9bdb99a5
mov dword [esp + 0xc], 0x97e695e4
mov dword [esp + 0x10], 0x93f391cc
mov dword [esp + 0x14], 0xafcfad20
mov dword [esp + 0x18], 0xabaaa995
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov byte [esp + 0x24], 0
mov dword [esp + 0x80], 0
mov ecx, dword [esp + 0x80]
cmp ecx, 0x1c
ja 0x424484
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x80]
movzx edx, byte [esp + edx + 8]
lea esi, [ecx + 0x3aa6eb94]
add ecx, 0x94
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xb0], esi
mov ecx, dword [esp + 0xb0]
add cl, 0xf4
mov edx, dword [esp + 0x80]
mov byte [esp + edx + 8], cl
inc dword [esp + 0x80]
mov ecx, dword [esp + 0x80]
cmp ecx, 0x1d
jb 0x424430
lea esi, [esp + 0x12a]
lea edx, [esp + 8]
mov ecx, 5
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x13e]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x7c]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x4498e4]
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jns 0x4244cd
mov eax, 0xffffffff
jmp 0x4244d0
lea eax, [ebx + ebx]
push eax
call fcn.00408c40
add esp, 4
push edi
push ebx
mov dword [esp + 0x78], eax
push eax
push 9
push esi
push 0
call dword [0x4498e4]
mov dword [esp + 8], 0x8373854a
mov dword [esp + 0xc], 0x8f6d817f
mov dword [esp + 0x10], 0x8b728d7f
mov dword [esp + 0x14], 0x97888966
lea esi, [esp + 0x18]
mov dword [esp + 0x18], 0
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0x80]
cmp eax, 0x13
ja 0x424585
nop
nop
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x80]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + ecx]
add edx, 0x990c3bc1
add eax, 0x990c3bc1
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
add al, 0xb9
mov ecx, dword [esp + 0x80]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x80]
mov eax, dword [esp + 0x80]
cmp eax, 0x14
jb 0x424530
lea edi, [esp + 0x11a]
lea edx, [esp + 8]
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x12a]
mov edx, esi
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 8], 0x7bc379a2
mov dword [esp + 0xc], 0x7fd97dcf
mov dword [esp + 0x10], 0x73c271cf
mov dword [esp + 0x14], 0x77b175d6
mov dword [esp + 0x18], 0x4bf649d5
mov dword [esp + 0x1c], 0x4ffe4de9
mov dword [esp + 0x20], 0x434041c5
lea esi, [esp + 0x24]
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov byte [esp + 0x2c], 0
mov dword [esp + 0x80], 0
mov ecx, dword [esp + 0x80]
cmp ecx, 0x24
ja 0x42468e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x80]
movzx edx, byte [esp + edx + 8]
lea edi, [ecx + 0x32d8c30f]
mov ebx, edx
not ebx
or ebx, edi
and edi, edx
add edi, ebx
neg edi
add ecx, edi
add ecx, 0x32d8c30e
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xb0]
add cl, 0x97
mov edx, dword [esp + 0x80]
mov byte [esp + edx + 8], cl
mov ecx, dword [esp + 0x80]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x80]
cmp ecx, 0x25
jb 0x424620
lea edx, [esp + 0x80]
lea ebx, [esp + 8]
mov edi, edx
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0x9c]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 8], 0x43db4d88
mov dword [esp + 0xc], 0x47e141d7
mov dword [esp + 0x10], 0x3bac45d7
mov dword [esp + 0x14], 0x3f8e399c
mov dword [esp + 0x18], 0x33f43d88
lea ebx, [esp + 0x1c]
mov word [esp + 0x1c], 0x3130
mov dword [esp + 0x1e], 0
mov dword [esp + 0x22], 0
mov word [esp + 0x26], 0
mov dword [esp + 0xf0], 0
mov ecx, dword [esp + 0xf0]
cmp ecx, 0x1f
ja 0x424780
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xf0]
mov esi, dword [esp + 0xf0]
movzx esi, byte [esp + esi + 8]
lea edi, [ecx + 0x2d589336]
add ecx, 0x36
and ecx, esi
or edi, esi
sub edi, ecx
mov dword [esp + 0xb0], edi
mov ecx, dword [esp + 0xb0]
mov esi, ecx
or esi, 0x85
and ecx, 0x85
add ecx, esi
inc cl
mov esi, dword [esp + 0xf0]
mov byte [esp + esi + 8], cl
inc dword [esp + 0xf0]
mov ecx, dword [esp + 0xf0]
cmp ecx, 0x20
jb 0x424720
lea esi, [esp + 0x13e]
lea eax, [esp + 8]
mov ecx, 5
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x152]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
lea eax, [esp + 0x11a]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], esi
mov ebx, dword [esp + 0x70]
mov eax, ebx
add eax, 2
mov dword [esp + 0xa8], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x6c], 0
cmp ecx, 3
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x4458e8]