Function at 0x418920
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, 0xa0
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], 0x7b24790a
mov dword [esp + 0x14], 0x7f197d0b
mov dword [esp + 0x18], 0x730c711d
mov dword [esp + 0x1c], 0x77337552
mov dword [esp + 0x20], 0x8bfc89fe
mov dword [esp + 0x24], 0x8ff28ded
mov dword [esp + 0x28], 0x83fb81fb
mov dword [esp + 0x2c], 0x87fa85f3
mov dword [esp + 0x30], 0x9bcd99a6
mov dword [esp + 0x34], 0x9fe89dfd
mov dword [esp + 0x38], 0x93eb91ea
mov dword [esp + 0x3c], 0x97ed95ec
mov dword [esp + 0x40], 0xabc4a9e3
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0xadaa
mov dword [esp + 0x48], 0
mov ecx, dword [esp + 0x48]
cmp ecx, 0x37
ja 0x418a0c
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x48]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + edx]
add esi, 0xc71587ef
add ecx, 0xef
and ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x64]
add cl, 0x77
mov edx, dword [esp + 0x48]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
cmp ecx, 0x38
jb 0x4189c0
lea edi, [esp + 0x64]
lea edx, [esp + 0x10]
mov ecx, 0xd
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x98]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x418a40
mov ecx, dword [ebp + 0x10]
mov edi, dword [ecx + 4]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x418a60
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x1b
test edx, edx
jns 0x418a80
mov eax, 0xffffffff
jmp 0x418a87
add eax, ecx
add eax, eax
add eax, 0x36
push eax
call fcn.00409080
add esp, 4
movzx ecx, word [esi]
mov dword [esp + 0xc], eax
test cx, cx
je 0x418ac1
add esi, 2
mov eax, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x418ab0
mov word [eax], 0
movzx ecx, word [esp + 0x64]
test cx, cx
je 0x418af1
lea edx, [esp + 0x66]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x418ae0
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x418b21
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x418b10
mov word [eax], 0
mov dword [esp + 0x10], 0x1b57194f
mov dword [esp + 0x14], 0x79a059c
mov dword [esp + 0x18], 0x39401ad
mov dword [esp + 0x1c], 0xfa70d9f
mov dword [esp + 0x20], 0xb9c099f
mov dword [esp + 0x24], 0x772175e7
lea eax, [esp + 0x28]
mov word [esp + 0x28], 0x7170
mov dword [esp + 0x2a], 0
mov dword [esp + 0x2e], 0
mov dword [esp + 0x31], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x24
ja 0x418bd4
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx esi, byte [esp + edx + 0x10]
lea edx, [ecx + esi]
add edx, 0x7fe0d52c
add ecx, 0x2c
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 + 0x48], ecx
mov ecx, dword [esp + 0x48]
add cl, 0xcc
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x25
jb 0x418b90
lea edi, [esp + 0x48]
lea edx, [esp + 0x10]
mov ecx, 6
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x60]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebx]
mov eax, 0xfffffffe
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x418c00
mov edi, dword [ebx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x418c20
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x418c40
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xe
test eax, eax
jns 0x418c64
mov eax, 0xffffffff
jmp 0x418c6c
add ecx, edx
lea eax, [ecx + ecx]
add eax, 0x1c
push eax
call fcn.00409080
add esp, 4
movzx ecx, word [esi]
mov dword [esp + 8], eax
test cx, cx
je 0x418ca1
add esi, 2
mov eax, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x418c90
mov word [eax], 0x2f
add eax, 2
movzx ecx, word [edi]
test cx, cx
je 0x418cd1
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x418cc0
mov word [eax], 0
movzx ecx, word [esp + 0x48]
test cx, cx
je 0x418d01
lea edx, [esp + 0x4a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x418cf0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x418d31
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x418d20
mov word [eax], 0
mov dword [esp + 0x10], 0xb0a0d7a
mov dword [esp + 0x14], 0
mov word [esp + 0x18], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 9
ja 0x418db0
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + ecx + 0x10]
lea esi, [eax - 0x6612f556]
lea ecx, [eax + edx]
add ecx, 0x99ed0aaa
and esi, edx
add eax, 0xaa
and eax, edx
add eax, esi
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x5a
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xa
jb 0x418d60
push 0
push 0
push 0
push 0xc00000
lea eax, [esp + 0x20]
push eax
mov esi, dword [esp + 0x20]
push esi
push dword [esp + 0x20]
push dword [ebp + 8]
call fcn.0041b3e0
add esp, 0x20
mov ebx, eax
jmp dword [0x4421e4]