Function at 0x1c732f2f0
Capabilities:
Get system firmware table

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf0
movdqa xmm0, xmmword [0x1c7433450]
mov eax, dword [0x1c7433470]
movaps xmmword [rsp + 0xc0], xmm0
movdqa xmm0, xmmword [0x1c7433460]
mov rbx, rcx
mov dword [rsp + 0xe0], eax
mov byte [rsp + 0xe4], 0x3e
movaps xmmword [rsp + 0xd0], xmm0
movzx eax, byte [0x1c742c520]
test al, al
je 0x1c732f578
cmp byte [0x1c742ffe5], 0
je 0x1c732f3a5
movdqa xmm0, xmmword [str.________________vector_bool_::_M_fill_insert]
movdqa xmm1, xmmword [0x1c742ffc0]
mov byte [0x1c742ffe5], 0
xor byte [0x1c742ffe4], 0x3e
pxor xmm1, xmm0
pxor xmm0, xmmword [0x1c742ffd0]
movaps xmmword [0x1c742ffc0], xmm1
movd xmm1, dword [str.________________vector_bool_::_M_fill_insert]
movaps xmmword [0x1c742ffd0], xmm0
movd xmm0, dword [0x1c742ffe0]
pxor xmm0, xmm1
movd dword [0x1c742ffe0], xmm0
lea rbp, [0x1c742ffc0]
lea rdi, [rsp + 0xb0]
mov rcx, rbp
mov qword [rsp + 0xa0], rdi
lea r12, [rsp + 0xa0]
call sub.msvcrt.dll_strlen
mov qword [rsp + 0xc0], rax
mov rsi, rax
cmp rax, 0xf
ja 0x1c732f508
cmp rax, 1
jne 0x1c732f470
movzx edx, byte [0x1c742ffc0]
mov byte [rsp + 0xb0], dl
mov rdx, rdi
mov qword [rsp + 0xa8], rax
mov r12, qword [sym.imp.KERNEL32.dll_GetSystemFirmwareTable]
xor r9d, r9d
xor r8d, r8d
mov byte [rdx + rax], 0
mov ecx, 0x52534d42
xor edx, edx
call r12
mov r13d, eax
test eax, eax
jne 0x1c732f480
mov rax, qword [rsp + 0xa0]
lea rcx, [rbx + 0x10]
mov rsi, qword [rsp + 0xa8]
mov qword [rbx], rcx
cmp rax, rdi
je 0x1c732f6ce
mov qword [rbx], rax
mov rax, qword [rsp + 0xb0]
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], rsi
mov rax, rbx
add rsp, 0xf0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
test rax, rax
je 0x1c732f3f9
mov rax, rdi
jmp 0x1c732f533
mov ebp, eax
mov rcx, rbp
call fcn.1c741dad0
mov r8, rbp
mov byte [rax], 0
mov rsi, rax
sub r8, 1
je 0x1c732f4a8
lea rcx, [rax + 1]
xor edx, edx
call sub.msvcrt.dll_memset
nop dword [rax]
mov r9d, r13d
mov r8, rsi
xor edx, edx
mov ecx, 0x52534d42
call r12
lea r12, [rbx + 0x10]
cmp r13d, eax
je 0x1c732f5e0
mov rax, qword [rsp + 0xa0]
mov qword [rbx], r12
cmp rax, rdi
je 0x1c732f6a9
mov qword [rbx], rax
mov rax, qword [rsp + 0xb0]
mov r13, qword [rsp + 0xa8]
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], r13
mov rdx, rbp
mov rcx, rsi
call fcn.1c741da90
jmp 0x1c732f459
lea rdx, [rsp + 0xc0]
xor r8d, r8d
mov rcx, r12
call fcn.1c73d0d20
mov rdx, qword [rsp + 0xc0]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xb0], rdx
cmp esi, 8
jae 0x1c732f656
test sil, 4
jne 0x1c732f8a3
test esi, esi
je 0x1c732f55d
movzx edx, byte [0x1c742ffc0]
mov byte [rax], dl
test sil, 2
jne 0x1c732f8ba
mov rax, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0xa0]
jmp 0x1c732f3fc
lea rsi, [0x1c742c520]
mov rcx, rsi
call fcn.1c741dee0
test eax, eax
je 0x1c732f348
movdqa xmm2, xmmword [rsp + 0xc0]
mov rax, qword [rsp + 0xdd]
lea rcx, [0x1c72ce7b0]
mov byte [0x1c742ffe5], 1
movdqa xmm3, xmmword [rsp + 0xd0]
movaps xmmword [0x1c742ffc0], xmm2
movaps xmmword [0x1c742ffd0], xmm3
mov qword [0x1c742ffdd], rax
call fcn.1c72a1467
mov rcx, rsi
call fcn.1c741dfe0
jmp 0x1c732f348
mov r8d, dword [rsi + 4]
lea rax, [rsi + 8]
add r8, rax
cmp rax, r8
jae 0x1c732f626
cmp byte [rax], 1
je 0x1c732f6e8
movzx ecx, byte [rax + 1]
add rcx, rax
movzx edx, byte [rcx + 1]
lea rax, [rcx + 1]
mov r10d, edx
or r10b, byte [rcx]
je 0x1c732f61d
add rax, 1
mov ecx, edx
movzx edx, byte [rax]
or cl, dl
jne 0x1c732f610
add rax, 1
cmp rax, r8
jb 0x1c732f5f0
mov rax, qword [rsp + 0xa0]
mov qword [rbx], r12
mov r13, qword [rsp + 0xa8]
cmp rax, rdi
je 0x1c732f840
mov qword [rbx], rax
mov rax, qword [rsp + 0xb0]
mov qword [rbx + 0x10], rax
jmp 0x1c732f4f0
mov rdx, qword [0x1c742ffc0]
lea r8, [rax + 8]
and r8, 0xfffffffffffffff8
mov qword [rax], rdx
mov edx, esi
mov rcx, qword [rbp + rdx - 8]
mov qword [rax + rdx - 8], rcx
sub rax, r8
mov rdx, rax
mov rax, rbp
add esi, edx
sub rax, rdx
and esi, 0xfffffff8
cmp esi, 8
jb 0x1c732f55d
and esi, 0xfffffff8
xor edx, edx
mov ecx, edx
add edx, 8
mov r9, qword [rax + rcx]
mov qword [r8 + rcx], r9
cmp edx, esi
jb 0x1c732f693
jmp 0x1c732f55d
mov r13, qword [rsp + 0xa8]
mov r8, r13
add r8, 1
je 0x1c732f4f0
mov rdx, rdi
mov rcx, r12
call sub.msvcrt.dll_memcpy
jmp 0x1c732f4f0
mov r8, rsi
add r8, 1
je 0x1c732f455
mov rdx, rdi
call sub.msvcrt.dll_memcpy
jmp 0x1c732f455
movzx edx, byte [rax + 0x17]
movzx r9d, byte [rax + 0xa]
lea r14, [rsp + 0xc0]
movzx r8d, byte [rax + 0xb]
mov rcx, r14
mov dword [rsp + 0x88], edx
movzx edx, byte [rax + 0x16]
mov dword [rsp + 0x80], edx
movzx edx, byte [rax + 0x15]
mov dword [rsp + 0x78], edx
movzx edx, byte [rax + 0x14]
mov dword [rsp + 0x70], edx
movzx edx, byte [rax + 0x13]
mov dword [rsp + 0x68], edx
movzx edx, byte [rax + 0x12]
mov dword [rsp + 0x60], edx
movzx edx, byte [rax + 0x11]
mov dword [rsp + 0x58], edx
movzx edx, byte [rax + 0x10]
mov dword [rsp + 0x50], edx
movzx edx, byte [rax + 0xe]
mov dword [rsp + 0x48], edx
movzx edx, byte [rax + 0xf]
mov dword [rsp + 0x40], edx
movzx edx, byte [rax + 0xc]
mov dword [rsp + 0x38], edx
movzx edx, byte [rax + 0xd]
mov dword [rsp + 0x30], edx
movzx edx, byte [rax + 8]
mov dword [rsp + 0x28], edx
movzx eax, byte [rax + 9]
lea rdx, str._.2X_.2X_.2X_.2X__.2X_.2X__.2X_.2X__.2X_.2X__.2X_.2X_.2X_.2X_.2X_.2X
mov dword [rsp + 0x20], eax
call fcn.1c72ce7f0
mov qword [rbx], r12
mov rcx, r14
call sub.msvcrt.dll_strlen
mov qword [rsp + 0x98], rax
mov r13, rax
cmp rax, 0xf
ja 0x1c732f819
cmp rax, 1
jne 0x1c732f7dc
movzx edx, byte [rsp + 0xc0]
mov byte [rbx + 0x10], dl
mov qword [rbx + 8], rax
mov byte [r12 + rax], 0
mov rcx, qword [rsp + 0xa0]
cmp rcx, rdi
je 0x1c732f4f4
mov rax, qword [rsp + 0xb0]
lea rdx, [rax + 1]
call fcn.1c741da90
jmp 0x1c732f4f4
test rax, rax
je 0x1c732f7ac
cmp r13d, 8
jae 0x1c732f852
test r13b, 4
jne 0x1c732f8cb
test r13d, r13d
je 0x1c732f80c
movzx eax, byte [rsp + 0xc0]
mov byte [r12], al
test r13b, 2
jne 0x1c732f8e8
mov rax, qword [rsp + 0x98]
mov r12, qword [rbx]
jmp 0x1c732f7ac
lea rdx, [rsp + 0x98]
xor r8d, r8d
mov rcx, rbx
call fcn.1c73d0d20
mov qword [rbx], rax
mov r12, rax
mov rax, qword [rsp + 0x98]
mov qword [rbx + 0x10], rax
jmp 0x1c732f7e1
mov r8, r13
add r8, 1
je 0x1c732f4f0
jmp 0x1c732f6be
mov rax, qword [rsp + 0xc0]
lea rcx, [r12 + 8]
and rcx, 0xfffffffffffffff8
mov qword [r12], rax
mov eax, r13d
mov rdx, qword [r14 + rax - 8]
mov qword [r12 + rax - 8], rdx
sub r12, rcx
lea eax, [r13 + r12]
sub r14, r12
and eax, 0xfffffff8
cmp eax, 8
jb 0x1c732f80c
and eax, 0xfffffff8
xor edx, edx
mov r8d, edx
add edx, 8
mov r9, qword [r14 + r8]
mov qword [rcx + r8], r9
cmp edx, eax
jb 0x1c732f88c
jmp 0x1c732f80c
mov edx, dword [0x1c742ffc0]
mov esi, esi
mov dword [rax], edx
mov edx, dword [rbp + rsi - 4]
mov dword [rax + rsi - 4], edx
jmp 0x1c732f55d
mov esi, esi
movzx edx, word [rbp + rsi - 2]
mov word [rax + rsi - 2], dx
jmp 0x1c732f55d
mov eax, dword [rsp + 0xc0]
mov dword [r12], eax
mov eax, r13d
mov edx, dword [r14 + rax - 4]
mov dword [r12 + rax - 4], edx
jmp 0x1c732f80c
mov eax, r13d
movzx edx, word [r14 + rax - 2]
mov word [r12 + rax - 2], dx
jmp 0x1c732f80c