Function at 0x418300
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, 0xa8
mov dword [esp + 0x10], 0x632e61dc
mov dword [esp + 0x14], 0x67c565cb
mov dword [esp + 0x18], 0x6bc669c9
mov dword [esp + 0x1c], 0x6f2b6d0c
mov dword [esp + 0x20], 0x53c651c8
mov dword [esp + 0x24], 0x57f855f1
mov dword [esp + 0x28], 0x5bf359cb
mov dword [esp + 0x2c], 0x5ff05df3
mov dword [esp + 0x30], 0x43f14120
mov dword [esp + 0x34], 0x47d245e1
mov dword [esp + 0x38], 0x4be349dc
mov dword [esp + 0x3c], 0x4fe94de2
mov dword [esp + 0x40], 0xb30eb123
lea eax, [esp + 0x44]
mov word [esp + 0x44], 0xb5b4
mov dword [esp + 0x46], 0
mov word [esp + 0x4a], 0
mov dword [esp + 0x50], 0
mov ecx, dword [esp + 0x50]
cmp ecx, 0x3b
ja 0x41840e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
movzx esi, byte [esp + ecx + 0x10]
lea edi, [edx - 0x2e0a4b30]
and edi, esi
lea ecx, [edx + esi]
add ecx, 0xd1f5b4d0
mov ebx, 0x2e0a4b2f
sub ebx, edx
or ebx, esi
add ebx, edx
lea edx, [edi + ebx]
add edx, 0xd1f5b4d1
mov esi, ecx
not esi
and esi, edx
not edx
and edx, ecx
sub edx, esi
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x6c]
add cl, 0x50
mov edx, dword [esp + 0x50]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
cmp ecx, 0x3c
jb 0x4183b0
lea edi, [esp + 0x6c]
lea ebx, [esp + 0x10]
mov edx, ebx
mov ecx, 0xd
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xa0]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 4]
mov eax, 0xfffffffe
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x418440
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 0x418460
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x1b
test edx, edx
jns 0x418480
mov eax, 0xffffffff
jmp 0x418487
add eax, ecx
add eax, eax
add eax, 0x36
push eax
call fcn.00408c90
add esp, 4
movzx ecx, word [esi]
mov dword [esp + 8], eax
test cx, cx
je 0x4184c1
add esi, 2
mov eax, dword [esp + 8]
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 0x4184b0
mov word [eax], 0
movzx ecx, word [esp + 0x6c]
test cx, cx
je 0x4184f1
lea edx, [esp + 0x6e]
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 0x4184e0
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x418521
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 0x418510
mov word [eax], 0
mov dword [esp + 0x10], 0x835f8177
mov dword [esp + 0x14], 0x9f109d0a
mov dword [esp + 0x18], 0x9b2e9921
mov dword [esp + 0x1c], 0x972f9517
mov dword [esp + 0x20], 0x93269127
mov dword [esp + 0x24], 0x6f9d6d1f
lea eax, [esp + 0x28]
mov word [esp + 0x28], 0x696e
mov dword [esp + 0x2a], 0
mov dword [esp + 0x2e], 0
mov dword [esp + 0x32], 0
mov byte [esp + 0x36], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x26
ja 0x4185dc
nop
nop
nop
mov esi, dword [esp]
mov ecx, dword [esp]
movzx edi, byte [esp + ecx + 0x10]
lea ecx, [esi - 0x75bbb195]
lea edx, [esi + edi]
add edx, 0x8a444e6b
add esi, 0x6b
and esi, edi
and ecx, edi
add ecx, esi
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x50]
add cl, 0x13
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x27
jb 0x418590
lea edi, [esp + 0x50]
mov edx, ebx
mov ecx, 6
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x68]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [ebp + 0xc]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x418610
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x418630
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 0x418650
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xe
test eax, eax
jns 0x418674
mov eax, 0xffffffff
jmp 0x41867c
add ecx, edx
lea eax, [ecx + ecx]
add eax, 0x1c
push eax
call fcn.00408c90
add esp, 4
movzx ecx, word [edi]
mov dword [esp + 0xc], eax
test cx, cx
je 0x4186b1
add edi, 2
mov eax, dword [esp + 0xc]
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 0x4186a0
mov word [eax], 0x2f
add eax, 2
movzx ecx, word [esi]
test cx, cx
je 0x4186e1
add esi, 2
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 0x4186d0
mov word [eax], 0
movzx ecx, word [esp + 0x50]
test cx, cx
je 0x418713
lea edx, [esp + 0x52]
mov esi, dword [esp + 8]
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 0x418700
jmp 0x418717
mov esi, dword [esp + 8]
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x418741
add ebx, 2
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 0x418730
mov word [eax], 0
mov dword [esp + 0x10], 0x4b4a4d7a
mov dword [esp + 0x14], 0
mov dword [esp + 0x17], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xa
ja 0x4187b3
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, eax
and edx, 0x1800650a
xor eax, 0x9800650a
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp], edx
mov eax, dword [esp]
add al, 0xba
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xb
jb 0x418770
push 0
push 0
push 0
push 0xc00000
lea eax, [esp + 0x20]
push eax
push esi
push dword [esp + 0x24]
push dword [ebp + 8]
call fcn.0041ac50
add esp, 0x20
mov ebx, eax
jmp dword [0x4432a0]