Function at 0x522d78
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x87
push 0
push 0
dec ecx
jne 0x522d80
push ebx
xor eax, eax
push ebp
push 0x5237bf
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x19], 0
xor ecx, ecx
mov edx, 0x5237dc
lea eax, [ebp - 0x304]
call fcn.0040510c
lea eax, [ebp - 0x304]
call fcn.00404d40
call fcn.00404780
test eax, eax
je 0x522dcf
mov eax, 0x5237fc
call fcn.0049bc84
call fcn.004091f8
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
mov dword [ebp - 4], 0x7f5
mov dword [ebp - 8], 0x39
mov dword [ebp - 0xc], 0x637
mov dword [ebp - 0x10], 0x10ca
mov dword [ebp - 0x14], 0xa57
mov dword [ebp - 0x18], 0x15c
mov dword [ebp - 4], 0x7df
mov dword [ebp - 8], 0x18
mov dword [ebp - 0xc], 0x497
mov dword [ebp - 0x10], 0x1227
mov dword [ebp - 0x14], 0xbb9
mov dword [ebp - 0x18], 0x11c
mov dword [ebp - 4], 0x849
mov dword [ebp - 8], 0x12
mov dword [ebp - 0xc], 0x655
mov dword [ebp - 0x10], 0x141b
mov dword [ebp - 0x14], 0xae1
mov dword [ebp - 0x18], 0xf7
mov dword [ebp - 4], 0x8f3
mov dword [ebp - 8], 0x1b
mov dword [ebp - 0xc], 0x635
mov dword [ebp - 0x10], 0x145f
mov dword [ebp - 0x14], 0xae3
mov dword [ebp - 0x18], 0xd7
mov dword [ebp - 4], 0x888
mov dword [ebp - 8], 0xf
mov dword [ebp - 0xc], 0x691
mov dword [ebp - 0x10], 0x1338
mov dword [ebp - 0x14], 0xc1d
mov dword [ebp - 0x18], 0xc7
mov dword [ebp - 4], 0x735
mov dword [ebp - 8], 0x11
mov dword [ebp - 0xc], 0x50e
mov dword [ebp - 0x10], 0x1394
mov dword [ebp - 0x14], 0xbb5
mov dword [ebp - 0x18], 0x8f
mov dword [ebp - 4], 0x70a
mov dword [ebp - 8], 0xb9
mov dword [ebp - 0xc], 0x5e1
mov dword [ebp - 0x10], 0x1753
mov dword [ebp - 0x14], 0xc50
mov dword [ebp - 0x18], 0x125
mov dword [ebp - 4], 0x731
mov dword [ebp - 8], 0xa4
mov dword [ebp - 0xc], 0x607
mov dword [ebp - 0x10], 0x16e6
mov dword [ebp - 0x14], 0xc30
mov dword [ebp - 0x18], 0x124
mov dword [ebp - 4], 0x587
mov dword [ebp - 8], 0x252
mov dword [ebp - 0xc], 0x7d5
mov dword [ebp - 0x10], 0x17eb
mov dword [ebp - 0x14], 0x867
mov dword [ebp - 0x18], 0xc
mov dword [ebp - 4], 0x4e6
mov dword [ebp - 8], 0x207
mov dword [ebp - 0xc], 0x630
mov dword [ebp - 0x10], 0x1ab9
mov dword [ebp - 0x14], 0x7a2
mov dword [ebp - 0x18], 0x65
mov dword [ebp - 4], 0x515
mov dword [ebp - 8], 0xc2
mov dword [ebp - 0xc], 0x461
mov dword [ebp - 0x10], 0x1c33
mov dword [ebp - 0x14], 0x6d7
mov dword [ebp - 0x18], 0x1f
mov dword [ebp - 4], 0x456
mov dword [ebp - 8], 0x126
mov dword [ebp - 0xc], 0x703
mov dword [ebp - 0x10], 0x1fbd
mov dword [ebp - 0x14], 0x691
mov dword [ebp - 0x18], 2
xor ecx, ecx
mov edx, 0x5237dc
lea eax, [ebp - 0x304]
call fcn.0040510c
lea eax, [ebp - 0x304]
call fcn.00404d40
lea edx, [ebp - 0x404]
mov ecx, 0xff
lea eax, [ebp - 0x304]
call fcn.00405e28
lea eax, [ebp - 0x304]
call fcn.004061ac
lea eax, [ebp - 0x408]
lea edx, [ebp - 0x404]
mov ecx, 0
call fcn.00409d38
mov eax, dword [ebp - 0x408]
push eax
push 0x523860
lea eax, [ebp - 0x410]
mov edx, dword [0x5bc524]
mov ecx, 0
call fcn.00409d38
push dword [ebp - 0x410]
push 0x523870
lea eax, [ebp - 0x40c]
mov edx, 3
call fcn.00409e64
mov edx, dword [ebp - 0x40c]
pop eax
call fcn.00409f2c
je 0x52326c
xor eax, eax
mov al, byte [ebp - 0x404]
test eax, eax
jle 0x52326c
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 - 0x414], eax
fild dword [ebp - 0x414]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00404c34
fld xword [0x523874]
fmulp st(1)
call fcn.00404c78
test edx, edx
jge 0x523163
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 - 0x414], eax
fild dword [ebp - 0x414]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00404c24
fld xword [0x523880]
fmulp st(1)
call fcn.00404c78
test edx, edx
jge 0x5231b0
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 - 0x414], eax
fild dword [ebp - 0x414]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00404c34
fld xword [0x523874]
fmulp st(1)
call fcn.00404c78
test edx, edx
jge 0x5231f2
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 - 0x414], eax
fild dword [ebp - 0x414]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00404c24
fld xword [0x523880]
fmulp st(1)
call fcn.00404c78
test edx, edx
jge 0x52325b
neg eax
adc edx, 0
neg edx
add ebx, eax
mov dword [ebp - 0x18], ebx
inc dword [ebp - 0x20]
dec dword [ebp - 0x28]
jne 0x523102
lea eax, [ebp - 0x418]
lea edx, [ebp - 0x404]
mov ecx, 0
call fcn.00409d38
mov eax, dword [ebp - 0x418]
push eax
push 0x523860
lea eax, [ebp - 0x420]
mov edx, dword [0x5bc524]
mov ecx, 0
call fcn.00409d38
push dword [ebp - 0x420]
push 0x523870
lea eax, [ebp - 0x41c]
mov edx, 3
call fcn.00409e64
mov edx, dword [ebp - 0x41c]
pop eax
call fcn.00409f2c
je 0x5232e0
lea eax, [ebp - 0x304]
call fcn.00405264
test al, al
je 0x523062
lea eax, [ebp - 0x304]
call fcn.00405264
test al, al
je 0x523351
lea eax, [ebp - 0x304]
call fcn.0040520c
push 0x523860
lea eax, [ebp - 0x42c]
mov edx, dword [0x5bc524]
mov ecx, 0
call fcn.00409d38
push dword [ebp - 0x42c]
push 0x523898
lea eax, [ebp - 0x428]
mov edx, 3
call fcn.00409e64
mov edx, dword [ebp - 0x428]
lea eax, [ebp - 0x424]
call fcn.0040a34c
mov eax, dword [ebp - 0x424]
call fcn.0049bc84
call fcn.004091f8
lea eax, [ebp - 0x304]
call fcn.0040520c
xor ecx, ecx
mov edx, 0x5237dc
lea eax, [ebp - 0x304]
call fcn.0040510c
lea eax, [ebp - 0x304]
call fcn.00404d40
lea edx, [ebp - 0x404]
mov ecx, 0xff
lea eax, [ebp - 0x304]
call fcn.00405e28
lea eax, [ebp - 0x304]
call fcn.004061ac
lea eax, [ebp - 0x430]
lea edx, [ebp - 0x404]
mov ecx, 0
call fcn.00409d38
mov eax, dword [ebp - 0x430]
push eax
push 0x523860
lea eax, [ebp - 0x438]
mov edx, dword [0x5bc524]
mov ecx, 0
call fcn.00409d38
push dword [ebp - 0x438]
push 0x523870
lea eax, [ebp - 0x434]
mov edx, 3
call fcn.00409e64
mov edx, dword [ebp - 0x434]
pop eax
call fcn.00409f2c
jne 0x523379
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 4]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 1]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 2]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 3]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 5]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 6]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 7]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 8]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0xb]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0xc]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 9]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0xa]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0xf]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0x10]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0xe]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0xd]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0x14]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0x11]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0x12]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0x13]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0x17]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0x16]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0x15]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.00405afc
mov byte [ebp - 0x21], al
lea eax, [ebp - 0x304]
call fcn.004061ac
mov al, byte [ebp - 0x18]
cmp al, byte [ebp - 0x21]
jne 0x523776
lea eax, [ebp - 0x304]
call fcn.0040520c
mov byte [ebp - 0x19], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5237c6
lea eax, [ebp - 0x438]
mov edx, 5
call fcn.00409558
lea eax, [ebp - 0x424]
call fcn.004094c8
lea eax, [ebp - 0x420]
mov edx, 3
call fcn.00409558
lea eax, [ebp - 0x410]
mov edx, 3
call fcn.00409558
ret