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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
push ebx
xor ebx, ebx
push esi
push edi
xor edi, edi
xor esi, esi
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x78], 0x55
mov dword [ebp - 4], ebx
mov dword [ebp - 0x80], 0x2a
mov dword [ebp - 8], 0xc12
mov dword [ebp - 0x50], 0xdb
mov dword [ebp - 0x40], 0xcd
mov dword [ebp - 0x2c], 0x5c7a
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x3c], 0x11
mov dword [ebp - 0x44], 0x74ba
mov dword [ebp - 0x4c], 0x5238
mov dword [ebp - 0x54], 0xb5
cmp dword [ebp + 8], ebx
je 0x402625
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x402625
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 0x48]
mov eax, dword [eax + 0xb8]
xor eax, dword [ecx]
cmp edx, eax
jl 0x402625
call fcn.004035a0
mov ecx, dword [ebp + 0x10]
lea edx, [ecx + 0x48]
mov dword [ecx + 0x354], eax
mov eax, dword [edx]
xor dword [ecx + 0x2cc], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ecx + 0x2cc]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 0xc]
xor edx, edx
div ecx
mov edx, dword [ebp + 0x10]
imul ecx, eax
mov dword [edx + 0x8c], eax
mov dword [edx + 0x14], ecx
test ecx, ecx
je 0x401fc6
mov edi, dword [ebp + 8]
mov ebx, edx
mov eax, dword [ebx + 0x2c]
inc esi
mov al, byte [eax]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x2c]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x2c]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x2c]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x14]
jb 0x401f88
xor esi, esi
xor edi, edi
xor ebx, ebx
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 0x401fdf
inc edi
cmp edi, 0x798
jl 0x401fc6
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 0x402002
inc ebx
cmp ebx, 0x6fee
jl 0x401fe7
lea ebx, [ebx]
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 0x402037
add esi, 3
jmp 0x402038
inc esi
cmp esi, 0x4aac
jl 0x402010
mov ebx, dword [ebp + 0x10]
xor edi, edi
mov eax, dword [ebx + 0x2cc]
dec eax
je 0x4021ac
xor esi, esi
mov ecx, dword [ebp - 0xc]
cmp ecx, 0x4f33
jge 0x40207f
nop
inc ecx
mov eax, ecx
and eax, 0x80000001
jns 0x40206f
dec eax
or eax, 0xfffffffe
inc eax
jne 0x402074
add ecx, 2
cmp ecx, 0x4f33
jl 0x402060
mov dword [ebp - 0xc], ecx
mov eax, dword [ebx + 0x2cc]
dec eax
push eax
push 1
push ebx
call fcn.004033b0
add esp, 0xc
mov bl, al
mov eax, dword [ebp + 0x10]
xor ecx, ecx
lea esp, [esp]
cmp bl, byte [eax + ecx + 0x1c8]
je 0x4020b0
inc ecx
cmp ecx, edi
jbe 0x4020a0
jmp 0x4020b2
xor bl, bl
mov edx, dword [ebp - 0x34]
cmp edx, 0x3728
jge 0x4020dd
mov ecx, 0x3727
sub ecx, edx
mov eax, 0xaaaaaaab
mul ecx
shr edx, 2
lea eax, [edx + edx*2]
mov edx, dword [ebp - 0x34]
lea edx, [edx + eax*2]
add edx, 6
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x78]
mov eax, 0x1400
mov edx, 0x41
lea ebx, [ebx]
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x4020f0
mov edx, dword [ebp - 4]
mov dword [ebp - 0x78], ecx
cmp edx, 0x704
jge 0x402126
mov ecx, 0x703
sub ecx, edx
mov eax, 0xcccccccd
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
mov edx, dword [ebp - 4]
lea edx, [edx + eax*2]
add edx, 0xa
mov dword [ebp - 4], edx
cmp esi, 0x6ba9
jge 0x402156
mov edi, edi
inc esi
mov eax, 0x66666667
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*4]
add ecx, ecx
mov eax, esi
sub eax, ecx
jne 0x40214e
inc esi
cmp esi, 0x6ba9
jl 0x402130
mov ecx, dword [ebp - 0x80]
mov eax, 0x6e21
mov edx, 0xcd
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402163
mov dword [ebp - 0x80], ecx
test bl, bl
je 0x40217d
mov eax, dword [ebp + 0x10]
inc edi
mov byte [eax + edi + 0x1c7], bl
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x40219a
mov eax, 0x2c0b02c1
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402184
mov dword [ebp - 8], ecx
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebx + 0x2cc]
dec eax
cmp edi, eax
jb 0x402054
xor ecx, ecx
mov edi, edi
inc ecx
mov eax, ecx
and eax, 0x80000001
jns 0x4021bf
dec eax
or eax, 0xfffffffe
inc eax
jne 0x4021c4
add ecx, 2
cmp ecx, 0x4f33
jl 0x4021b0
xorps xmm0, xmm0
mov dword [ebp - 0x74], 0xbfd0b769
mov dword [ebp - 0x70], 0xf40738fc
mov dword [ebp - 0x6c], 0xff61d9b7
movq qword [ebp - 0x68], xmm0
mov dword [ebp - 0x60], 0
mov word [ebp - 0x5c], 0
mov dword [ebp - 0x28], 0x75109385
mov dword [ebp - 0x24], 0x18c7bb92
mov dword [ebp - 0x20], 0x6ea8d918
mov dword [ebp - 0x1c], 0xdedadcaf
mov dword [ebp - 0x18], 0xc0942e13
mov dword [ebp - 0x14], 0
mov ecx, 0x4123
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402225
movq xmm0, qword [ebp - 0x28]
add ebx, 0x6c
xor eax, eax
movq qword [ebx], xmm0
movq xmm0, qword [ebp - 0x20]
movq qword [ebx + 8], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [ebx + 0x10], xmm0
mov word [ebx + 0x18], ax
mov dword [ebp - 4], ebx
mov byte [ebx + 0x1a], al
xor byte [ebp + ecx - 0x74], 0x3c
inc ecx
cmp ecx, 0xc
jb 0x402266
mov eax, 0x194d
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
test eax, eax
jne 0x402276
mov ebx, 0x742f
jmp 0x402290
mov eax, 0x3e0f83e1
imul ebx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402290
mov esi, dword [ebp + 0x10]
xor eax, eax
mov dword [ebp - 8], eax
cmp dword [esi + 0x2cc], eax
jbe 0x4024dc
mov ebx, dword [ebp + 0x10]
mov edx, 0xe7
lea esi, [edx - 0x3e]
jmp 0x4022d0
movzx edi, byte [ebx + eax + 0x1c8]
imul edi, dword [ebx + 0x8c]
add edi, dword [ebp + 8]
mov ecx, dword [ebp - 0x50]
mov eax, 0x843
lea ebx, [ebx]
cmp ecx, 0xe7
cmovg ecx, edx
dec eax
jne 0x4022f0
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x40]
mov eax, 0x5280
jmp 0x402310
cmp ecx, 0xa9
cmovg ecx, esi
dec eax
jne 0x402310
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ebx + 0x24], edi
test ecx, ecx
je 0x402348
lea esp, [esp]
mov eax, 0x9cc8e161
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402330
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x48]
movq xmm0, qword [edi]
mov si, word [edi + 0x18]
mov bl, byte [edi + 0x1a]
movq qword [ebp - 0x84], xmm0
movq xmm0, qword [edi + 8]
cmp eax, 0x20fa
mov ecx, 0x20fa
cmovl eax, ecx
mov ecx, dword [ebp - 0x58]
movq qword [ebp - 0x7c], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x38], xmm0
mov dword [ebp - 0x48], eax
cmp ecx, 0x7414
jge 0x4023a0
mov eax, 0x7413
sub eax, ecx
shr eax, 3
lea ecx, [ecx + eax*8]
add ecx, 8
mov dword [ebp - 0x58], ecx
movq xmm0, qword [ebp - 0x74]
mov eax, dword [ebp - 0x6c]
movq qword [edi], xmm0
mov dword [edi + 8], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x24]
call eax
movq xmm0, qword [ebp - 0x84]
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0x7c]
movq qword [edi + 8], xmm0
movq xmm0, qword [ebp - 0x38]
movq qword [edi + 0x10], xmm0
mov word [edi + 0x18], si
mov byte [edi + 0x1a], bl
mov ebx, dword [ebp - 0x30]
cmp ebx, 0x5e02
jge 0x402406
mov ecx, 0x5e01
sub ecx, ebx
mov eax, 0xcccccccd
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
lea ebx, [ebx + eax*2]
add ebx, 0xa
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp + 0x10]
xor esi, esi
cmp dword [ebx + 0x8c], esi
jbe 0x40244e
mov eax, dword [ebx + 0x2c]
inc esi
mov al, byte [eax + 3]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x2c]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x2c]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x2c]
mov al, byte [eax]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x8c]
jb 0x402413
mov ecx, dword [ebp - 0x3c]
mov eax, 0x104e
mov edx, 0x3a
jmp 0x402460
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402460
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je 0x40248a
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402472
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x4024a9
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402491
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp - 0x54]
mov eax, 0x58b3
mov edx, 0x28
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x4024b6
mov eax, dword [ebp - 8]
inc eax
mov edx, 0xe7
mov dword [ebp - 0x54], ecx
mov dword [ebp - 8], eax
lea esi, [edx - 0x3e]
cmp eax, dword [ebx + 0x2cc]
jb 0x4022d0
mov esi, 0x6987
mov eax, 0x63e7063f
imul esi
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x4024e1
mov esi, dword [ebp + 0x10]
mov ebx, 0x70ce
lea esp, [esp]
mov eax, 0x63e7063f
imul ebx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402500
call fcn.004035a0
mov dword [esi + 0x2e4], eax
add eax, 0xfffffffe
push eax
push dword [esi + 0x354]
call fcn.00401180
mov ebx, dword [ebp - 4]
add esp, 8
mov eax, 0x436e
mov edx, 0xf1
mov ecx, 0xde
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x402542
push 0xda5fa7f
push ebx
call fcn.00401ce0
add esp, 8
mov ecx, 0x2829
lea ecx, [ecx]
mov eax, 0xae4c415d
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402560
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
mov ecx, 0x68e5
lea esi, [edx + eax]
sar esi, 8
lea ebx, [ebx]
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402590
mov ecx, 0x5a53
lea ebx, [ebx]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4025b0
test esi, esi
je 0x4025e8
mov edi, dword [ebp + 8]
lea esp, [esp]
push ebx
push 0x100
push edi
call fcn.00403280
add esp, 0xc
add edi, 0x100
dec esi
jne 0x4025d0
mov ecx, 0x10ea
lea ecx, [ecx]
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4025f0
mov ecx, 0x67d0
lea ebx, [ebx]
mov eax, 0x939a85c5
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402610
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret