Function at 0x5cc500
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push 0xffffffffffffffff
push 0x6d0ed3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xdc
push ebx
push ebp
push esi
push edi
xor edi, edi
mov esi, ecx
mov dword [esp + 0x34], edi
mov al, byte [esp + 0x33]
mov dword [esp + 0xf4], 1
mov byte [esp + 0x18], al
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
lea ecx, [esp + 0x54]
mov byte [esp + 0xf4], 2
call fcn.0061aaa0
lea ecx, [esp + 0xc8]
mov byte [esp + 0xf4], 3
call fcn.005548f0
mov ecx, dword [0x720b78]
mov edx, dword [0x720b7c]
mov dword [esp + 0x38], ecx
push 6
push 0x7147a4
lea ecx, [esp + 0x1c]
mov byte [esp + 0xfc], 4
mov dword [esp + 0x44], edx
call fcn.0061d820
push 4
lea ecx, [esp + 0x104]
mov byte [esp + 0xf8], 5
call fcn.0061daa0
push 5
lea ecx, [esp + 0x104]
call fcn.0061daa0
mov byte [esp + 0x10], al
mov al, byte [esi + 0xc]
cmp al, 0xff
jne 0x5cc63c
mov al, byte [0x72bd0c]
test al, al
je 0x5cc5f9
lea ebx, [esi + 8]
call fcn.006a7255
cdq
mov ecx, 0xff
idiv ecx
mov ecx, ebx
push edx
push edi
call fcn.0061dbc0
inc edi
cmp di, 0x32
jl 0x5cc5d2
push 0xf
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x5cc638
sub esp, 0x24
lea eax, [esp + 0x5c]
mov edx, esp
mov dword [esp + 0x4c], esp
push 1
push eax
push edx
lea ecx, [esp + 0xf8]
call fcn.00555a50
lea ecx, [esp + 0x78]
call fcn.0061ac40
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push ecx
lea ecx, [esp + 0x5c]
call fcn.0061afb0
lea ecx, [esi + 8]
call fcn.0061dab0
mov byte [esi + 0xc], 1
add esi, 8
xor ebp, ebp
mov ecx, esi
call fcn.0061dc40
cmp ax, 0x17
jge 0x5cc762
push 0x71386c
lea edx, [esp + 0x44]
push 0x713868
push edx
call fcn.006a6fa5
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [esp + 0x1c]
push ebx
call fcn.00414230
test al, al
je 0x5cc6ad
mov edi, dword [esp + 0x1c]
mov ecx, ebx
mov eax, ecx
lea esi, [esp + 0x40]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
mov byte [ecx + ebx], 0
mov esi, dword [esp + 0xfc]
mov dl, byte [esp + 0x18]
xor edi, edi
lea ecx, [esp + 0x18]
mov byte [esi], dl
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov eax, dword [0x6dd1fc]
push eax
push edi
push ecx
mov ecx, esi
call fcn.004136c0
mov dword [esp + 0x34], 1
lea ecx, [esp + 0x14]
mov byte [esp + 0xf4], 4
call fcn.0061d8c0
lea ecx, [esp + 0xc8]
mov byte [esp + 0xf4], 3
call fcn.005549b0
lea ecx, [esp + 0x54]
mov byte [esp + 0xf4], 2
call fcn.0061ab90
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x5cc73b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cc732
cmp al, 0xff
je 0x5cc732
dec al
mov byte [ecx], al
jmp 0x5cc73b
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0x100]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov byte [esp + 0xf4], 0
call fcn.0061d8c0
mov eax, esi
jmp 0x5cd0d2
mov edx, dword [esp + 0x10]
and edx, 0xff
lea eax, [edx - 1]
cmp eax, 0x1a
ja case.default.0x5cc778
jmp dword [eax*4 + 0x5cd0f0]
push 5
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6e3930]
fadd qword [0x6ddb88]
jmp 0x5cc7ed
push 5
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
lea ecx, [eax + eax*4]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
jmp 0x5cc7ed
push 6
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6e3928]
fstp qword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push ecx
push edx
lea eax, [esp + 0x48]
push str._.2f
push eax
call fcn.006a6fa5
add esp, 0x10
jmp 0x5cc95f
push 6
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
lea ecx, [eax + eax*4]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
jmp 0x5cc7ed
push 7
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6e3920]
fsub qword [0x6e3918]
jmp 0x5cc7ed
push 8
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6e3920]
fsub qword [0x6e3918]
jmp 0x5cc7ed
push 9
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
shl eax, 3
mov ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax - 8]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
jmp 0x5cc7ed
push 0xa
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
lea ebp, [eax + eax*2]
shl ebp, 1
jmp case.default.0x5cc778
push 0x11
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
shl eax, 5
jmp 0x5cc94a
push 0x12
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 0x13
mov ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fstp qword [esp + 0x2c]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6e3910]
fadd qword [esp + 0x28]
jmp 0x5cc7ed
push 0x14
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov ebp, eax
push ebp
lea ecx, [esp + 0x44]
push 0x713498
push ecx
call fcn.006a6fa5
add esp, 0xc
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x5ccf7d
lea edi, [esp + 0x40]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x5cc985
call fcn.006a64db
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x5ccf26
mov al, byte [edi - 1]
test al, al
je 0x5ccf26
cmp al, 0xff
je 0x5ccf26
test ebx, ebx
jne 0x5ccf4f
dec al
push ebx
lea ecx, [esp + 0x1c]
mov byte [edi - 1], al
call fcn.004138c0
jmp 0x5ccf7d
push 0x15
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov ecx, eax
shl ecx, 8
sub ecx, eax
mov eax, 0x80808081
shl ecx, 3
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
jmp 0x5cc7ed
push 0x16
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
jmp 0x5cc7e7
push 0x16
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6df3f8]
jmp 0x5cc7ed
push 0x20
jmp 0x5cc93e
push 0x17
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
lea ecx, [eax + eax*2]
shl ecx, 4
sub ecx, eax
mov eax, 0x80808081
shl ecx, 1
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0xa]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
jmp 0x5cc7ed
push 0x17
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
lea ecx, [eax + eax*4]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
jmp 0x5cc7ed
push 0x19
jmp 0x5cc93e
push 0x1a
jmp 0x5cc93e
push 0x1b
jmp 0x5cc93e
push 0x1c
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 0x1d
mov dword [esp + 0x14], eax
mov ecx, esi
fild dword [esp + 0x14]
fmul qword [0x6e3908]
fstp qword [esp + 0x2c]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6e3900]
fadd qword [esp + 0x28]
jmp 0x5cc7ed
push 0x1d
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 0x1c
mov dword [esp + 0x14], eax
mov ecx, esi
fild dword [esp + 0x14]
fmul qword [0x6e38f8]
fstp qword [esp + 0x2c]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6e38f0]
fadd qword [esp + 0x28]
jmp 0x5cc7ed
push 0xc
mov ecx, esi
call fcn.0061daa0
test al, 1
je 0x5ccb56
push 0x32
jmp 0x5ccb58
push 0x33
push 5
lea ecx, [esp + 0x1c]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x7c]
push eax
call fcn.0061ca80
add esp, 8
mov ecx, dword [0x6dd1fc]
mov byte [esp + 0xf4], 6
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004136c0
mov eax, dword [esp + 0x7c]
mov byte [esp + 0xf4], 5
test eax, eax
je case.default.0x5cc778
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5ccf18
cmp al, 0xff
je 0x5ccf18
dec al
mov byte [ecx], al
jmp case.default.0x5cc778
push 0xe
mov ecx, esi
call fcn.0061daa0
test al, 0x10
je 0x5ccbe0
push 0x32
jmp 0x5ccbe2
push 0x33
push 5
lea ecx, [esp + 0x1c]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x8c]
push eax
call fcn.0061ca80
add esp, 8
mov ecx, dword [0x6dd1fc]
mov byte [esp + 0xf4], 7
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004136c0
mov eax, dword [esp + 0x8c]
mov byte [esp + 0xf4], 5
jmp 0x5ccba8
push 0xe
mov ecx, esi
call fcn.0061daa0
test al, 0x20
je 0x5ccc4e
push 0x32
jmp 0x5ccc50
push 0x33
push 5
lea ecx, [esp + 0x1c]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0061d790
lea eax, [esp + 0xac]
push eax
call fcn.0061ca80
add esp, 8
mov ecx, dword [0x6dd1fc]
mov byte [esp + 0xf4], 8
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004136c0
mov eax, dword [esp + 0xac]
mov byte [esp + 0xf4], 5
jmp 0x5ccba8
push 0xe
mov ecx, esi
call fcn.0061daa0
test al, 1
je 0x5cccbc
push 0x32
jmp 0x5cccbe
push 0x33
push 5
lea ecx, [esp + 0x1c]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x9c]
push eax
call fcn.0061ca80
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6dd1fc]
mov ebx, ecx
mov byte [esp + 0xf4], 9
cmp eax, ebx
jae 0x5ccd04
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x5ccd38
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.004140f0
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.004140f0
mov eax, dword [esp + 0x9c]
mov byte [esp + 0xf4], 5
jmp 0x5ccba8
test ebx, ebx
jbe 0x5ccd97
cmp ebx, ecx
jne 0x5ccd97
mov eax, dword [esi + 4]
test eax, eax
jne 0x5ccd4c
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5ccd97
push 1
lea ecx, [esp + 0x1c]
call fcn.004138c0
mov eax, dword [esi + 4]
test eax, eax
jne 0x5ccd69
mov eax, 0x6dd1f8
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xf4], 5
mov byte [eax - 1], cl
mov eax, dword [esp + 0x9c]
jmp 0x5ccba8
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414230
test al, al
je 0x5ccdd1
mov esi, dword [esi + 4]
test esi, esi
jne 0x5ccdb3
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x1c]
mov ecx, ebx
mov eax, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.00414210
mov eax, dword [esp + 0x9c]
mov byte [esp + 0xf4], 5
jmp 0x5ccba8
push 0xe
mov ecx, esi
call fcn.0061daa0
test al, 2
je 0x5ccdf6
push 0x32
jmp 0x5ccdf8
push 0x33
push 5
lea ecx, [esp + 0x1c]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0061d790
lea eax, [esp + 0xbc]
push eax
call fcn.0061ca80
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6dd1fc]
mov ebx, ecx
mov byte [esp + 0xf4], 0xa
cmp eax, ebx
jae 0x5cce3e
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x5cce63
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.004140f0
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.004140f0
jmp 0x5cceea
test ebx, ebx
jbe 0x5cceb0
cmp ebx, ecx
jne 0x5cceb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x5cce77
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5cceb0
push 1
lea ecx, [esp + 0x1c]
call fcn.004138c0
mov eax, dword [esi + 4]
test eax, eax
jne 0x5cce94
mov eax, 0x6dd1f8
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5cceea
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414230
test al, al
je 0x5cceea
mov esi, dword [esi + 4]
test esi, esi
jne 0x5ccecc
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x1c]
mov ecx, ebx
mov eax, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.00414210
mov eax, dword [esp + 0xbc]
mov byte [esp + 0xf4], 5
test eax, eax
je case.default.0x5cc778
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5ccf18
cmp al, 0xff
je 0x5ccf18
dec al
mov byte [ecx], al
jmp case.default.0x5cc778
push ecx
call fcn.006a64d0
add esp, 4
jmp case.default.0x5cc778
test ebx, ebx
jne 0x5ccf37
push 1
lea ecx, [esp + 0x1c]
call fcn.004138c0
jmp 0x5ccf7d
mov eax, dword [esp + 0x24]
cmp eax, 0x1f
ja 0x5ccf44
cmp eax, ebx
jae 0x5ccf5d
push 1
lea ecx, [esp + 0x1c]
call fcn.004138c0
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414a60
mov edi, dword [esp + 0x1c]
mov ecx, ebx
lea esi, [esp + 0x40]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
mov byte [eax + ebx], 0
mov ebx, dword [esp + 0xfc]
mov cl, byte [esp + 0x18]
xor edi, edi
mov byte [ebx], cl
mov ecx, dword [esp + 0x20]
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], edi
mov eax, dword [0x6dd1fc]
mov ebp, ecx
cmp eax, ebp
jae 0x5ccfa6
mov ebp, eax
lea edx, [esp + 0x18]
cmp ebx, edx
jne 0x5ccfc5
push eax
push ebp
mov ecx, ebx
call fcn.004140f0
push edi
push edi
mov ecx, ebx
call fcn.004140f0
jmp 0x5cd04d
cmp ebp, edi
jbe 0x5cd011
cmp ebp, ecx
jne 0x5cd011
mov eax, dword [esp + 0x1c]
cmp eax, edi
jne 0x5ccfda
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5cd011
push 1
mov ecx, ebx
call fcn.004138c0
mov eax, dword [esp + 0x1c]
cmp eax, edi
jne 0x5ccff6
mov eax, 0x6dd1f8
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [ebx + 4], eax
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5cd04d
push 1
push ebp
mov ecx, ebx
call fcn.00414230
test al, al
je 0x5cd04d
mov esi, dword [esp + 0x1c]
cmp esi, edi
jne 0x5cd02c
mov esi, 0x6dd1f8
mov edi, dword [ebx + 4]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 4]
mov dword [ebx + 8], ebp
add ebp, eax
xor edi, edi
mov byte [ebp], 0
lea ecx, [esp + 0x14]
mov dword [esp + 0x34], 1
mov byte [esp + 0xf4], 4
call fcn.0061d8c0
lea ecx, [esp + 0xc8]
mov byte [esp + 0xf4], 3
call fcn.005549b0
lea ecx, [esp + 0x54]
mov byte [esp + 0xf4], 2
call fcn.0061ab90
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x5cd0b0
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cd0a7
cmp al, 0xff
je 0x5cd0a7
dec al
mov byte [ecx], al
jmp 0x5cd0b0
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0x100]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov byte [esp + 0xf4], 0
call fcn.0061d8c0
mov eax, ebx
mov ecx, dword [esp + 0xec]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xe8
ret 8