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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14c
push ebx
push esi
mov esi, 0xda
xor ecx, ecx
push edi
mov ebx, 0x47f9
lea edi, [esi - 0x23]
mov dword [ebp - 0x40], 0x1a9a
mov dword [ebp - 0x48], 0x5027
mov dword [ebp - 0x44], 0xdaa
mov dword [ebp - 0x4c], 0x649d
mov dword [ebp - 0x38], 0x2e0a
mov dword [ebp - 4], 0x729f
mov dword [ebp - 0x2c], 0x3ffa
mov dword [ebp - 8], ecx
mov dword [ebp - 0x30], 0x2a34
mov dword [ebp - 0x34], 0x3bf3
mov dword [ebp - 0x3c], 0x5339
inc ecx
mov eax, ecx
and eax, 0x80000003
jns 0x401c53
dec eax
or eax, 0xfffffffc
inc eax
jne 0x401c56
inc ecx
cmp ecx, 0x5cab
jl 0x401c44
cmp dword [ebp + 8], 0
je 0x4021fe
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x4021fe
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 0x3b8]
mov eax, dword [eax + 0x350]
xor eax, dword [ecx]
cmp edx, eax
jl 0x4021fe
call fcn.00403660
mov edx, dword [ebp + 0x10]
lea ecx, [edx + 0x3b8]
mov dword [edx + 0x248], eax
mov eax, dword [ecx]
xor dword [edx + 0x39c], eax
jmp 0x401cb0
mov eax, 0x4d4873ed
imul ebx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401cb0
mov ebx, dword [ebp + 0x10]
mov eax, 0x5145
mov dword [ebx + 0x16c], ecx
mov ecx, 0x5a
cmp esi, ecx
cmovl esi, ecx
dec eax
jne 0x401cd6
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebx + 0x39c]
xor edx, edx
div ecx
mov esi, 0xee
mov edx, eax
mov dword [ebx + 0x10], edx
mov eax, 0x50e4
lea ebx, [ebx]
cmp edi, esi
cmovl edi, esi
dec eax
jne 0x401d00
imul edx, ecx
mov edi, ebx
mov eax, 0x6501
mov dword [edi + 0x380], edx
mov esi, 0xa2
mov ecx, 0x2d
cmp ecx, esi
cmovg ecx, esi
dec eax
jne 0x401d22
xor esi, esi
test edx, edx
je 0x401d80
mov ebx, dword [ebp + 8]
mov eax, dword [edi + 0x16c]
inc esi
mov al, byte [eax]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0x16c]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0x16c]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0x16c]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x380]
jb 0x401d33
lea ebx, [ebx]
mov eax, 0x5397829d
imul dword [ebp - 0x40]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x40], eax
jne 0x401d80
jmp 0x401da0
mov eax, 0x621b97c3
imul dword [ebp - 0x48]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x48], eax
jne 0x401da0
jmp 0x401dc0
mov eax, 0x2aaaaaab
imul dword [ebp - 0x44]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x44], eax
jne 0x401dc0
mov eax, dword [edi + 0x39c]
xor esi, esi
dec eax
je 0x401e83
mov eax, dword [edi + 0x39c]
dec eax
push eax
push 1
push edi
call fcn.004034e0
mov ebx, dword [ebp - 0x4c]
add esp, 0xc
mov cl, al
test ebx, ebx
je 0x401e1a
mov eax, 0x84210843
imul ebx
add edx, ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401e02
mov dword [ebp - 0x4c], ebx
xor eax, eax
lea esp, [esp]
cmp cl, byte [eax + edi + 0x6c]
je 0x401e2d
inc eax
cmp eax, esi
jbe 0x401e20
jmp 0x401e2f
xor cl, cl
mov ebx, dword [ebp - 0x38]
test ebx, ebx
je 0x401e4e
mov eax, 0xa16b312f
imul ebx
add edx, ebx
sar edx, 7
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401e36
mov dword [ebp - 0x38], ebx
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x401e6b
mov eax, 0x2d4279a3
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401e55
mov dword [ebp - 4], ebx
test cl, cl
je 0x401e74
mov byte [esi + edi + 0x6c], cl
inc esi
mov eax, dword [edi + 0x39c]
dec eax
cmp esi, eax
jb 0x401de6
mov edi, 0x6fbd
jmp 0x401e90
mov eax, 0x2aaaaaab
imul edi
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401e90
push 0x7f
lea eax, [ebp - 0xcb]
push edi
push eax
mov byte [ebp - 0xcc], 0
call fcn.004033a0
lea eax, [ebp - 0xcc]
push eax
call fcn.00402a50
mov edi, dword [ebp + 0x10]
add esp, 0x10
mov ecx, 0x1429
mov eax, 0x828cbfbf
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401ed0
xorps xmm0, xmm0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x28], 0x4e57b2b2
mov dword [ebp - 0x24], 0x8590ac99
mov dword [ebp - 0x20], 0x296d2091
mov dword [ebp - 0x1c], 0x840d1c3a
mov dword [ebp - 0x18], 0x8f0cb748
movq qword [ebp - 0x14], xmm0
mov eax, 0x3799
mov edx, 0x68
mov ecx, 0x13
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x401f22
movq xmm0, qword [ebp - 0x28]
lea ebx, [edi + 0x260]
xor ecx, ecx
movq qword [ebx], xmm0
movq xmm0, qword [ebp - 0x20]
movq qword [ebx + 8], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [ebx + 0x10], xmm0
movq xmm0, qword [ebp - 0x10]
movq qword [ebx + 0x18], xmm0
lea esp, [esp]
inc ecx
mov eax, ecx
and eax, 0x80000007
jns 0x401f6f
dec eax
or eax, 0xfffffff8
inc eax
jne 0x401f72
inc ecx
cmp ecx, 0xc86
jl 0x401f60
xor ecx, ecx
lea esp, [esp]
inc ecx
mov eax, ecx
and eax, 0x80000003
jns 0x401f8f
dec eax
or eax, 0xfffffffc
inc eax
jne 0x401f93
add ecx, ecx
cmp ecx, 0x70ee
jl 0x401f80
xor eax, eax
lea ecx, [ecx]
xor byte [ebp + eax - 0xcc], 0x94
inc eax
cmp eax, 0x7e
jb 0x401fa0
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp dword [edi + 0x39c], ecx
jbe 0x402131
nop
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x401fd1
cdq
sub eax, edx
sar eax, 1
jne 0x401fc7
mov dword [ebp - 0x2c], eax
movzx ebx, byte [ecx + edi + 0x6c]
imul ebx, dword [edi + 0x10]
add ebx, dword [ebp + 8]
mov esi, dword [ebp - 8]
mov dword [edi + 0x30c], ebx
cmp esi, 0xc58
jge 0x402016
mov edi, edi
inc esi
mov eax, 0x2aaaaaab
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
add ecx, ecx
mov eax, esi
sub eax, ecx
jne 0x40200b
inc esi
cmp esi, 0xc58
jl 0x401ff0
mov dword [ebp - 8], esi
push 0x7f
lea eax, [ebp - 0x14b]
push 0
push eax
mov byte [ebp - 0x14c], 0
call fcn.004033a0
push 0x7f
lea eax, [ebp - 0x14c]
push ebx
push eax
call fcn.00403370
mov ecx, 0x1f
lea esi, [ebp - 0xcc]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edi, dword [ebp + 0x10]
add esp, 0x18
mov eax, dword [edi + 0x30c]
call eax
lea eax, [ebp - 0x14c]
push 0x7f
push eax
push ebx
call fcn.00403370
mov ecx, dword [ebp - 0x30]
add esp, 0xc
test ecx, ecx
je 0x40208a
mov eax, 0x7e07e07f
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402074
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x4020a7
mov eax, 0xfe03f81
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402091
mov dword [ebp - 0x34], ecx
xor esi, esi
cmp dword [edi + 0x10], esi
jbe 0x4020f4
mov edi, edi
mov eax, dword [edi + 0x16c]
inc esi
mov al, byte [eax + 3]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0x16c]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0x16c]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0x16c]
mov al, byte [eax]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x10]
jb 0x4020b0
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x402118
jmp 0x402100
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402100
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 4]
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, dword [edi + 0x39c]
jb 0x401fc0
lea ebx, [edi + 0x260]
call fcn.00403660
mov dword [edi + 0x188], eax
mov ecx, 0x5681
mov esi, 0xbe
mov edx, 0xa3
jmp 0x402150
cmp edx, esi
cmovl edx, esi
dec ecx
jne 0x402150
add eax, 0xfffffffe
push eax
push dword [edi + 0x248]
call fcn.00401130
add esp, 8
xor esi, esi
lea esp, [esp]
inc esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x40218b
add esi, 2
cmp esi, 0x1aa8
jl 0x402170
push 0xb6806a8
push ebx
call fcn.00401b40
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
add esp, 8
lea esi, [edx + eax]
sar esi, 8
test esi, esi
je 0x4021d0
mov edi, dword [ebp + 8]
push ebx
push 0x100
push edi
call fcn.004033d0
add esp, 0xc
add edi, 0x100
dec esi
jne 0x4021b8
xor ebx, ebx
inc ebx
mov eax, 0x92492493
imul ebx
add edx, ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, ebx
sub eax, ecx
jne 0x4021f6
inc ebx
cmp ebx, 0xeba
jl 0x4021d2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret