Function at 0x445d15
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push 0x10
mov eax, 0x712889
call fcn.00648b1c
mov esi, dword [ebp + 8]
mov edi, dword [esi + 0xc]
push 0x7266c8
push 0x20
pop ebx
lea eax, [esi + 0x1c]
push ebx
push eax
call fcn.0067eece
fld dword [0x723080]
fstp dword [esi + 0x240]
mov dword [esi + 0x18], 0xa
movzx eax, byte [edi + 3]
and eax, 0xf
add esp, 0xc
dec eax
je 0x445dc6
dec eax
je 0x445da8
dec eax
je 0x445d84
dec eax
jne 0x445df1
push str.LRDIMM
lea eax, [esi + 0x1c4]
push ebx
push eax
call fcn.00403c35
mov dword [esi + 0x1e4], 0x20004
jmp 0x445de2
push 0x7266b8
lea eax, [esi + 0x1c4]
push ebx
push eax
call fcn.00403c35
fld dword [0x7266b4]
mov dword [esi + 0x1e4], 0x20003
jmp 0x445de8
push str.UDIMM
lea eax, [esi + 0x1c4]
push ebx
push eax
call fcn.00403c35
mov dword [esi + 0x1e4], 0x20002
jmp 0x445de2
push 0x7266a4
lea eax, [esi + 0x1c4]
push ebx
push eax
call fcn.00403c35
mov dword [esi + 0x1e4], 0x20001
fld dword [0x7266a0]
fstp dword [esi + 0x1e8]
add esp, 0xc
or eax, 0xffffffff
mov dword [ebp + 8], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], eax
movzx eax, byte [edi + 4]
and eax, 0xf
cmp eax, 9
ja case.default.0x445e0c
jmp dword [eax*4 + 0x446709]
mov dword [ebp + 8], 0x100
jmp case.default.0x445e0c
mov dword [ebp + 8], 0x200
jmp case.default.0x445e0c
mov dword [ebp + 8], 0x400
jmp case.default.0x445e0c
mov dword [ebp + 8], 0x800
jmp case.default.0x445e0c
mov dword [ebp + 8], 0x1000
jmp case.default.0x445e0c
mov dword [ebp + 8], 0x2000
jmp case.default.0x445e0c
mov dword [ebp + 8], 0x4000
jmp case.default.0x445e0c
mov dword [ebp + 8], 0x8000
jmp case.default.0x445e0c
mov dword [ebp + 8], 0x10000
jmp case.default.0x445e0c
mov dword [ebp + 8], 0x20000
movzx eax, byte [edi + 6]
shr eax, 4
and eax, 7
xor edx, edx
sub eax, edx
push 8
pop ebx
je 0x445e9e
dec eax
je 0x445e95
dec eax
je 0x445e8c
dec eax
jne 0x445ea5
mov dword [ebp - 0x10], ebx
jmp 0x445ea5
mov dword [ebp - 0x10], 4
jmp 0x445ea5
mov dword [ebp - 0x10], 2
jmp 0x445ea5
mov dword [ebp - 0x10], 1
movzx ecx, byte [edi + 0xc]
mov eax, ecx
and eax, 7
sub eax, edx
je 0x445ed2
dec eax
je 0x445ecd
dec eax
je 0x445ec4
dec eax
jne 0x445ed9
mov dword [ebp - 0x1c], 0x20
jmp 0x445ed9
mov dword [ebp - 0x1c], 0x10
jmp 0x445ed9
mov dword [ebp - 0x1c], ebx
jmp 0x445ed9
mov dword [ebp - 0x1c], 4
shr ecx, 3
and ecx, 7
sub ecx, edx
je 0x445f10
dec ecx
je 0x445f04
dec ecx
je 0x445ef8
dec ecx
jne 0x445f1a
mov dword [esi + 0x200], 4
jmp 0x445f1a
mov dword [esi + 0x200], 3
jmp 0x445f1a
mov dword [esi + 0x200], 2
jmp 0x445f1a
mov dword [esi + 0x200], 1
mov ebx, dword [esi + 0x200]
push ebx
call fcn.005a134f
pop ecx
test eax, eax
je 0x445f4b
push dword [ebp - 0x10]
call fcn.005a134f
pop ecx
test eax, eax
je 0x445f4b
mov al, byte [edi + 6]
and al, 3
cmp al, 2
jne 0x445f4b
imul ebx, dword [ebp - 0x10]
mov dword [esi + 0x200], ebx
movzx eax, byte [edi + 0xd]
and eax, 7
sub eax, 0
je 0x445f7b
dec eax
je 0x445f72
dec eax
je 0x445f69
dec eax
jne 0x445f82
mov dword [ebp - 0x18], 0x40
jmp 0x445f82
mov dword [ebp - 0x18], 0x20
jmp 0x445f82
mov dword [ebp - 0x18], 0x10
jmp 0x445f82
mov dword [ebp - 0x18], 8
push dword [ebp + 8]
call fcn.005a134f
pop ecx
test eax, eax
je 0x445fdb
push dword [ebp - 0x18]
call fcn.005a134f
pop ecx
test eax, eax
je 0x445fdb
push dword [ebp - 0x1c]
call fcn.005a134f
pop ecx
test eax, eax
je 0x445fdb
mov ebx, dword [esi + 0x200]
push ebx
call fcn.005a134f
pop ecx
test eax, eax
je 0x445fdb
mov eax, dword [ebp - 0x18]
cdq
idiv dword [ebp - 0x1c]
mov ecx, eax
mov eax, dword [ebp + 8]
cdq
and edx, 7
add eax, edx
sar eax, 3
imul ecx, eax
imul ecx, ebx
mov dword [esi + 0x1bc], ecx
movzx eax, byte [edi + 0xe]
shr eax, 7
mov dword [esi + 0x244], eax
movsx eax, byte [edi + 0x7d]
mov dword [ebp + 8], eax
movzx eax, byte [edi + 0x12]
fild dword [ebp + 8]
fmul qword [0x720310]
fstp dword [ebp + 8]
fld dword [ebp + 8]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fmul qword [0x78d418]
faddp st(1)
fstp dword [ebp + 8]
fld dword [ebp + 8]
fdivr qword [0x78d7d0]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fld qword [0x78d428]
fadd st(1), st(0)
fxch st(1)
call fcn.00648a30
fld dword [ebp + 8]
fadd st(0), st(0)
mov dword [esi + 0x20c], eax
fld qword [0x724288]
fmul st(1)
fdiv qword [0x78d608]
faddp st(2)
fxch st(1)
call fcn.00648a30
imul eax, eax, 0x64
mov dword [esi + 0x208], eax
call fcn.00648a30
push eax
push 0x726640
lea eax, [esi + 0x3c]
push 0x20
push eax
call fcn.00403c35
add esp, 0x10
test byte [edi + 0x14], 1
push 0xc
pop ebx
je 0x4460b4
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
and dword [ebp - 4], 0
test eax, eax
je 0x446099
mov ecx, eax
call fcn.0040bdc2
jmp 0x44609b
xor eax, eax
fld dword [0x724270]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x14], 2
je 0x4460f3
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x4460d8
mov ecx, eax
call fcn.0040bdc2
jmp 0x4460da
xor eax, eax
fld dword [0x723248]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x14], 4
je 0x446132
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x446117
mov ecx, eax
call fcn.0040bdc2
jmp 0x446119
xor eax, eax
fld dword [0x72520c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x14], 8
je 0x446171
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x446156
mov ecx, eax
call fcn.0040bdc2
jmp 0x446158
xor eax, eax
fld dword [0x72329c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x14], 0x10
je 0x4461b0
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 4
test eax, eax
je 0x446195
mov ecx, eax
call fcn.0040bdc2
jmp 0x446197
xor eax, eax
fld dword [0x725228]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x14], 0x20
je 0x4461ef
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 5
test eax, eax
je 0x4461d4
mov ecx, eax
call fcn.0040bdc2
jmp 0x4461d6
xor eax, eax
fld dword [0x72330c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x14], 0x40
je 0x44622e
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 6
test eax, eax
je 0x446213
mov ecx, eax
call fcn.0040bdc2
jmp 0x446215
xor eax, eax
fld dword [0x725200]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x14], 0x80
je 0x44626d
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 7
test eax, eax
je 0x446252
mov ecx, eax
call fcn.0040bdc2
jmp 0x446254
xor eax, eax
fld dword [0x7251f8]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x15], 1
je 0x4462ac
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 8
test eax, eax
je 0x446291
mov ecx, eax
call fcn.0040bdc2
jmp 0x446293
xor eax, eax
fld dword [0x7251f0]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x15], 2
je 0x4462eb
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 9
test eax, eax
je 0x4462d0
mov ecx, eax
call fcn.0040bdc2
jmp 0x4462d2
xor eax, eax
fld dword [0x723300]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x15], 4
je 0x44632a
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xa
test eax, eax
je 0x44630f
mov ecx, eax
call fcn.0040bdc2
jmp 0x446311
xor eax, eax
fld dword [0x7251e4]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x15], 8
je 0x446369
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xb
test eax, eax
je 0x44634e
mov ecx, eax
call fcn.0040bdc2
jmp 0x446350
xor eax, eax
fld dword [0x7251e0]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x15], 0x10
je 0x4463a4
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], ebx
test eax, eax
je 0x446389
mov ecx, eax
call fcn.0040bdc2
jmp 0x44638b
xor eax, eax
fld dword [0x725204]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x15], 0x20
je 0x4463e3
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xd
test eax, eax
je 0x4463c8
mov ecx, eax
call fcn.0040bdc2
jmp 0x4463ca
xor eax, eax
fld dword [0x723354]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x15], 0x40
je 0x446422
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xe
test eax, eax
je 0x446407
mov ecx, eax
call fcn.0040bdc2
jmp 0x446409
xor eax, eax
fld dword [0x7251f4]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x15], 0x80
je 0x446461
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xf
test eax, eax
je 0x446446
mov ecx, eax
call fcn.0040bdc2
jmp 0x446448
xor eax, eax
fld dword [0x7251ec]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x16], 1
je 0x4464a0
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0x10
test eax, eax
je 0x446485
mov ecx, eax
call fcn.0040bdc2
jmp 0x446487
xor eax, eax
fld dword [0x7251dc]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0x16], 2
je 0x4464df
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0x11
test eax, eax
je 0x4464c4
mov ecx, eax
call fcn.0040bdc2
jmp 0x4464c6
xor eax, eax
fld dword [0x78d808]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
movsx eax, byte [edi + 0x7b]
and dword [ebp - 0x10], 0
mov dword [ebp - 0x1c], eax
movzx eax, byte [edi + 0x18]
fild dword [ebp - 0x1c]
lea ecx, [ebp - 0x14]
fmul qword [0x720310]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
mov eax, dword [esi + 0x214]
mov dword [ebp - 0x14], eax
fmul qword [0x78d418]
faddp st(1)
fstp dword [ebp - 0x18]
call fcn.0040c24b
jmp 0x446565
fldz
fcomp dword [ecx + 4]
fnstsw ax
test ah, 5
jp 0x44655d
fld dword [ebp - 0x18]
fdiv dword [ecx + 4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fdivr qword [0x78d7d0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fstp dword [ecx + 8]
fld dword [ebp - 0x1c]
fld dword [ebp + 8]
fcompp
fnstsw ax
test ah, 5
jp 0x44655d
fld dword [ebp + 8]
fstp dword [ecx + 8]
lea ecx, [ebp - 0x14]
call fcn.00468429
mov ecx, eax
test ecx, ecx
jne 0x446521
movsx eax, byte [edi + 0x7a]
mov dword [ebp + 8], eax
lea eax, [esi + 0x218]
fild dword [ebp + 8]
fld qword [0x720310]
fmul st(1), st(0)
fxch st(1)
fstp dword [ebp + 8]
fld dword [ebp + 8]
fstp dword [eax]
movzx ecx, byte [edi + 0x19]
mov dword [ebp - 0x1c], ecx
fild dword [ebp - 0x1c]
fld qword [0x78d418]
fmul st(1), st(0)
fld dword [ebp + 8]
faddp st(2)
fxch st(1)
fstp dword [eax]
movsx eax, byte [edi + 0x79]
mov dword [ebp + 8], eax
lea eax, [esi + 0x220]
fild dword [ebp + 8]
fmulp st(2)
fxch st(1)
fstp dword [ebp + 8]
fld dword [ebp + 8]
fstp dword [eax]
movzx ecx, byte [edi + 0x1a]
mov dword [ebp - 0x1c], ecx
fild dword [ebp - 0x1c]
fmul st(1)
fadd dword [ebp + 8]
fstp dword [eax]
movzx eax, byte [edi + 0x1b]
movzx ecx, byte [edi + 0x1c]
and eax, 0xf
shl eax, 8
add eax, ecx
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fmul st(1)
fstp dword [esi + 0x224]
movzx eax, byte [edi + 0x1b]
movzx ecx, byte [edi + 0x1d]
shr eax, 4
shl eax, 8
add eax, ecx
cmp dword [esi + 0x10], 0x200
mov dword [ebp + 8], eax
fimul dword [ebp + 8]
fstp dword [esi + 0x228]
jl 0x4466ff
movzx ebx, byte [edi + 0x140]
and ebx, 0x7f
cmp ebx, 0xf
jle 0x44662e
push 0xf
pop ebx
xor eax, eax
test ebx, ebx
jle 0x446645
push ebx
lea eax, [esi + 0x5c]
push 0x7f
push eax
call fcn.0066f220
add esp, 0xc
mov eax, ebx
mov cl, byte [edi + 0x141]
mov byte [eax + esi + 0x5c], cl
lea eax, [esi + 0x7c]
push eax
lea eax, [esi + 0x5c]
push eax
call fcn.00442850
mov cl, byte [edi + 0x143]
mov al, cl
shr al, 4
mov dl, 0xa
imul dl
and cl, 0xf
add al, cl
mov byte [esi + 0x23c], al
mov cl, byte [edi + 0x144]
mov al, cl
shr al, 4
imul dl
and cl, 0xf
add al, cl
mov byte [esi + 0x23d], al
movzx eax, byte [edi + 0x145]
movzx ecx, byte [edi + 0x146]
shl eax, 8
add eax, ecx
movzx ecx, byte [edi + 0x147]
shl eax, 8
add eax, ecx
movzx ecx, byte [edi + 0x148]
shl eax, 8
add eax, ecx
push eax
push str._08X
mov dword [esi + 0x1c0], eax
lea eax, [esi + 0x19c]
push 0x20
push eax
call fcn.00403c35
add esp, 0x18
push 0x12
lea eax, [edi + 0x149]
lea ecx, [esi + 0x17c]
pop edi
mov dl, byte [eax]
cmp dl, 0xff
sete bl
dec bl
and bl, dl
inc eax
mov byte [ecx], bl
inc ecx
dec edi
jne 0x4466e5
mov byte [esi + 0x18e], 0
call fcn.00648ae5
ret 4