Function at 0x446731
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push 0x14
mov eax, 0x71293a
call fcn.00648b1c
mov esi, dword [ebp + 8]
mov edi, dword [esi + 0xc]
push str.DDR3
lea ebx, [esi + 0x1c]
push 0x20
push ebx
call fcn.0067eece
fld dword [0x722fc4]
fstp dword [esi + 0x240]
add esp, 0xc
mov dword [esi + 0x18], 9
test byte [edi + 6], 2
je 0x44678b
fld dword [0x725260]
push str.DDR3L
push 0x20
fstp dword [esi + 0x240]
push ebx
call fcn.0067eece
add esp, 0xc
test byte [edi + 6], 4
je 0x4467ad
fld dword [0x723080]
push str.DDR3L
push 0x20
fstp dword [esi + 0x240]
push ebx
call fcn.0067eece
add esp, 0xc
movzx eax, byte [edi + 3]
and eax, 0xf
dec eax
je 0x44688f
dec eax
je 0x446870
dec eax
je 0x44684b
dec eax
je 0x446826
dec eax
je 0x4467fe
dec eax
jne 0x4468bb
push 0x7266f4
lea eax, [esi + 0x1c4]
push 0x20
push eax
call fcn.00403c35
fld dword [0x7266f0]
mov dword [esi + 0x1e4], 0x20006
jmp 0x4468b2
push str.Mini_RDIMM
lea eax, [esi + 0x1c4]
push 0x20
push eax
call fcn.00403c35
fld dword [0x7266f0]
mov dword [esi + 0x1e4], 0x20005
jmp 0x4468b2
push 0x7266d8
lea eax, [esi + 0x1c4]
push 0x20
push eax
call fcn.00403c35
fld dword [0x7266d4]
mov dword [esi + 0x1e4], 0x20004
jmp 0x4468b2
push 0x7266b8
lea eax, [esi + 0x1c4]
push 0x20
push eax
call fcn.00403c35
fld dword [0x7266d0]
mov dword [esi + 0x1e4], 0x20003
jmp 0x4468b2
push str.UDIMM
lea eax, [esi + 0x1c4]
push 0x20
push eax
call fcn.00403c35
mov dword [esi + 0x1e4], 0x20002
jmp 0x4468ac
push 0x7266a4
lea eax, [esi + 0x1c4]
push 0x20
push eax
call fcn.00403c35
mov dword [esi + 0x1e4], 0x20001
fld dword [0x7266a0]
fstp dword [esi + 0x1e8]
add esp, 0xc
movzx eax, byte [edi + 4]
push 7
shr eax, 4
pop ebx
and eax, ebx
xor edx, edx
sub eax, edx
je 0x4468fa
dec eax
je 0x4468ee
dec eax
je 0x4468e2
dec eax
jne 0x446904
mov dword [esi + 0x1fc], 0x40
jmp 0x446904
mov dword [esi + 0x1fc], 0x20
jmp 0x446904
mov dword [esi + 0x1fc], 0x10
jmp 0x446904
mov dword [esi + 0x1fc], 8
movzx eax, byte [edi + 4]
or dword [ebp + 8], 0xffffffff
or dword [ebp - 0x10], 0xffffffff
or dword [ebp - 0x14], 0xffffffff
and eax, 0xf
cmp eax, 9
ja case.default.0x44691c
jmp dword [eax*4 + 0x447145]
mov dword [ebp + 8], 0x100
jmp case.default.0x44691c
mov dword [ebp + 8], 0x200
jmp case.default.0x44691c
mov dword [ebp + 8], 0x400
jmp case.default.0x44691c
mov dword [ebp + 8], 0x800
jmp case.default.0x44691c
mov dword [ebp + 8], 0x1000
jmp case.default.0x44691c
mov dword [ebp + 8], 0x2000
jmp case.default.0x44691c
mov dword [ebp + 8], 0x4000
jmp case.default.0x44691c
mov dword [ebp + 8], 0x8000
jmp case.default.0x44691c
mov dword [ebp + 8], 0x10000
jmp case.default.0x44691c
mov dword [ebp + 8], 0x20000
movzx eax, byte [edi + 7]
mov ecx, eax
and ecx, ebx
sub ecx, edx
je 0x4469ab
dec ecx
je 0x4469a2
dec ecx
je 0x446999
dec ecx
jne 0x4469b2
mov dword [ebp - 0x14], 0x20
jmp 0x4469b2
mov dword [ebp - 0x14], 0x10
jmp 0x4469b2
mov dword [ebp - 0x14], 8
jmp 0x4469b2
mov dword [ebp - 0x14], 4
shr eax, 3
and eax, ebx
sub eax, edx
je 0x4469f7
dec eax
je 0x4469eb
dec eax
je 0x4469df
dec eax
je 0x4469d3
dec eax
jne 0x446a01
mov dword [esi + 0x200], 8
jmp 0x446a01
mov dword [esi + 0x200], 4
jmp 0x446a01
mov dword [esi + 0x200], 3
jmp 0x446a01
mov dword [esi + 0x200], 2
jmp 0x446a01
mov dword [esi + 0x200], 1
movzx eax, byte [edi + 8]
and eax, ebx
sub eax, edx
je 0x446a2f
dec eax
je 0x446a26
dec eax
je 0x446a1d
dec eax
jne 0x446a36
mov dword [ebp - 0x10], 0x40
jmp 0x446a36
mov dword [ebp - 0x10], 0x20
jmp 0x446a36
mov dword [ebp - 0x10], 0x10
jmp 0x446a36
mov dword [ebp - 0x10], 8
push dword [ebp + 8]
call fcn.005a134f
pop ecx
test eax, eax
je 0x446a8f
push dword [ebp - 0x10]
call fcn.005a134f
pop ecx
test eax, eax
je 0x446a8f
push dword [ebp - 0x14]
call fcn.005a134f
pop ecx
test eax, eax
je 0x446a8f
mov ebx, dword [esi + 0x200]
push ebx
call fcn.005a134f
pop ecx
test eax, eax
je 0x446a8f
mov eax, dword [ebp - 0x10]
cdq
idiv dword [ebp - 0x14]
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 + 0xa]
mov dword [ebp + 8], eax
movzx eax, byte [edi + 0xb]
fild dword [ebp + 8]
mov dword [ebp + 8], eax
movzx eax, byte [edi + 0xc]
fild dword [ebp + 8]
mov dword [ebp + 8], eax
fdivp st(1)
fstp dword [ebp - 0x14]
fild dword [ebp + 8]
fmul dword [ebp - 0x14]
fst 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
fmul qword [0x724288]
fdiv qword [0x78d608]
fadd st(1)
call fcn.00648a30
fld qword [0x721870]
fdivrp st(2)
mov ebx, eax
imul ebx, ebx, 0x64
faddp st(1)
mov dword [esi + 0x208], ebx
call fcn.00648a30
push ebx
push str.PC3__d
mov dword [esi + 0x210], eax
lea eax, [esi + 0x3c]
push 0x20
push eax
call fcn.00403c35
add esp, 0x10
test byte [edi + 0xe], 1
push 0xc
pop ebx
je 0x446b67
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
and dword [ebp - 4], 0
test eax, eax
je 0x446b4c
mov ecx, eax
call fcn.0040bdc2
jmp 0x446b4e
xor eax, eax
fld dword [0x723004]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0xe], 2
je 0x446ba6
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x446b8b
mov ecx, eax
call fcn.0040bdc2
jmp 0x446b8d
xor eax, eax
fld dword [0x723058]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0xe], 4
je 0x446be5
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x446bca
mov ecx, eax
call fcn.0040bdc2
jmp 0x446bcc
xor eax, eax
fld dword [0x723090]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x214]
push eax
call fcn.00444328
test byte [edi + 0xe], 8
je 0x446c24
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x446c09
mov ecx, eax
call fcn.0040bdc2
jmp 0x446c0b
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 + 0xe], 0x10
je 0x446c63
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 4
test eax, eax
je 0x446c48
mov ecx, eax
call fcn.0040bdc2
jmp 0x446c4a
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 + 0xe], 0x20
je 0x446ca2
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 5
test eax, eax
je 0x446c87
mov ecx, eax
call fcn.0040bdc2
jmp 0x446c89
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 + 0xe], 0x40
je 0x446ce1
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 6
test eax, eax
je 0x446cc6
mov ecx, eax
call fcn.0040bdc2
jmp 0x446cc8
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 + 0xe], 0x80
je 0x446d20
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 7
test eax, eax
je 0x446d05
mov ecx, eax
call fcn.0040bdc2
jmp 0x446d07
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 + 0xf], 1
je 0x446d5f
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 8
test eax, eax
je 0x446d44
mov ecx, eax
call fcn.0040bdc2
jmp 0x446d46
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 + 0xf], 2
je 0x446d9e
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 9
test eax, eax
je 0x446d83
mov ecx, eax
call fcn.0040bdc2
jmp 0x446d85
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 + 0xf], 4
je 0x446ddd
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 0xa
test eax, eax
je 0x446dc2
mov ecx, eax
call fcn.0040bdc2
jmp 0x446dc4
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 + 0xf], 8
je 0x446e1c
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 0xb
test eax, eax
je 0x446e01
mov ecx, eax
call fcn.0040bdc2
jmp 0x446e03
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 + 0xf], 0x10
je 0x446e57
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], ebx
test eax, eax
je 0x446e3c
mov ecx, eax
call fcn.0040bdc2
jmp 0x446e3e
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 + 0xf], 0x20
je 0x446e96
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 0xd
test eax, eax
je 0x446e7b
mov ecx, eax
call fcn.0040bdc2
jmp 0x446e7d
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 + 0xf], 0x40
je 0x446ed5
push ebx
call fcn.006484ac
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 0xe
test eax, eax
je 0x446eba
mov ecx, eax
call fcn.0040bdc2
jmp 0x446ebc
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
movzx eax, byte [edi + 0x10]
mov ecx, dword [esi + 0x20c]
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fmul dword [ebp - 0x14]
fstp dword [ebp - 0x18]
cmp ecx, 0x190
je 0x446f65
cmp ecx, 0x215
je 0x446f4f
cmp ecx, 0x29b
je 0x446f2d
cmp ecx, 0x320
jne 0x446f89
cmp eax, 0x50
je 0x446f5e
cmp eax, 0x5a
je 0x446f26
cmp eax, 0x64
je 0x446f41
cmp eax, 0x6e
jne 0x446f89
push 0x726634
jmp 0x446f7b
push 0x726630
jmp 0x446f7b
cmp eax, 0x54
je 0x446f48
cmp eax, 0x60
je 0x446f5e
cmp eax, 0x6c
je 0x446f26
cmp eax, 0x78
jne 0x446f89
push 0x72662c
jmp 0x446f7b
push 0x726628
jmp 0x446f7b
cmp eax, 0x5a
je 0x446f6f
cmp eax, 0x69
je 0x446f48
cmp eax, 0x78
jne 0x446f89
push 0x726624
jmp 0x446f7b
cmp eax, 0x64
je 0x446f76
cmp eax, 0x78
jne 0x446f89
push 0x726620
jmp 0x446f7b
push str.DEGFJHK
lea eax, [esi + 0x3c]
push 0x20
push eax
call fcn.00403c7f
add esp, 0xc
mov eax, dword [esi + 0x214]
and dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], eax
call fcn.0040c24b
jmp 0x446fe4
fldz
fcomp dword [ecx + 4]
fnstsw ax
test ah, 5
jp 0x446fdc
fld dword [ebp - 0x18]
fdiv dword [ecx + 4]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
fdivr qword [0x78d7d0]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
fstp dword [ecx + 8]
fld dword [ebp - 0x10]
fld dword [ebp + 8]
fcompp
fnstsw ax
test ah, 5
jp 0x446fdc
fld dword [ebp + 8]
fstp dword [ecx + 8]
lea ecx, [ebp - 0x20]
call fcn.00468429
mov ecx, eax
test ecx, ecx
jne 0x446fa0
movzx eax, byte [edi + 0x12]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fld dword [ebp - 0x14]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esi + 0x218]
movzx eax, byte [edi + 0x13]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fld st(1)
fmulp st(1)
fstp dword [esi + 0x21c]
movzx eax, byte [edi + 0x14]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fld st(1)
fmulp st(1)
fstp dword [esi + 0x220]
movzx eax, byte [edi + 0x15]
movzx ecx, byte [edi + 0x16]
and eax, 0xf
shl eax, 8
add eax, ecx
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fld st(1)
fmulp st(1)
fstp dword [esi + 0x224]
movzx eax, byte [edi + 0x15]
movzx ecx, byte [edi + 0x17]
shr eax, 4
shl eax, 8
add eax, ecx
mov dword [ebp + 8], eax
fimul dword [ebp + 8]
fstp dword [esi + 0x228]
movzx eax, byte [edi + 0x3c]
and eax, 0x1f
mov dword [esi + 0x1ec], eax
movzx ebx, byte [edi + 0x75]
and ebx, 0x7f
cmp ebx, 0xf
jle 0x447083
push 0xf
pop ebx
xor eax, eax
test ebx, ebx
jle 0x44709a
push ebx
lea eax, [esi + 0x5c]
push 0x7f
push eax
call fcn.0066f220
add esp, 0xc
mov eax, ebx
mov cl, byte [edi + 0x76]
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 + 0x78]
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 + 0x79]
mov al, cl
shr al, 4
imul dl
and cl, 0xf
add al, cl
mov byte [esi + 0x23d], al
movzx eax, byte [edi + 0x7a]
movzx ecx, byte [edi + 0x7b]
shl eax, 8
add eax, ecx
movzx ecx, byte [edi + 0x7c]
shl eax, 8
add eax, ecx
movzx ecx, byte [edi + 0x7d]
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, [esi + 0x17c]
sub edi, 0xffffff80
pop edx
mov cl, byte [edi]
cmp cl, 0xff
sete bl
dec bl
and bl, cl
inc edi
mov byte [eax], bl
inc eax
dec edx
jne 0x447122
mov byte [esi + 0x18e], dl
call fcn.00648ae5
ret 4