Function at 0x1573295
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov word [esp], 0xb872
mov byte [esp], 0x8a
lea esp, [esp + 0x40]
jne fcn.0156b2e1
sbb cl, al
pushal
mov ecx, edi
lea esi, [eax*8 + 0x32857925]
pushfd
btr esi, 6
sub ecx, ebx
or si, 0xdc5c
movzx si, dl
lea esi, [esp + 0x24]
pushfd
pushfd
test di, cx
sub edi, 4
cmp dl, 0xdf
push edx
cmc
push dword [edi]
pop dword [esp + 0x2c]
push edi
cmc
cmp edi, ebx
push 0xad126839
push esi
mov byte [esp + 4], ch
lea esp, [esp + 0x38]
ja 0xc81042
test esi, 0x45a2195d
jmp 0xc807ed
pushfd
stc
not al
pushfd
clc
stc
sub al, 0x30
push 0x693cd8e6
rol al, 3
jmp 0x15724b8
not al
setnp al
sub ebx, edi
ror al, cl
add ebx, esp
bsr edi, ebx
mov edi, ebx
cmp sp, ax
setg al
stc
cmc
mov al, 0x2e
jmp 0x1568238
jmp 0x157d62c
jmp 0xc7edb7
pushfd
pushfd
mov dword [esp + 4], eax
mov al, dh
pushal
lodsb al, byte [esi]
clc
pushal
cmc
pushfd
rol al, 5
push ecx
jmp 0x156b84a
jmp 0xc7d022
js 0x15681fa
movsb byte es:[edi], byte [esi]
mov dl, 0xa9
jmp dword [eax + 0x21]
or byte [esi - 0x2f], al
invalid
call fcn.01567d6f
movsd dword es:[edi], dword [esi]
pushal
push 0xda85422b
jmp 0x15681f0
mov ecx, 0x115f4eb1
inc edi
invalid
call fcn.01566d47
or eax, 0xcf95228
sub byte [edx - 7], dl
or al, 0x85
ficomp dword [ecx + 0x3a1947d8]
mov ecx, 0x1a05ed6c
sub al, 0x83
xchg byte [edx + 0x44f51ed7], cl
fist dword [edx]
stc
aas
xor byte [edi - 0x16383866], bl
inc eax
rol esi, cl
ja 0x156b743
salc
not dword [ecx]
invalid
add byte [edi + 0x78], al
xlatb
push edx
xchg ecx, eax
js 0x156b790
push 0x30513081
dec ebp
rcl ah, 1
fcom qword [ebx]
add ah, byte [edi]
mov eax, dword [0x4b746f80]
cmp byte [eax], 0x86
jle 0x156b884
sbb eax, 0x8cd52478
aas
push ds
jg 0x156b888
mov eax, 0x57b483f2
or dword [ebp + 0x63c836da], edx
mov ebp, 0x6f6d10db
jmp 0x4061e11d
mov byte [esp], ah
cmp dl, cl
add al, 0x7c
clc
rol al, 3
call fcn.00c755f7
popfd
jo 0x156b859
push dword [ebp + 0xc68bdd2]
test edx, ebx
mov ch, 0xd2
mov ebp, 0xda850c68
ja 0x156b7fe
adc esp, esi
inc ebx
out dx, al
arpl word [edi + 0xcc749be], cx
inc ebp
imul ebp, esi, 0x86c27304
mov bh, 0x70
jb 0x156b807
mov edi, 0x664d6e79
mov ah, dl
or bl, byte [ebp + ebp*8 - 0x2f8eaa8e]
push ebp
jno 0x156b857
push edi
mul byte [edi]
invalid
push 0xc269b40e
lea esp, [esp + 4]
jne 0x153de02
sar esp, 0xff
adc di, 0xed54
cmp cl, 0x2c
adc di, 0x5733
movsx di, bl
sti
mov edi, dword [edx + 0x24]
bt bp, 5
add edi, eax
pushfd
stc
cmc
movzx ecx, word [edi + ecx*2]
sal di, 7
shrd di, bx, 0xd
pushal
movzx di, cl
mov edi, dword [edx + 0x1c]
pushfd
cmc
add edi, eax
push dword [esp + 8]
mov edi, dword [edi + ecx*4]
test cl, dl
push ebp
test edi, edi
call fcn.0156be91
fidivr dword [ecx]
in al, dx
xchg edi, eax
cmpsd dword [esi], dword es:[edi]
test dl, bl
pop es
inc esi
fldenv [edi + 0x54]
stosd dword es:[edi], eax
jb 0x1571cf7
xchg edi, eax
div byte [ecx]
aas
push eax
jg 0x1571d0a
stc
cmp al, 0x7b
xchg esi, eax
jnp 0x1571ddd
cwde
lcall 0x8944, 0x654d1c11
mov ebp, 0xb83403ce
outsd dx, dword [esi]
invalid
setno byte [ebx + 0x19aedcbc]
mov ecx, 0x43d89980
pop ebp
aam 0x19
invalid
call fcn.0156ed2d
push 0xaee30ce5
lea esp, [esp + 4]
ja 0x1571ceb
push eax
lea esp, [esp + 4]
jne 0x153de02
cmp ch, cl
mov edi, dword [edx + 0x24]
stc
push ecx
add edi, eax
cmc
bt sp, 0xd
pushfd
movzx ecx, word [edi + ecx*2]
rol di, cl
sar di, 3
lea edi, [ebx - 0x7fdf7a7e]
test al, ch
mov edi, dword [edx + 0x1c]
sub esp, 0xfffffff8
jnp 0x15729bf
clc
add edi, eax
pushal
mov edi, dword [edi + ecx*4]
pushfd
cmp ch, 0x2a
cmp dx, 0x5c90
test edi, edi
mov byte [esp + 4], bl
lea esp, [esp + 0x24]
je fcn.0156b2e1
test sp, bx
pushal
add eax, edi
clc
test bp, si
stc
test dl, al
cmp eax, edx
pushfd
pushfd
lea esp, [esp + 0x28]
jb 0x156b2eb
push edx
cmp di, dx
clc
pushal
cmp eax, dword [ebp - 0x10]
push 0xe478259
mov dword [esp + 4], 0x801feb68
lea esp, [esp + 0x28]
jae 0x156b2eb
bswap cx
btr edi, 0x16
mov ebx, eax
xadd edi, ecx
pushal
bt sp, 0xc
mov edi, eax
pushal
bswap cx
shl ecx, 0x14
mov ecx, 0x104
stc
clc
sub al, al
bt bx, 7
bt edx, ecx
clc
mov word [esp], bp
repne scasb al, byte es:[edi]
jmp 0x15664ca
bt di, ax
cmc
test dh, al
test cl, ch
add edi, eax
bt si, bx
call fcn.0153fcb3
cmp si, di
neg al
jmp 0xc83cb3
pushal
clc
sub edi, 4
bt dx, 5
stc
pushfd
push dword [edi]
pop dword [esp + 0x20]
mov dword [esp], esi
pushfd
push dword [esp + 0xc]
push ebx
cmp edi, ebx
call fcn.01581c3e
lea esp, [esp + 4]
jne 0xc7e63d
dec dword [edi]
enter 0x47c6, 0xffffffffffffffff
add al, ch
das
xor dword [eax], eax
add bl, bh
bswap eax
mov byte [edi - 1], 0
call fcn.01580792
add byte [eax], al
sti
sub bl, byte [0xda83edc8]
push esi
pushal
popal
cmpsd dword [esi], dword es:[edi]
enter 0x72c7, 0xffffffffffffffef
jb 0x157d661
sbb ebp, dword [edx]
in eax, 0x2a
cmp byte [edi + 0x6dd3a386], dl
jbe 0x157d670
pop es
pop eax
pop edx
rcl dword [eax + 1]
sbb eax, edi
std
dec ecx
idiv dword [ebx + 0x25b419bf]
adc bl, byte [esi]
inc edi
jno 0x157d657
invalid