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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x144
push ebx
xor ecx, ecx
push esi
xor eax, eax
xor esi, esi
push edi
mov ebx, 0x1c0b
mov edi, 0xa4
mov dword [ebp - 0x38], 0x4df7
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], 0x5597
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], 0x6a18
mov dword [ebp - 0x44], 0x3190
mov dword [ebp - 0x40], 0x9b
mov dword [ebp - 0x34], eax
cmp dword [ebp + 8], eax
je 0x402435
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x402435
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 0x218]
mov eax, dword [eax + 0x24c]
xor eax, dword [ecx]
cmp edx, eax
jl 0x402435
call fcn.00403440
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x74], eax
mov eax, 0x8d3dcb09
imul ebx
add edx, ebx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401d93
mov eax, 0x6259
mov ecx, 0xd8
cmp edi, ecx
cmovl edi, ecx
dec eax
jne 0x401db2
lea ebx, [ebx]
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 0x401dde
inc esi
cmp esi, 0x33af
jl 0x401dc0
mov ebx, dword [ebp + 0x10]
mov ecx, 0x4453
mov eax, dword [ebx + 0x218]
xor dword [ebx + 0x1c0], eax
mov edi, dword [ebx + 0x1c0]
lea esi, [ebx + 0x218]
mov dword [ebp - 0x3c], edi
lea esp, [esp]
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401e10
mov dword [ebx + 0x19c], esi
jmp 0x401e30
mov eax, 0x2e8ba2e9
imul dword [ebp - 0x38]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x38], eax
jne 0x401e30
mov edi, 0x736a
lea esp, [esp]
mov eax, 0x3a196b1f
imul edi
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401e50
mov eax, dword [ebp + 0xc]
xor edx, edx
div dword [ebp - 0x3c]
mov edi, 0x5319
mov ecx, eax
mov dword [ebx + 0x1ac], ecx
jmp 0x401e80
mov eax, 0x63e7063f
imul edi
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401e80
mov edi, dword [ebp - 0x3c]
imul edi, ecx
xor esi, esi
mov dword [ebx + 0x248], edi
test edi, edi
mov edi, ebx
je 0x401ef7
mov ebx, dword [ebp + 8]
lea ebx, [ebx]
mov eax, dword [edi + 0x19c]
inc esi
mov al, byte [eax]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0x19c]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0x19c]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0x19c]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x248]
jb 0x401eb0
xor ebx, ebx
lea esp, [esp]
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 0x401f19
inc ebx
cmp ebx, 0x7f15
jl 0x401f00
xor ebx, ebx
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 0x401f3e
add ebx, 2
cmp ebx, 0x6319
jl 0x401f23
xor ebx, ebx
jmp 0x401f50
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 0x401f6c
add ebx, 3
jmp 0x401f6d
inc ebx
cmp ebx, 0x7489
jl 0x401f50
mov eax, dword [edi + 0x1c0]
xor esi, esi
dec eax
je 0x402063
xor ebx, ebx
mov eax, dword [ebp - 0x10]
cmp eax, 0x20f
jge 0x401fb0
mov ecx, 0x20e
sub ecx, eax
mov eax, 0xcccccccd
mul ecx
mov ecx, dword [ebp - 0x10]
shr edx, 3
lea eax, [edx + edx*4]
lea ecx, [ecx + eax*2]
add ecx, 0xa
mov dword [ebp - 0x10], ecx
mov eax, dword [edi + 0x1c0]
dec eax
push eax
push 1
push edi
call fcn.004032c0
add esp, 0xc
mov cl, al
mov byte [ebp - 1], cl
cmp ebx, 0x42e8
jge 0x402000
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 0x401ff5
add ebx, ebx
cmp ebx, 0x42e8
jl 0x401fd0
mov cl, byte [ebp - 1]
xor eax, eax
cmp cl, byte [edi + eax + 0x78]
je 0x40200f
inc eax
cmp eax, esi
jbe 0x402002
jmp 0x402011
xor cl, cl
mov eax, dword [ebp - 0xc]
add eax, 2
cmp eax, 0x227d
jl 0x402014
mov edi, dword [ebp - 8]
mov dword [ebp - 0xc], eax
test edi, edi
je 0x402048
jmp 0x402030
mov eax, 0xb21642c9
imul edi
add edx, edi
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402030
mov dword [ebp - 8], edi
mov edi, dword [ebp + 0x10]
test cl, cl
je 0x402054
mov byte [edi + esi + 0x78], cl
inc esi
mov eax, dword [edi + 0x1c0]
dec eax
cmp esi, eax
jb 0x401f86
mov eax, 0x62f3
mov edx, 0x6f
mov ecx, 0x7b
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x402072
mov edi, 0x6685
nop
mov eax, 0x5397829d
imul edi
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402080
mov edi, dword [ebp + 0x10]
mov eax, 0x5781
mov edx, 0x6c
mov ecx, 0xd4
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x4020a5
push 0x7f
push eax
mov byte [ebp - 0xc4], al
lea eax, [ebp - 0xc3]
push eax
call fcn.00403150
lea eax, [ebp - 0xc4]
push eax
call fcn.00402b60
add esp, 0x10
mov eax, 0x3784
cdq
and edx, 7
add eax, edx
sar eax, 3
test eax, eax
jne 0x4020d6
mov dword [ebp - 0x28], 0x75a08769
mov dword [ebp - 0x24], 0x1b8b6f93
mov dword [ebp - 0x20], 0xfdbd791b
mov dword [ebp - 0x1c], 0xb84af663
mov dword [ebp - 0x18], 0xb663eab
mov dword [ebp - 0x14], eax
xor ecx, ecx
jmp 0x402110
inc ecx
mov eax, ecx
and eax, 0x80000007
jns 0x40211f
dec eax
or eax, 0xfffffff8
inc eax
jne 0x402122
inc ecx
cmp ecx, 0x5ce9
jl 0x402110
movq xmm0, qword [ebp - 0x28]
add edi, 0x224
mov dword [ebp - 0xc], edi
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0x20]
movq qword [edi + 8], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [edi + 0x10], xmm0
xor eax, eax
xor byte [ebp + eax - 0xc4], 0xad
inc eax
cmp eax, 0x7e
jb 0x402152
mov edi, 0x1c06
mov eax, 0x60606061
imul edi
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402165
mov ecx, dword [ebp + 0x10]
xor ebx, ebx
mov dword [ebp - 8], ebx
lea edi, [ecx + 0x224]
cmp dword [ecx + 0x1c0], ebx
jbe 0x40231e
mov edi, ecx
mov esi, dword [ebp - 0x2c]
cmp esi, 0x7138
jge 0x4021c9
nop
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 0x4021be
inc esi
cmp esi, 0x7138
jl 0x4021a0
mov dword [ebp - 0x2c], esi
movzx ebx, byte [edi + ebx + 0x78]
imul ebx, dword [edi + 0x1ac]
mov ecx, dword [ebp - 0x30]
add ebx, dword [ebp + 8]
test ecx, ecx
je 0x4021f8
nop
mov eax, 0x83993053
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4021e0
mov dword [ebp - 0x30], ecx
push 0x7f
lea eax, [ebp - 0x143]
push 0
push eax
mov dword [edi + 0x1dc], ebx
mov byte [ebp - 0x144], 0
call fcn.00403150
mov ecx, dword [ebp - 0x44]
add esp, 0xc
test ecx, ecx
je 0x402238
nop
mov eax, 0xb70fbb5b
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402220
mov dword [ebp - 0x44], ecx
push 0x7f
lea eax, [ebp - 0x144]
push ebx
push eax
call fcn.00403120
mov ecx, dword [ebp - 0x40]
add esp, 0xc
mov eax, 0x568b
mov edx, 0xbe
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402257
mov esi, dword [ebp - 0x34]
mov dword [ebp - 0x40], ecx
cmp esi, 0x4d40
jge 0x402289
mov ecx, 0x4d3f
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 - 0x34], eax
mov ecx, 0x1f
lea esi, [ebp - 0xc4]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 0x1dc]
call eax
push 0x7f
lea eax, [ebp - 0x144]
push eax
push ebx
call fcn.00403120
xor esi, esi
add esp, 0xc
cmp dword [edi + 0x1ac], esi
jbe 0x402308
mov eax, dword [edi + 0x19c]
inc esi
mov al, byte [eax + 3]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0x19c]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0x19c]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0x19c]
mov al, byte [eax]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x1ac]
jb 0x4022c1
mov ebx, dword [ebp - 8]
inc ebx
mov dword [ebp - 8], ebx
cmp ebx, dword [edi + 0x1c0]
jb 0x402194
mov edi, dword [ebp - 0xc]
call fcn.00403440
mov ebx, dword [ebp + 0x10]
mov edx, eax
mov dword [ebx + 0x60], edx
mov ecx, 0x49f
mov esi, 0x34
mov eax, 0x31
lea ebx, [ebx]
cmp eax, 0x34
cmovg eax, esi
dec ecx
jne 0x402340
mov eax, 0x453a
mov esi, 0x1e
mov ecx, 0x21
cmp ecx, esi
cmovl ecx, esi
dec eax
jne 0x402358
lea eax, [edx - 2]
push eax
push dword [ebx + 0x74]
call fcn.004010f0
push 0x166f4e71
push edi
call fcn.00401be0
add esp, 0x10
mov ecx, 0x601f
mov edx, 0xf3
mov eax, 0x44
lea esp, [esp]
cmp eax, 0xf3
cmovg eax, edx
dec ecx
jne 0x402390
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
mov edi, 0x5983
lea esi, [edx + eax]
sar esi, 8
mov eax, 0x6bca1af3
imul edi
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x4023b0
mov edi, dword [ebp - 0xc]
mov eax, 0x4fb
mov edx, 0xfe
mov ecx, 0xd5
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x4023d5
test esi, esi
je 0x4023fc
mov ebx, dword [ebp + 8]
push edi
push 0x100
push ebx
call fcn.004031b0
add esp, 0xc
add ebx, 0x100
dec esi
jne 0x4023e4
xor ecx, ecx
mov edi, edi
inc ecx
mov eax, ecx
and eax, 0x80000003
jns 0x40240f
dec eax
or eax, 0xfffffffc
inc eax
jne 0x402412
inc ecx
cmp ecx, 0x7d51
jl 0x402400
mov ecx, 0x75a
nop
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402420
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret