Function at 0x4018f0
Capabilities:
Get disk information
Get local ipv4 addresses
Get mac address on windows
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45ab5e
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
mov eax, dword [0x478040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [0x478f98]
mov eax, ebx
mov esi, dword [0x478f9c]
or eax, esi
jne 0x401b52
mov esi, dword [sym.imp.IPHLPAPI.DLL_GetAdaptersAddresses]
lea eax, [ebp - 0xc0]
push eax
push 0
push 0
push 0x10
xorps xmm0, xmm0
push 0
movlpd qword [ebp - 0x20], xmm0
call esi
cmp eax, 0x6f
jne 0x401b68
push dword [ebp - 0xc0]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov ebx, eax
lea eax, [ebp - 0xc0]
mov dword [ebp - 0x2c], ebx
push eax
push ebx
push 0
push 0x10
push 0
call esi
test eax, eax
je 0x401993
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp 0x401b68
mov esi, dword [ebp - 0x1c]
mov ecx, ebx
mov dword [ebp - 0x14], ebx
test ebx, ebx
mov ebx, dword [ebp - 0x20]
je 0x401b3a
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0xbc], ebx
test esi, esi
ja 0x401b3a
jb 0x4019c8
cmp ebx, 0x3e8
ja 0x401b3a
mov eax, dword [ecx + 0x34]
test eax, eax
je 0x401b2c
xorps xmm0, xmm0
xor edi, edi
xor edx, edx
movlpd qword [ebp - 0xd8], xmm0
movlpd qword [ebp - 0xc8], xmm0
mov esi, 1
cmp eax, 2
jl 0x401aab
mov edx, dword [ebp - 0xd4]
add eax, 0xfffffffe
shr eax, 1
add ecx, 0x2d
inc eax
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0x34], eax
add eax, eax
mov ebx, dword [ebp - 0x34]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0xc4], eax
movzx eax, byte [ecx - 1]
push edi
cdq
push esi
push edx
push eax
call fcn.0045a980
add dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xe0]
adc dword [ebp - 0xdc], edx
shld edi, esi, 8
movzx eax, byte [eax]
push edi
shl esi, 8
cdq
push esi
push edx
push eax
call fcn.0045a980
add dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0xe0]
adc dword [ebp - 0xd4], edx
add ecx, 2
shld edi, esi, 8
mov dword [ebp - 0xe0], ecx
shl esi, 8
sub ebx, 1
jne 0x401a42
mov ebx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
jmp 0x401adb
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xc4], eax
cmp edx, dword [ecx + 0x34]
jge 0x401afb
movzx eax, byte [edx + ecx + 0x2c]
push edi
cdq
push esi
push edx
push eax
call fcn.0045a980
mov esi, dword [ebp - 0xe4]
add ebx, eax
adc esi, edx
jmp 0x401b01
mov esi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xc4]
add ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd4]
adc eax, dword [ebp - 0xdc]
add ebx, ecx
mov ecx, dword [ebp - 0x14]
adc esi, eax
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0xe4], esi
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4019b2
push dword [ebp - 0x2c]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov dword [0x478f98], ebx
mov dword [0x478f9c], esi
test esi, esi
ja 0x401bf9
jb 0x401b68
cmp ebx, 0x3e8
jae 0x401be9
lea eax, [ebp - 0x28]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0x30], xmm0
call dword [sym.imp.RPCRT4.dll_UuidCreateSequential]
test eax, eax
jne 0x401be3
movzx eax, byte [ebp - 0x19]
cdq
mov ebx, eax
mov esi, edx
movzx eax, byte [ebp - 0x1a]
shld esi, ebx, 8
cdq
shl ebx, 8
add ebx, eax
movzx eax, byte [ebp - 0x1b]
adc esi, edx
cdq
shld esi, ebx, 8
shl ebx, 8
add ebx, eax
movzx eax, byte [ebp - 0x1c]
adc esi, edx
cdq
shld esi, ebx, 8
shl ebx, 8
add ebx, eax
movzx eax, byte [ebp - 0x1d]
adc esi, edx
cdq
shld esi, ebx, 8
shl ebx, 8
add ebx, eax
movzx eax, byte [ebp - 0x1e]
adc esi, edx
cdq
shld esi, ebx, 8
shl ebx, 8
add ebx, eax
adc esi, edx
test esi, esi
jne 0x401bf9
cmp ebx, 0x3e8
ja 0x401be9
mov esi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x30]
test esi, esi
jne 0x401bf9
cmp ebx, 0x3e8
jbe 0x401c9f
xorps xmm0, xmm0
mov dword [ebp - 0x2c], 8
lea ecx, [ebp - 0x14]
movlpd qword [ebp - 0x38], xmm0
xor edi, edi
call dword [sym.imp.mfc140.dll_Ordinal_316]
push str.GHC_19
push str.Softwarepenalara
lea eax, [ebp - 0x14]
mov dword [ebp - 4], edi
push str._s_s
push eax
call dword [sym.imp.mfc140.dll_Ordinal_4807]
add esp, 0x10
lea eax, [ebp - 0xbc]
push eax
push 0x20019
push edi
push dword [ebp - 0x14]
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401c8e
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x1c]
push eax
push edi
push str.P01regPerfil
push dword [ebp - 0xbc]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x401c82
cmp dword [ebp - 0x38], ebx
jne 0x401c7d
cmp dword [ebp - 0x34], esi
je 0x401c82
mov edi, 1
push dword [ebp - 0xbc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x14]
call dword [sym.imp.mfc140.dll_Ordinal_1044]
test edi, edi
je 0x401d4f
lea eax, [ebp - 0xb8]
mov ebx, 0x39f5
push eax
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_GetCurrentHwProfileA]
test eax, eax
je 0x401d24
xorps xmm0, xmm0
lea ecx, [ebp - 0xb4]
movlpd qword [ebp - 0x20], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401cc8
sub ecx, edx
test ecx, ecx
jle 0x401d24
mov edi, dword [ebp - 0x1c]
mov esi, 1
mov ebx, dword [ebp - 0x20]
mov al, byte [ebp + esi - 0xb5]
cmp al, 0x2d
je 0x401d07
cmp al, 0x7b
je 0x401d07
cmp al, 0x7d
je 0x401d07
movsx eax, al
sub eax, 0x30
imul eax, esi
imul eax, esi
imul eax, esi
cdq
add ebx, eax
adc edi, edx
inc esi
sub ecx, 1
jne 0x401ce0
test edi, edi
jne 0x401d19
cmp ebx, 0x3e8
jbe 0x401d1d
mov esi, edi
jmp 0x401d24
mov ebx, 0x39f5
xor esi, esi
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x2c]
push eax
push 0
push 0
push 0x4660dc
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
je 0x401d4f
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x401d4f
add ebx, eax
adc esi, 0
mov edx, esi
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004592a5
mov esp, ebp
pop ebp
ret