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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x88
push ebx
push esi
push edi
mov eax, 0x9a
xor edi, edi
xor esi, esi
lea edx, [eax + 0x2c]
mov ecx, 0x8d3
mov dword [ebp - 0x6c], 0x72f7
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x7c], 0xddc
mov dword [ebp - 0x84], 0x70a4
mov dword [ebp - 4], 0xa3
mov dword [ebp - 0x3c], 0xb18
mov dword [ebp - 0x30], 0x39d3
mov dword [ebp - 0x40], 0xba
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x38], 0x584a
mov dword [ebp - 0x34], 0x42e4
mov dword [ebp - 0x44], 0x71b0
mov dword [ebp - 0x48], 0x4e55
mov ebx, 0x1e4f
mov dword [ebp - 8], 0xc7
nop
cmp eax, 0xc7
cmovl eax, dword [ebp - 8]
dec ebx
jne 0x401db0
mov eax, 0x1490
mov ebx, 0xdc
cmp edx, ebx
cmovg edx, ebx
dec eax
jne 0x401dc6
cmp dword [ebp + 8], esi
je 0x402430
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x402430
mov eax, dword [ebp + 0x10]
lea ebx, [eax + 4]
mov eax, dword [eax + 0x370]
xor eax, dword [ebx]
cmp edx, eax
jl 0x402430
inc edi
mov eax, 0x66666667
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, edi
lea eax, [eax + eax*4]
sub ecx, eax
jne 0x401e13
inc edi
cmp edi, 0x411e
jl 0x401df8
call fcn.004032b0
mov edx, dword [ebp + 0x10]
mov ecx, 0x6e3b
mov dword [edx + 0x21c], eax
mov edi, 0x3f
mov eax, 0x67
cmp eax, 0x3f
cmovg eax, edi
dec ecx
jne 0x401e38
mov eax, dword [ebx]
xor dword [edx + 0x1c0], eax
mov edi, dword [edx + 0x1c0]
mov eax, dword [ebp + 0xc]
mov dword [edx + 0x32c], ebx
xor edx, edx
div edi
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], 0xd4
mov edx, 0x20
mov ecx, eax
mov dword [ebx + 0x2c8], ecx
mov eax, 0x62d1
jmp 0x401e80
cmp edx, 0xd4
cmovl edx, dword [ebp - 8]
dec eax
jne 0x401e80
imul ecx, edi
xor edi, edi
mov dword [ebx + 0x130], ecx
test ecx, ecx
je 0x401ee7
mov esi, dword [ebp + 8]
nop
mov eax, dword [ebx + 0x32c]
inc edi
mov al, byte [eax]
xor byte [edi + esi - 1], al
movzx ecx, byte [edi + esi - 1]
mov eax, dword [ebx + 0x32c]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [edi + esi - 1], dl
mov eax, dword [ebx + 0x32c]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [edi + esi - 1], cl
mov eax, dword [ebx + 0x32c]
mov al, byte [eax + 3]
xor al, cl
mov byte [edi + esi - 1], al
cmp edi, dword [ebx + 0x130]
jb 0x401ea0
mov esi, 0x3f50
lea esp, [esp]
mov eax, 0x78787879
imul esi
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x401ef0
mov eax, 0x38e38e39
imul dword [ebp - 0x6c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x6c], eax
jne 0x401f03
mov eax, dword [ebx + 0x1c0]
xor edi, edi
dec eax
je 0x401fd1
lea esp, [esp]
cmp esi, 0x5d94
jge 0x401f59
inc esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x401f51
inc esi
cmp esi, 0x5d94
jl 0x401f38
mov eax, dword [ebx + 0x1c0]
dec eax
push eax
push 1
push ebx
call fcn.004030c0
mov cl, al
mov eax, dword [ebp - 0x74]
add esp, 0xc
cmp eax, 0x5d38
mov edx, 0x5d38
cmovl eax, edx
mov dword [ebp - 0x74], eax
xor eax, eax
cmp cl, byte [ebx + eax + 0x1c]
je 0x401f90
inc eax
cmp eax, edi
jbe 0x401f83
jmp 0x401f92
xor cl, cl
mov ebx, dword [ebp - 0x7c]
test ebx, ebx
je 0x401fb6
lea esp, [esp]
mov eax, 0x30c30c31
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401fa0
mov dword [ebp - 0x7c], ebx
mov ebx, dword [ebp + 0x10]
test cl, cl
je 0x401fc2
mov byte [ebx + edi + 0x1c], cl
inc edi
mov eax, dword [ebx + 0x1c0]
dec eax
cmp edi, eax
jb 0x401f30
xorps xmm0, xmm0
mov dword [ebp - 0x68], 0x4a23449a
mov dword [ebp - 0x64], 0x5f0ecc0f
mov dword [ebp - 0x60], 0xc922a44
movq qword [ebp - 0x5c], xmm0
movq qword [ebp - 0x54], xmm0
mov byte [ebp - 0x4c], 0
mov dword [ebp - 0x2c], 0xa6979570
mov dword [ebp - 0x28], 0xf4ba31a9
mov dword [ebp - 0x24], 0x34d0de9d
mov dword [ebp - 0x20], 0x2a3c30ef
mov dword [ebp - 0x1c], 0x9a71eed4
movq qword [ebp - 0x18], xmm0
mov dword [ebp - 0x10], 0
mov eax, 0x70b6
mov edx, 0x40
mov ecx, 0xd3
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402035
movq xmm0, qword [ebp - 0x2c]
lea edi, [ebx + 0x230]
mov dword [ebp - 8], edi
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0x24]
movq qword [edi + 8], xmm0
movq xmm0, qword [ebp - 0x1c]
movq qword [edi + 0x10], xmm0
movq xmm0, qword [ebp - 0x14]
movq qword [edi + 0x18], xmm0
mov eax, 0x4c86
mov edx, 0xb1
mov ecx, 0x26
lea esp, [esp]
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402080
xor ebx, ebx
lea ebx, [ebx]
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 0x4020b6
add ebx, 5
cmp ebx, 0x31e
jl 0x402090
xor eax, eax
xor byte [ebp + eax - 0x68], 0xcf
inc eax
cmp eax, 0xc
jb 0x4020c0
jmp 0x4020d0
mov eax, 0x2aaaaaab
imul dword [ebp - 0x84]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x84], eax
jne 0x4020d0
xor ebx, ebx
nop
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 0x402116
add ebx, 2
cmp ebx, 0x46df
jl 0x4020f0
xor ecx, ecx
inc ecx
mov eax, ecx
and eax, 0x80000007
jns 0x40212f
dec eax
or eax, 0xfffffff8
inc eax
jne 0x402134
add ecx, 2
cmp ecx, 0x46df
jl 0x402120
lea esp, [esp]
mov eax, 0x4c8f8d29
imul dword [ebp - 4]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 4], eax
jne 0x402140
xor ecx, ecx
lea esp, [esp]
inc ecx
mov eax, ecx
and eax, 0x80000001
jns 0x40216f
dec eax
or eax, 0xfffffffe
inc eax
jne 0x402172
inc ecx
cmp ecx, 0x7168
jl 0x402160
mov esi, dword [ebp + 0x10]
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp dword [esi + 0x1c0], ebx
jbe 0x40238f
mov edi, edi
movzx edi, byte [ebx + esi + 0x1c]
imul edi, dword [esi + 0x2c8]
mov ecx, dword [ebp - 0x3c]
add edi, dword [ebp + 8]
test ecx, ecx
je 0x4021be
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4021a6
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x30]
mov dword [esi + 0x208], edi
test ecx, ecx
je 0x4021e6
jmp 0x4021d0
mov eax, 0x63e7063f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4021d0
mov dword [ebp - 0x30], ecx
movq xmm0, qword [edi]
mov ecx, dword [ebp - 0x40]
movq qword [ebp - 0x88], xmm0
movq xmm0, qword [edi + 8]
movq qword [ebp - 0x80], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x78], xmm0
movq xmm0, qword [edi + 0x18]
movq qword [ebp - 0x70], xmm0
mov eax, 0x33dd
mov edx, 0xb6
lea ecx, [ecx]
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x402220
movq xmm0, qword [ebp - 0x68]
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0xc]
movq qword [edi], xmm0
mov dword [edi + 8], eax
cmp ecx, 0x39d2
jge 0x402262
inc ecx
mov eax, ecx
and eax, 0x80000007
jns 0x402254
dec eax
or eax, 0xfffffff8
inc eax
jne 0x402257
inc ecx
cmp ecx, 0x39d2
jl 0x402245
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x402288
lea esp, [esp]
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402270
mov dword [ebp - 0x38], ecx
mov eax, dword [esi + 0x208]
call eax
movq xmm0, qword [ebp - 0x88]
mov eax, dword [ebp + 0x10]
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0x80]
movq qword [edi + 8], xmm0
movq xmm0, qword [ebp - 0x78]
movq qword [edi + 0x10], xmm0
movq xmm0, qword [ebp - 0x70]
xor esi, esi
movq qword [edi + 0x18], xmm0
cmp dword [eax + 0x2c8], esi
jbe 0x40231a
mov ebx, eax
lea esp, [esp]
mov eax, dword [ebx + 0x32c]
inc esi
mov al, byte [eax + 3]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x32c]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x32c]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x32c]
mov al, byte [eax]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x2c8]
jb 0x4022d0
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x402337
mov eax, 0x4bda12f7
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402321
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je 0x402356
mov edi, edi
mov eax, 0x7e07e07f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402340
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x48]
test ecx, ecx
je 0x402376
lea ecx, [ecx]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402360
mov dword [ebp - 0x48], ecx
mov esi, dword [ebp + 0x10]
inc ebx
mov dword [ebp - 4], ebx
cmp ebx, dword [esi + 0x1c0]
jb 0x402190
lea edi, [esi + 0x230]
call fcn.004032b0
mov dword [esi + 0x200], eax
add eax, 0xfffffffe
push eax
push dword [esi + 0x21c]
call fcn.00401110
add esp, 8
mov eax, 0x6756
mov edx, 0x9b
mov ecx, 0xab
jmp 0x4023c0
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x4023c0
push 0x1192a148
push edi
call fcn.00401c60
add esp, 8
mov edi, 0x8f3
jmp 0x4023e0
mov eax, 0x621b97c3
imul edi
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x4023e0
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 0x402443
mov ebx, dword [ebp + 8]
lea ecx, [ecx]
push edi
push 0x100
push ebx
call fcn.00402f90
add esp, 0xc
add ebx, 0x100
dec esi
jne 0x402410
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402430
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret