Function at 0x10074d40
Capabilities:
Get system firmware table

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x808
mov eax, dword [0x101c7100]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemFirmwareTable]
push esi
push edi
push 0
push 0
push 0
push 0x52534d42
mov byte [0x108289d0], 0
mov byte [0x10828a98], 0
call ebx
mov edi, eax
test edi, edi
je 0x10074fd6
push edi
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push edi
mov esi, eax
push esi
push 0
push 0x52534d42
call ebx
test esi, esi
je 0x10074fd6
xor edx, edx
test edx, edx
jne 0x10074daa
lea edx, [esi + 8]
jmp 0x10074dcd
movzx ecx, byte [edx + 1]
add ecx, edx
cmp byte [ecx], 0
jne 0x10074dbb
cmp byte [ecx + 1], 0
je 0x10074dbe
inc ecx
jmp 0x10074db0
mov eax, dword [esi + 4]
lea edx, [ecx + 2]
add eax, 8
add eax, esi
cmp edx, eax
jae 0x10074e28
test edx, edx
je 0x10074e28
cmp byte [edx], 1
jne 0x10074da1
lea edi, [edx + 8]
mov ebx, 0x10
nop
mov ecx, 0x10828a98
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10074de8
movzx eax, byte [edi]
push eax
sub ecx, edx
jne 0x10074e0b
push str._02x
push 0x10828a98
call fcn.10030c90
add esp, 0xc
jmp 0x10074e22
push 0x10828a98
push str._s_02x
push 0x10828a98
call fcn.10030c90
add esp, 0x10
inc edi
sub ebx, 1
jne 0x10074de0
push 0x10828a98
push 0x10136e20
push 0x108289d0
call fcn.10030c90
add esp, 0xc
mov byte [0x10828a98], 0
xor edx, edx
test edx, edx
jne 0x10074e51
lea edx, [esi + 8]
jmp 0x10074e78
movzx ecx, byte [edx + 1]
add ecx, edx
cmp byte [ecx], 0
jne 0x10074e62
cmp byte [ecx + 1], 0
je 0x10074e65
inc ecx
jmp 0x10074e57
mov eax, dword [esi + 4]
lea edx, [ecx + 2]
add eax, 8
add eax, esi
cmp edx, eax
jae 0x10074f0b
mov eax, esi
test edx, edx
je 0x10074f0b
cmp byte [edx], 2
jne 0x10074e48
mov cl, byte [edx + 7]
xor esi, esi
mov word [ebp - 0x804], si
mov esi, eax
test cl, cl
je 0x10074ef5
movzx edi, byte [edx + 1]
mov ebx, 1
add edi, edx
cmp byte [edi], 0
je 0x10074ef5
movzx ecx, cl
mov dword [ebp - 0x808], ecx
cmp ebx, ecx
je 0x10074ed9
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10074ec0
sub ecx, edx
inc ebx
inc ecx
add edi, ecx
mov ecx, dword [ebp - 0x808]
cmp byte [edi], al
jne 0x10074eb2
jmp 0x10074ef5
push 0x400
lea eax, [ebp - 0x804]
push eax
push 0xffffffffffffffff
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0x41
lea eax, [ebp - 0x804]
push eax
push 0x10828a98
call fcn.100fdbca
add esp, 0xc
push 0x10828a98
push 0x108289d0
push 0x101a7a00
push 0x108289d0
call fcn.10030c90
add esp, 0x10
mov byte [0x10828a98], 0
xor edx, edx
test edx, edx
jne 0x10074f39
lea edx, [esi + 8]
jmp 0x10074f5d
movzx ecx, byte [edx + 1]
add ecx, edx
nop
cmp byte [ecx], 0
jne 0x10074f4b
cmp byte [ecx + 1], 0
je 0x10074f4e
inc ecx
jmp 0x10074f40
mov eax, dword [esi + 4]
lea edx, [ecx + 2]
add eax, 8
add eax, esi
cmp edx, eax
jae 0x10074fb8
test edx, edx
je 0x10074fb8
cmp byte [edx], 4
jne 0x10074f30
lea esi, [edx + 8]
mov edi, 8
nop
mov ecx, 0x10828a98
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10074f78
movzx eax, byte [esi]
push eax
sub ecx, edx
jne 0x10074f9b
push str._02x
push 0x10828a98
call fcn.10030c90
add esp, 0xc
jmp 0x10074fb2
push 0x10828a98
push str._s_02x
push 0x10828a98
call fcn.10030c90
add esp, 0x10
inc esi
sub edi, 1
jne 0x10074f70
push 0x10828a98
push 0x108289d0
push 0x101a7a00
push 0x108289d0
call fcn.10030c90
add esp, 0x10
jmp 0x10074fe8
push str.Not_Found1Not_Found2Not_Found3
push 0x108289d0
call fcn.10030c90
add esp, 8
mov ecx, 0x108289d0
pop edi
pop esi
pop ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10074ff3
sub ecx, edx
mov dl, 4
push ecx
push 0x108289d0
mov ecx, str.uniq
call fcn.1006a830
mov ecx, dword [ebp - 4]
add esp, 8
xor ecx, ebp
call fcn.100eaab6
mov esp, ebp
pop ebp
ret