Function at 0x40f85c
Capabilities:
Get mac address on windows
Query or enumerate registry value

Disassembly:
mov eax, 0x421a89
call fcn.00420e60
sub esp, 0x168
push ebx
push esi
mov esi, 0x280
push esi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], esi
push ecx
push eax
call sub.iphlpapi.dll_GetAdaptersInfo
cmp eax, 0x6f
jne 0x40f8c5
cmp dword [ebp - 0x10], 0
jbe 0x40fa92
cmp dword [ebp - 0x10], 0x10000
jae 0x40fa92
push dword [ebp - 0x14]
call fcn.00420de4
push dword [ebp - 0x10]
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x14], eax
pop ecx
lea ecx, [ebp - 0x10]
push ecx
push eax
call sub.iphlpapi.dll_GetAdaptersInfo
test eax, eax
jne 0x40fa92
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x40fa92
push edi
lea edi, [ebx + 8]
test edi, edi
je 0x40fa87
cmp byte [edi], 0
je 0x40fa87
mov al, byte [ebp + 0xb]
push 0
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x28], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.SYSTEMCurrentControlSetControlNetwork4D36E972_E325_11CE_BFC1_08002BE10318_
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x28]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
and dword [ebp - 4], 0
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
lea ecx, [ebp - 0x28]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov esi, str.Connection
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x28]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
and byte [ebp - 0x174], 0
push 1
pop esi
xor eax, eax
push 0x41
lea edi, [ebp - 0x173]
pop ecx
mov dword [ebp - 0x18], esi
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], 0x104
test eax, eax
jne 0x40f96f
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x174]
push ecx
lea ecx, [ebp - 0x18]
push ecx
push str.PnPInstanceId
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
mov edi, dword [sym.imp.MSVCRT.dll__strnicmp]
push 3
lea eax, [ebp - 0x174]
push 0x42a81c
push eax
call edi
add esp, 0xc
test eax, eax
je 0x40f9cd
push 3
lea eax, [ebp - 0x174]
push 0x42a818
push eax
call edi
add esp, 0xc
test eax, eax
je 0x40f9cd
or dword [ebp - 4], 0xffffffff
push esi
jmp 0x40fa7e
mov edi, dword [ebp + 8]
cmp dword [edi + 8], 0
je 0x40f9ec
mov esi, 0x42a814
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
mov ecx, edi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
xor esi, esi
cmp dword [ebx + 0x190], esi
jbe 0x40fa63
and byte [ebp - 0x6c], 0
push 0xf
pop ecx
xor eax, eax
lea edi, [ebp - 0x6b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movzx eax, byte [ebx + esi + 0x194]
push eax
push str._.2X
lea eax, [ebp - 0x6c]
push 0x40
push eax
call dword [sym.imp.MSVCRT.dll__snprintf]
lea eax, [ebp - 0x6c]
push eax
call sub.MSVCRT.dll_strlen
mov ecx, dword [ebp + 8]
add esp, 0x14
push eax
lea eax, [ebp - 0x6c]
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
cmp esi, dword [ebx + 0x190]
jae 0x40fa5a
mov edi, 0x42a808
push edi
call sub.MSVCRT.dll_strlen
pop ecx
mov ecx, dword [ebp + 8]
push eax
push edi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
inc esi
cmp esi, dword [ebx + 0x190]
jb 0x40f9f6
lea esi, [ebx + 8]
push esi
call sub.MSVCRT.dll_strlen
pop ecx
mov ecx, dword [ebp + 8]
push eax
push esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x28]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x40f8d9
pop edi
push dword [ebp - 0x14]
call fcn.00420de4
pop ecx
xor eax, eax
mov ecx, dword [ebp + 8]
pop esi
pop ebx
cmp dword [ecx + 8], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
setne al
leave
ret