Function at 0x522b38
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbf8
push ebx
mov byte [ebp - 0x19], 0
xor ecx, ecx
mov edx, 0x523214
lea eax, [ebp - 0x304]
call fcn.004050ec
lea eax, [ebp - 0x304]
call fcn.00404d20
call fcn.00404780
test eax, eax
je 0x522b7b
mov eax, 0x523234
call fcn.0049ba2c
call fcn.004091d8
mov dword [ebp - 4], 0x7df
mov dword [ebp - 8], 0x21d
mov dword [ebp - 0xc], 0x1009
mov dword [ebp - 0x10], 0x1396
mov dword [ebp - 0x14], 0xc8f
mov dword [ebp - 0x18], 0x200
mov dword [ebp - 4], 0x4dd
mov dword [ebp - 8], 0x91
mov dword [ebp - 0xc], 0xbc2
mov dword [ebp - 0x10], 0x1573
mov dword [ebp - 0x14], 0xaee
mov dword [ebp - 0x18], 0xfe
mov dword [ebp - 4], 0x5dd
mov dword [ebp - 8], 0x65
mov dword [ebp - 0xc], 0xc8c
mov dword [ebp - 0x10], 0x1710
mov dword [ebp - 0x14], 0xbee
mov dword [ebp - 0x18], 0xc9
xor ecx, ecx
mov edx, 0x523214
lea eax, [ebp - 0x304]
call fcn.004050ec
lea eax, [ebp - 0x304]
call fcn.00404d20
lea edx, [ebp - 0x404]
mov ecx, 0xff
lea eax, [ebp - 0x304]
call fcn.00405e08
lea eax, [ebp - 0x304]
call fcn.0040618c
lea eax, [ebp - 0x404]
mov edx, 0x52328c
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00409afc
je 0x522dd6
xor eax, eax
mov al, byte [ebp - 0x404]
test eax, eax
jle 0x522dd6
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], 1
mov eax, dword [ebp - 0x20]
movzx eax, byte [ebp + eax - 0x404]
add dword [ebp - 4], eax
mov eax, dword [ebp - 0x20]
mov ecx, 7
cdq
idiv ecx
mov eax, dword [ebp - 8]
inc eax
add edx, eax
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x20]
mov al, byte [ebp + eax - 0x404]
and eax, 0xff
mov dword [ebp - 0x408], eax
fild dword [ebp - 0x408]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00404c14
fld xword [0x523294]
fmulp st(1)
call fcn.00404c58
test edx, edx
jge 0x522ccd
neg eax
adc edx, 0
neg edx
add dword [ebp - 0xc], eax
xor eax, eax
mov al, byte [ebp - 0x404]
add dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x20]
mov al, byte [ebp + eax - 0x404]
and eax, 0xff
mov dword [ebp - 0x408], eax
fild dword [ebp - 0x408]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00404c04
fld xword [0x5232a0]
fmulp st(1)
call fcn.00404c58
test edx, edx
jge 0x522d1a
neg eax
adc edx, 0
neg edx
add dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x20]
mov al, byte [ebp + eax - 0x404]
and eax, 0xff
mov dword [ebp - 0x408], eax
fild dword [ebp - 0x408]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00404c14
fld xword [0x523294]
fmulp st(1)
call fcn.00404c58
test edx, edx
jge 0x522d5c
neg eax
adc edx, 0
neg edx
mov ebx, eax
mov eax, dword [ebp - 0x20]
mov ecx, 7
cdq
idiv ecx
mov eax, dword [ebp - 0x20]
movzx eax, byte [ebp + eax - 0x404]
add eax, dword [ebp - 0x18]
inc eax
add edx, eax
add ebx, edx
xor eax, eax
mov al, byte [ebp - 0x404]
add ebx, eax
mov eax, dword [ebp - 0x20]
mov al, byte [ebp + eax - 0x404]
and eax, 0xff
mov dword [ebp - 0x408], eax
fild dword [ebp - 0x408]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00404c04
fld xword [0x5232a0]
fmulp st(1)
call fcn.00404c58
test edx, edx
jge 0x522dc5
neg eax
adc edx, 0
neg edx
add ebx, eax
mov dword [ebp - 0x18], ebx
inc dword [ebp - 0x20]
dec dword [ebp - 0x28]
jne 0x522c6c
lea eax, [ebp - 0x404]
mov edx, 0x52328c
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00409afc
je 0x522e00
lea eax, [ebp - 0x304]
call fcn.00405244
test al, al
je 0x522c16
lea eax, [ebp - 0x304]
call fcn.00405244
test al, al
je 0x522e29
lea eax, [ebp - 0x304]
call fcn.004051ec
mov eax, 0x5232b8
call fcn.0049ba2c
call fcn.004091d8
lea eax, [ebp - 0x304]
call fcn.004051ec
xor ecx, ecx
mov edx, 0x523214
lea eax, [ebp - 0x304]
call fcn.004050ec
lea eax, [ebp - 0x304]
call fcn.00404d20
lea edx, [ebp - 0x404]
mov ecx, 0xff
lea eax, [ebp - 0x304]
call fcn.00405e08
lea eax, [ebp - 0x304]
call fcn.0040618c
lea eax, [ebp - 0x404]
mov edx, 0x52328c
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00409afc
jne 0x522e51
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 4]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 1]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 2]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 3]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 5]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 6]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 7]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 8]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0xb]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0xc]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 9]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0xa]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0xf]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0x10]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0xe]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0xd]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0x14]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0x11]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0x12]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0x13]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0x17]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0x16]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0x15]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.00405adc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.0040618c
mov al, byte [ebp - 0x18]
cmp al, byte [ebp - 0x21]
jne 0x523200
lea eax, [ebp - 0x304]
call fcn.004051ec
mov byte [ebp - 0x19], 1
mov al, byte [ebp - 0x19]
pop ebx
mov esp, ebp
pop ebp
ret