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

Disassembly:
push 0x14
mov eax, 0x57c0b8
call fcn.0055ccd2
mov esi, dword [ebp + 8]
mov edi, dword [esi + 0xc]
push 0x586d30
lea ebx, [esi + 0x1c]
push 0x20
push ebx
call fcn.0055c215
fld dword [0x586b88]
fstp dword [esi + 0x368]
add esp, 0xc
mov dword [esi + 0x18], 9
test byte [edi + 6], 2
je 0x438994
fld dword [0x586d2c]
push str.DDR3L
push 0x20
fstp dword [esi + 0x368]
push ebx
call fcn.0055c215
add esp, 0xc
test byte [edi + 6], 4
je 0x4389b6
fld dword [0x586cac]
push str.DDR3L
push 0x20
fstp dword [esi + 0x368]
push ebx
call fcn.0055c215
add esp, 0xc
movzx eax, byte [edi + 3]
and eax, 0xf
dec eax
je 0x438a98
dec eax
je 0x438a79
dec eax
je 0x438a54
dec eax
je 0x438a2f
dec eax
je 0x438a07
dec eax
jne 0x438ac4
push str.Mini_UDIMM
lea eax, [esi + 0x2e4]
push 0x20
push eax
call fcn.0045ea70
fld dword [0x586a98]
mov dword [esi + 0x304], 0x20006
jmp 0x438abb
push str.Mini_RDIMM
lea eax, [esi + 0x2e4]
push 0x20
push eax
call fcn.0045ea70
fld dword [0x586a98]
mov dword [esi + 0x304], 0x20005
jmp 0x438abb
push 0x586d18
lea eax, [esi + 0x2e4]
push 0x20
push eax
call fcn.0045ea70
fld dword [0x586d14]
mov dword [esi + 0x304], 0x20004
jmp 0x438abb
push str.SO_DIMM
lea eax, [esi + 0x2e4]
push 0x20
push eax
call fcn.0045ea70
fld dword [0x586d10]
mov dword [esi + 0x304], 0x20003
jmp 0x438abb
push str.UDIMM
lea eax, [esi + 0x2e4]
push 0x20
push eax
call fcn.0045ea70
mov dword [esi + 0x304], 0x20002
jmp 0x438ab5
push 0x586be0
lea eax, [esi + 0x2e4]
push 0x20
push eax
call fcn.0045ea70
mov dword [esi + 0x304], 0x20001
fld dword [0x586ca8]
fstp dword [esi + 0x308]
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 0x438b03
dec eax
je 0x438af7
dec eax
je 0x438aeb
dec eax
jne 0x438b0d
mov dword [esi + 0x31c], 0x40
jmp 0x438b0d
mov dword [esi + 0x31c], 0x20
jmp 0x438b0d
mov dword [esi + 0x31c], 0x10
jmp 0x438b0d
mov dword [esi + 0x31c], 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.0x438b25
jmp dword [eax*4 + 0x4393ae]
mov dword [ebp + 8], 0x100
jmp case.default.0x438b25
mov dword [ebp + 8], 0x200
jmp case.default.0x438b25
mov dword [ebp + 8], 0x400
jmp case.default.0x438b25
mov dword [ebp + 8], 0x800
jmp case.default.0x438b25
mov dword [ebp + 8], 0x1000
jmp case.default.0x438b25
mov dword [ebp + 8], 0x2000
jmp case.default.0x438b25
mov dword [ebp + 8], 0x4000
jmp case.default.0x438b25
mov dword [ebp + 8], 0x8000
jmp case.default.0x438b25
mov dword [ebp + 8], 0x10000
jmp case.default.0x438b25
mov dword [ebp + 8], 0x20000
movzx eax, byte [edi + 7]
mov ecx, eax
and ecx, ebx
sub ecx, edx
je 0x438bb4
dec ecx
je 0x438bab
dec ecx
je 0x438ba2
dec ecx
jne 0x438bbb
mov dword [ebp - 0x14], 0x20
jmp 0x438bbb
mov dword [ebp - 0x14], 0x10
jmp 0x438bbb
mov dword [ebp - 0x14], 8
jmp 0x438bbb
mov dword [ebp - 0x14], 4
shr eax, 3
and eax, ebx
sub eax, edx
je 0x438c00
dec eax
je 0x438bf4
dec eax
je 0x438be8
dec eax
je 0x438bdc
dec eax
jne 0x438c0a
mov dword [esi + 0x320], 8
jmp 0x438c0a
mov dword [esi + 0x320], 4
jmp 0x438c0a
mov dword [esi + 0x320], 3
jmp 0x438c0a
mov dword [esi + 0x320], 2
jmp 0x438c0a
mov dword [esi + 0x320], 1
movzx eax, byte [edi + 8]
and eax, ebx
sub eax, edx
je 0x438c38
dec eax
je 0x438c2f
dec eax
je 0x438c26
dec eax
jne 0x438c3f
mov dword [ebp - 0x10], 0x40
jmp 0x438c3f
mov dword [ebp - 0x10], 0x20
jmp 0x438c3f
mov dword [ebp - 0x10], 0x10
jmp 0x438c3f
mov dword [ebp - 0x10], 8
push dword [ebp + 8]
call fcn.004169aa
pop ecx
test eax, eax
je 0x438c98
push dword [ebp - 0x10]
call fcn.004169aa
pop ecx
test eax, eax
je 0x438c98
push dword [ebp - 0x14]
call fcn.004169aa
pop ecx
test eax, eax
je 0x438c98
mov ebx, dword [esi + 0x320]
push ebx
call fcn.004169aa
pop ecx
test eax, eax
je 0x438c98
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 + 0x2dc], ecx
mov al, byte [edi + 0xb]
test al, al
jbe 0x438cb6
movzx ecx, byte [edi + 0xa]
mov dword [ebp + 8], ecx
movzx eax, al
fild dword [ebp + 8]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fdivp st(1)
jmp 0x438cbc
fld dword [0x586a90]
movzx eax, byte [edi + 0xc]
fstp dword [ebp - 0x14]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fmul dword [ebp - 0x14]
fst dword [ebp + 8]
fld dword [ebp + 8]
fdivr qword [0x5c1168]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fld qword [0x5c1110]
fadd st(1), st(0)
fxch st(1)
call fcn.0055ce70
fld dword [ebp + 8]
fadd st(0), st(0)
mov dword [esi + 0x330], eax
fmul qword [0x5c11a8]
fdiv qword [0x5c1180]
fadd st(1)
call fcn.0055ce70
fld qword [0x586d08]
fdivrp st(2)
mov ebx, eax
imul ebx, ebx, 0x64
faddp st(1)
mov dword [esi + 0x32c], ebx
call fcn.0055ce70
push ebx
push str.PC3__d
mov dword [esi + 0x334], eax
lea eax, [esi + 0x3c]
push 0x20
push eax
call fcn.0045ea70
add esp, 0x10
test byte [edi + 0xe], 1
push 0xc
pop ebx
je 0x438d7e
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
and dword [ebp - 4], 0
test eax, eax
je 0x438d63
mov ecx, eax
call fcn.0042c580
jmp 0x438d65
xor eax, eax
fld dword [0x586a4c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
test byte [edi + 0xe], 2
je 0x438dbd
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x438da2
mov ecx, eax
call fcn.0042c580
jmp 0x438da4
xor eax, eax
fld dword [0x586a48]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
test byte [edi + 0xe], 4
je 0x438dfc
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x438de1
mov ecx, eax
call fcn.0042c580
jmp 0x438de3
xor eax, eax
fld dword [0x586a44]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
test byte [edi + 0xe], 8
je 0x438e3b
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x438e20
mov ecx, eax
call fcn.0042c580
jmp 0x438e22
xor eax, eax
fld dword [0x586a40]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
test byte [edi + 0xe], 0x10
je 0x438e7a
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 4
test eax, eax
je 0x438e5f
mov ecx, eax
call fcn.0042c580
jmp 0x438e61
xor eax, eax
fld dword [0x5848c4]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
test byte [edi + 0xe], 0x20
je 0x438eb9
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 5
test eax, eax
je 0x438e9e
mov ecx, eax
call fcn.0042c580
jmp 0x438ea0
xor eax, eax
fld dword [0x586a3c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
test byte [edi + 0xe], 0x40
je 0x438ef8
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 6
test eax, eax
je 0x438edd
mov ecx, eax
call fcn.0042c580
jmp 0x438edf
xor eax, eax
fld dword [0x586a38]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
test byte [edi + 0xe], 0x80
je 0x438f37
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 7
test eax, eax
je 0x438f1c
mov ecx, eax
call fcn.0042c580
jmp 0x438f1e
xor eax, eax
fld dword [0x586a34]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
test byte [edi + 0xf], 1
je 0x438f76
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 8
test eax, eax
je 0x438f5b
mov ecx, eax
call fcn.0042c580
jmp 0x438f5d
xor eax, eax
fld dword [0x586a30]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
test byte [edi + 0xf], 2
je 0x438fb5
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 9
test eax, eax
je 0x438f9a
mov ecx, eax
call fcn.0042c580
jmp 0x438f9c
xor eax, eax
fld dword [0x586a2c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
test byte [edi + 0xf], 4
je 0x438ff4
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 0xa
test eax, eax
je 0x438fd9
mov ecx, eax
call fcn.0042c580
jmp 0x438fdb
xor eax, eax
fld dword [0x586a28]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
test byte [edi + 0xf], 8
je 0x439033
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 0xb
test eax, eax
je 0x439018
mov ecx, eax
call fcn.0042c580
jmp 0x43901a
xor eax, eax
fld dword [0x586a24]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
test byte [edi + 0xf], 0x10
je 0x43906e
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], ebx
test eax, eax
je 0x439053
mov ecx, eax
call fcn.0042c580
jmp 0x439055
xor eax, eax
fld dword [0x586a20]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
test byte [edi + 0xf], 0x20
je 0x4390ad
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 0xd
test eax, eax
je 0x439092
mov ecx, eax
call fcn.0042c580
jmp 0x439094
xor eax, eax
fld dword [0x586a1c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
test byte [edi + 0xf], 0x40
je 0x4390ec
push ebx
call fcn.0054993e
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 0xe
test eax, eax
je 0x4390d1
mov ecx, eax
call fcn.0042c580
jmp 0x4390d3
xor eax, eax
fld dword [0x586a18]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x338]
push eax
call fcn.00432dde
movzx eax, byte [edi + 0x10]
mov ecx, dword [esi + 0x330]
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fmul dword [ebp - 0x14]
fstp dword [ebp - 0x18]
cmp ecx, 0x190
je 0x43917c
cmp ecx, 0x215
je 0x439166
cmp ecx, 0x29b
je 0x439144
cmp ecx, 0x320
jne 0x4391a0
cmp eax, 0x50
je 0x439175
cmp eax, 0x5a
je 0x43913d
cmp eax, 0x64
je 0x439158
cmp eax, 0x6e
jne 0x4391a0
push 0x586a64
jmp 0x439192
push 0x586a60
jmp 0x439192
cmp eax, 0x54
je 0x43915f
cmp eax, 0x60
je 0x439175
cmp eax, 0x6c
je 0x43913d
cmp eax, 0x78
jne 0x4391a0
push 0x586a5c
jmp 0x439192
push 0x586a58
jmp 0x439192
cmp eax, 0x5a
je 0x439186
cmp eax, 0x69
je 0x43915f
cmp eax, 0x78
jne 0x4391a0
push 0x586a54
jmp 0x439192
cmp eax, 0x64
je 0x43918d
cmp eax, 0x78
jne 0x4391a0
push str.EGFJHK
jmp 0x439192
push 0x584b7c
lea eax, [esi + 0x3c]
push 0x20
push eax
call fcn.0045eb50
add esp, 0xc
mov eax, dword [esi + 0x338]
and dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], eax
call fcn.0042cc22
jmp 0x4391fb
fldz
fcomp dword [ecx + 4]
fnstsw ax
test ah, 5
jp 0x4391f3
fld dword [ebp - 0x18]
fdiv dword [ecx + 4]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
fdivr qword [0x5c1168]
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 0x4391f3
fld dword [ebp + 8]
fstp dword [ecx + 8]
lea ecx, [ebp - 0x20]
call fcn.0042cc39
mov ecx, eax
test ecx, ecx
jne 0x4391b7
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 + 0x33c]
movzx eax, byte [edi + 0x13]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fld st(1)
fmulp st(1)
fstp dword [esi + 0x340]
movzx eax, byte [edi + 0x14]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fld st(1)
fmulp st(1)
fstp dword [esi + 0x344]
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 + 0x348]
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 + 0x34c]
movzx eax, byte [edi + 0x3c]
and eax, 0x1f
mov dword [esi + 0x30c], eax
movzx ebx, byte [edi + 0x75]
and ebx, 0x7f
cmp ebx, 0xf
jle 0x43929a
push 0xf
pop ebx
xor eax, eax
test ebx, ebx
jle 0x4392b1
push ebx
lea eax, [esi + 0x5c]
push 0x7f
push eax
call fcn.0055b160
add esp, 0xc
mov eax, ebx
mov cl, byte [edi + 0x76]
mov byte [eax + esi + 0x5c], cl
lea eax, [esi + 0x9c]
push eax
lea eax, [esi + 0x5c]
push eax
call fcn.004307a4
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 + 0x364], al
mov cl, byte [edi + 0x79]
mov al, cl
shr al, 4
imul dl
and cl, 0xf
add al, cl
mov byte [esi + 0x365], 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 0x584c18
mov dword [esi + 0x2e0], eax
lea eax, [esi + 0x2bc]
push 0x20
push eax
call fcn.0045ea70
add esp, 0x18
lea ecx, [esi + 0x29c]
lea eax, [edi + 0x80]
mov dword [ebp + 8], 0x12
mov dl, byte [eax]
cmp dl, 0xff
sete bl
dec bl
and bl, dl
inc eax
mov byte [ecx], bl
inc ecx
dec dword [ebp + 8]
jne 0x439343
mov byte [esi + 0x2ae], 0
movzx ebx, byte [edi + 0x94]
and ebx, 0x7f
cmp ebx, 0xf
jle 0x439371
push 0xf
pop ebx
xor eax, eax
test ebx, ebx
jle 0x439388
push ebx
lea eax, [esi + 0x7c]
push 0x7f
push eax
call fcn.0055b160
add esp, 0xc
mov eax, ebx
mov cl, byte [edi + 0x95]
mov byte [eax + esi + 0x7c], cl
lea eax, [esi + 0x19c]
push eax
add esi, 0x7c
push esi
call fcn.004307a4
pop ecx
pop ecx
call fcn.0055cdaa
ret 4