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

Disassembly:
push 0x10
mov eax, 0x5164f0
call fcn.004ab43d
mov esi, dword [ebp + 8]
mov edi, dword [esi + 0xc]
push 0x51d364
lea eax, [esi + 0x1c]
push 0x20
push eax
call fcn.004aaf1c
fld dword [0x51afd0]
add esp, 0xc
fstp dword [esi + 0x224]
push 9
pop ebx
mov dword [esi + 0x18], ebx
test byte [edi + 6], 2
je 0x4921a5
fld dword [0x51afc4]
fstp dword [esi + 0x224]
test byte [edi + 6], 2
je 0x4921a5
fld dword [str._n_Q]
fstp dword [esi + 0x224]
movzx eax, byte [edi + 3]
and eax, 0xf
dec eax
je 0x492287
dec eax
je 0x492268
dec eax
je 0x492243
dec eax
je 0x49221e
dec eax
je 0x4921f6
dec eax
jne 0x4922b3
push 0x52c9d8
lea eax, [esi + 0x1ac]
push 0x20
push eax
call fcn.00404c23
fld dword [0x52c9d4]
mov dword [esi + 0x1cc], 0x20006
jmp 0x4922aa
push str.Mini_RDIMM
lea eax, [esi + 0x1ac]
push 0x20
push eax
call fcn.00404c23
fld dword [0x52c9d4]
mov dword [esi + 0x1cc], 0x20005
jmp 0x4922aa
push 0x52c9bc
lea eax, [esi + 0x1ac]
push 0x20
push eax
call fcn.00404c23
fld dword [0x52c9b8]
mov dword [esi + 0x1cc], 0x20004
jmp 0x4922aa
push 0x52c9b0
lea eax, [esi + 0x1ac]
push 0x20
push eax
call fcn.00404c23
fld dword [0x52c9ac]
mov dword [esi + 0x1cc], 0x20003
jmp 0x4922aa
push str.UDIMM
lea eax, [esi + 0x1ac]
push 0x20
push eax
call fcn.00404c23
mov dword [esi + 0x1cc], 0x20002
jmp 0x4922a4
push 0x52c99c
lea eax, [esi + 0x1ac]
push 0x20
push eax
call fcn.00404c23
mov dword [esi + 0x1cc], 0x20001
fld dword [0x52c998]
fstp dword [esi + 0x1d0]
add esp, 0xc
movzx eax, byte [edi + 4]
push 7
shr eax, 4
pop edx
and eax, edx
sub eax, 0
je 0x4922f1
dec eax
je 0x4922e5
dec eax
je 0x4922d9
dec eax
jne 0x4922fb
mov dword [esi + 0x1e4], 0x40
jmp 0x4922fb
mov dword [esi + 0x1e4], 0x20
jmp 0x4922fb
mov dword [esi + 0x1e4], 0x10
jmp 0x4922fb
mov dword [esi + 0x1e4], 8
or eax, 0xffffffff
mov dword [ebp + 8], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
movzx eax, byte [edi + 4]
and eax, 0xf
cmp eax, ebx
ja case.default.0x492315
jmp dword [eax*4 + 0x492b06]
mov dword [ebp + 8], 0x100
jmp case.default.0x492315
mov dword [ebp + 8], 0x200
jmp case.default.0x492315
mov dword [ebp + 8], 0x400
jmp case.default.0x492315
mov dword [ebp + 8], 0x800
jmp case.default.0x492315
mov dword [ebp + 8], 0x1000
jmp case.default.0x492315
mov dword [ebp + 8], 0x2000
jmp case.default.0x492315
mov dword [ebp + 8], 0x4000
jmp case.default.0x492315
mov dword [ebp + 8], 0x8000
jmp case.default.0x492315
mov dword [ebp + 8], 0x10000
jmp case.default.0x492315
mov dword [ebp + 8], 0x20000
movzx eax, byte [edi + 7]
mov ecx, eax
and ecx, edx
xor ebx, ebx
sub ecx, ebx
je 0x4923a6
dec ecx
je 0x49239d
dec ecx
je 0x492394
dec ecx
jne 0x4923ad
mov dword [ebp - 0x18], 0x20
jmp 0x4923ad
mov dword [ebp - 0x18], 0x10
jmp 0x4923ad
mov dword [ebp - 0x18], 8
jmp 0x4923ad
mov dword [ebp - 0x18], 4
shr eax, 3
and eax, edx
sub eax, ebx
je 0x4923da
dec eax
je 0x4923d1
dec eax
je 0x4923c8
dec eax
jne 0x4923e1
mov dword [ebp - 0x1c], 4
jmp 0x4923e1
mov dword [ebp - 0x1c], 3
jmp 0x4923e1
mov dword [ebp - 0x1c], 2
jmp 0x4923e1
mov dword [ebp - 0x1c], 1
movzx eax, byte [edi + 8]
and eax, edx
sub eax, ebx
je 0x49240f
dec eax
je 0x492406
dec eax
je 0x4923fd
dec eax
jne 0x492416
mov dword [ebp - 0x10], 0x40
jmp 0x492416
mov dword [ebp - 0x10], 0x20
jmp 0x492416
mov dword [ebp - 0x10], 0x10
jmp 0x492416
mov dword [ebp - 0x10], 8
push dword [ebp + 8]
call fcn.00402200
pop ecx
test eax, eax
je 0x49246c
push dword [ebp - 0x10]
call fcn.00402200
pop ecx
test eax, eax
je 0x49246c
push dword [ebp - 0x18]
call fcn.00402200
pop ecx
test eax, eax
je 0x49246c
push dword [ebp - 0x1c]
call fcn.00402200
pop ecx
test eax, eax
je 0x49246c
mov eax, dword [ebp - 0x10]
cdq
idiv dword [ebp - 0x18]
mov ecx, eax
mov eax, dword [ebp + 8]
cdq
and edx, 7
add eax, edx
sar eax, 3
imul ecx, eax
imul ecx, dword [ebp - 0x1c]
mov dword [esi + 0x1a4], 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 - 0x1c], eax
fdivp st(1)
fstp dword [ebp + 8]
fild dword [ebp - 0x1c]
fmul dword [ebp + 8]
fst dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fdivr qword [0x545568]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fld qword [0x51a2a0]
fadd st(1), st(0)
fxch st(1)
call fcn.004ab740
fld dword [ebp - 0x1c]
fadd st(0), st(0)
mov dword [esi + 0x1f0], eax
fmul qword [0x51efe8]
fdiv qword [0x545558]
fadd st(1)
call fcn.004ab740
fld qword [0x51eff0]
fdivrp st(2)
mov ebx, eax
imul ebx, ebx, 0x64
faddp st(1)
mov dword [esi + 0x1ec], ebx
call fcn.004ab740
push ebx
push str.PC3__d
mov dword [esi + 0x1f4], eax
lea eax, [esi + 0x3c]
push 0x20
push eax
call fcn.00404c23
add esp, 0x10
test byte [edi + 0xe], 1
push 0xc
pop ebx
je 0x492544
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
and dword [ebp - 4], 0
test eax, eax
je 0x492529
mov ecx, eax
call fcn.0048ca04
jmp 0x49252b
xor eax, eax
fld dword [0x51af3c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
test byte [edi + 0xe], 2
je 0x492583
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x492568
mov ecx, eax
call fcn.0048ca04
jmp 0x49256a
xor eax, eax
fld dword [0x51af74]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
test byte [edi + 0xe], 4
je 0x4925c2
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x4925a7
mov ecx, eax
call fcn.0048ca04
jmp 0x4925a9
xor eax, eax
fld dword [0x51af6c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
test byte [edi + 0xe], 8
je 0x492601
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x4925e6
mov ecx, eax
call fcn.0048ca04
jmp 0x4925e8
xor eax, eax
fld dword [0x51af64]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
test byte [edi + 0xe], 0x10
je 0x492640
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 4
test eax, eax
je 0x492625
mov ecx, eax
call fcn.0048ca04
jmp 0x492627
xor eax, eax
fld dword [0x51af5c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
test byte [edi + 0xe], 0x20
je 0x49267f
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 5
test eax, eax
je 0x492664
mov ecx, eax
call fcn.0048ca04
jmp 0x492666
xor eax, eax
fld dword [0x51af54]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
test byte [edi + 0xe], 0x40
je 0x4926be
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 6
test eax, eax
je 0x4926a3
mov ecx, eax
call fcn.0048ca04
jmp 0x4926a5
xor eax, eax
fld dword [0x51af4c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
test byte [edi + 0xe], 0x80
je 0x4926fd
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 7
test eax, eax
je 0x4926e2
mov ecx, eax
call fcn.0048ca04
jmp 0x4926e4
xor eax, eax
fld dword [0x51af84]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
test byte [edi + 0xf], 1
je 0x49273c
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 8
test eax, eax
je 0x492721
mov ecx, eax
call fcn.0048ca04
jmp 0x492723
xor eax, eax
fld dword [0x51af7c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
test byte [edi + 0xf], 2
je 0x49277b
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 9
test eax, eax
je 0x492760
mov ecx, eax
call fcn.0048ca04
jmp 0x492762
xor eax, eax
fld dword [0x51af34]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
test byte [edi + 0xf], 4
je 0x4927ba
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xa
test eax, eax
je 0x49279f
mov ecx, eax
call fcn.0048ca04
jmp 0x4927a1
xor eax, eax
fld dword [0x51af2c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
test byte [edi + 0xf], 8
je 0x4927f9
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xb
test eax, eax
je 0x4927de
mov ecx, eax
call fcn.0048ca04
jmp 0x4927e0
xor eax, eax
fld dword [0x51af24]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
test byte [edi + 0xf], 0x10
je 0x492834
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], ebx
test eax, eax
je 0x492819
mov ecx, eax
call fcn.0048ca04
jmp 0x49281b
xor eax, eax
fld dword [0x51af1c]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
test byte [edi + 0xf], 0x20
je 0x492873
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xd
test eax, eax
je 0x492858
mov ecx, eax
call fcn.0048ca04
jmp 0x49285a
xor eax, eax
fld dword [0x51af14]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
test byte [edi + 0xf], 0x40
je 0x4928b2
push ebx
call fcn.00498a73
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xe
test eax, eax
je 0x492897
mov ecx, eax
call fcn.0048ca04
jmp 0x492899
xor eax, eax
fld dword [0x51af10]
or dword [ebp - 4], 0xffffffff
fstp dword [eax + 4]
mov ecx, dword [esi + 0x1f8]
push eax
call fcn.00490f72
movzx eax, byte [edi + 0x10]
mov ecx, dword [esi + 0x1f0]
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
fmul dword [ebp + 8]
fstp dword [ebp - 0x1c]
cmp ecx, 0x190
je 0x492942
cmp ecx, 0x215
je 0x49292c
cmp ecx, 0x29b
je 0x49290a
cmp ecx, 0x320
jne 0x492966
cmp eax, 0x50
je 0x49293b
cmp eax, 0x5a
je 0x492903
cmp eax, 0x64
je 0x49291e
cmp eax, 0x6e
jne 0x492966
push 0x525910
jmp 0x492958
push 0x52c900
jmp 0x492958
cmp eax, 0x54
je 0x492925
cmp eax, 0x60
je 0x49293b
cmp eax, 0x6c
je 0x492903
cmp eax, 0x78
jne 0x492966
push 0x52c8fc
jmp 0x492958
push 0x52c8f8
jmp 0x492958
cmp eax, 0x5a
je 0x49294c
cmp eax, 0x69
je 0x492925
cmp eax, 0x78
jne 0x492966
push 0x52c8f4
jmp 0x492958
cmp eax, 0x64
je 0x492953
cmp eax, 0x78
jne 0x492966
push str.EGFJH
jmp 0x492958
push 0x5197d0
lea eax, [esi + 0x3c]
push 0x20
push eax
call fcn.00404cb7
add esp, 0xc
mov eax, dword [esi + 0x1f8]
and dword [ebp - 0x10], 0
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], eax
call fcn.0042bc17
jmp 0x4929a6
fldz
fcomp dword [ecx + 4]
fnstsw ax
test ah, 5
jp 0x49299e
fld dword [ebp - 0x1c]
fdiv dword [ecx + 4]
fstp dword [ebp - 0x18]
fld dword [ebp - 0x18]
fdivr qword [0x545568]
fstp dword [ecx + 8]
lea ecx, [ebp - 0x14]
call fcn.0040b1cf
mov ecx, eax
test ecx, ecx
jne 0x49297d
movzx eax, byte [edi + 0x12]
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
fld dword [ebp + 8]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esi + 0x1fc]
movzx eax, byte [edi + 0x13]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fld st(1)
fmulp st(1)
fstp dword [esi + 0x200]
movzx eax, byte [edi + 0x14]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fld st(1)
fmulp st(1)
fstp dword [esi + 0x204]
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 + 0x208]
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 + 0x20c]
movzx eax, byte [edi + 0x3c]
and eax, 0x1f
mov dword [esi + 0x1d4], eax
movzx ebx, byte [edi + 0x75]
and ebx, 0x7f
cmp ebx, 7
jle 0x492a45
push 7
pop ebx
xor eax, eax
test ebx, ebx
jle 0x492a5c
push ebx
lea eax, [esi + 0x5c]
push 0x7f
push eax
call fcn.004aa1b0
add esp, 0xc
mov eax, ebx
mov cl, byte [edi + 0x76]
mov byte [eax + esi + 0x5c], cl
lea eax, [esi + 0x64]
push eax
lea eax, [esi + 0x5c]
push eax
call fcn.0048f7a3
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 + 0x220], al
mov cl, byte [edi + 0x79]
mov al, cl
shr al, 4
imul dl
and cl, 0xf
add al, cl
mov byte [esi + 0x221], 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 0x52b5cc
mov dword [esi + 0x1a8], eax
lea eax, [esi + 0x184]
push 0x20
push eax
call fcn.00404c23
add esp, 0x18
push 0x12
lea eax, [esi + 0x164]
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 0x492ae4
mov byte [esi + 0x176], dl
call fcn.004ab515
ret 4