Function at 0x4991f0
Capabilities:
Get hostname
Hash data with md5
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c3ea7
mov eax, dword fs:[0]
push eax
sub esp, 0xe38
mov eax, dword [0x5023a4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov ecx, dword [ebp + 8]
lea edi, [esi + 0x48]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xe28], ecx
push 0
mov dword [ebp - 0xe20], ecx
mov ecx, edi
push 0x4d9095
mov dword [ebp - 0xe24], eax
mov dword [ebp - 0xe2c], 0
mov dword [ebp - 0xe28], edi
call fcn.00402a10
push 0
mov dword [ebp - 0xe44], 0
lea ecx, [ebp - 0xe44]
push 0x4d9095
mov dword [ebp - 4], 0
mov dword [ebp - 0xe34], 0
mov dword [ebp - 0xe30], 0xf
mov byte [ebp - 0xe44], 0
call fcn.00402a10
push 0x64
lea eax, [ebp - 0x7c]
mov dword [ebp - 0xe2c], 2
push 0
push eax
call fcn.0049b560
add esp, 0xc
mov dword [ebp - 0xd90], 1
lea eax, [ebp - 0xd8c]
mov dword [ebp - 0x14], 0x64
push eax
push 1
push 0
push dword [ebp - 0xe24]
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x49930f
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0xd90]
push eax
push 0
push 0x4dd7f4
push dword [ebp - 0xd8c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 0xd8c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x7c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x499315
sub ecx, edx
lea eax, [ebp - 0x7c]
push ecx
push eax
lea ecx, [ebp - 0xe44]
call fcn.00402a10
lea eax, [ebp - 0xe44]
mov ecx, edi
push eax
call fcn.004028c0
mov edx, dword [ebp - 0xe30]
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x49937d
mov ecx, dword [ebp - 0xe44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x499373
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4998a2
push edx
push ecx
call fcn.0049789c
add esp, 8
cmp dword [esi + 0x58], 0
jne 0x4997f3
lea eax, [ebp - 0xe44]
mov ecx, esi
push eax
call fcn.00498cd0
lea edi, [esi + 0x30]
push eax
mov ecx, edi
call fcn.004028c0
mov edx, dword [ebp - 0xe30]
cmp edx, 0x10
jb 0x4993da
mov ecx, dword [ebp - 0xe44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4993d0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4998a7
push edx
push ecx
call fcn.0049789c
add esp, 8
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x4993e4
mov eax, dword [edi]
push eax
push str.CPUID:__s__n
call fcn.00410df0
push 0x64
lea eax, [ebp - 0x7c]
push 0
push eax
call fcn.0049b560
add esp, 0x14
mov dword [ebp - 0xd8c], 0x64
lea eax, [ebp - 0xd8c]
push eax
lea eax, [ebp - 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
push dword [ebp - 0xd8c]
lea eax, [ebp - 0x7c]
push eax
push str.ComputerName:__s___dwSize:_d___n
call fcn.00410df0
lea ecx, [ebp - 0x7c]
add esp, 0xc
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x499437
sub ecx, edx
lea eax, [ebp - 0x7c]
push ecx
push eax
mov ecx, edi
call fcn.00402b40
push 0
push 0x4d9095
mov ecx, esi
call fcn.00402a10
mov ecx, esi
call fcn.004998b0
test eax, eax
jne 0x499482
mov ecx, esi
call fcn.00499c10
test eax, eax
jne 0x499482
mov ecx, esi
call fcn.00499f60
test eax, eax
jne 0x499482
mov ecx, esi
call fcn.0049a1d0
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x49948c
mov eax, dword [esi]
push eax
push str.m_strPhysicalDriveSeria_:__s__n
call fcn.00410df0
add esp, 8
lea ecx, [esi + 0x18]
push 0
push 0x4d9095
call fcn.00402a10
mov ecx, esi
call fcn.00498f70
test eax, eax
jne 0x499579
push 0x64
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.0049b560
add esp, 0xc
mov dword [ebp - 0x14], 0xca8
push str.iphlpapi.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x499579
push 0x4cfb88
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x499579
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0xd88]
push ecx
call eax
test eax, eax
jne 0x499579
mov cx, word [ebp - 0xbf0]
movzx eax, cx
shr eax, 8
push eax
movzx eax, cl
mov ecx, dword [ebp - 0xbf4]
push eax
mov eax, ecx
shr eax, 0x18
push eax
mov eax, ecx
shr eax, 0x10
movzx eax, al
push eax
mov eax, ecx
shr eax, 8
movzx eax, al
push eax
movzx eax, cl
push eax
lea eax, [ebp - 0xe0]
push str._02X_02X_02X_02X_02X_02X
push eax
call fcn.00410e30
lea ecx, [ebp - 0xe0]
add esp, 0x20
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x499560
sub ecx, edx
lea eax, [ebp - 0xe0]
push ecx
push eax
lea ecx, [esi + 0x18]
call fcn.00402a10
cmp dword [esi + 0x2c], 0x10
lea ecx, [esi + 0x18]
jb 0x499585
mov ecx, dword [esi + 0x18]
push ecx
push str.m_strMAC_:__s__n
call fcn.00410df0
add esp, 8
mov eax, esi
cmp dword [esi + 0x14], 0x10
jb 0x49959d
mov eax, dword [esi]
push dword [esi + 0x10]
mov ecx, edi
push eax
call fcn.00402b40
cmp dword [esi + 0x2c], 0x10
lea ecx, [esi + 0x18]
jb 0x4995b4
mov ecx, dword [esi + 0x18]
push dword [esi + 0x28]
push ecx
mov ecx, edi
call fcn.00402b40
push 7
push str._gamepp
mov ecx, edi
call fcn.00402b40
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x4995d7
mov eax, dword [edi]
push eax
push str.m_strFullSeria_:__s__n
call fcn.00410df0
add esp, 8
cmp dword [edi + 0x14], 0x10
jb 0x4995ed
mov edi, dword [edi]
mov ecx, edi
mov dword [ebp - 0xe08], 0
mov dword [ebp - 0xe0c], 0
mov dword [ebp - 0xe1c], 0x67452301
mov dword [ebp - 0xe18], 0xefcdab89
mov dword [ebp - 0xe14], 0x98badcfe
lea edx, [ecx + 1]
mov dword [ebp - 0xe10], 0x10325476
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x499630
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0xe1c]
call fcn.004115a0
xor edx, edx
lea ecx, [ebp - 0xe0b]
nop
movzx eax, byte [ecx - 1]
lea ecx, [ecx + 4]
mov byte [ebp + edx - 0x18], al
movzx eax, byte [ecx - 4]
mov byte [ebp + edx - 0x17], al
movzx eax, byte [ecx - 3]
mov byte [ebp + edx - 0x16], al
movzx eax, byte [ecx - 2]
mov byte [ebp + edx - 0x15], al
add edx, 4
cmp edx, 8
jb 0x499650
mov edx, dword [ebp - 0xe0c]
mov ecx, 0x78
shr edx, 3
mov eax, 0x38
and edx, 0x3f
sub ecx, edx
sub eax, edx
cmp edx, 0x38
cmovae eax, ecx
lea ecx, [ebp - 0xe1c]
push eax
push 0x5023c8
call fcn.004115a0
push 8
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0xe1c]
call fcn.004115a0
xor edx, edx
lea ecx, [ebp - 0xe1b]
nop word [eax + eax]
movzx eax, byte [ecx - 1]
lea ecx, [ecx + 4]
mov byte [ebp + edx - 0xdc4], al
movzx eax, byte [ecx - 4]
mov byte [ebp + edx - 0xdc3], al
movzx eax, byte [ecx - 3]
mov byte [ebp + edx - 0xdc2], al
movzx eax, byte [ecx - 2]
mov byte [ebp + edx - 0xdc1], al
add edx, 4
cmp edx, 0x10
jb 0x4996d0
push 0x58
lea eax, [ebp - 0xe1c]
push 0
push eax
call fcn.0049b560
xorps xmm0, xmm0
mov byte [ebp - 0xd94], 0
add esp, 0xc
lea edi, [ebp - 0xdb4]
movups xmmword [ebp - 0xdb4], xmm0
xor esi, esi
movups xmmword [ebp - 0xda4], xmm0
nop word [eax + eax]
movzx eax, byte [ebp + esi - 0xdc4]
push eax
push str._02x
push edi
call fcn.00410e30
inc esi
add esp, 0xc
add edi, 2
cmp esi, 0x10
jl 0x499740
lea ecx, [ebp - 0xdb4]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x499770
mov edi, dword [ebp - 0xe28]
lea eax, [ebp - 0xdb4]
sub ecx, edx
push ecx
push eax
mov ecx, edi
call fcn.00402a10
cmp dword [edi + 0x14], 0x10
mov eax, edi
mov dword [ebp - 0xd90], edi
jb 0x4997a4
mov eax, dword [edi]
mov dword [ebp - 0xd90], eax
mov esi, eax
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4997b0
lea eax, [ebp - 0x14]
sub esi, ecx
push eax
push dword [ebp - 0xe24]
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x4997f3
push esi
push dword [ebp - 0xd90]
push 1
push eax
push 0x4dd7f4
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x4997fd
mov eax, dword [edi]
push eax
push str.m_strMID_:__s__n
call fcn.00410df0
mov ecx, dword [ebp - 0xe20]
add esp, 8
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
cmp dword [edi + 0x14], 0x10
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x14], eax
jb 0x499833
mov edi, dword [edi]
cmp eax, 0x10
jae 0x499845
movups xmm0, xmmword [edi]
mov esi, 0xf
movups xmmword [ecx], xmm0
jmp 0x49987d
mov esi, eax
mov eax, SysReAllocString
or esi, 0xf
cmp esi, eax
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.00402ba0
mov ecx, dword [ebp - 0xe20]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x14]
inc ecx
push ecx
push edi
push eax
call fcn.0049afe0
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov ecx, dword [ebp - 0xe20]
mov dword [ecx + 0x10], eax
mov eax, ecx
mov dword [ecx + 0x14], esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0049765c
mov esp, ebp
pop ebp
ret 8
call fcn.0049e530
call fcn.0049e530
int3