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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
push ebx
xor ebx, ebx
push esi
push edi
xor edi, edi
mov esi, 0x300d
mov dword [ebp - 0x44], 0x7087
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x2c], 0x559d
mov dword [ebp - 0x4c], 0xef
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x40], 0xbb
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], 0xa4c
mov dword [ebp - 0x38], 0x1f5e
cmp dword [ebp + 8], ebx
je 0x402015
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x402015
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 0x20]
mov eax, dword [eax + 0x264]
xor eax, dword [ecx]
cmp edx, eax
jl 0x402015
call fcn.00403030
mov edx, dword [ebp + 0x10]
mov edi, 0x762b
lea ecx, [edx + 0x20]
mov dword [edx + 0x228], eax
mov eax, dword [ecx]
xor dword [edx + 0x210], eax
mov dword [edx + 0x234], ecx
lea esp, [esp]
mov eax, 0x94f2095
imul edi
sar edx, 1
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401b20
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [edi + 0x210]
xor edx, edx
div ecx
imul ecx, eax
mov dword [edi + 0x48], eax
mov dword [edi + 0x324], ecx
mov edi, ebx
test ecx, ecx
je 0x401bb0
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
xor esi, esi
lea esp, [esp]
mov eax, dword [edi + 0x234]
inc esi
mov al, byte [eax]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0x234]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0x234]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0x234]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x324]
jb 0x401b60
xor edi, edi
mov esi, 0x300d
xor ebx, ebx
mov ecx, 0x11b7
mov edx, 0xa0
mov eax, 0x24
nop
cmp eax, 0xa0
cmovl eax, edx
dec ecx
jne 0x401bc0
mov ecx, 0x56aa
mov eax, 0x99d722db
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401bd0
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 0x401c0b
add ebx, 2
cmp ebx, 0x4d51
jl 0x401be5
mov edx, dword [ebp + 0x10]
xor ebx, ebx
mov eax, dword [edx + 0x210]
dec eax
je 0x401c90
mov eax, dword [edx + 0x210]
dec eax
push eax
push 1
push edx
call fcn.00402eb0
mov edx, dword [ebp + 0x10]
add esp, 0xc
mov cl, al
xor eax, eax
jmp 0x401c40
cmp cl, byte [edx + eax + 0xa8]
je 0x401c50
inc eax
cmp eax, ebx
jbe 0x401c40
jmp 0x401c52
xor cl, cl
test esi, esi
je 0x401c70
mov eax, 0x51eb851f
imul esi
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x401c56
mov edx, dword [ebp + 0x10]
lea esp, [esp]
inc edi
cmp edi, 0x6f99
jl 0x401c70
test cl, cl
je 0x401c85
mov byte [edx + ebx + 0xa8], cl
inc ebx
mov eax, dword [edx + 0x210]
dec eax
cmp ebx, eax
jb 0x401c21
push 0x6a
lea eax, [ebp - 0xbb]
push 0
push eax
mov byte [ebp - 0xbc], 0
call fcn.00402d40
lea eax, [ebp - 0xbc]
push eax
call fcn.00402710
mov ebx, dword [ebp + 0x10]
xorps xmm0, xmm0
lea edi, [ebx + 0x4c]
movq qword [ebp - 0xc], xmm0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x20], 0x4bc254c4
mov dword [ebp - 0x1c], 0x66bedddc
movq xmm0, qword [ebp - 0x20]
movq qword [edi], xmm0
mov dword [ebp - 0x18], 0x57300f62
mov dword [ebp - 0x14], 0x69b140f9
movq xmm0, qword [ebp - 0x18]
movq qword [edi + 8], xmm0
mov dword [ebp - 0x10], 0x67d5d450
movq xmm0, qword [ebp - 0x10]
movq qword [edi + 0x10], xmm0
mov dword [edi + 0x18], eax
add esp, 0x10
mov word [edi + 0x1c], 0
xor eax, eax
xor byte [ebp + eax - 0xbc], 0x23
inc eax
cmp eax, 0x69
jb 0x401d12
xor esi, esi
mov dword [ebp - 0x30], esi
cmp dword [ebx + 0x210], esi
jbe 0x401eee
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je 0x401d56
jmp 0x401d40
mov eax, 0x1948b0fd
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401d40
mov dword [ebp - 0x44], ecx
movzx edi, byte [ebx + esi + 0xa8]
imul edi, dword [ebx + 0x48]
add edi, dword [ebp + 8]
push 0x6a
lea eax, [ebp - 0x127]
push 0
push eax
mov dword [ebp - 0x50], edi
mov dword [ebx + 0x1b0], edi
mov byte [ebp - 0x128], 0
call fcn.00402d40
mov eax, dword [ebp - 0x48]
cmp eax, 0xbea
mov ecx, 0xbea
cmovl eax, ecx
push 0x6a
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x128]
push edi
push eax
call fcn.00402d10
mov ecx, dword [ebp - 0x2c]
add esp, 0x18
test ecx, ecx
je 0x401dc9
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401db1
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x4c]
mov eax, 0x5761
mov edx, 0xcf
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x401dd6
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x4c], ecx
mov ecx, 0x1a
lea esi, [ebp - 0xbc]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
inc eax
cmp eax, 0x3345
jl 0x401df2
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x34], eax
mov eax, 0x3f60
mov edx, 0xc8
lea ebx, [ebx]
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x401e10
mov eax, dword [ebx + 0x1b0]
mov dword [ebp - 0x40], ecx
call eax
mov eax, dword [ebp - 0x3c]
inc eax
cmp eax, 0x65b2
jl 0x401e26
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x3c], eax
cmp esi, 0x69bd
jge 0x401e59
mov ecx, 0x69bc
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 - 0x24], esi
mov edi, dword [ebp - 0x50]
push 0x6a
lea eax, [ebp - 0x128]
push eax
push edi
call fcn.00402d10
xor esi, esi
add esp, 0xc
cmp dword [ebx + 0x48], esi
jbe 0x401eb9
mov eax, dword [ebx + 0x234]
inc esi
mov al, byte [eax + 3]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x234]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x234]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x234]
mov al, byte [eax]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x48]
jb 0x401e75
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x401ed8
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401ec0
mov dword [ebp - 0x28], ecx
mov esi, dword [ebp - 0x30]
inc esi
mov dword [ebp - 0x30], esi
cmp esi, dword [ebx + 0x210]
jb 0x401d31
lea edi, [ebx + 0x4c]
call fcn.00403030
mov dword [ebx + 0x2ec], eax
mov ecx, 0x111f
mov esi, 0x4e
mov edx, 0xdb
cmp edx, esi
cmovg edx, esi
dec ecx
jne 0x401f08
add eax, 0xfffffffe
push eax
push dword [ebx + 0x228]
call section..text
push 0x61a700
push edi
call fcn.004019f0
add esp, 0x10
mov ecx, 0x3a25
mov edx, 0xa3
mov eax, 0x4d
lea esp, [esp]
cmp eax, 0xa3
cmovl eax, edx
dec ecx
jne 0x401f40
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
lea esi, [edx + eax]
sar esi, 8
test esi, esi
je 0x401f7a
mov ebx, dword [ebp + 8]
push edi
push 0x100
push ebx
call fcn.00402da0
add esp, 0xc
add ebx, 0x100
dec esi
jne 0x401f62
mov ecx, 0x660
nop
mov eax, 0x83993053
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401f80
xor ebx, ebx
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 0x401fb4
add ebx, 2
cmp ebx, 0x4d51
jl 0x401f97
xor ecx, ecx
mov edi, edi
inc ecx
mov eax, ecx
and eax, 0x80000007
jns 0x401fcf
dec eax
or eax, 0xfffffff8
inc eax
jne 0x401fd4
add ecx, 2
cmp ecx, 0x7e36
jl 0x401fc0
lea esp, [esp]
mov eax, 0x94f2095
imul dword [ebp - 0x38]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x38], eax
jne 0x401fe0
mov ecx, 0xb4a
lea esp, [esp]
mov eax, 0xa57eb503
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402000
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret