Function at 0x41505d
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18c
push 0x12
mov dword [ebp - 0x58], edx
xorps xmm1, xmm1
pop edx
mov dword [ebp - 0x38], edx
xorps xmm2, xmm2
mov dword [ebp - 0x34], 0x1f
mov dword [ebp - 0x30], 0x2f
mov dword [ebp - 0x2c], 0xffffffa0
movups xmm0, xmmword [ebp - 0x38]
mov dword [ebp - 0x38], 0x30
mov dword [ebp - 0x34], 0x5c
psubd xmm1, xmm0
mov dword [ebp - 0x30], 1
movaps xmm0, xmm1
mov dword [ebp - 0x2c], 0xffffff16
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x4c], ecx
movups xmm0, xmm1
mov dword [ebp - 0x3c], 0x46
psrldq xmm0, 4
mov ecx, 0xcfff3
paddd xmm1, xmm0
movd dword [ebp - 0x44], xmm1
movups xmm1, xmmword [ebp - 0x38]
mov dword [ebp - 0x38], 0x33
mov dword [ebp - 0x34], 0x61
movaps xmm0, xmm1
mov dword [ebp - 0x30], edx
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x2c], 0xbff08
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x5d
mov dword [ebp - 0x50], eax
xor eax, eax
sub ecx, dword [ebp + eax*4 - 0x3c]
inc eax
cmp eax, 5
jl 0x41511a
push esi
push edi
mov esi, 0x40215c
mov byte [ebp - 0x12], dl
lea edi, [ebp - 0x34]
mov dword [ebp - 0x54], ecx
push 0x72
mov eax, 0x402494
mov dword [ebp - 0x20], 0xfa1a2bcd
movsd dword es:[edi], dword [esi]
mov ecx, 0x1c6b
pop edx
mov dword [ebp - 0x1c], 0xcdd3a13e
mov dword [ebp - 0x18], 0x504e3c77
movsd dword es:[edi], dword [esi]
mov word [ebp - 0x14], 0x8a34
mov dword [ebp - 0x11], 0xb85ca56b
mov dword [ebp - 0xd], 0x8a13af80
mov byte [ebp - 9], 0x22
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x40], edx
add ecx, edx
inc eax
cmp ecx, 0xa41
ja 0x415191
movsx edx, byte [eax]
test edx, edx
jne 0x415177
mov edi, dword [0x44a3f4]
jmp 0x4151b3
mov edx, dword [0x44a3fc]
push ecx
call fcn.00414f9c
mov edx, dword [0x44a3fc]
imul edi, dword [0x44a3f4], 0xae67d953
call fcn.00414f9c
pop ecx
imul edx, edi, 0x3721fba2
push ecx
push ecx
mov ecx, 0x402440
lea esi, [edx + 0x115294ad]
call fcn.00414ff2
pop ecx
pop ecx
imul eax, esi, 0xfac58198
and eax, 0x18141fcd
mov dword [ebp - 0x28], eax
call fcn.00414f08
xor ecx, ecx
mov edi, ecx
mov eax, ecx
mov byte [ebp + eax - 0x18c], al
inc eax
cmp eax, 0x100
jb 0x4151e6
mov esi, ecx
mov dword [ebp - 8], 0xb
xor edx, edx
mov cl, byte [ebp + esi - 0x18c]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 8]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x34]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x18c]
mov byte [ebp + esi - 0x18c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x18c], al
cmp esi, 0x100
jb 0x4151fe
xor eax, eax
mov dword [ebp - 0x24], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x24]
mov cl, byte [ebp + edi - 0x18c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x24], eax
mov al, byte [ebp + eax - 0x18c]
mov byte [ebp + edi - 0x18c], al
mov eax, dword [ebp - 0x24]
mov byte [ebp + eax - 0x18c], cl
movzx eax, byte [ebp + edi - 0x18c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x18c]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x8c], al
inc esi
cmp esi, 0x18
jb 0x415248
mov esi, 0x402168
mov dword [ebp - 0x10], 0x8a31de2
lea edi, [ebp - 0x38]
mov word [ebp - 0xc], 0x27cf
xor edx, edx
mov ecx, 0x402440
mov byte [ebp - 0x74], dl
mov eax, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
add ecx, 2
inc eax
cmp eax, 0x287
je 0x4152dc
cmp word [ecx], dx
jne 0x4152c5
cmp eax, 0xb7c
jle 0x4152e1
call fcn.00414f08
mov edi, dword [ebp - 0x28]
add edi, 0xffd2df4c
push ecx
mov edx, edi
call fcn.00414f9c
pop ecx
xor ecx, ecx
mov dword [ebp - 8], ecx
mov eax, ecx
mov byte [ebp + eax - 0x18c], al
inc eax
cmp eax, 0x100
jb 0x4152fa
add edi, 0x7e90c600
mov esi, ecx
mov dword [0x44a3f4], edi
xor edx, edx
mov cl, byte [ebp + esi - 0x18c]
push 0xc
mov eax, esi
mov byte [ebp - 1], cl
pop edi
div edi
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x38]
add eax, dword [ebp - 8]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 8], ecx
mov al, byte [ebp + ecx - 0x18c]
mov byte [ebp + esi - 0x18c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x18c], al
cmp esi, 0x100
jb 0x415317
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov eax, ecx
mov edi, ecx
inc eax
movzx eax, al
mov dword [ebp - 8], eax
mov esi, dword [ebp - 8]
mov cl, byte [ebp + eax - 0x18c]
mov eax, dword [ebp - 0x24]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x24], eax
mov al, byte [ebp + eax - 0x18c]
mov byte [ebp + esi - 0x18c], al
mov eax, dword [ebp - 0x24]
imul esi, dword [ebp - 0x28], 0x91d3eb8e
mov byte [ebp + eax - 0x18c], cl
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], esi
mov dword [0x44a3fc], esi
movzx eax, byte [ebp + eax - 0x18c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x18c]
xor al, byte [ebp + edi - 0x10]
mov byte [ebp + edi - 0x30], al
inc edi
mov eax, dword [ebp - 8]
cmp edi, 6
jb 0x415367
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 0x2a], 0
cmp eax, dword [ebp - 0x44]
je 0x4156b2
mov ecx, dword [ebp - 0x40]
mov edx, 0x441
mov eax, 0x402494
add edx, ecx
inc eax
cmp edx, 0x12e2
ja 0x415407
movsx ecx, byte [eax]
test ecx, ecx
jne 0x4153f3
jmp 0x41540d
and esi, 0x73200d4
push ecx
add esi, 0x2dd52302
mov edi, 0x402440
push ecx
mov edx, esi
mov ecx, edi
call fcn.00414ff2
pop ecx
pop ecx
push 0xb
pop eax
push 0x34
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x10], 0x22
mov dword [ebp - 0xc], 0xffffff9f
pop ecx
add ecx, dword [ebp + eax*4 - 0x14]
inc eax
cmp eax, 3
jl 0x41543e
mov dword [ebp - 0x18], 0x1c
movaps xmm1, xmm2
mov dword [ebp - 0x14], 0xe
mov dword [ebp - 0x10], 0x10
mov dword [ebp - 0xc], 0xffffffc6
movups xmm0, xmmword [ebp - 0x18]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x18], 0x47
psubd xmm1, xmm0
mov dword [ebp - 0x14], 0x11
movaps xmm0, xmm1
mov dword [ebp - 0x10], 0x48
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0xc], 0xffffff57
movups xmm0, xmm1
mov dword [ebp - 0x44], ecx
psrldq xmm0, 4
paddd xmm1, xmm0
imul ecx, esi, 0xea46cb98
movups xmm0, xmmword [ebp - 0x18]
mov esi, 0x616
movd dword [ebp - 8], xmm1
movaps xmm1, xmm2
paddd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 9
mov dword [ebp - 0x28], eax
mov eax, 0x402494
add esi, edx
inc eax
cmp esi, 0x1868
ja 0x4154ff
movsx edx, byte [eax]
test edx, edx
jne 0x4154eb
jmp 0x415505
imul ecx, ecx, 0x59d5e540
mov dword [ebp - 0x10], 0x29
movaps xmm1, xmm2
mov dword [ebp - 0xc], 0xffffff56
sub ecx, 0xd96c91
mov dword [ebp - 0x18], 0x2c
mov dword [ebp - 0x14], 0x55
movups xmm0, xmmword [ebp - 0x18]
mov dword [0x44a3fc], ecx
or ecx, 0x1fefcbc6
push 0x3b
psubd xmm1, xmm0
mov dword [ebp - 0x10], 0x1e
movaps xmm0, xmm1
mov dword [ebp - 0xc], 0xffffffa7
psrldq xmm0, 8
xor eax, eax
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
pop edx
add edx, dword [ebp + eax*4 - 0x10]
inc eax
cmp eax, 2
jl 0x415569
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x70], 0x18
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x40]
sub al, 0x30
cmp al, 9
ja 0x4155a7
mov eax, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x48], eax
mov al, byte [eax]
mov byte [ebp - 0x40], al
test al, al
jne 0x41558c
jmp 0x4155ad
imul ecx, ecx, 0x68e401fc
mov eax, dword [ebp - 0x4c]
xor ecx, 0x4b7681f9
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x70]
mov dword [0x44a3f4], ecx
push eax
mov eax, dword [ebp - 0x54]
or eax, 0x1f0000
movd dword [ebp - 0x60], xmm1
push eax
lea eax, [ebp - 8]
mov dword [ebp - 0x5c], edx
push eax
call fcn.00449019
add esp, 0x10
cmp dword [ebp - 8], 0
jne 0x41567d
xor ecx, ecx
mov eax, ecx
inc eax
lea edi, [edi + 2]
cmp eax, 0x1d8e
jg 0x41560f
cmp word [edi], cx
jne 0x4155f8
mov eax, dword [0x44a3f4]
jmp 0x41561e
call fcn.00414f08
mov eax, dword [0x44a3f4]
sub eax, 0x18152282
add dword [0x44a3fc], 0xa2f26f0
and eax, 0xd91405c8
mov dword [0x44a3f4], eax
call fcn.00414f08
mov eax, dword [ebp + 8]
mov dword [ebp - 0x38], 0x17
mov dword [ebp - 0x34], 0x36
mov dword [ebp - 0x30], 0x16
mov dword [ebp - 0x2c], 0xffffff66
movups xmm1, xmmword [ebp - 0x38]
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
add ecx, 0x37
mov dword [eax], ecx
jmp 0x4156b2
push dword [ebp - 0x58]
lea ecx, [ebp - 0x30]
push dword [ebp - 8]
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x8c]
call fcn.0041d4c4
call eax
push dword [ebp - 8]
call fcn.0044900f
imul eax, dword [0x44a3fc], 0xe9b1be3b
pop ecx
mov dword [0x44a3f4], eax
pop edi
pop esi
leave
ret