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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
push esi
xor ecx, ecx
xor eax, eax
push edi
xor edi, edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], 0x751b
mov dword [ebp - 0x18], 0x49
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], 0x504d
mov dword [ebp - 0x24], 0x160a
mov dword [ebp - 0x28], eax
cmp dword [ebp + 8], eax
je 0x402397
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x402397
push ebx
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebx + 0xa8]
xor ecx, dword [ebx + 0x25c]
cmp edx, ecx
jl 0x402396
call fcn.004032a0
mov dword [ebx + 0xa4], eax
mov eax, 0x2a6d
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
test eax, eax
jne 0x401dc2
mov eax, dword [ebx + 0x25c]
xor dword [ebx + 0x50], eax
mov eax, dword [ebx + 0x50]
mov dword [ebp - 0x2c], eax
mov ebx, 0x5d23
mov eax, 0x60f25deb
imul ebx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401de3
mov ebx, dword [ebp + 0x10]
mov ecx, 0x6393
mov edx, 0x5e
mov eax, 0x42
cmp eax, 0x5e
cmovl eax, edx
dec ecx
jne 0x401e08
lea eax, [ebx + 0x25c]
mov dword [ebx + 0x27c], eax
mov ebx, 0x6a89
mov eax, 0x66666667
imul ebx
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401e22
mov eax, dword [ebp + 0xc]
xor edx, edx
div dword [ebp - 0x2c]
mov ebx, dword [ebp + 0x10]
mov ecx, 0x7899
mov dword [ebp - 0x2c], eax
mov dword [ebx + 0x240], eax
mov edi, edi
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401e50
mov eax, dword [ebx + 0x50]
imul eax, dword [ebp - 0x2c]
mov dword [ebx + 0x230], eax
test eax, eax
je 0x401ed0
mov edi, dword [ebp + 8]
xor esi, esi
jmp 0x401e80
mov eax, dword [ebx + 0x27c]
inc esi
mov al, byte [eax]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x27c]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x27c]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x27c]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x230]
jb 0x401e80
xor edi, edi
lea esp, [esp]
inc edi
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, edi
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x401ee9
inc edi
cmp edi, 0x3e9e
jl 0x401ed0
mov ebx, 0x4452
mov eax, 0x66666667
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401ef6
mov ebx, dword [ebp + 0x10]
mov esi, 0x25de
mov eax, 0x44d72045
imul esi
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x401f11
mov eax, 0x78cd
mov edx, 0xe2
mov esi, 0x6096
mov ecx, 0xc9
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x401f38
xor edi, edi
inc edi
mov eax, 0x66666667
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*4]
add ecx, ecx
mov eax, edi
sub eax, ecx
jne 0x401f60
inc edi
cmp edi, 0x3e1d
jl 0x401f42
mov eax, dword [ebx + 0x50]
xor edi, edi
dec eax
je 0x402049
mov eax, dword [ebp - 0xc]
inc eax
cmp eax, 0x5439
jl 0x401f77
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
cmp eax, 0x2dbe
jge 0x401fac
mov ecx, 0x2dbd
sub ecx, eax
mov eax, 0xcccccccd
mul ecx
mov ecx, dword [ebp - 8]
shr edx, 3
lea eax, [edx + edx*4]
lea ecx, [ecx + eax*2]
add ecx, 0xa
mov dword [ebp - 8], ecx
mov eax, dword [ebx + 0x50]
dec eax
push eax
push 1
push ebx
call fcn.004030b0
add esp, 0xc
mov byte [ebp - 1], al
xor ecx, ecx
cmp al, byte [ebx + ecx + 0x100]
je 0x401fd1
inc ecx
cmp ecx, edi
jbe 0x401fc1
jmp 0x401fd5
mov byte [ebp - 1], 0
test esi, esi
je 0x401ff5
lea esp, [esp]
mov eax, 0x95a02569
imul esi
add edx, esi
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x401fe0
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x402016
lea esp, [esp]
mov eax, 0x621b97c3
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402000
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x18]
mov eax, 0x290d
mov edx, 0x5e
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402023
mov al, byte [ebp - 1]
mov dword [ebp - 0x18], ecx
test al, al
je 0x40203d
mov byte [ebx + edi + 0x100], al
inc edi
mov eax, dword [ebx + 0x50]
dec eax
cmp edi, eax
jb 0x401f74
xorps xmm0, xmm0
mov dword [ebp - 0x68], 0x1ac5a27c
mov dword [ebp - 0x64], 0xb97179e9
mov dword [ebp - 0x60], 0xea74cca2
movq qword [ebp - 0x5c], xmm0
movq qword [ebp - 0x54], xmm0
mov word [ebp - 0x4c], 0
mov byte [ebp - 0x4a], 0
mov dword [ebp - 0x48], 0xf7eb1e1e
mov dword [ebp - 0x44], 0xcbc23b5b
mov dword [ebp - 0x40], 0x43d58d0
mov dword [ebp - 0x3c], 0x27ba29d2
mov dword [ebp - 0x38], 0xfaec90e5
xor esi, esi
lea ebx, [ebx]
inc esi
mov eax, 0x66666667
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*4]
sub ecx, eax
jne 0x4020bd
add esi, 2
cmp esi, 0x71e7
jl 0x4020a0
movq xmm0, qword [ebp - 0x48]
mov eax, dword [ebp - 0x38]
lea edi, [ebx + 0x24]
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0x40]
movq qword [edi + 8], xmm0
mov dword [edi + 0x10], eax
xor eax, eax
mov word [edi + 0x14], ax
xor byte [ebp + eax - 0x68], 0x29
inc eax
cmp eax, 0xc
jb 0x4020e7
mov ebx, 0x7347
jmp 0x402100
mov eax, 0x1948b0fd
imul ebx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402100
mov ebx, dword [ebp + 0x10]
xor esi, esi
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 0x402133
inc esi
cmp esi, 0x14c4
jl 0x402118
mov eax, 0x3684
dec eax
jne 0x402140
mov dword [ebp - 0x14], eax
cmp dword [ebx + 0x50], eax
jbe 0x4022a9
mov edx, 0x5a6f
jmp 0x402160
movzx eax, byte [ebx + eax + 0x100]
imul eax, dword [ebx + 0x240]
add eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x60]
mov dword [ebx + 0xbc], eax
movq xmm0, qword [eax]
mov esi, dword [eax + 0x10]
mov di, word [eax + 0x14]
movq qword [ebp - 0x30], xmm0
movq xmm0, qword [eax + 8]
movq qword [ebp - 0x10], xmm0
movq xmm0, qword [ebp - 0x68]
movq qword [eax], xmm0
mov dword [ebp - 0x18], eax
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, 0x5a6f
cmovl eax, edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0xbc]
call eax
mov eax, dword [ebp - 0x18]
movq xmm0, qword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
movq qword [eax], xmm0
movq xmm0, qword [ebp - 0x10]
movq qword [eax + 8], xmm0
mov dword [eax + 0x10], esi
mov word [eax + 0x14], di
test ecx, ecx
je 0x4021f8
mov edi, edi
mov eax, 0xb70fbb5b
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4021e0
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x402216
nop
mov eax, 0x214d0215
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402200
mov dword [ebp - 0x24], ecx
xor esi, esi
cmp dword [ebx + 0x240], esi
jbe 0x40226a
mov edi, dword [ebp - 0x18]
mov eax, dword [ebx + 0x27c]
inc esi
mov al, byte [eax + 3]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x27c]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x27c]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x27c]
mov al, byte [eax]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x240]
jb 0x402223
mov esi, dword [ebp - 0x28]
cmp esi, 0x1914
jge 0x402291
mov ecx, 0x1913
sub ecx, esi
mov eax, 0x38e38e39
mul ecx
shr edx, 1
lea eax, [edx + esi]
lea eax, [eax + edx*8]
add eax, 9
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
mov edx, 0x5a6f
cmp eax, dword [ebx + 0x50]
jb 0x402160
lea edi, [ebx + 0x24]
xor esi, esi
jmp 0x4022b0
inc esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, esi
sub eax, ecx
jne 0x4022d4
inc esi
cmp esi, 0x2737
jl 0x4022b0
call fcn.004032a0
mov dword [ebx + 0x260], eax
add eax, 0xfffffffe
push eax
push dword [ebx + 0xa4]
call fcn.004010e0
push 0xb0d5260
push edi
call fcn.00401b90
add esp, 0x10
mov edi, 0x3c6
lea esp, [esp]
mov eax, 0x4d4873ed
imul edi
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402310
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
lea edi, [ebx + 0x24]
lea esi, [edx + eax]
sar esi, 8
test esi, esi
je 0x402358
mov ebx, dword [ebp + 8]
lea ecx, [ecx]
push edi
push 0x100
push ebx
call fcn.00402f80
add esp, 0xc
add ebx, 0x100
dec esi
jne 0x402340
mov eax, 0x117
mov edx, 0x7a
mov ecx, 0x95
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402367
xor ebx, ebx
inc ebx
mov eax, 0x2aaaaaab
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
add ecx, ecx
mov eax, ebx
sub eax, ecx
jne 0x40238e
add ebx, 2
cmp ebx, 0x6f34
jl 0x402371
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret