Function at 0x1c7331e30
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 [0x1c74374a0]
mov eax, dword [0x1c74374c0]
movaps xmmword [rsp + 0xc0], xmm0
movdqa xmm0, xmmword [0x1c74374b0]
mov rbx, rcx
mov dword [rsp + 0xe0], eax
mov byte [rsp + 0xe4], 0x3e
movaps xmmword [rsp + 0xd0], xmm0
movzx eax, byte [0x1c7430860]
test al, al
je 0x1c73320b8
cmp byte [0x1c7434325], 0
je 0x1c7331ee5
movdqa xmm0, xmmword [str.________________vector_bool_::_M_fill_insert]
movdqa xmm1, xmmword [0x1c7434300]
mov byte [0x1c7434325], 0
xor byte [0x1c7434324], 0x3e
pxor xmm1, xmm0
pxor xmm0, xmmword [0x1c7434310]
movaps xmmword [0x1c7434300], xmm1
movd xmm1, dword [str.________________vector_bool_::_M_fill_insert]
movaps xmmword [0x1c7434310], xmm0
movd xmm0, dword [0x1c7434320]
pxor xmm0, xmm1
movd dword [0x1c7434320], xmm0
lea rbp, [0x1c7434300]
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 0x1c7332048
cmp rax, 1
jne 0x1c7331fb0
movzx edx, byte [0x1c7434300]
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 0x1c7331fc0
mov rax, qword [rsp + 0xa0]
lea rcx, [rbx + 0x10]
mov rsi, qword [rsp + 0xa8]
mov qword [rbx], rcx
cmp rax, rdi
je 0x1c733220e
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 0x1c7331f39
mov rax, rdi
jmp 0x1c7332073
mov ebp, eax
mov rcx, rbp
call fcn.1c7421650
mov r8, rbp
mov byte [rax], 0
mov rsi, rax
sub r8, 1
je 0x1c7331fe8
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 0x1c7332120
mov rax, qword [rsp + 0xa0]
mov qword [rbx], r12
cmp rax, rdi
je 0x1c73321e9
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.1c7421610
jmp 0x1c7331f99
lea rdx, [rsp + 0xc0]
xor r8d, r8d
mov rcx, r12
call fcn.1c73d38a0
mov rdx, qword [rsp + 0xc0]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xb0], rdx
cmp esi, 8
jae 0x1c7332196
test sil, 4
jne 0x1c73323e3
test esi, esi
je 0x1c733209d
movzx edx, byte [0x1c7434300]
mov byte [rax], dl
test sil, 2
jne 0x1c73323fa
mov rax, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0xa0]
jmp 0x1c7331f3c
lea rsi, [0x1c7430860]
mov rcx, rsi
call fcn.1c7421a60
test eax, eax
je 0x1c7331e88
movdqa xmm2, xmmword [rsp + 0xc0]
mov rax, qword [rsp + 0xdd]
lea rcx, [0x1c72ce950]
mov byte [0x1c7434325], 1
movdqa xmm3, xmmword [rsp + 0xd0]
movaps xmmword [0x1c7434300], xmm2
movaps xmmword [0x1c7434310], xmm3
mov qword [0x1c743431d], rax
call fcn.1c72a1467
mov rcx, rsi
call fcn.1c7421b60
jmp 0x1c7331e88
mov r8d, dword [rsi + 4]
lea rax, [rsi + 8]
add r8, rax
cmp rax, r8
jae 0x1c7332166
cmp byte [rax], 1
je 0x1c7332228
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 0x1c733215d
add rax, 1
mov ecx, edx
movzx edx, byte [rax]
or cl, dl
jne 0x1c7332150
add rax, 1
cmp rax, r8
jb 0x1c7332130
mov rax, qword [rsp + 0xa0]
mov qword [rbx], r12
mov r13, qword [rsp + 0xa8]
cmp rax, rdi
je 0x1c7332380
mov qword [rbx], rax
mov rax, qword [rsp + 0xb0]
mov qword [rbx + 0x10], rax
jmp 0x1c7332030
mov rdx, qword [0x1c7434300]
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 0x1c733209d
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 0x1c73321d3
jmp 0x1c733209d
mov r13, qword [rsp + 0xa8]
mov r8, r13
add r8, 1
je 0x1c7332030
mov rdx, rdi
mov rcx, r12
call sub.msvcrt.dll_memcpy
jmp 0x1c7332030
mov r8, rsi
add r8, 1
je 0x1c7331f95
mov rdx, rdi
call sub.msvcrt.dll_memcpy
jmp 0x1c7331f95
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.1c72ce990
mov qword [rbx], r12
mov rcx, r14
call sub.msvcrt.dll_strlen
mov qword [rsp + 0x98], rax
mov r13, rax
cmp rax, 0xf
ja 0x1c7332359
cmp rax, 1
jne 0x1c733231c
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 0x1c7332034
mov rax, qword [rsp + 0xb0]
lea rdx, [rax + 1]
call fcn.1c7421610
jmp 0x1c7332034
test rax, rax
je 0x1c73322ec
cmp r13d, 8
jae 0x1c7332392
test r13b, 4
jne 0x1c733240b
test r13d, r13d
je 0x1c733234c
movzx eax, byte [rsp + 0xc0]
mov byte [r12], al
test r13b, 2
jne 0x1c7332428
mov rax, qword [rsp + 0x98]
mov r12, qword [rbx]
jmp 0x1c73322ec
lea rdx, [rsp + 0x98]
xor r8d, r8d
mov rcx, rbx
call fcn.1c73d38a0
mov qword [rbx], rax
mov r12, rax
mov rax, qword [rsp + 0x98]
mov qword [rbx + 0x10], rax
jmp 0x1c7332321
mov r8, r13
add r8, 1
je 0x1c7332030
jmp 0x1c73321fe
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 0x1c733234c
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 0x1c73323cc
jmp 0x1c733234c
mov edx, dword [0x1c7434300]
mov esi, esi
mov dword [rax], edx
mov edx, dword [rbp + rsi - 4]
mov dword [rax + rsi - 4], edx
jmp 0x1c733209d
mov esi, esi
movzx edx, word [rbp + rsi - 2]
mov word [rax + rsi - 2], dx
jmp 0x1c733209d
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 0x1c733234c
mov eax, r13d
movzx edx, word [r14 + rax - 2]
mov word [r12 + rax - 2], dx
jmp 0x1c733234c