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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa8
push ebx
push esi
xor esi, esi
xor eax, eax
push edi
lea edi, [esi + 0x24]
mov ebx, 0x1a7c
mov dword [ebp - 8], 0x227b
mov dword [ebp - 0x50], 0x4345
mov dword [ebp - 0x60], 0x5f18
mov dword [ebp - 0x64], 0xf7
mov dword [ebp - 0x48], 0x3b79
mov dword [ebp - 0x40], 0x3311
mov dword [ebp - 0x94], 0x914
mov dword [ebp - 0x10], 0x21da
mov dword [ebp - 0x9c], 0x4e54
mov dword [ebp - 0xa4], 0x59a4
mov dword [ebp - 0x58], 0x182a
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x6c], 0x9a0
mov dword [ebp - 0x44], 0x38
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x4c], 0x3af
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x54], 0x4dbf
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x68], 0x2c66
mov dword [ebp - 0x70], 0x31d0
lea ebx, [ebx]
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 0x401e2b
inc esi
cmp esi, 0x4299
jl 0x401e10
cmp dword [ebp + 8], 0
je 0x4025ac
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x4025ac
mov eax, dword [ebp + 0x10]
lea esi, [eax + 0x324]
mov eax, dword [eax + 0x3d8]
xor eax, dword [esi]
cmp ecx, eax
jl 0x4025ac
mov eax, 0x3ef2
mov ecx, 0x8a
jmp 0x401e70
cmp edi, ecx
cmovl edi, ecx
dec eax
jne 0x401e70
call fcn.004033d0
mov edx, dword [ebp + 0x10]
mov dword [edx + 0x30c], eax
mov eax, 0x4d4873ed
imul ebx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401e86
mov ebx, dword [ebp + 0x10]
mov eax, dword [esi]
xor dword [ebx + 0x1c4], eax
mov edi, dword [ebx + 0x1c4]
lea ebx, [ebx]
mov eax, 0x3a196b1f
imul dword [ebp - 8]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 8], eax
jne 0x401eb0
mov dword [ebx + 0x124], esi
lea ecx, [ecx]
mov eax, 0x3531dec1
imul dword [ebp - 0x50]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x50], eax
jne 0x401ed0
mov ecx, 0x41e0
lea esp, [esp]
mov eax, 0x9c09c09d
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401ef0
mov eax, dword [ebp + 0xc]
xor edx, edx
div edi
xor esi, esi
imul edi, eax
mov dword [ebx + 0x13c], eax
mov dword [ebx + 0x40], edi
test edi, edi
je 0x401f65
mov edi, dword [ebp + 8]
mov eax, dword [ebx + 0x124]
inc esi
mov al, byte [eax]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x124]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x124]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x124]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x40]
jb 0x401f21
mov esi, ebx
xor edi, edi
mov eax, dword [esi + 0x1c4]
dec eax
je 0x402089
xor ebx, ebx
mov eax, dword [esi + 0x1c4]
dec eax
push eax
push 1
push esi
call fcn.004031e0
add esp, 0xc
mov cl, al
mov byte [ebp - 1], cl
cmp ebx, 0x176d
jge 0x401fbe
inc ebx
mov eax, 0x66666667
imul ebx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, ebx
lea eax, [eax + eax*4]
sub ecx, eax
jne 0x401fb3
inc ebx
cmp ebx, 0x176d
jl 0x401f98
mov cl, byte [ebp - 1]
mov esi, dword [ebp - 0x60]
test esi, esi
je 0x401fdb
mov eax, 0x10624dd3
imul esi
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x401fc5
mov dword [ebp - 0x60], esi
mov edx, dword [ebp + 0x10]
xor eax, eax
cmp cl, byte [edx + eax + 0x1d0]
je 0x401ff0
inc eax
cmp eax, edi
jbe 0x401fe0
jmp 0x401ff2
xor cl, cl
mov edx, dword [ebp - 0x64]
mov eax, 0x6e60
mov esi, 0x3b
nop
cmp edx, esi
cmovl edx, esi
dec eax
jne 0x402000
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x64], edx
test esi, esi
je 0x402028
mov eax, 0x4ec4ec4f
imul esi
sar edx, 2
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x402012
mov dword [ebp - 0x48], esi
mov esi, dword [ebp - 0x40]
test esi, esi
je 0x402048
nop
mov eax, 0xd20d20d3
imul esi
add edx, esi
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x402030
mov dword [ebp - 0x40], esi
mov esi, dword [ebp + 0x10]
test cl, cl
je 0x402057
mov byte [esi + edi + 0x1d0], cl
inc edi
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x40207a
mov eax, 0x151d07eb
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402061
mov dword [ebp - 0x94], ecx
mov eax, dword [esi + 0x1c4]
dec eax
cmp edi, eax
jb 0x401f78
xor ebx, ebx
jmp 0x402090
inc ebx
mov eax, 0x38e38e39
imul ebx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, ebx
lea eax, [eax + eax*8]
sub ecx, eax
jne 0x4020ad
add ebx, 2
cmp ebx, 0x64a7
jl 0x402090
xorps xmm0, xmm0
mov dword [ebp - 0x90], 0x3e593ee0
mov dword [ebp - 0x8c], 0xbd553674
mov dword [ebp - 0x88], 0x76e8503e
movq qword [ebp - 0x84], xmm0
movq qword [ebp - 0x7c], xmm0
mov word [ebp - 0x74], 0
mov dword [ebp - 0x3c], 0x44244077
mov dword [ebp - 0x38], 0xd90a3d85
mov dword [ebp - 0x34], 0x732a1d2c
mov dword [ebp - 0x30], 0xcfe172a3
mov dword [ebp - 0x2c], 0x66a6775a
mov dword [ebp - 0x28], 0
mov eax, 0x3949660b
imul dword [ebp - 0x10]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x10], eax
jne 0x402113
xor ebx, ebx
lea esp, [esp]
inc ebx
mov eax, 0x66666667
imul ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*4]
add ecx, ecx
mov eax, ebx
sub eax, ecx
jne 0x402150
add ebx, 2
cmp ebx, 0x2f45
jl 0x402130
movq xmm0, qword [ebp - 0x3c]
movq qword [esi + 0x3a4], xmm0
movq xmm0, qword [ebp - 0x34]
movq qword [esi + 0x3ac], xmm0
movq xmm0, qword [ebp - 0x2c]
xor eax, eax
movq qword [esi + 0x3b4], xmm0
mov word [esi + 0x3bc], ax
jmp 0x402190
xor byte [ebp + eax - 0x90], 0xb5
inc eax
cmp eax, 0xc
jb 0x402190
mov edi, edi
mov eax, 0x2fa0be83
imul dword [ebp - 0x9c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x9c], eax
jne 0x4021a0
mov eax, 0x2f25
mov edx, 0x9c
mov ecx, 0x32
lea esp, [esp]
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x4021d0
jmp 0x4021e0
mov eax, 0x5d9f7391
imul dword [ebp - 0xa4]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0xa4], eax
jne 0x4021e0
xor ebx, ebx
mov dword [ebp - 8], ebx
cmp dword [esi + 0x1c4], ebx
jbe 0x4024cb
mov edi, edi
mov ecx, dword [ebp - 0x58]
test ecx, ecx
je 0x40222f
mov eax, 0xd20d20d3
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402217
mov dword [ebp - 0x58], ecx
movzx edi, byte [esi + ebx + 0x1d0]
imul edi, dword [esi + 0x13c]
add edi, dword [ebp + 8]
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x184], edi
cmp eax, 0x238f
jge 0x402270
mov ecx, 0x238e
sub ecx, eax
mov eax, 0xaaaaaaab
mul ecx
mov eax, dword [ebp - 0x18]
shr edx, 1
add eax, edx
lea eax, [eax + edx*2]
add eax, 3
mov dword [ebp - 0x18], eax
nop
movq xmm0, qword [edi]
mov ecx, dword [ebp - 0x6c]
mov si, word [edi + 0x18]
movq qword [ebp - 0xa8], xmm0
movq xmm0, qword [edi + 8]
movq qword [ebp - 0xa0], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x98], xmm0
test ecx, ecx
je 0x4022b7
mov eax, 0x3e0f83e1
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4022a1
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebp - 0x44]
mov eax, 0x5f98
mov edx, 0xb3
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x4022c4
cmp dword [ebp - 0xc], 0x301b
mov dword [ebp - 0x44], ecx
jge 0x402309
mov ebx, dword [ebp - 0xc]
jmp 0x4022e0
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 0x4022fb
add ebx, 5
cmp ebx, 0x301b
jl 0x4022e0
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 8]
movq xmm0, qword [ebp - 0x90]
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp + 0x10]
movq qword [edi], xmm0
mov dword [edi + 8], eax
mov eax, dword [edx + 0x184]
call eax
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x402348
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402330
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x1c]
cmp edx, 0x2a9e
jge 0x402373
mov ecx, 0x2a9d
sub ecx, edx
mov eax, 0xaaaaaaab
mul ecx
shr edx, 2
lea eax, [edx + edx*2]
mov edx, dword [ebp - 0x1c]
lea edx, [edx + eax*2]
add edx, 6
mov dword [ebp - 0x1c], edx
movq xmm0, qword [ebp - 0xa8]
mov ecx, dword [ebp - 0x54]
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0xa0]
movq qword [edi + 8], xmm0
movq xmm0, qword [ebp - 0x98]
movq qword [edi + 0x10], xmm0
mov word [edi + 0x18], si
test ecx, ecx
je 0x4023ba
mov eax, 0x60606061
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4023a4
mov dword [ebp - 0x54], ecx
mov eax, dword [ebp + 0x10]
xor esi, esi
cmp dword [eax + 0x13c], esi
jbe 0x40241a
mov ebx, eax
lea esp, [esp]
mov eax, dword [ebx + 0x124]
inc esi
mov al, byte [eax + 3]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x124]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x124]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x124]
mov al, byte [eax]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x13c]
jb 0x4023d0
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x14]
cmp esi, 0x5d64
jge 0x40244b
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 0x402440
inc esi
cmp esi, 0x5d64
jl 0x402425
mov dword [ebp - 0x14], esi
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x131f
jge 0x402473
inc ecx
mov eax, ecx
and eax, 0x80000007
jns 0x402465
dec eax
or eax, 0xfffffff8
inc eax
jne 0x402468
inc ecx
cmp ecx, 0x131f
jl 0x402456
mov dword [ebp - 0x20], ecx
mov esi, dword [ebp - 0x5c]
cmp esi, 0x315c
jge 0x40249b
mov ecx, 0x315b
sub ecx, esi
mov eax, 0xcccccccd
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
lea esi, [esi + eax*2]
add esi, 0xa
mov dword [ebp - 0x5c], esi
mov ecx, dword [ebp - 0x68]
test ecx, ecx
je 0x4024b8
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4024a2
mov dword [ebp - 0x68], ecx
mov esi, dword [ebp + 0x10]
inc ebx
mov dword [ebp - 8], ebx
cmp ebx, dword [esi + 0x1c4]
jb 0x402210
call fcn.004033d0
mov dword [esi + 0x48], eax
mov ecx, 0x5950
dec ecx
jne 0x4024d8
add eax, 0xfffffffe
push eax
push dword [esi + 0x30c]
call fcn.00401120
add esp, 8
mov edi, 0x27fd
mov eax, 0x10624dd3
imul edi
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x4024f2
push 0x582c184
lea edi, [esi + 0x3a4]
push edi
call fcn.00401bc0
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
add esp, 8
lea esi, [edx + eax]
sar esi, 8
mov eax, 0x5dee
mov edi, edi
dec eax
jne 0x402530
test esi, esi
je 0x402560
mov ebx, dword [ebp + 8]
lea ebx, [ebx]
push edi
push 0x100
push ebx
call fcn.004030b0
add esp, 0xc
add ebx, 0x100
dec esi
jne 0x402540
jmp 0x402560
mov eax, 0x151d07eb
imul dword [ebp - 0x70]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x70], eax
jne 0x402560
xor ebx, ebx
lea esp, [esp]
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 0x4025a4
inc ebx
cmp ebx, 0x841
jl 0x402580
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret