Function at 0x14001b1e0
Capabilities:
Get system firmware table

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x40]
sub rsp, 0x140
xorps xmm1, xmm1
xorps xmm0, xmm0
movups xmmword [rcx], xmm1
mov r12, rcx
movups xmmword [rcx + 0x10], xmm1
movups xmmword [rcx + 0x20], xmm1
movups xmmword [rcx + 0x30], xmm1
movups xmmword [rcx + 0x40], xmm1
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
call fcn.1400013d0
xor ebx, ebx
test rax, rax
jne 0x14001b2c7
lea rcx, [rbp - 0x50]
call fcn.14001bad0
test al, al
je 0x14001b2f4
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0x52534d42
call qword [sym.imp.KERNEL32.dll_GetSystemFirmwareTable]
mov r14d, eax
test eax, eax
je 0x14001b2f4
lea r9d, [rbx + 4]
mov r8d, 0x1000
mov edx, r14d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r13, rax
test rax, rax
je 0x14001b2f4
mov r9d, r14d
mov r8, rax
xor edx, edx
mov ecx, 0x52534d42
call qword [sym.imp.KERNEL32.dll_GetSystemFirmwareTable]
mov ecx, eax
cmp rcx, r14
je 0x14001b2b1
xor edx, edx
mov r8d, 0x8000
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov edx, 0x40
lea rcx, [rbp - 0x50]
call fcn.1400aa3e0
mov rsi, rax
jmp 0x14001b376
xorps xmm0, xmm0
xor r9d, r9d
xor r8d, r8d
movups xmmword [rbp - 0x10], xmm0
xor edx, edx
movups xmmword [rbp], xmm0
mov ecx, 0x52534d42
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
call qword [sym.imp.KERNEL32.dll_GetSystemFirmwareTable]
mov r14d, eax
test eax, eax
jne 0x14001b2fb
xor al, al
jmp 0x14001b4ab
mov r9d, 4
mov r8d, 0x1000
mov rdx, r14
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r13, rax
lea rcx, [rbp - 0x10]
add rax, 8
mov qword [rbp + 0x30], rax
call fcn.140001630
lea rdi, [rbp - 0x10]
nop word [rax + rax]
cmp byte [rdi], 0x20
jne 0x14001b348
inc rdi
lea rcx, [rbp - 0x10]
mov rax, rdi
sub rax, rcx
cmp rax, 0x40
jl 0x14001b330
test rdi, rdi
jne 0x14001b352
mov rsi, rbx
jmp 0x14001b362
mov edx, 0x3f
mov rcx, rdi
call fcn.1400aa3e0
mov rsi, rax
mov r9, rsi
lea rcx, [rbp - 0x50]
mov r8, rdi
mov edx, 0x40
call fcn.1400b4b68
mov rdi, rbx
test rsi, rsi
je 0x14001b39c
nop
movzx ecx, byte [rbp + rdi - 0x50]
call fcn.1400b4a10
test eax, eax
je 0x14001b398
inc rdi
cmp rdi, rsi
jb 0x14001b380
jmp 0x14001b39c
mov byte [rbp + rdi - 0x50], bl
mov r8d, 0x40
mov qword [rsp + 0x170], r15
lea rcx, [rbp - 0x50]
sub r8, rsi
add rcx, rsi
xor edx, edx
call fcn.1400a5760
xorps xmm0, xmm0
lea rcx, [rsp + 0x40]
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
call fcn.1400c05f0
mov r8d, 0x40
lea rdx, [rbp - 0x50]
lea rcx, [rsp + 0x40]
call fcn.1400c0660
lea rdx, [rsp + 0x40]
mov rcx, r12
call fcn.1400c02d0
lea r9, [r14 + r13]
lea rdx, [r13 + 8]
mov r14, rdx
cmp rdx, r9
jae 0x14001b451
nop dword [rax]
cmp byte [r14], 1
je 0x14001b460
movzx r8d, byte [r14 + 1]
mov rax, rbx
lea rcx, [r8 + r14]
cmp byte [rax + rcx], bl
jne 0x14001b43d
cmp byte [rax + rcx + 1], bl
je 0x14001b442
inc rax
jmp 0x14001b432
add rax, r8
add r14, 2
add r14, rax
cmp r14, r9
jb 0x14001b420
mov r14, rbx
cmp rdx, r9
jae 0x14001b490
nop dword [rax]
cmp byte [rdx], 2
je 0x14001b4c7
movzx r8d, byte [rdx + 1]
mov rax, rbx
lea rcx, [r8 + rdx]
cmp byte [rax + rcx], bl
jne 0x14001b47c
cmp byte [rax + rcx + 1], bl
je 0x14001b481
inc rax
jmp 0x14001b471
add rax, r8
add rdx, 2
add rdx, rax
cmp rdx, r9
jb 0x14001b460
xor edx, edx
mov r8d, 0x8000
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor al, al
mov r15, qword [rsp + 0x170]
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret
test r14, r14
je 0x14001b490
movzx eax, byte [rdx + 7]
test al, al
je 0x14001baac
movzx ecx, byte [rdx + 1]
xor r8b, r8b
add rcx, rdx
cmp byte [rcx], bl
je 0x14001b511
lea edx, [rax - 1]
nop dword [rax]
movzx eax, r8b
cmp eax, edx
je 0x14001b511
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x14001b4f0
movzx eax, byte [rcx + 1]
inc rcx
inc r8b
test al, al
jne 0x14001b4f0
cmp byte [rcx], bl
mov r15, rbx
cmovne r15, rcx
test r15, r15
je 0x14001b490
movabs rax, 0xa5b89f0b6b8c1503
mov rcx, rbx
mov qword [rsp + 0x30], rax
movabs rax, 0x7c7a43d5f57f66fd
mov qword [rsp + 0x38], rax
movabs rax, 0xb8a50b9fe20e4d7a
mov qword [rsp + 0x20], rax
movabs rax, 0x7a7cd5437ff5fd66
mov qword [rsp + 0x28], rax
movzx eax, word [rsp + rcx*2 + 0x20]
mov rsi, rcx
rol ax, 8
mov word [rsp + rcx*2 + 0x20], ax
and esi, 3
jne 0x14001b5fc
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
movzx eax, word [rsp + rcx*2 + 0x22]
lea rdx, [rcx + 1]
rol ax, 8
mov word [rsp + rcx*2 + 0x22], ax
and edx, 3
jne 0x14001b660
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
movzx eax, word [rsp + rcx*2 + 0x24]
lea r8, [rcx - 2]
rol ax, 8
mov word [rsp + rcx*2 + 0x24], ax
and r8d, 3
jne 0x14001b68b
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
movzx eax, word [rsp + rcx*2 + 0x26]
lea r9, [rcx - 1]
rol ax, 8
mov word [rsp + rcx*2 + 0x26], ax
and r9d, 3
jne 0x14001b6b7
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
jmp 0x14001b6c7
cmp rcx, 4
jne 0x14001b586
mov eax, dword [rsp + 0x2a]
lea rdx, [rcx + 1]
bswap eax
mov dword [rsp + 0x2a], eax
lea r8, [rcx - 2]
movzx eax, word [rsp + rcx*2 + 0x22]
lea r9, [rcx - 1]
rol ax, 8
and edx, 3
mov word [rsp + rcx*2 + 0x22], ax
and r8d, 3
movzx eax, word [rsp + rcx*2 + 0x24]
and r9d, 3
rol ax, 8
mov word [rsp + rcx*2 + 0x24], ax
movzx eax, word [rsp + rcx*2 + 0x26]
rol ax, 8
mov word [rsp + rcx*2 + 0x26], ax
movzx eax, word [rsp + rcx*2 + 0x28]
rol ax, 8
mov word [rsp + rcx*2 + 0x28], ax
jmp 0x14001b6f5
cmp rcx, 3
jne 0x14001b5ab
mov eax, dword [rsp + 0x2a]
lea r8, [rcx - 2]
bswap eax
mov dword [rsp + 0x2a], eax
movzx eax, word [rsp + rcx*2 + 0x24]
rol ax, 8
mov word [rsp + rcx*2 + 0x24], ax
and r8d, ecx
jmp 0x14001b69f
cmp rcx, 2
jne 0x14001b5d1
mov eax, dword [rsp + 0x2a]
bswap eax
mov dword [rsp + 0x2a], eax
movzx eax, word [rsp + rcx*2 + 0x26]
lea r9, [rcx - 1]
rol ax, 8
mov word [rsp + rcx*2 + 0x26], ax
and r9d, 3
jmp 0x14001b6c7
cmp rcx, 1
jne 0x14001b6c7
mov eax, dword [rsp + 0x2a]
bswap eax
mov dword [rsp + 0x2a], eax
movzx eax, word [rsp + rcx*2 + 0x28]
rol ax, 8
mov word [rsp + rcx*2 + 0x28], ax
test rsi, rsi
jne 0x14001b6e6
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
jmp 0x14001b6f5
test rcx, rcx
jne 0x14001b6f5
mov eax, dword [rsp + 0x2a]
bswap eax
mov dword [rsp + 0x2a], eax
movzx eax, word [rsp + rcx*2 + 0x2a]
rol ax, 8
mov word [rsp + rcx*2 + 0x2a], ax
test rdx, rdx
jne 0x14001b714
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
jmp 0x14001b724
cmp rcx, 0xffffffffffffffff
jne 0x14001b724
mov eax, dword [rsp + 0x2a]
bswap eax
mov dword [rsp + 0x2a], eax
movzx eax, word [rsp + rcx*2 + 0x2c]
rol ax, 8
mov word [rsp + rcx*2 + 0x2c], ax
test r8, r8
jne 0x14001b743
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
jmp 0x14001b753
cmp rcx, 0xfffffffffffffffe
jne 0x14001b753
mov eax, dword [rsp + 0x2a]
bswap eax
mov dword [rsp + 0x2a], eax
movzx eax, word [rsp + rcx*2 + 0x2e]
rol ax, 8
mov word [rsp + rcx*2 + 0x2e], ax
test r9, r9
jne 0x14001b772
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
jmp 0x14001b782
cmp rcx, 0xfffffffffffffffd
jne 0x14001b782
mov eax, dword [rsp + 0x2a]
bswap eax
mov dword [rsp + 0x2a], eax
add rcx, 8
cmp rcx, 8
jb 0x14001b562
movdqa xmm0, xmmword [rsp + 0x30]
lea rdx, [rsp + 0x20]
pxor xmm0, xmmword [rsp + 0x20]
mov r8d, 4
mov rcx, r15
movdqa xmmword [rsp + 0x20], xmm0
call fcn.1400b4c50
test eax, eax
je 0x14001baac
movabs rax, 0xa5b89f0b6b8c1503
mov qword [rsp + 0x30], rax
movabs rax, 0x7c7a43d5f57f66fd
mov qword [rsp + 0x38], rax
movabs rax, 0xcc857ef3ea0a4770
mov qword [rsp + 0x20], rax
movabs rax, 0x7a7cbb240d9c8e12
mov qword [rsp + 0x28], rax
nop dword [rax]
movzx eax, word [rsp + rbx*2 + 0x20]
mov rdi, rbx
rol ax, 8
mov word [rsp + rbx*2 + 0x20], ax
and edi, 3
jne 0x14001b895
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
movzx eax, word [rsp + rbx*2 + 0x22]
lea rcx, [rbx + 1]
rol ax, 8
mov word [rsp + rbx*2 + 0x22], ax
and ecx, 3
jne 0x14001b8f8
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
movzx eax, word [rsp + rbx*2 + 0x24]
lea rdx, [rbx - 2]
rol ax, 8
mov word [rsp + rbx*2 + 0x24], ax
and edx, 3
jne 0x14001b922
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
movzx eax, word [rsp + rbx*2 + 0x26]
lea r8, [rbx - 1]
rol ax, 8
mov word [rsp + rbx*2 + 0x26], ax
and r8d, 3
jne 0x14001b94e
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
jmp 0x14001b95e
cmp rbx, 4
jne 0x14001b820
mov eax, dword [rsp + 0x2a]
lea rcx, [rbx + 1]
bswap eax
mov dword [rsp + 0x2a], eax
lea rdx, [rbx - 2]
movzx eax, word [rsp + rbx*2 + 0x22]
lea r8, [rbx - 1]
rol ax, 8
and ecx, 3
mov word [rsp + rbx*2 + 0x22], ax
and edx, 3
movzx eax, word [rsp + rbx*2 + 0x24]
and r8d, 3
rol ax, 8
mov word [rsp + rbx*2 + 0x24], ax
movzx eax, word [rsp + rbx*2 + 0x26]
rol ax, 8
mov word [rsp + rbx*2 + 0x26], ax
movzx eax, word [rsp + rbx*2 + 0x28]
rol ax, 8
mov word [rsp + rbx*2 + 0x28], ax
jmp 0x14001b98c
cmp rbx, 3
jne 0x14001b845
mov eax, dword [rsp + 0x2a]
lea rdx, [rbx - 2]
bswap eax
mov dword [rsp + 0x2a], eax
movzx eax, word [rsp + rbx*2 + 0x24]
rol ax, 8
mov word [rsp + rbx*2 + 0x24], ax
and edx, ebx
jmp 0x14001b936
cmp rbx, 2
jne 0x14001b86a
mov eax, dword [rsp + 0x2a]
bswap eax
mov dword [rsp + 0x2a], eax
movzx eax, word [rsp + rbx*2 + 0x26]
lea r8, [rbx - 1]
rol ax, 8
mov word [rsp + rbx*2 + 0x26], ax
and r8d, 3
jmp 0x14001b95e
cmp rbx, 1
jne 0x14001b95e
mov eax, dword [rsp + 0x2a]
bswap eax
mov dword [rsp + 0x2a], eax
movzx eax, word [rsp + rbx*2 + 0x28]
rol ax, 8
mov word [rsp + rbx*2 + 0x28], ax
test rdi, rdi
jne 0x14001b97d
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
jmp 0x14001b98c
test rbx, rbx
jne 0x14001b98c
mov eax, dword [rsp + 0x2a]
bswap eax
mov dword [rsp + 0x2a], eax
movzx eax, word [rsp + rbx*2 + 0x2a]
rol ax, 8
mov word [rsp + rbx*2 + 0x2a], ax
test rcx, rcx
jne 0x14001b9ab
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
jmp 0x14001b9bb
cmp rbx, 0xffffffffffffffff
jne 0x14001b9bb
mov eax, dword [rsp + 0x2a]
bswap eax
mov dword [rsp + 0x2a], eax
movzx eax, word [rsp + rbx*2 + 0x2c]
rol ax, 8
mov word [rsp + rbx*2 + 0x2c], ax
test rdx, rdx
jne 0x14001b9da
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
jmp 0x14001b9ea
cmp rbx, 0xfffffffffffffffe
jne 0x14001b9ea
mov eax, dword [rsp + 0x2a]
bswap eax
mov dword [rsp + 0x2a], eax
movzx eax, word [rsp + rbx*2 + 0x2e]
rol ax, 8
mov word [rsp + rbx*2 + 0x2e], ax
test r8, r8
jne 0x14001ba09
mov eax, dword [rsp + 0x22]
bswap eax
mov dword [rsp + 0x22], eax
jmp 0x14001ba19
cmp rbx, 0xfffffffffffffffd
jne 0x14001ba19
mov eax, dword [rsp + 0x2a]
bswap eax
mov dword [rsp + 0x2a], eax
add rbx, 8
cmp rbx, 8
jb 0x14001b800
movdqa xmm0, xmmword [rsp + 0x20]
lea rdx, [rsp + 0x20]
pxor xmm0, xmmword [rsp + 0x30]
mov r8d, select
mov rcx, r15
movdqa xmmword [rsp + 0x20], xmm0
call fcn.1400b4c50
test eax, eax
je 0x14001baac
mov edx, 0x20
mov rcx, r15
call fcn.1400aa3e0
xorps xmm0, xmm0
lea rcx, [rsp + 0x40]
movups xmmword [rsp + 0x40], xmm0
mov rbx, rax
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
call fcn.1400c05f0
mov r8, rbx
lea rcx, [rsp + 0x40]
mov rdx, r15
call fcn.1400c0660
lea rcx, [r12 + 0x20]
lea rdx, [rsp + 0x40]
call fcn.1400c02d0
movups xmm0, xmmword [r14 + 8]
xor edx, edx
mov r8d, 0x8000
mov rcx, r13
movups xmmword [r12 + 0x40], xmm0
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov al, 1
jmp 0x14001b4a3