Function at 0x462a70
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49395f
mov eax, dword fs:[0]
push eax
mov eax, 0x1148
call fcn.0047f210
mov eax, dword [0x4b6798]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x1154]
xor esi, esi
push eax
mov dword [ebp - 0x10a8], ebx
mov dword [ebp - 0x106c], esi
call fcn.00443300
mov edi, 1
mov dword [ebp - 4], edi
mov dword [ebp - 0x107c], esi
mov dword [ebp - 0x1078], esi
mov dword [ebp - 0x1074], esi
lea ecx, [ebp - 0x1070]
push ecx
push 0x20019
push esi
push 0x4a4830
mov byte [ebp - 4], 2
push SysReAllocString
mov dword [ebp - 0x1070], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, esi
jne 0x462b83
mov edx, dword [ebp - 0x1070]
mov dword [ebp - 0x107c], edx
push str.a24fbc81_b344_446e_bfae_80e60ebb99fa
lea edx, [ebp - 0x107c]
mov dword [ebp - 0x1078], esi
push edx
lea edi, [ebp - 0x1080]
lea esi, [ebp - 0x1014]
mov dword [ebp - 0x1080], 0x800
call fcn.00423960
test eax, eax
je 0x462bd7
lea eax, [ebp - 0x1144]
push str.It_does_not_look_like_the_encrypted_keyboard_driver_is_installed_
push eax
call fcn.004545c0
add esp, 8
mov esi, ebx
lea eax, [ebp - 0x1154]
call fcn.00443430
mov dword [ebp - 0x106c], 1
mov eax, dword [ebp - 0x1070]
test eax, eax
je 0x462baa
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x462baa
lea eax, [ebp - 0x1144]
push str.It_does_not_look_like_the_encrypted_keyboard_driver_is_installed_
push eax
call fcn.004545c0
add esp, 8
mov esi, ebx
lea eax, [ebp - 0x1154]
call fcn.00443430
mov dword [ebp - 0x106c], edi
lea ecx, [ebp - 0x10f4]
mov byte [ebp - 4], 0
call fcn.004433a0
lea ecx, [ebp - 0x10f4]
push ecx
mov dword [ebp - method.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::ios_base.0
call fcn.00472ea4
add esp, 4
jmp 0x46314d
lea edx, [ebp - 0x1014]
push edx
lea eax, [ebp - 0x104c]
push eax
mov ecx, str.driver
call fcn.0046eed0
add esp, 8
xor ecx, ecx
mov byte [ebp - 4], 3
push ecx
lea edx, [ebp - 0x104c]
mov word [ebp - 0x1030], cx
push edx
or eax, 0xffffffff
lea ecx, [ebp - 0x1030]
mov dword [ebp - 0x101c], 7
mov dword [ebp - 0x1020], 0
call fcn.004097e0
xor eax, eax
mov byte [ebp - 4], 4
mov dword [ebp - 0x10a4], eax
mov dword [ebp - 0x10a0], eax
mov dword [ebp - 0x109c], eax
mov dword [ebp - 0x1098], eax
mov dword [ebp - 0x1094], eax
mov dword [ebp - 0x1090], eax
mov dword [ebp - 0x108c], eax
mov dword [ebp - 0x1088], eax
mov dword [ebp - 0x1084], eax
lea eax, [ebp - 0x10a4]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
cmp word [ebp - 0x10a4], 9
jne 0x462cd3
cmp dword [ebp - 0x101c], 8
mov eax, dword [ebp - 0x1030]
jae 0x462c91
lea eax, [ebp - 0x1030]
push eax
lea ecx, [ebp - 0x1068]
push ecx
mov ecx, str.api32
call fcn.0046eed0
add esp, 8
mov edi, eax
lea esi, [ebp - 0x1030]
mov byte [ebp - 4], 5
call fcn.004030e0
mov byte [ebp - 4], 4
cmp dword [ebp - 0x1054], 8
jb 0x462cd3
mov edx, dword [ebp - 0x1068]
push edx
call fcn.004736d0
add esp, 4
cmp dword [ebp - 0x101c], 8
mov eax, dword [ebp - 0x1030]
jae 0x462ce8
lea eax, [ebp - 0x1030]
push eax
lea eax, [ebp - 0x1068]
push eax
mov ecx, str.obskbapi.dll
call fcn.0046eed0
add esp, 8
mov edi, eax
lea esi, [ebp - 0x1030]
mov byte [ebp - 4], 6
call fcn.004030e0
mov esi, 8
mov byte [ebp - 4], 4
cmp dword [ebp - 0x1054], esi
jb 0x462d2e
mov ecx, dword [ebp - 0x1068]
push ecx
call fcn.004736d0
add esp, 4
mov eax, dword [ebp - 0x1030]
cmp dword [ebp - 0x101c], esi
jae 0x462d42
lea eax, [ebp - 0x1030]
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
test eax, eax
jne 0x462e10
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [ebp - 0x1030]
cmp dword [ebp - 0x101c], esi
jae 0x462d6e
lea eax, [ebp - 0x1030]
push eax
push ecx
lea edx, [ebp - 0x1144]
push str.LoadLibrary_failed_on_driver_api_dll
push edx
call fcn.004545c0
add esp, 0xc
push eax
call fcn.00464580
mov esi, ebx
lea eax, [ebp - 0x1154]
call fcn.00443430
mov edi, 8
mov dword [ebp - 0x106c], 1
cmp dword [ebp - 0x101c], edi
jb 0x462dbd
mov eax, dword [ebp - 0x1030]
push eax
call fcn.004736d0
add esp, 4
xor ecx, ecx
mov esi, 7
mov dword [ebp - 0x101c], esi
mov dword [ebp - 0x1020], 0
mov word [ebp - 0x1030], cx
cmp dword [ebp - 0x1038], edi
jb 0x462df2
mov edx, dword [ebp - 0x104c]
push edx
call fcn.004736d0
add esp, 4
xor eax, eax
mov dword [ebp - 0x1038], esi
mov dword [ebp - 0x103c], 0
mov word [ebp - 0x104c], ax
jmp 0x462b70
mov edi, eax
call fcn.004629f0
mov ecx, dword [0x4e180c]
sub ecx, dword [0x4e1808]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x462ed7
mov eax, dword [ebp - 0x1030]
cmp dword [ebp - 0x101c], esi
jae 0x462e50
lea eax, [ebp - 0x1030]
push eax
push ecx
lea ecx, [ebp - 0x1144]
push str.Too_many_api_functions_failed_to_load_from
push ecx
call fcn.004545c0
add esp, 0xc
push eax
call fcn.00464580
mov esi, ebx
lea eax, [ebp - 0x1154]
call fcn.00443430
lea esi, [ebp - 0x1030]
mov dword [ebp - 0x106c], 1
call fcn.00403060
lea esi, [ebp - 0x104c]
call fcn.00403060
mov eax, dword [ebp - 0x1070]
test eax, eax
je 0x462eaa
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x10f4]
mov byte [ebp - 4], 0
call fcn.004433a0
lea edx, [ebp - 0x10f4]
push edx
mov dword [ebp - method.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::ios_base.0
call fcn.00472ea4
add esp, 4
jmp 0x46314d
call dword [0x4e14a0]
xor edi, edi
cmp eax, edi
je 0x462f16
call fcn.00460b80
push eax
push ecx
push str.ObsKbdNull_failed__error_
lea eax, [ebp - 0x1144]
push eax
call fcn.004545c0
add esp, 0xc
push eax
call fcn.004643b0
mov esi, ebx
lea eax, [ebp - 0x1154]
call fcn.00443430
jmp 0x463113
push 0x4e1444
push 0x4e1448
push 0x4e132c
mov dword [0x4e132c], edi
mov dword [0x4e1448], edi
mov dword [0x4e1444], edi
call dword [0x4e149c]
cmp eax, edi
je 0x463004
call fcn.00460b80
sub esp, 0x1c
mov edi, eax
mov ecx, esp
mov dword [ebp - 0x1080], esp
call fcn.00460a40
mov byte [ebp - 4], 7
cmp dword [ebp - 0x101c], esi
mov esi, dword [ebp - 0x1030]
jae 0x462f74
lea esi, [ebp - 0x1030]
push str.Query_driver_version_from_ObsKbdVersion_in
push 0x4a49cc
push 0x4e14a8
call fcn.004608a0
push eax
call fcn.004608a0
cmp byte [0x4e1657], 0
mov edi, eax
je 0x462fa2
push 0
mov ecx, esi
call fcn.004352c0
mov ecx, dword [0x4e1444]
mov edx, dword [0x4e1448]
mov eax, dword [0x4e132c]
push str.__error_
push ecx
push str.__serviceVersion_
push edx
push str.__driverVersion_
push eax
push str._might_have_failed__clientVersion_
push edi
call fcn.004608a0
mov edi, eax
call fcn.00460920
push eax
call fcn.004608a0
mov edi, eax
call fcn.00460920
push eax
call fcn.004608a0
mov edi, eax
call fcn.00460920
push eax
call fcn.004608a0
mov esi, eax
mov byte [ebp - 4], 4
call fcn.00460830
xor edi, edi
cmp dword [0x4e132c], edi
jne 0x463032
push str.clientVersion_is_unknown__this_is_fatal
lea ecx, [ebp - 0x1144]
push ecx
call fcn.004545c0
add esp, 8
mov esi, ebx
lea eax, [ebp - 0x1154]
call fcn.00443430
jmp 0x463113
cmp dword [0x4e1448], edi
jne 0x46305e
push str.driverVersion_is_unknown__assuming_version_1.1
push 0x4a49cc
push 0x4e14a8
call fcn.004608a0
push eax
call fcn.004608a0
mov dword [0x4e1448], 0x10001
mov eax, dword [0x4e1444]
cmp eax, edi
jne 0x46308b
push str.serviceVersion_is_unknown__assuming_version_1.1
push 0x4a49cc
push 0x4e14a8
call fcn.004608a0
push eax
call fcn.004608a0
mov eax, 0x10001
mov dword [0x4e1444], eax
mov ecx, 0x10000
cmp dword [0x4e132c], ecx
jne 0x4630a9
push str.clientVersion_is_1__this_is_fatal
lea edx, [ebp - 0x1144]
push edx
jmp 0x463018
cmp dword [0x4e1448], ecx
jne 0x4630c2
push str.driverVersion_is_1__this_is_fatal
lea eax, [ebp - 0x1144]
push eax
jmp 0x463018
cmp eax, ecx
jne 0x4630d0
push str.serviceVersion_is_1__this_is_fatal
jmp 0x463011
push 0x114
push 0x4e1330
push 0x4e1780
push 0x4e177c
call dword [0x4e1468]
cmp eax, edi
jge 0x463107
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ecx
push str.ObsKbdCreatePublicKeyPair_failed__error_
lea edx, [ebp - 0x1144]
push edx
jmp 0x462ef6
push 0x49ca96
mov ecx, ebx
call fcn.00408e20
lea esi, [ebp - 0x1030]
mov dword [ebp - 0x106c], 1
call fcn.00403060
lea esi, [ebp - 0x104c]
call fcn.00403060
lea esi, [ebp - 0x107c]
call fcn.0040f580
lea eax, [ebp - 0x1154]
mov byte [ebp - 4], 0
call fcn.004407f0
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 - 0x14]
xor ecx, ebp
call fcn.004736db
mov esp, ebp
pop ebp
ret