Function at 0x460d00
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a0
mov eax, dword [0x641a90]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x1c]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x120], ebx
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x13c], esi
mov dword [ebp - 0x138], eax
test edi, edi
jle 0x46156e
mov edx, dword [ebp + 0x14]
test edx, edx
jle 0x46156e
movzx eax, word [ebx + 0xc]
cmp eax, 1
jne 0x460d76
push edx
push edi
push ecx
push ebx
call fcn.0045ee80
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 4], edx
jle 0x460da5
cmp dword [ebx], edi
jle 0x460da5
push dword [ebp - 0x138]
push esi
push 0x10
push edx
push edi
push ecx
push ebx
call fcn.0045f780
add esp, 0x1c
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
cmp eax, 2
je 0x460dbe
cmp word [ebx + 0x12], 4
mov ecx, 0x10
mov eax, 0x20
cmove ecx, eax
jmp 0x460dc3
mov ecx, 2
movsx ax, byte [ebx + 0x15]
push edx
push edi
movzx eax, ax
push eax
push ecx
lea eax, [ebp - 0x198]
push eax
call fcn.00459c40
add esp, 0x14
test ax, ax
jne 0x460df9
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
movzx eax, word [ebx + 0x20]
mov word [ebp - 0x178], ax
movzx eax, word [ebx + 0x22]
mov word [ebp - 0x176], ax
lea eax, [ebp - 0x198]
push ebx
push eax
call fcn.0045a490
movzx esi, word [ebx + 0xe]
add esp, 8
cmp word [ebx + 0xc], 2
mov dword [ebp - 0x114], esi
jne 0x460e6b
movzx eax, word [ebx + 0x20]
test ax, ax
je 0x460e6b
cwde
xor edi, edi
dec eax
xor ecx, ecx
mov dword [ebp - 0x12c], eax
mov eax, ecx
lea edi, [edi + 1]
cdq
add ecx, 0xff
idiv dword [ebp - 0x12c]
mov byte [ebp + edi - 0x105], al
cmp ecx, 0xff00
jl 0x460e45
mov edi, dword [ebp + 0x10]
jmp 0x460e7f
xor eax, eax
lea ecx, [ecx]
mov byte [ebp + eax - 0x104], al
inc eax
cmp eax, 0x100
jl 0x460e70
movd xmm2, dword [ebx]
xor eax, eax
mov ecx, dword [ebp + 0x14]
movd xmm1, dword [ebx + 4]
movd xmm0, edi
mov edx, dword [ebp - 0x170]
mov dword [ebp - 0x134], edx
mov dword [ebp - 0x130], eax
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm2, xmm2
cvtdq2pd xmm1, xmm1
divsd xmm2, xmm0
movd xmm0, ecx
movsd qword [ebp - 0x154], xmm2
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movsd qword [ebp - 0x1a0], xmm1
test ecx, ecx
jle 0x4614c1
cmp dword [ebp - 0x13c], 0
movsd xmm1, qword [0x62d3c8]
je 0x460f1d
push dword [ebp - 0x138]
push ecx
push eax
call dword [ebp - 0x13c]
add esp, 0xc
test eax, eax
jne 0x46149c
movsd xmm1, qword [0x62d3c8]
movsd xmm2, qword [ebp - 0x154]
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0x134]
movd xmm5, eax
mov eax, dword [ebx + 4]
cvtdq2pd xmm5, xmm5
mov dword [ebp - 0x124], edx
dec eax
mulsd xmm5, qword [ebp - 0x1a0]
cvttsd2si edx, xmm5
mov dword [ebp - 0x164], edx
movd xmm0, edx
lea ecx, [edx + 1]
cmp eax, ecx
cvtdq2pd xmm0, xmm0
cmovl ecx, eax
xor eax, eax
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x12c], eax
subsd xmm5, xmm0
test edi, edi
jle 0x461469
movapd xmm6, xmm1
subsd xmm6, xmm5
mov ecx, dword [ebx + 8]
mov edx, ecx
imul edx, dword [ebp - 0x164]
movd xmm3, eax
cvtdq2pd xmm3, xmm3
mulsd xmm3, xmm2
cvttsd2si edi, xmm3
mov eax, edi
imul eax, esi
mov esi, dword [ebx + 0x28]
add edx, esi
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0x14c], esi
mov esi, dword [ebp - 0x18c]
add edx, eax
mov dword [ebp - 0x160], eax
movzx eax, word [ebx + 0xc]
mov dword [ebp - 0x15c], eax
and eax, 0x7f0
mov dword [ebp - 0x158], eax
subsd xmm3, xmm0
mov dword [ebp - 0x140], esi
je 0x461056
mov al, byte [edx]
mov byte [ebp - 0x106], al
mov al, byte [edx + 1]
mov byte [ebp - 0x10a], al
mov al, byte [edx + 2]
mov byte [ebp - 0x107], al
mov eax, esi
and eax, 0x7a0
je 0x46100c
mov bl, byte [edx + 3]
mov byte [ebp - 0x118], bl
mov ebx, dword [ebp - 0x120]
mov ebx, dword [ebx]
inc edi
mov dword [ebp - 0x128], ebx
cmp edi, ebx
jge 0x46101f
add edx, dword [ebp - 0x114]
mov bl, byte [edx]
mov byte [ebp - 0x105], bl
mov bl, byte [edx + 1]
mov byte [ebp - 0x10d], bl
mov bl, byte [edx + 2]
mov byte [ebp - 0x108], bl
mov ebx, dword [ebp - 0x128]
test ax, ax
je 0x4610f9
mov al, byte [edx + 3]
mov byte [ebp - 0x117], al
jmp 0x4610f9
mov esi, dword [ebx + 0x24]
inc edi
movzx eax, byte [edx]
test esi, esi
je 0x4610c4
mov bl, byte [eax + esi]
mov byte [ebp - 0x106], bl
mov bl, byte [eax + esi + 0x100]
mov al, byte [eax + esi + 0x200]
mov byte [ebp - 0x10a], bl
mov ebx, dword [ebp - 0x120]
mov byte [ebp - 0x107], al
mov ebx, dword [ebx]
mov dword [ebp - 0x128], ebx
cmp edi, ebx
jge 0x46109c
add edx, dword [ebp - 0x114]
movzx eax, byte [edx]
mov dl, byte [eax + esi]
mov byte [ebp - 0x105], dl
mov dl, byte [eax + esi + 0x100]
mov al, byte [eax + esi + 0x200]
mov byte [ebp - 0x10d], dl
mov byte [ebp - 0x108], al
jmp 0x4610f3
mov ebx, dword [ebx]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x106], al
mov dword [ebp - 0x128], ebx
cmp edi, ebx
jge 0x4610e3
add edx, dword [ebp - 0x114]
movzx eax, byte [edx]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp - 0x105], al
mov esi, dword [ebp - 0x140]
imul ecx, dword [ebp - 0x144]
add ecx, dword [ebp - 0x14c]
add ecx, dword [ebp - 0x160]
cmp word [ebp - 0x158], 0
je 0x461170
mov al, byte [ecx + 1]
mov dl, byte [ecx]
mov byte [ebp - 0x10e], al
mov al, byte [ecx + 2]
mov byte [ebp - 0x10b], al
and esi, 0x7a0
je 0x46113b
mov al, byte [ecx + 3]
mov byte [ebp - 0x116], al
cmp edi, ebx
jge 0x461145
add ecx, dword [ebp - 0x114]
mov bh, byte [ecx + 1]
mov dh, byte [ecx + 2]
mov bl, byte [ecx]
mov byte [ebp - 0x109], bh
mov byte [ebp - 0x10c], dh
test si, si
je 0x461202
mov al, byte [ecx + 3]
mov byte [ebp - 0x119], al
jmp 0x461202
mov edx, dword [ebp - 0x120]
movzx eax, byte [ecx]
mov edx, dword [edx + 0x24]
test edx, edx
je 0x4611db
mov bl, byte [eax + edx]
mov byte [ebp - 0x115], bl
mov bl, byte [eax + edx + 0x100]
mov al, byte [eax + edx + 0x200]
mov byte [ebp - 0x10e], bl
mov ebx, dword [ebp - 0x128]
mov byte [ebp - 0x10b], al
cmp edi, ebx
jge 0x4611b3
add ecx, dword [ebp - 0x114]
movzx eax, byte [ecx]
mov bh, byte [eax + edx + 0x100]
mov bl, byte [eax + edx]
mov dh, byte [eax + edx + 0x200]
mov dl, byte [ebp - 0x115]
mov byte [ebp - 0x109], bh
mov byte [ebp - 0x10c], dh
jmp 0x461202
mov dl, byte [ebp + eax - 0x104]
cmp edi, ebx
jge 0x4611ec
add ecx, dword [ebp - 0x114]
movzx eax, byte [ecx]
mov bh, byte [ebp - 0x109]
mov dh, byte [ebp - 0x10c]
mov bl, byte [ebp + eax - 0x104]
mov eax, dword [ebp - 0x15c]
cmp ax, 1
je 0x4613c3
cmp ax, 2
je 0x4613c3
movzx eax, byte [ebp - 0x105]
movapd xmm4, xmm1
mov ecx, dword [ebp - 0x124]
subsd xmm4, xmm3
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movzx eax, bl
movd xmm0, eax
movzx eax, byte [ebp - 0x106]
cvtdq2pd xmm0, xmm0
mulsd xmm2, xmm6
mulsd xmm0, xmm5
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movzx eax, dl
addsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm6
mulsd xmm0, xmm5
mulsd xmm2, xmm3
addsd xmm1, xmm0
mulsd xmm1, xmm4
addsd xmm2, xmm1
cvttsd2si eax, xmm2
mov byte [ecx], al
movzx eax, byte [ebp - 0x10d]
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movzx eax, bh
movd xmm0, eax
movzx eax, byte [ebp - 0x10a]
cvtdq2pd xmm0, xmm0
mulsd xmm2, xmm6
mulsd xmm0, xmm5
movd xmm1, eax
movzx eax, byte [ebp - 0x10e]
cvtdq2pd xmm1, xmm1
addsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm6
mulsd xmm0, xmm5
mulsd xmm2, xmm3
addsd xmm1, xmm0
mulsd xmm1, xmm4
addsd xmm2, xmm1
cvttsd2si eax, xmm2
mov byte [ecx + 1], al
movzx eax, byte [ebp - 0x108]
movd xmm2, eax
movzx eax, dh
cvtdq2pd xmm2, xmm2
movd xmm0, eax
movzx eax, byte [ebp - 0x107]
cvtdq2pd xmm0, xmm0
mulsd xmm2, xmm6
mulsd xmm0, xmm5
movd xmm1, eax
movzx eax, byte [ebp - 0x10b]
cvtdq2pd xmm1, xmm1
addsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm6
mulsd xmm0, xmm5
mulsd xmm2, xmm3
addsd xmm1, xmm0
mulsd xmm1, xmm4
addsd xmm2, xmm1
cvttsd2si eax, xmm2
mov byte [ecx + 2], al
add ecx, 3
cmp word [ebp - 0x18c], 0x20
mov dword [ebp - 0x124], ecx
jne 0x461435
movzx eax, byte [ebp - 0x117]
movd xmm2, eax
movzx eax, byte [ebp - 0x119]
cvtdq2pd xmm2, xmm2
movd xmm0, eax
movzx eax, byte [ebp - 0x118]
cvtdq2pd xmm0, xmm0
mulsd xmm2, xmm6
mulsd xmm0, xmm5
movd xmm1, eax
movzx eax, byte [ebp - 0x116]
cvtdq2pd xmm1, xmm1
addsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm6
mulsd xmm0, xmm5
mulsd xmm2, xmm3
addsd xmm1, xmm0
mulsd xmm1, xmm4
jmp 0x461424
movzx eax, byte [ebp - 0x106]
mov ecx, dword [ebp - 0x124]
movd xmm2, eax
movzx eax, dl
cvtdq2pd xmm2, xmm2
movd xmm0, eax
movzx eax, byte [ebp - 0x105]
cvtdq2pd xmm0, xmm0
mulsd xmm2, xmm6
mulsd xmm0, xmm5
addsd xmm2, xmm0
movaps xmm0, xmm1
subsd xmm0, xmm3
movd xmm1, eax
movzx eax, bl
cvtdq2pd xmm1, xmm1
mulsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm6
mulsd xmm0, xmm5
addsd xmm1, xmm0
mulsd xmm1, xmm3
addsd xmm2, xmm1
cvttsd2si eax, xmm2
mov byte [ecx], al
inc ecx
mov dword [ebp - 0x124], ecx
mov eax, dword [ebp - 0x12c]
mov edi, dword [ebp + 0x10]
inc eax
movsd xmm1, qword [0x62d3c8]
movsd xmm2, qword [ebp - 0x154]
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x114]
mov dword [ebp - 0x12c], eax
cmp eax, edi
jl 0x460f73
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0x134]
inc eax
add edx, dword [ebp - 0x190]
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x134], edx
mov dword [ebp - 0x130], eax
cmp eax, ecx
jge 0x4614c1
movsd xmm2, qword [ebp - 0x154]
jmp 0x460ed7
lea eax, [ebp - 0x198]
push eax
call fcn.0045b520
add esp, 4
mov eax, 0xf
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
cmp word [ebp - 0x18c], 2
jne 0x4614d7
mov eax, 0x100
mov word [ebp - 0x178], ax
mov ecx, dword [ebp - 0x148]
test ecx, ecx
je 0x461523
movdqu xmm0, xmmword [ebp - 0x198]
mov eax, dword [ebp - 0x168]
pop edi
movdqu xmmword [ecx], xmm0
pop esi
movdqu xmm0, xmmword [ebp - 0x188]
pop ebx
movdqu xmmword [ecx + 0x10], xmm0
movdqu xmm0, xmmword [ebp - 0x178]
movdqu xmmword [ecx + 0x20], xmm0
mov dword [ecx + 0x30], eax
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
push ebx
call fcn.0045b520
movdqu xmm0, xmmword [ebp - 0x198]
mov eax, dword [ebp - 0x168]
add esp, 4
movdqu xmmword [ebx], xmm0
movdqu xmm0, xmmword [ebp - 0x188]
pop edi
pop esi
movdqu xmmword [ebx + 0x10], xmm0
movdqu xmm0, xmmword [ebp - 0x178]
movdqu xmmword [ebx + 0x20], xmm0
mov dword [ebx + 0x30], eax
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, 0x10
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005920c1
mov esp, ebp
pop ebp
ret