Function at 0x4319c0
Capabilities:
Get system firmware table

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xf0
mov rax, qword [0x004fb010]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov rax, qword [rbp - 0x69]
mov qword [rbp - 0x69], rax
lea r13, [0x00503b10]
mov qword [rbp - 0x69], r13
xorps xmm0, xmm0
movdqu xmmword [0x00503b10], xmm0
xor r12d, r12d
mov qword [0x00503b20], r12
mov qword [rbp - 0x19], r12
mov qword [rbp - 9], r12
mov qword [rbp - 1], SafeArrayGetDim
mov byte [rbp - 0x19], r12b
xor r8d, r8d
lea rdx, [0x004baa2b]
lea rcx, [rbp - 0x19]
call sym.AsusSoftwareManager.exe_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const__const___ptr64__unsigned_long_long_unsigned___int64_____ptr64
nop
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0x52534d42
call qword [sym.imp.api_ms_win_core_sysinfo_l1_2_0.dll_GetSystemFirmwareTable]
mov ebx, eax
mov qword [rsp + 0x30], r12
mov qword [rbp - 0x79], r12
mov qword [rbp - 0x71], SafeArrayGetDim
mov edx, eax
xor r8d, r8d
lea rcx, [rsp + 0x30]
call sym.AsusSoftwareManager.exe_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_unsigned_long_long_unsigned___int64___char____ptr64
mov rdx, qword [rbp - 1]
cmp rdx, 0x10
jb 0x431ab5
inc rdx
mov rcx, qword [rbp - 0x19]
mov rax, rcx
cmp rdx, 0x1000
jb 0x431ab0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x431ab0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.00479330
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rbp - 0x19], xmm0
movups xmm1, xmmword [rbp - 0x79]
movups xmmword [rbp - 9], xmm1
lea r8, [rbp - 0x19]
movq r9, xmm0
psrldq xmm1, 8
movq rax, xmm1
cmp rax, 0x10
cmovae r8, r9
mov r9d, ebx
xor edx, edx
mov ecx, 0x52534d42
call qword [sym.imp.api_ms_win_core_sysinfo_l1_2_0.dll_GetSystemFirmwareTable]
cmp eax, ebx
je 0x431b4e
xor r8d, r8d
lea rdx, [0x004baa2b]
lea rcx, [rbp - 0x19]
call sym.AsusSoftwareManager.exe_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const__const___ptr64__unsigned_long_long_unsigned___int64_____ptr64
mov rcx, qword [rbp - 0x19]
mov rax, qword [rbp - 1]
cmp rax, 0x10
jb 0x431ec0
lea rdx, [rax + 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x431eba
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x431eba
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
lea r15, [rbp - 0x19]
mov rcx, qword [rbp - 0x19]
mov rax, qword [rbp - 1]
cmp rax, 0x10
jb 0x431b68
mov r15, rcx
test rcx, rcx
je 0x431b10
mov r14d, r12d
cmp dword [r15 + 4], r12d
jbe 0x431b10
xorps xmm0, xmm0
movups xmmword [rbp - 0x59], xmm0
movups xmmword [rbp - 0x49], xmm0
movups xmmword [rbp - 0x39], xmm0
mov qword [rbp - 0x51], r12
mov qword [rbp - 0x41], r12
mov qword [rbp - 0x39], SafeArrayGetDim
mov byte [rbp - 0x51], 0
mov qword [rbp - 0x31], r12
movdqa xmmword [rbp - 0x29], xmm0
mov byte [rbp - 0x59], 0
mov dword [rbp - 0x55], r12d
xor r8d, r8d
lea rdx, [0x004baa2b]
lea rcx, [rbp - 0x51]
call sym.AsusSoftwareManager.exe_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const__const___ptr64__unsigned_long_long_unsigned___int64_____ptr64
nop
mov esi, r14d
add rsi, 8
add rsi, r15
movzx eax, byte [rsi + 1]
add rax, rsi
nop word [rax + rax]
cmp byte [rax], 0
jne 0x431bdb
cmp byte [rax + 1], 0
je 0x431be0
inc rax
jmp 0x431bd0
sub eax, esi
add eax, 2
mov dword [rbp - 0x55], eax
add r14d, eax
movsxd rdx, eax
mov qword [rsp + 0x30], r12
mov qword [rbp - 0x79], r12
mov qword [rbp - 0x71], SafeArrayGetDim
xor r8d, r8d
lea rcx, [rsp + 0x30]
call sym.AsusSoftwareManager.exe_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_unsigned_long_long_unsigned___int64___char____ptr64
mov rdx, qword [rbp - 0x39]
cmp rdx, 0x10
jb 0x431c47
inc rdx
mov rcx, qword [rbp - 0x51]
mov rax, rcx
cmp rdx, 0x1000
jb 0x431c42
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x431eac
call fcn.00479330
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rbp - 0x51], xmm0
movups xmm1, xmmword [rbp - 0x79]
movups xmmword [rbp - 0x41], xmm1
lea r9, [rbp - 0x51]
movq rcx, xmm0
psrldq xmm1, 8
movq rax, xmm1
cmp rax, 0x10
cmovae r9, rcx
movsxd rdi, dword [rbp - 0x55]
test rdi, rdi
je 0x431cdc
test r9, r9
jne 0x431c8f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], reloc.OLEAUT32.dll_SafeArrayAccessData
jmp 0x431cd6
mov rbx, qword [rbp - 0x79]
mov rcx, r9
cmp rbx, rdi
jb 0x431ca8
mov r8, rdi
mov rdx, rsi
call fcn.004a2610
jmp 0x431cdc
mov r8, rbx
xor edx, edx
call fcn.004a2370
test rsi, rsi
jne 0x431cc5
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], reloc.OLEAUT32.dll_SafeArrayAccessData
jmp 0x431cd6
cmp rbx, rdi
jae 0x431cdc
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0x22
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo]
movzx eax, byte [rsi]
mov byte [rbp - 0x59], al
mov qword [rbp + 7], r12
mov qword [rbp + 0x17], r12
mov qword [rbp + 0x1f], SafeArrayGetDim
mov byte [rbp + 7], 0
xor r8d, r8d
lea rdx, [0x004baa2b]
lea rcx, [rbp + 7]
call sym.AsusSoftwareManager.exe_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const__const___ptr64__unsigned_long_long_unsigned___int64_____ptr64
nop
movzx edi, byte [rsi + 1]
mov eax, dword [rbp - 0x55]
dec eax
cmp edi, eax
jge 0x431df2
mov ebx, edi
nop dword [rax]
lea rax, [rbp - 0x51]
mov rcx, qword [rbp - 0x51]
mov rdx, qword [rbp - 0x39]
cmp rdx, 0x10
cmovae rax, rcx
cmp byte [rax + rbx], 0
je 0x431d95
lea rax, [rbp - 0x51]
cmp rdx, 0x10
cmovae rax, rcx
movsx edx, byte [rax + rbx]
mov r8, qword [rbp + 0x17]
mov r9, qword [rbp + 0x1f]
mov rax, r9
sub rax, r8
lea rcx, [rbp + 7]
cmp rax, 1
jb 0x431d82
lea rax, [r8 + 1]
mov qword [rbp + 0x17], rax
cmp r9, 0x10
cmovae rcx, qword [rbp + 7]
movzx eax, dl
mov byte [rcx + r8], al
mov byte [rcx + r8 + 1], 0
jmp 0x431de0
mov byte [rsp + 0x20], dl
mov edx, 1
mov r9d, edx
call fcn.00410000
jmp 0x431de0
mov rax, qword [rbp - 0x29]
cmp rax, qword [rbp - 0x21]
je 0x431dbd
mov qword [rax], r12
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], r12
lea rdx, [rbp + 7]
mov rcx, rax
call sym.AsusSoftwareManager.exe_private:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Construct_lv_contents_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64____ptr64
add qword [rbp - 0x29], 0x20
jmp 0x431dcd
lea r8, [rbp + 7]
mov rdx, rax
lea rcx, [rbp - 0x31]
call fcn.00435590
xor r8d, r8d
lea rdx, [0x004baa2b]
lea rcx, [rbp + 7]
call sym.AsusSoftwareManager.exe_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const__const___ptr64__unsigned_long_long_unsigned___int64_____ptr64
inc edi
inc rbx
mov eax, dword [rbp - 0x55]
dec eax
cmp edi, eax
jl 0x431d20
mov rax, qword [0x00503b18]
cmp rax, qword [0x00503b20]
je 0x431e18
lea rdx, [rbp - 0x59]
mov rcx, rax
call fcn.00434340
add qword [0x00503b18], 0x40
jmp 0x431e25
lea r8, [rbp - 0x59]
mov rdx, rax
call fcn.00435380
nop
mov rdx, qword [rbp + 0x1f]
cmp rdx, 0x10
jb 0x431e5d
inc rdx
mov rcx, qword [rbp + 7]
mov rax, rcx
cmp rdx, 0x1000
jb 0x431e57
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x431eac
call fcn.00479330
nop
lea rcx, [rbp - 0x31]
call fcn.004350b0
mov rdx, qword [rbp - 0x39]
cmp rdx, 0x10
jb 0x431e9d
inc rdx
mov rcx, qword [rbp - 0x51]
mov rax, rcx
cmp rdx, 0x1000
jb 0x431e98
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x431eb3
call fcn.00479330
cmp r14d, dword [r15 + 4]
jae 0x431b08
jmp 0x431b71
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.00479330
nop
mov rax, r13
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.00479310
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret