Function at 0x45ac74
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x2c
mov dword [0x7a85e4], 0x41cf94
mov dword [0x7a85ec], 0x41d170
mov dword [0x7a85f4], 0x41d360
mov dword [0x7a85fc], 0x41d6b0
mov dword [0x7a8604], 0x41da34
mov dword [0x7a860c], 0x41ddec
mov dword [0x7a8614], 0x41e4fc
mov dword [0x7a861c], 0x41e880
mov dword [0x7a8624], 0x41e134
mov dword [0x7a862c], 0x41ec04
mov dword [0x7a8634], 0x41efbc
mov dword [0x7a863c], 0x41f374
mov dword [0x7a8644], 0x41f72c
mov dword [0x7a864c], 0x41fae4
mov dword [0x7a8654], 0x41fe68
mov dword [0x7a865c], 0x420220
mov dword [0x7a8664], 0x4205d8
mov dword [0x7a866c], 0x420990
mov dword [0x7a8674], 0x420d14
mov dword [0x7a85e0], 0x41cfac
mov dword [0x7a85e8], 0x41d188
mov dword [0x7a85f0], 0x41d378
mov dword [0x7a85f8], 0x41d6c8
mov dword [0x7a8600], 0x41da80
mov dword [0x7a8608], 0x41de04
mov dword [0x7a8610], 0x41e514
mov dword [0x7a8618], 0x41e898
mov dword [0x7a8620], 0x41e180
mov dword [0x7a8628], 0x41ec50
mov dword [0x7a8630], 0x41f008
mov dword [0x7a8638], 0x41f3c0
mov dword [0x7a8640], 0x41f778
mov dword [0x7a8648], 0x41fafc
mov dword [0x7a8650], 0x41feb4
mov dword [0x7a8658], 0x42026c
mov dword [0x7a8660], 0x420624
mov dword [0x7a8668], 0x4209a8
mov dword [0x7a8670], 0x420d60
mov dword [0x7a8684], 0x41cfc8
mov dword [0x7a868c], 0x41d1a4
mov dword [0x7a8694], 0x41d3c8
mov dword [0x7a869c], 0x41d720
mov dword [0x7a86a4], 0x41dad8
mov dword [0x7a86ac], 0x41de20
mov dword [0x7a86b4], 0x41e56c
mov dword [0x7a86bc], 0x41e8f0
mov dword [0x7a86c4], 0x41e1e8
mov dword [0x7a86cc], 0x41eca8
mov dword [0x7a86d4], 0x41f060
mov dword [0x7a86dc], 0x41f418
mov dword [0x7a86e4], 0x41f7d0
mov dword [0x7a86ec], 0x41fb54
mov dword [0x7a86f4], 0x41ff0c
mov dword [0x7a86fc], 0x4202c4
mov dword [0x7a8704], 0x42067c
mov dword [0x7a870c], 0x420a00
mov dword [0x7a8714], 0x420db8
mov dword [0x7a8680], 0x41cfe0
mov dword [0x7a8688], 0x41d1c0
mov dword [0x7a8690], 0x41d470
mov dword [0x7a8698], 0x41d7d4
mov dword [0x7a86a0], 0x41db8c
mov dword [0x7a86a8], 0x41ded4
mov dword [0x7a86b0], 0x41e620
mov dword [0x7a86b8], 0x41e9a4
mov dword [0x7a86c0], 0x41e29c
mov dword [0x7a86c8], 0x41ed5c
mov dword [0x7a86d0], 0x41f114
mov dword [0x7a86d8], 0x41f4cc
mov dword [0x7a86e0], 0x41f884
mov dword [0x7a86e8], 0x41fc08
mov dword [0x7a86f0], 0x41ffc0
mov dword [0x7a86f8], 0x420378
mov dword [0x7a8700], 0x420730
mov dword [0x7a8708], 0x420ab4
mov dword [0x7a8710], 0x420e6c
mov dword [0x7a8720], 0x41d020
mov dword [0x7a8728], 0x41d1dc
mov dword [0x7a8730], 0x41d520
mov dword [0x7a8738], 0x41d898
mov dword [0x7a8740], 0x41dc50
mov dword [0x7a8748], 0x41df98
mov dword [0x7a8750], 0x41e6e4
mov dword [0x7a8758], 0x41ea68
mov dword [0x7a8760], 0x41e360
mov dword [0x7a8768], 0x41ee20
mov dword [0x7a8770], 0x41f1d8
mov dword [0x7a8778], 0x41f590
mov dword [0x7a8780], 0x41f948
mov dword [0x7a8788], 0x41fccc
mov dword [0x7a8790], 0x420084
mov dword [0x7a8798], 0x42043c
mov dword [0x7a87a0], 0x4207f4
mov dword [0x7a87a8], 0x420b78
mov dword [0x7a87b0], 0x420f30
mov dword [0x7a8724], 0x41cffc
mov dword [0x7a872c], 0x41d1dc
mov dword [0x7a8734], 0x41d520
mov dword [0x7a873c], 0x41d898
mov dword [0x7a8744], 0x41dc50
mov dword [0x7a874c], 0x41df98
mov dword [0x7a8754], 0x41e6e4
mov dword [0x7a875c], 0x41ea68
mov dword [0x7a8764], 0x41e360
mov dword [0x7a876c], 0x41ee20
mov dword [0x7a8774], 0x41f1d8
mov dword [0x7a877c], 0x41f590
mov dword [0x7a8784], 0x41f948
mov dword [0x7a878c], 0x41fccc
mov dword [0x7a8794], 0x420084
mov dword [0x7a879c], 0x42043c
mov dword [0x7a87a4], 0x4207f4
mov dword [0x7a87ac], 0x420b78
mov dword [0x7a87b4], 0x420f30
mov dword [0x7a87c0], 0x41d0c4
mov dword [0x7a87c8], 0x41d298
mov dword [0x7a87d0], 0x41d5e4
mov dword [0x7a87d8], 0x41d960
mov dword [0x7a87e0], 0x41dd18
mov dword [0x7a87e8], 0x41e060
mov dword [0x7a87f0], 0x41e7ac
mov dword [0x7a87f8], 0x41eb30
mov dword [0x7a8800], 0x41e428
mov dword [0x7a8808], 0x41eee8
mov dword [0x7a8810], 0x41f2a0
mov dword [0x7a8818], 0x41f658
mov dword [0x7a8820], 0x41fa10
mov dword [0x7a8828], 0x41fd94
mov dword [0x7a8830], 0x42014c
mov dword [0x7a8838], 0x420504
mov dword [0x7a8840], 0x4208bc
mov dword [0x7a8848], 0x420c40
mov dword [0x7a8850], 0x420ff8
mov ebx, 1
mov ecx, 0x200
mov edi, ecx
xor esi, esi
lea ebp, [ecx + 0x200]
mov eax, esi
cdq
idiv ebx
mov word [edi + 0x7884e0], ax
add esi, 0x100
add edi, 2
cmp ebp, edi
ja 0x45b1c1
add ecx, 0x200
inc ebx
cmp ebx, 0x100
jl 0x45b1b7
xor eax, eax
mov byte [eax + 0x686ce0], al
jmp 0x45b1fa
mov byte [eax + 0x686ce0], 0xff
inc eax
cmp eax, 0x1ff
jge 0x45b20b
cmp eax, 0xff
jg 0x45b1f3
jmp 0x45b1eb
xor eax, eax
xor edx, edx
jmp 0x45b217
lea edx, [eax - 0xff]
mov byte [eax + 0x686ee0], dl
inc eax
cmp eax, 0x1ff
jge 0x45b22e
cmp eax, 0xff
jge 0x45b211
jmp 0x45b20d
xor ecx, ecx
xor ebx, ebx
xor esi, esi
xor ebp, ebp
mov eax, 0x80808081
imul ebp
add edx, ebp
sar edx, 7
mov edi, ebp
sar edi, 0x1f
sub edx, edi
mov byte [ebx + esi + 0x6870e0], dl
add ebp, ecx
inc esi
cmp esi, 0x100
jl 0x45b236
add ebx, 0x100
inc ecx
cmp ecx, 0x100
jl 0x45b232
xor ebx, ebx
xor ecx, ecx
xor esi, esi
mov ebp, ebx
shl ebp, 8
sub ebp, ebx
mov eax, ebp
jmp 0x45b280
mov eax, ebp
cdq
idiv esi
cmp eax, 0xff
jle 0x45b28c
mov eax, 0xff
mov byte [ecx + esi + 0x6971e0], al
inc esi
cmp esi, 0x100
jge 0x45b2a2
test esi, esi
jg 0x45b27b
jmp 0x45b277
add ecx, 0x100
inc ebx
cmp ebx, 0x100
jl 0x45b26e
xor edi, edi
xor ebp, ebp
xor ebx, ebx
mov ecx, edi
xor edx, edx
movzx eax, word [edx + edi*2 + 0x62ecde]
neg eax
add eax, ecx
mov byte [ebp + ebx + 0x6a72e0], al
inc ecx
add edx, 0x400
inc ebx
cmp ebx, 0x100
jl 0x45b2bb
add ebp, 0x100
inc edi
cmp edi, 0x100
jl 0x45b2b5
xor ecx, ecx
xor edx, edx
xor eax, eax
cmp ecx, eax
jge 0x45b2fb
mov ebx, eax
jmp 0x45b2fd
mov ebx, ecx
mov byte [edx + eax + 0x767ee0], bl
inc eax
cmp eax, 0x100
jl 0x45b2f3
add edx, 0x100
inc ecx
cmp ecx, 0x100
jl 0x45b2f1
xor ecx, ecx
xor edx, edx
xor eax, eax
cmp ecx, eax
jge 0x45b329
mov ebx, ecx
jmp 0x45b32b
mov ebx, eax
mov byte [edx + eax + 0x777fe0], bl
inc eax
cmp eax, 0x100
jl 0x45b321
add edx, 0x100
inc ecx
cmp ecx, 0x100
jl 0x45b31f
xor ecx, ecx
xor edx, edx
xor eax, eax
mov ebx, ecx
sub ebx, eax
test ebx, ebx
jge 0x45b359
neg ebx
mov byte [edx + eax + 0x6b73e0], bl
inc eax
cmp eax, 0x100
jl 0x45b34f
add edx, 0x100
inc ecx
cmp ecx, 0x100
jl 0x45b34d
xor eax, eax
xor ecx, ecx
xor edi, edi
mov ebp, eax
xor ebx, ebx
mov dword [esp + 0x28], eax
mov eax, 0x80808081
imul ebx
add edx, ebx
sar edx, 7
mov esi, ebx
sar esi, 0x1f
sub edx, esi
add edx, edx
neg edx
add edx, ebp
mov byte [ecx + edi + 0x6c74e0], dl
inc ebp
add ebx, dword [esp + 0x28]
inc edi
cmp edi, 0x100
jl 0x45b385
mov eax, dword [esp + 0x28]
add ecx, 0x100
inc eax
cmp eax, 0x100
jl 0x45b37b
xor ebp, ebp
xor ebx, ebx
xor ecx, ecx
mov edx, ebp
shl edx, 0xa
movzx eax, word [edx + ecx*4 + 0x62ecde]
movzx eax, al
mov byte [ebx + ecx + 0x747ce0], al
inc ecx
cmp ecx, 0x100
jge 0x45b415
cmp ecx, 0x80
jl 0x45b3d0
jle 0x45b40a
lea edi, [ecx + ecx]
neg edi
movzx eax, word [edx + edi*2 + 0x62f0de]
sub eax, edi
dec eax
movzx eax, al
jmp 0x45b3db
jne 0x45b3db
mov eax, ebp
and eax, 0xff
jmp 0x45b3db
add ebx, 0x100
inc ebp
cmp ebp, 0x100
jl 0x45b3c9
xor ebx, ebx
mov ecx, 0x100
xor esi, esi
xor ebp, ebp
mov eax, ebp
cdq
idiv ecx
cmp eax, 0xff
jle 0x45b440
mov eax, 0xff
mov byte [ebx + esi + 0x6d75e0], al
add ebp, 0x100
inc esi
cmp esi, 0x100
jl 0x45b42f
add ebx, 0x100
dec ecx
test ecx, ecx
jg 0x45b42b
xor ecx, ecx
xor ebp, ebp
lea esi, [ecx + 1]
shl ecx, 8
mov ebx, 0xff00
mov eax, ebx
cdq
idiv esi
neg eax
add eax, 0xff
test eax, eax
jge 0x45b482
xor eax, eax
mov byte [ecx + ebp + 0x6e76e0], al
add ebx, 0xffffff00
inc ebp
cmp ebp, 0x100
jl 0x45b470
mov ecx, esi
cmp esi, 0x100
jl 0x45b463
xor ecx, ecx
xor edx, edx
xor ebp, ebp
mov ebx, ecx
lea eax, [ebx - 0xff]
cmp eax, 0xff
jle 0x45b4be
mov eax, 0xff
jmp 0x45b4c4
test eax, eax
jge 0x45b4c4
xor eax, eax
mov byte [edx + ebp + 0x737be0], al
inc ebx
inc ebp
cmp ebp, 0x100
jl 0x45b4aa
add edx, 0x100
inc ecx
cmp ecx, 0x100
jl 0x45b4a6
xor ebp, ebp
xor eax, eax
xor ebx, ebx
xor ecx, ecx
xor edx, edx
mov edi, 0x200
mov dword [esp + 0xc], eax
mov eax, edi
xor edi, edi
xor esi, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
cmp ebp, 0x80
jge 0x45b517
movsx eax, word [esi + ebx*2 + 0x62ecde]
jmp 0x45b530
jle 0x45b52c
movsx eax, word [esi + edx*2 + 0x62f0de]
sub eax, dword [esp + 0x10]
add eax, 0xff
jmp 0x45b530
jne 0x45b530
mov eax, edi
mov byte [ecx + edi + 0x6f77e0], al
add esi, 0x400
inc edi
cmp edi, 0x100
jl 0x45b505
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
add ebx, 2
add ecx, 0x100
add edx, 0xfffffffe
add eax, 0xfffffffe
inc ebp
cmp ebp, 0x100
jl 0x45b4f9
xor edx, edx
fld qword [0x58de68]
cmp edx, 0x80
jl 0x45b582
xor ebx, ebx
mov ecx, edx
shl ecx, 8
jmp 0x45b60e
xor ebx, ebx
mov ecx, edx
shl ecx, 8
mov eax, ebx
neg eax
add eax, 0x100
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fsqrt
fsubr st(1)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0x14]
fldcw word [esp]
mov ebp, dword [esp + 0x14]
mov eax, edx
imul eax, ebp
add ebp, ebp
add ebp, ebp
add ebp, ebp
add ebp, ebp
add ebp, ebp
add ebp, ebp
add ebp, ebp
neg ebp
add eax, ebp
sar eax, 0xf
add eax, ebx
cmp eax, 0xff
jle 0x45b5e7
mov eax, 0xff
jmp 0x45b5ed
test eax, eax
jge 0x45b5ed
xor eax, eax
mov byte [ecx + ebx + 0x7078e0], al
inc ebx
cmp ebx, 0x100
jge 0x45b6d1
cmp edx, 0x80
jl 0x45b589
cmp ebx, 0x20
jg 0x45b67c
mov eax, ebx
neg eax
add eax, 0x100
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fsqrt
lea ebp, [ebx + ebx]
add ebp, ebp
add ebp, ebp
neg ebp
add ebp, 0x300
mov dword [esp + 0x1c], ebp
fild dword [esp + 0x1c]
fmulp st(1)
fsubr st(1)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0x14]
fldcw word [esp]
mov edi, dword [esp + 0x14]
mov eax, edx
imul eax, edi
add edi, edi
add edi, edi
add edi, edi
add edi, edi
add edi, edi
add edi, edi
add edi, edi
neg edi
add eax, edi
sar eax, 0xf
add eax, ebx
jmp 0x45b5d9
mov eax, ebx
neg eax
add eax, 0x100
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fsqrt
fsubr st(1)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0x14]
fldcw word [esp]
mov ebp, dword [esp + 0x14]
mov eax, edx
imul eax, ebp
add ebp, ebp
add ebp, ebp
add ebp, ebp
add ebp, ebp
add ebp, ebp
add ebp, ebp
add ebp, ebp
neg ebp
add eax, ebp
sar eax, 0x10
add eax, ebx
jmp 0x45b5d9
inc edx
cmp edx, 0x100
jl 0x45b56e
fstp st(0)
xor ecx, ecx
xor edi, edi
xor eax, eax
mov edx, 0x1fe
xor ebx, ebx
mov dword [esp + 0x28], ebx
xor esi, esi
xor ebp, ebp
lea ebx, [eax - 0xfe01]
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], edi
cmp ecx, 0x80
jge 0x45b728
test ecx, ecx
jne 0x45b717
xor eax, eax
jmp 0x45b749
mov eax, ebx
cdq
mov edi, dword [esp + 0x10]
idiv edi
test eax, eax
jge 0x45b749
xor eax, eax
jmp 0x45b749
cmp ecx, 0xff
je 0x45b831
mov eax, ebp
cdq
mov edi, dword [esp + 0x24]
idiv edi
cmp eax, 0xff
jle 0x45b749
mov eax, 0xff
mov edx, dword [esp + 0x28]
mov byte [edx + esi + 0x7179e0], al
add ebp, 0xff
add ebx, 0xff
inc esi
cmp esi, 0x100
jl 0x45b707
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
add edi, 2
add eax, 0x1fe
add edx, 0xfffffffe
add dword [esp + 0x28], 0x100
inc ecx
cmp ecx, 0x100
jl 0x45b6f1
xor edx, edx
xor ecx, ecx
xor ebp, ebp
mov ebx, edx
lea eax, [ebx - 0x100]
cmp eax, 0xff
jle 0x45b7b1
mov eax, 0xff
jmp 0x45b7b7
test eax, eax
jge 0x45b7b7
xor eax, eax
mov byte [ecx + ebp + 0x727ae0], al
inc ebx
inc ebp
cmp ebp, 0x100
jl 0x45b79d
add edx, 2
add ecx, 0x100
cmp ecx, 0x10000
jl 0x45b799
xor ebp, ebp
xor ebx, ebx
mov ecx, 0xffffff01
xor edx, edx
xor edi, edi
cmp ebp, 0x80
jge 0x45b7fa
cmp edi, ebx
jle 0x45b7f6
mov eax, ebx
jmp 0x45b804
mov eax, edi
jmp 0x45b804
cmp edi, ecx
jle 0x45b802
mov eax, edi
jmp 0x45b804
mov eax, ecx
mov byte [edx + edi + 0x757de0], al
inc edi
cmp edi, 0x100
jl 0x45b7e6
add ebx, 2
add ecx, 2
add edx, 0x100
inc ebp
cmp ebp, 0x100
jl 0x45b7e4
add esp, 0x2c
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, 0xff
jmp 0x45b749