Function at 0x9057aaa
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x90a3e7a
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ecx
mov eax, 0x14ec
call fcn.0909ff00
mov eax, dword [0x90dee5c]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebx + 0xc]
and dword [ebp - 0x14c0], 0
and dword [ebp - 4], 0
mov esi, dword [ebx + 8]
cmp dword [eax + 0x38], 0x52474220
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [ebp - 0x14e0], esi
mov dword [ebp - 0x14dc], eax
mov dword [ebp - 0x1498], ecx
mov dword [ebp - 0x14a0], edx
jne 0x90585c7
cmp dword [ecx + 0x38], 0x434d594b
jne 0x90585c7
mov edi, dword [eax + 4]
mov dword [ebp - 0x14a8], edi
lea eax, [edi + 8]
push eax
push 0x3eb8
mov dword [ebp - 0x14ac], eax
call fcn.09018e9f
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14bc], ecx
mov byte [ebp - 4], 1
test ecx, ecx
je 0x9057b8a
xor eax, eax
push eax
push eax
push eax
push 0x434d594b
push 0x52474220
push edi
call fcn.09018e9f
mov edi, eax
mov dword [ebp - 0x149c], eax
jmp 0x9057b92
xor edi, edi
mov dword [ebp - 0x149c], edi
mov al, byte [esi + 0x3e84]
lea ecx, [ebp - 0x1480]
mov byte [edi + 0x3e84], al
mov al, byte [esi + 0x3ea0]
mov byte [edi + 0x3ea0], al
mov dword [edi + 0x3ea1], 0x1000000
mov al, byte [esi + 0x4c]
mov byte [edi + 0x4c], al
mov al, byte [esi + 0x3ea5]
mov byte [edi + 0x3ea5], al
mov ax, word [esi + 0x3ea8]
push 0x46308
push dword [ebp - 0x14a8]
mov word [edi + 0x3ea8], ax
mov ax, word [esi + 0x3eaa]
mov byte [ebp - 4], 0
mov dword [ebp - 0x14c0], edi
mov word [edi + 0x3eaa], ax
call fcn.09018e9f
mov eax, dword [ebp - 0x1480]
push dword [ebp - 0x14a8]
mov byte [ebp - 4], 2
mov dword [ebp - 0x1484], eax
call fcn.09018e9f
pop ecx
push eax
lea ecx, [ebp - 0x14a4]
call fcn.09018e9f
push 0x46308
push dword [ebp - 0x14a8]
lea ecx, [ebp - 0x338]
mov byte [ebp - 4], 3
call fcn.09018e9f
mov eax, dword [ebp - 0x338]
xor ecx, ecx
movsd xmm1, qword [0x90b6910]
mov edx, ecx
movsd xmm3, qword [0x90b7718]
movsd xmm2, qword [0x90ac1b8]
mov byte [ebp - 4], 4
mov dword [ebp - 0x14ac], eax
mov dword [ebp - 0x148c], eax
movsd qword [ebp - 0x14d0], xmm1
movd xmm0, edx
mov eax, edx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov dword [ebp - 0x1494], ecx
addsd xmm0, qword [eax*8 + 0x90b6a60]
mulsd xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm2
cvttsd2si eax, xmm0
mov dword [ebp - 0x14c4], eax
mov eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov dword [ebp - 0x1490], ecx
addsd xmm0, qword [eax*8 + 0x90b6a60]
mulsd xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm2
cvttsd2si eax, xmm0
mov dword [ebp - 0x14bc], eax
mov eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov esi, dword [ebp - 0x148c]
mov edi, dword [ebp - 0x14c4]
add dword [ebp - 0x148c], 8
mov word [esi + 2], di
addsd xmm0, qword [eax*8 + 0x90b6a60]
mov edi, dword [ebp - 0x14bc]
mov word [esi + 4], di
mov edi, dword [ebp - 0x149c]
mulsd xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm2
cvttsd2si eax, xmm0
mov word [esi + 6], ax
mov eax, dword [ebp - 0x1490]
mov esi, dword [ebp - 0x14e0]
inc eax
mov dword [ebp - 0x1490], eax
cmp eax, 0x21
jb 0x9057ce4
mov eax, dword [ebp - 0x1494]
inc eax
mov dword [ebp - 0x1494], eax
cmp eax, 0x21
jb 0x9057cb2
inc edx
cmp edx, 0x21
jb 0x9057c7e
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push dword [ebp - 0x14a0]
push dword [ebp - 0x14a4]
push dword [ebp - 0x14dc]
call fcn.09007f5f
add esp, 0x3c
lea ecx, [ebp - 0x1488]
push eax
call fcn.09018e9f
mov ecx, dword [ebp - 0x1488]
push 0
push 0x5058595a
push 0x50524742
push 0x8c61
push dword [ebp - 0x1484]
mov byte [ebp - 4], 5
push dword [ebp - 0x14ac]
call fcn.09018e9f
lea ecx, [ebp - 0x1488]
mov byte [ebp - 4], 4
call fcn.090166cb
lea ecx, [ebp - 0x338]
mov byte [ebp - 4], 3
call fcn.0900babd
xor eax, eax
push eax
push eax
push eax
push 1
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x14a0]
push dword [ebp - 0x14a4]
push dword [ebp - 0x1498]
call fcn.09007f5f
add esp, 0x3c
lea ecx, [ebp - 0x1488]
push eax
call fcn.09018e9f
mov byte [ebp - 4], 6
xor ecx, ecx
mov eax, 0x8000
mov edx, 0x100
mov word [ebp + ecx*8 - 0xb6c], ax
mov eax, ecx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov dword [ebp + ecx*8 - 0xb70], 0x80008000
addsd xmm0, qword [eax*8 + 0x90b6a60]
mulsd xmm0, qword [0x90b6910]
divsd xmm0, qword [0x90ac1c0]
addsd xmm0, qword [0x90ac1b8]
cvttsd2si eax, xmm0
mov word [ebp + ecx*8 - 0xb6a], ax
inc ecx
mov eax, 0x8000
cmp ecx, edx
jb 0x9057e2c
mov ecx, dword [ebp - 0x1488]
lea eax, [ebp - 0x1370]
push 0
push 0x5058595a
push 0x434d594b
push edx
push eax
lea eax, [ebp - 0xb70]
push eax
call fcn.09018e9f
xor ecx, ecx
mov ax, word [ebp + ecx*8 - 0x136c]
mov word [ebp + ecx*2 - 0x220], ax
inc ecx
cmp ecx, 0x100
jb 0x9057eab
lea ecx, [ebp - 0x1488]
mov byte [ebp - 4], 3
call fcn.090166cb
mov ax, word [ebp - 0x220]
cmp ax, word [ebp - 0x22]
jb 0x9057f16
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax]
mov ecx, esi
call fcn.09006292
lea ecx, [ebp - 0x14a4]
mov byte [ebp - 4], 2
mov esi, eax
call fcn.09019f2d
lea ecx, [ebp - 0x1480]
mov byte [ebp - 4], 0
call fcn.0900babd
mov eax, esi
jmp 0x90585d2
mov ecx, dword [ebp - 0x14a8]
push 0x46308
call fcn.09018e9f
movzx ecx, word [ebp - 0x220]
mov esi, eax
movsd xmm2, qword [0x90a74e8]
movapd xmm3, xmm2
mov dword [ebp - 0x1494], esi
mov dword [ebp - 0x1490], 0x21
movd xmm0, ecx
mov ecx, dword [ebp - 0x1484]
mov edx, ecx
cvtdq2pd xmm0, xmm0
movzx eax, word [ecx + 4]
mulsd xmm0, qword [0x90b6590]
subsd xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x90b6590]
subsd xmm2, xmm0
divsd xmm3, xmm2
movsd xmm2, qword [ebp - 0x14d0]
mov dword [ebp - 0x148c], 0x21
mov dword [ebp - 0x1488], 0x21
movzx eax, word [edx + 2]
mov ecx, 0x8000
sub ecx, eax
movapd xmm0, xmm2
movd xmm1, ecx
mov ecx, 0x8000
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm3
subsd xmm0, xmm1
cvttsd2si eax, xmm0
movapd xmm0, xmm2
mov word [edx + 2], ax
movzx eax, word [edx + 4]
sub ecx, eax
movd xmm1, ecx
mov ecx, 0x8000
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm3
subsd xmm0, xmm1
cvttsd2si eax, xmm0
movapd xmm0, xmm2
mov word [edx + 4], ax
movzx eax, word [edx + 6]
sub ecx, eax
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm3
subsd xmm0, xmm1
cvttsd2si eax, xmm0
mov word [edx + 6], ax
add edx, 8
dec dword [ebp - 0x1488]
jne 0x9057f9f
dec dword [ebp - 0x148c]
jne 0x9057f95
dec dword [ebp - 0x1490]
jne 0x9057f8b
xor eax, eax
push eax
push eax
push eax
push 1
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x14a0]
push dword [ebp - 0x1498]
push dword [ebp - 0x14a4]
call fcn.09007f5f
add esp, 0x3c
lea ecx, [ebp - 0x14a0]
push eax
call fcn.09018e9f
mov ecx, dword [ebp - 0x14a0]
push 0
push 0x434d594b
push 0x5058595a
push 0x8c61
push esi
push dword [ebp - 0x1484]
mov byte [ebp - 4], 7
call fcn.09018e9f
mov ecx, dword [ebp - 0x14a0]
xor eax, eax
push eax
push 0x434d594b
push 0x5058595a
mov dword [ebp - 0x14ae], eax
mov word [ebp - 0x14aa], ax
lea eax, [ebp - 0x14d0]
push 1
push eax
lea eax, [ebp - 0x14b0]
push eax
call fcn.09018e9f
lea ecx, [ebp - 0x14a0]
mov byte [ebp - 4], 3
call fcn.090166cb
xor edx, edx
movzx eax, word [esi + edx*2]
imul ecx, eax, 0xffff
mov eax, 0xffff
sar ecx, 0xf
sub eax, ecx
mov word [esi + edx*2], ax
inc edx
cmp edx, 0x23184
jb 0x90580d9
mov ecx, dword [ebp - 0x1494]
lea edx, [ebp - 0x36e]
movss xmm4, dword [0x90b6920]
add esi, 6
sub dword [ebp - 0x1484], ecx
mov dword [ebp - 0x1498], edx
mov dword [ebp - 0x1488], 0x21
mov ax, word [esi - 6]
mov word [edx - 2], ax
mov ax, word [esi - 4]
mov word [edx], ax
mov ax, word [esi - 2]
mov word [edx + 2], ax
mov ax, word [esi]
mov word [edx + 4], ax
xor eax, eax
mov dword [esi - 6], eax
xor edx, edx
mov eax, dword [ebp - 0x1484]
mov dword [esi - 2], 0xffff0000
movzx eax, word [esi + eax - 2]
movzx ecx, word [ebp + edx*2 - 0x220]
cmp ax, cx
jb 0x9058206
je 0x90581f0
jbe 0x905817d
cmp ax, word [ebp + edx*2 - 0x21e]
jb 0x9058191
cmp edx, 0xfe
je 0x90581ec
inc edx
mov ecx, 0xff
cmp edx, ecx
jb 0x905815e
jmp 0x9058206
movzx ecx, word [ebp + edx*2 - 0x220]
sub eax, ecx
movd xmm1, eax
movzx eax, word [ebp + edx*2 - 0x21e]
sub eax, ecx
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, 0xff
cvtdq2ps xmm0, xmm0
sub eax, edx
divss xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x90b6a60]
cvtpd2ps xmm0, xmm0
subss xmm0, xmm1
mulss xmm0, xmm4
divss xmm0, dword [0x90b786c]
cvttss2si eax, xmm0
jmp 0x9058203
xor eax, eax
jmp 0x9058203
mov ecx, 0xff
mov eax, ecx
sub eax, edx
xor edx, edx
imul eax, eax, 0xffff
div ecx
mov word [esi], ax
mov edx, dword [ebp - 0x1498]
mov ax, word [esi]
add esi, 0x2318
mov word [edx + 6], ax
add edx, 0xa
dec dword [ebp - 0x1488]
mov dword [ebp - 0x1498], edx
jne 0x9058127
movss xmm2, dword [0x90b65d0]
mov eax, 0x4620
mov edx, dword [ebp - 0x1494]
push 0x10
pop ecx
movss dword [ebp - 0x148c], xmm2
mov esi, ecx
mov dword [ebp - 0x1498], ecx
lea edi, [eax + esi]
mov ecx, 0xe665
cmp word [edx + edi*8 + 4], cx
mov ecx, dword [ebp - 0x1498]
mov dword [ebp - 0x14ac], edi
mov edi, dword [ebp - 0x149c]
jae 0x9058293
inc ecx
add eax, 0x462
dec esi
mov dword [ebp - 0x1498], ecx
cmp eax, 0x90a2
jb 0x9058254
movss xmm3, dword [0x90b7694]
jmp 0x90582db
mov eax, dword [ebp - 0x14ac]
sub ecx, esi
movss xmm3, dword [0x90b7694]
movzx eax, word [edx + eax*8 + 4]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
movd xmm2, eax
addsd xmm0, qword [ecx*8 + 0x90b6a60]
cvtdq2ps xmm2, xmm2
cvtpd2ps xmm0, xmm0
divss xmm2, xmm4
mulss xmm0, xmm3
divss xmm2, xmm0
movss dword [ebp - 0x148c], xmm2
xor ecx, ecx
mov dword [ebp - 0x149c], ecx
xor eax, eax
mov dword [ebp - 0x1484], eax
xor esi, esi
mov dword [ebp - 0x1490], esi
cmp ecx, eax
jne 0x90582ff
cmp ecx, esi
je 0x905850e
cmp dword [ebp - 0x1484], esi
mov edx, ecx
cmovl eax, esi
cmp ecx, eax
cmovl edx, eax
imul eax, ecx, 0x21
mov ecx, dword [ebp - 0x1494]
and dword [ebp - 0x14d8], 0
and dword [ebp - 0x14d4], 0
and dword [ebp - 0x14d0], 0
add eax, dword [ebp - 0x1484]
imul esi, eax, 0x21
add esi, dword [ebp - 0x1490]
movzx eax, word [ecx + esi*8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, word [ecx + esi*8 + 2]
divss xmm0, xmm4
movss dword [ebp - 0x14f0], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, word [ecx + esi*8 + 4]
divss xmm0, xmm4
movss dword [ebp - 0x14ec], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, word [ecx + esi*8 + 6]
imul ecx, edx, 0xa
divss xmm0, xmm4
movss dword [ebp - 0x14e8], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, word [ebp + ecx - 0x370]
divss xmm0, xmm4
movss dword [ebp - 0x14e4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, word [ebp + ecx - 0x36e]
divss xmm0, xmm4
movss dword [ebp - 0x14b8], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, word [ebp + ecx - 0x36c]
divss xmm0, xmm4
movss dword [ebp - 0x14b4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, word [ebp + ecx - 0x36a]
divss xmm0, xmm4
movss dword [ebp - 0x14b0], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, word [ebp + ecx - 0x368]
mov ecx, dword [ebp - 0x1490]
cmp dword [ebp - 0x1484], ecx
divss xmm0, xmm4
movss dword [ebp - 0x14ac], xmm0
movd xmm0, eax
mov eax, ecx
cmovl eax, dword [ebp - 0x1484]
cvtdq2ps xmm0, xmm0
mov ecx, dword [ebp - 0x149c]
cmp ecx, eax
cmovl eax, ecx
sub edx, eax
lea eax, [ebp - 0x1500]
push eax
divss xmm0, xmm4
lea eax, [ebp - 0x14d8]
push eax
lea eax, [ebp - 0x14b8]
movss dword [ebp - 0x14cc], xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x90b6a60]
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
mulss xmm1, xmm3
movups xmmword [ebp - 0x1500], xmm0
mulss xmm1, xmm2
push eax
push ecx
lea eax, [ebp - 0x14f0]
movss dword [esp], xmm1
push eax
call fcn.09018e9f
movups xmm1, xmmword [ebp - 0x1500]
add esp, 0x14
mov edx, dword [ebp - 0x1494]
movss xmm4, dword [0x90b6920]
movaps xmm0, xmm1
mov ecx, dword [ebp - 0x149c]
mulss xmm0, xmm4
cvttss2si eax, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
mulss xmm0, xmm4
mov word [edx + esi*8], ax
cvttss2si eax, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
movss xmm1, dword [ebp - 0x14f4]
mulss xmm0, xmm4
mov word [edx + esi*8 + 2], ax
mulss xmm1, xmm4
cvttss2si eax, xmm0
mov word [edx + esi*8 + 4], ax
cvttss2si eax, xmm1
mov word [edx + esi*8 + 6], ax
mov esi, dword [ebp - 0x1490]
mov eax, dword [ebp - 0x1484]
movss xmm2, dword [ebp - 0x148c]
inc esi
movss xmm3, dword [0x90b7694]
mov dword [ebp - 0x1490], esi
cmp esi, 0x21
jb 0x90582f3
inc eax
mov dword [ebp - 0x1484], eax
cmp eax, 0x21
jb 0x90582eb
inc ecx
mov dword [ebp - 0x149c], ecx
cmp ecx, 0x21
jb 0x90582e3
mov esi, dword [ebp - 0x14a8]
push 0x434d594b
push 0x52474220
push 0x21
push edx
push esi
call fcn.09057210
add esp, 0x14
mov dword [edi + 0x68], eax
mov ecx, edi
call fcn.09018e9f
mov ecx, edi
call fcn.09018e9f
mov ecx, dword [ebp - 0x1494]
push ecx
mov ecx, esi
call fcn.09018e9f
lea ecx, [ebp - 0x14a4]
mov byte [ebp - 4], 2
call fcn.09019f2d
lea ecx, [ebp - 0x1480]
mov byte [ebp - 4], 0
call fcn.0900babd
mov eax, edi
jmp 0x90585d2
or dword [ebp - 4], 0xffffffff
mov ecx, esi
call fcn.09006292
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.090020f2
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret