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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf0
push ebx
xor eax, eax
push esi
push edi
mov edi, 0x6e5f
mov esi, 0x3735
mov ebx, 0x99
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x4c], 0x5ad4
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x3c], 0xa8
mov dword [ebp - 0x64], 0xe1
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0x2173
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x68], 0x5793
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x54], 0xe1
mov dword [ebp - 0x38], 0x1547
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x48], 0xb57
mov dword [ebp - 0x50], 0x7bcb
mov dword [ebp - 0x58], 0x2aa6
cmp dword [ebp + 8], eax
je 0x402233
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x402233
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 4]
mov eax, dword [eax + 0x430]
xor eax, dword [ecx]
cmp edx, eax
jl 0x402233
call fcn.00403270
mov edx, dword [ebp + 0x10]
lea ecx, [edx + 4]
mov dword [edx + 0x1c], eax
mov eax, dword [ecx]
xor dword [edx + 0x478], eax
jmp 0x401c40
mov eax, 0x3e88cb3d
imul edi
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401c40
mov eax, 0xa0a0a0a1
imul esi
add edx, esi
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x401c53
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [eax + 0x338], ecx
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov edi, dword [ecx + 0x478]
div edi
mov esi, eax
mov dword [ecx + 0x48], esi
mov ecx, 0x3b6
jmp 0x401c90
mov eax, 0x95a02569
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401c90
mov eax, 0x226f
mov ecx, 0xcf
nop
cmp ebx, ecx
cmovl ebx, ecx
dec eax
jne 0x401cb0
mov eax, dword [ebp + 0x10]
imul edi, esi
xor esi, esi
mov dword [eax + 0x234], edi
test edi, edi
mov edi, eax
je 0x401d17
mov ebx, dword [ebp + 8]
nop
mov eax, dword [edi + 0x338]
inc esi
mov al, byte [eax]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0x338]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0x338]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0x338]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x234]
jb 0x401cd0
mov eax, 0x1245
mov edx, 0x58
mov ecx, 0x85
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x401d26
mov eax, dword [edi + 0x478]
xor esi, esi
dec eax
je 0x401e31
lea ecx, [ecx]
mov ebx, dword [ebp - 0x44]
cmp ebx, 0x61f0
jge 0x401d68
mov ecx, 0x61ef
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 - 0x44], ebx
mov eax, dword [edi + 0x478]
dec eax
push eax
push 1
push edi
call fcn.004030f0
add esp, 0xc
mov cl, al
xor eax, eax
nop
cmp cl, byte [edi + eax + 0x50]
je 0x401d8d
inc eax
cmp eax, esi
jbe 0x401d80
jmp 0x401d8f
xor cl, cl
mov eax, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x4c]
cmp eax, 0x754b
mov edx, 0x754b
cmovl eax, edx
mov dword [ebp - 0x5c], eax
test ebx, ebx
je 0x401dc8
lea esp, [esp]
mov eax, 0x8c08c08d
imul ebx
add edx, ebx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401db0
mov dword [ebp - 0x4c], ebx
mov eax, dword [ebp - 0x60]
jmp 0x401dd0
inc eax
cmp eax, 0x4a9f
jl 0x401dd0
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x60], eax
mov eax, 0x217b
mov ebx, 0x6a
cmp edx, ebx
cmovl edx, ebx
dec eax
jne 0x401de8
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 0x64]
mov eax, 0x16e7
mov ebx, 0x19
cmp edx, ebx
cmovl edx, ebx
dec eax
jne 0x401e00
mov dword [ebp - 0x64], edx
test cl, cl
je 0x401e14
mov byte [edi + esi + 0x50], cl
inc esi
mov eax, dword [ebp - 0xc]
inc eax
cmp eax, 0x616c
jl 0x401e17
mov ecx, dword [edi + 0x478]
dec ecx
mov dword [ebp - 0xc], eax
cmp esi, ecx
jb 0x401d40
mov eax, 0xe38
cdq
sub eax, edx
sar eax, 1
jne 0x401e36
push 0x43
lea eax, [ebp - 0xab]
push 0
push eax
mov byte [ebp - 0xac], 0
call fcn.00402f80
lea eax, [ebp - 0xac]
push eax
call fcn.004029b0
xorps xmm0, xmm0
add esp, 0x10
mov dword [ebp - 0x30], 0x84f4373e
mov dword [ebp - 0x2c], 0xeb7e0ecb
mov dword [ebp - 0x28], 0x5ef2212a
mov dword [ebp - 0x24], 0x55dd7d32
mov dword [ebp - 0x20], 0xa548d403
movq qword [ebp - 0x1c], xmm0
mov byte [ebp - 1], 0
xor ebx, 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 0x401eb2
add ebx, 3
jmp 0x401eb3
inc ebx
cmp ebx, 0x16f
jl 0x401e94
movq xmm0, qword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
lea ebx, [edi + 0x3e8]
mov dword [ebp - 0xc], ebx
movq qword [ebx], xmm0
movq xmm0, qword [ebp - 0x28]
movq qword [ebx + 8], xmm0
movq xmm0, qword [ebp - 0x20]
movq qword [ebx + 0x10], xmm0
mov dword [ebx + 0x18], eax
mov al, byte [ebp - 1]
mov byte [ebx + 0x1c], al
lea ecx, [ecx]
mov eax, 0x2f149903
imul dword [ebp - 8]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 8], eax
jne 0x401ef0
xor eax, eax
lea esp, [esp]
xor byte [ebp + eax - 0xac], 0x78
inc eax
cmp eax, 0x42
jb 0x401f10
mov eax, 0x3581
mov edx, 0xd
mov ecx, 0x1c
lea ecx, [ecx]
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x401f30
mov dword [ebp - 8], eax
cmp dword [edi + 0x478], eax
jbe 0x40212d
jmp 0x401f50
movzx ebx, byte [edi + eax + 0x50]
imul ebx, dword [edi + 0x48]
mov esi, dword [ebp - 0x34]
add ebx, dword [ebp + 8]
cmp esi, 0x5779
jge 0x401f83
mov ecx, 0x5778
sub ecx, esi
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx + esi]
lea eax, [eax + edx*2]
add eax, 3
invalid