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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
push ebx
push esi
push edi
xor ebx, ebx
xor esi, esi
xor edi, edi
xor eax, eax
mov ecx, 0x110b
mov dword [ebp - 0xc], 0x7119
mov dword [ebp - 0x10], 9
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0x27bb
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], 0x4e5f
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], 0x6930
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401d42
mov edi, 0x26f
lea esp, [esp]
mov eax, 0x63e7063f
imul edi
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401d60
cmp dword [ebp + 8], ebx
je 0x402413
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x402413
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 0x308]
mov eax, dword [eax + 0x288]
xor eax, dword [ecx]
cmp edx, eax
jl 0x402413
mov edi, 0x15a8
mov eax, 0x63e7063f
imul edi
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401da5
xor ecx, ecx
lea ebx, [ebx]
inc ecx
mov eax, ecx
and eax, 0x80000007
jns 0x401dcf
dec eax
or eax, 0xfffffff8
inc eax
jne 0x401dd2
inc ecx
cmp ecx, 0x14a5
jl 0x401dc0
call fcn.00403400
mov edx, dword [ebp + 0x10]
lea ecx, [edx + 0x308]
mov dword [edx + 0x1c0], eax
mov eax, dword [ecx]
xor dword [edx + 0x2dc], eax
mov eax, dword [edx + 0x2dc]
mov dword [edx + 0x290], ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
xor edx, edx
div dword [ebp - 8]
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x2d4], eax
mov dword [ebp - 0x2c], eax
xor ecx, ecx
jmp 0x401e20
inc ecx
mov eax, ecx
and eax, 0x80000007
jns 0x401e2f
dec eax
or eax, 0xfffffff8
inc eax
jne 0x401e32
inc ecx
cmp ecx, 0x7e50
jl 0x401e20
mov ebx, 0x5d73
nop
mov eax, 0x3e0f83e1
imul ebx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401e40
mov eax, dword [ebp - 8]
imul eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 8], eax
mov dword [ecx + 0x32c], eax
mov ecx, 0x2146
jmp 0x401e70
mov eax, 0x83993053
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401e70
mov edi, 0x5382
lea ebx, [ebx]
mov eax, 0x63e7063f
imul edi
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401e90
mov ecx, 0x4c44
jmp 0x401eb0
mov eax, 0xb60b60b7
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401eb0
cmp dword [ebp - 8], ebx
jbe 0x401f1f
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
xor esi, esi
mov eax, dword [ebx + 0x290]
inc esi
mov al, byte [eax]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x290]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x290]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x290]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x32c]
jb 0x401ed2
xor esi, esi
xor edi, edi
xor ebx, ebx
mov eax, 0xb26
dec eax
jne 0x401f24
xor ecx, ecx
lea esp, [esp]
inc ecx
mov eax, ecx
and eax, 0x80000007
jns 0x401f3f
dec eax
or eax, 0xfffffff8
inc eax
jne 0x401f42
inc ecx
cmp ecx, 0x8a6
jl 0x401f30
mov edi, 0x24c4
nop
mov eax, 0x42df9bb1
imul edi
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401f50
mov eax, 0xf4b
mov edx, 0xc8
mov ecx, 0x4d
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x401f72
xor ecx, ecx
mov dword [ebp - 8], ecx
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x2dc]
dec eax
je 0x402087
nop
mov eax, dword [ecx + 0x2dc]
dec eax
push eax
push 1
push ecx
call fcn.00403210
add esp, 0xc
mov cl, al
mov byte [ebp - 1], cl
cmp ebx, 0x9b
jge 0x401fd6
inc ebx
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, ebx
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x401fcb
add ebx, 2
cmp ebx, 0x9b
jl 0x401fb0
mov cl, byte [ebp - 1]
xor eax, eax
jmp 0x401fe0
mov edx, dword [ebp + 0x10]
cmp cl, byte [edx + eax + 0x3c]
mov edx, dword [ebp - 8]
je 0x401ff3
inc eax
cmp eax, edx
jbe 0x401fe0
jmp 0x401ff5
xor cl, cl
cmp esi, 0x5363
jge 0x40201a
lea ecx, [ecx]
inc esi
mov eax, esi
and eax, 0x80000007
jns 0x40200f
dec eax
or eax, 0xfffffff8
inc eax
jne 0x402012
inc esi
cmp esi, 0x5363
jl 0x402000
test cl, cl
je 0x402029
mov eax, dword [ebp + 0x10]
inc edx
mov byte [eax + edx + 0x3b], cl
mov dword [ebp - 8], edx
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x402046
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402030
mov dword [ebp - 0xc], ecx
cmp edi, 0x944
jge 0x402071
mov edi, edi
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 0x402069
inc edi
cmp edi, 0x944
jl 0x402050
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x10]
mov eax, dword [eax + 0x2dc]
dec eax
cmp dword [ebp - 8], eax
jb 0x401f90
xor ebx, ebx
lea esp, [esp]
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 0x4020ad
add ebx, 2
cmp ebx, 0x1ab7
jl 0x402090
xorps xmm0, xmm0
mov dword [ebp - 0x7c], 0x8ceb8c52
mov dword [ebp - 0x78], 0x970c3bc6
mov dword [ebp - 0x74], 0xc45ae28c
movq qword [ebp - 0x70], xmm0
movq qword [ebp - 0x68], xmm0
mov byte [ebp - 0x60], 0
mov ecx, 0x15c0
mov eax, 0x964fda6d
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4020e0
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x5c], 0x2b4d9df7
lea edi, [ecx + 0x15c]
mov dword [ebp - 0x58], 0x52c90bc3
movq xmm0, qword [ebp - 0x5c]
movq qword [edi], xmm0
mov dword [ebp - 0x54], 0xea96822c
mov dword [ebp - 0x50], 0x48e619da
movq xmm0, qword [ebp - 0x54]
xor eax, eax
movq qword [edi + 8], xmm0
mov dword [ebp - 0x4c], 0xe2644cf5
mov dword [ebp - 0x48], eax
movq xmm0, qword [ebp - 0x4c]
movq qword [edi + 0x10], xmm0
mov dword [ebp - 8], edi
mov word [edi + 0x18], ax
lea ebx, [ebx]
xor byte [ebp + eax - 0x7c], 7
inc eax
cmp eax, 0xc
jb 0x402150
mov ebx, 0x1c99
mov eax, 0xb21642c9
imul ebx
add edx, ebx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402160
mov dword [ebp - 0xc], ebx
cmp dword [ecx + 0x2dc], ebx
jbe 0x402353
mov esi, 0x9d
lea esp, [esp]
mov edx, dword [ebp - 0x10]
mov eax, 0x2685
jmp 0x4021a0
cmp edx, 0x9d
cmovg edx, esi
dec eax
jne 0x4021a0
movzx edi, byte [ecx + ebx + 0x3c]
imul edi, dword [ecx + 0x2d4]
add edi, dword [ebp + 8]
mov eax, dword [ebp - 0x74]
mov dword [ecx + 0x214], edi
movq xmm0, qword [edi]
mov si, word [edi + 0x18]
movq qword [ebp - 0x30], xmm0
movq xmm0, qword [edi + 8]
movq qword [ebp - 0x38], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x40], xmm0
movq xmm0, qword [ebp - 0x7c]
movq qword [edi], xmm0
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x214]
mov dword [ebp - 0x10], edx
call eax
mov eax, dword [ebp - 0x14]
nop
inc eax
cmp eax, 0x7932
jl 0x402200
movq xmm0, qword [ebp - 0x30]
mov ecx, dword [ebp - 0x18]
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0x38]
movq qword [edi + 8], xmm0
movq xmm0, qword [ebp - 0x40]
movq qword [edi + 0x10], xmm0
mov dword [ebp - 0x14], eax
mov word [edi + 0x18], si
test ecx, ecx
je 0x402249
mov eax, 0x4da637d
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402233
mov dword [ebp - 0x18], ecx
mov esi, dword [ebp - 0x1c]
cmp esi, 0x36e8
jge 0x402271
mov ecx, 0x36e7
sub ecx, esi
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea eax, [edx + esi]
lea eax, [eax + edx*4]
add eax, 5
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x402296
jmp 0x402280
mov eax, 0x4c8f8d29
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402280
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp + 0x10]
xor esi, esi
cmp dword [eax + 0x2d4], esi
jbe 0x4022ef
mov ebx, eax
mov eax, dword [ebx + 0x290]
inc esi
mov al, byte [eax + 3]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x290]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x290]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x290]
mov al, byte [eax]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x2d4]
jb 0x4022a5
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x24]
cmp esi, 0x2223
jge 0x402316
mov ecx, 0x2222
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 - 0x24], eax
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x402338
lea ecx, [ecx]
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402320
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp + 0x10]
inc ebx
mov dword [ebp - 0xc], ebx
mov esi, 0x9d
cmp ebx, dword [ecx + 0x2dc]
jb 0x402190
mov edi, dword [ebp - 8]
mov ecx, 0x2c8b
jmp 0x402360
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402360
call fcn.00403400
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x334], eax
add eax, 0xfffffffe
push eax
push dword [ecx + 0x1c0]
call fcn.00401180
push 0x119c3790
push edi
call fcn.00401c00
add esp, 0x10
mov edi, 0x42c2
mov eax, 0x2fa0be83
imul edi
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x4023a5
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp - 8]
cdq
and edx, 0xff
lea esi, [edx + eax]
sar esi, 8
test esi, esi
je 0x4023ea
mov ebx, dword [ebp + 8]
push edi
push 0x100
push ebx
call fcn.004030e0
add esp, 0xc
add ebx, 0x100
dec esi
jne 0x4023d2
xor ebx, ebx
lea esp, [esp]
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 0x40240b
inc ebx
cmp ebx, 0x1214
jl 0x4023f0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret