Function at 0x50c67f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5225bb6
mov eax, dword fs:[0]
push eax
sub esp, 0xe0
mov eax, dword [0x53f3c3c]
xor eax, esp
mov dword [esp + 0xd8], eax
push ebx
push esi
push edi
mov eax, dword [0x53f3c3c]
xor eax, esp
push eax
lea eax, [esp + 0xf0]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x5c], ecx
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x60], edx
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x64], ecx
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0x68], edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x1c], ecx
test ebx, ebx
je 0x50c6feb
test edi, edi
je 0x50c6feb
cmp byte [ebx], 0
je 0x50c6f98
cmp byte [edi], 0
je 0x50c6f98
lea ecx, [esp + 0x7c]
call fcn.05001440
mov dword [esp + 0xf8], 2
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x7c]
push edx
call fcn.050bf500
add esp, 4
test al, al
jne 0x50c68d4
mov dword [esp + 0xf8], 0xffffffff
lea ecx, [esp + 0x7c]
call fcn.05001620
mov eax, 2
jmp 0x50c7053
cmp byte [esp + 0xa4], 0
mov dword [esp + 0x54], str.STRUCT
jne 0x50c68ee
mov dword [esp + 0x54], str.kal_uint8
push 0x52c722a
push 1
push 0x92d
push str..META_nvram.cpp
lea ecx, [esp + 0x40]
call fcn.051ae270
mov dword [esp + 0x14], eax
mov byte [esp + 0xf8], 3
cmp dword [esp + 0xc0], 0x10
jb 0x50c692b
mov eax, dword [esp + 0xac]
mov dword [esp + 0x48], eax
jmp 0x50c6936
lea ecx, [esp + 0xac]
mov dword [esp + 0x48], ecx
push esi
mov ecx, 0x53f4cc8
call fcn.05065960
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x54]
mov eax, dword [eax + 8]
push edi
push edi
push ebx
push ebx
push edx
mov edx, dword [esp + 0xac]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
push ecx
push ecx
push str.TraverseBitMap__:_LID_0x_08X___s___d_____s___s___field_0x_08X___s___bitname_0x_08X___s_.
push eax
mov eax, dword [esp + 0x40]
push eax
call fcn.051ae2d0
add esp, 0x30
mov byte [esp + 0xf8], 2
lea ecx, [esp + 0x30]
call fcn.051ae2c0
cmp byte [esp + 0xa4], 0
jne 0x50c6a01
push str._ERROR:
push 0xff
push 0x933
push str..META_nvram.cpp
lea ecx, [esp + 0x40]
call fcn.051ae270
mov edi, eax
mov byte [esp + 0xf8], 4
push esi
mov ecx, 0x53f4cc8
call fcn.05065960
mov eax, dword [eax + 8]
push str.TraverseBitMap__:_this_api_only_supports_to_fetch_structure_type_record_
push eax
push edi
call fcn.051ae2d0
add esp, 0xc
mov byte [esp + 0xf8], 2
lea ecx, [esp + 0x30]
call fcn.051ae2c0
mov dword [esp + 0xf8], 0xffffffff
lea ecx, [esp + 0x7c]
call fcn.05001620
mov eax, 3
jmp 0x50c7053
cmp dword [esp + 0xc0], 0x10
mov eax, dword [esp + 0xac]
jae 0x50c6a19
lea eax, [esp + 0xac]
lea ecx, [esp + 0x20]
push ecx
push ebx
push eax
push esi
mov ecx, 0x53f4cc8
call fcn.05065960
mov ecx, dword [eax + 0x2f4]
call fcn.051a9770
test eax, eax
je 0x50c6ad0
push str._ERROR:
push 0xff
push 0x93a
push str..META_nvram.cpp
lea ecx, [esp + 0x40]
call fcn.051ae270
mov dword [esp + 0x14], eax
mov byte [esp + 0xf8], 5
push esi
mov ecx, 0x53f4cc8
call fcn.05065960
mov edx, dword [esp + 0x20]
mov eax, dword [eax + 8]
push edx
sub esp, 0x1c
mov edi, esp
push ebx
push str.TraverseBitMap__:_GetOffset___s_____s___fail___offset__d_
push eax
mov eax, dword [esp + 0x40]
mov ecx, 7
lea esi, [esp + 0xd4]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.051ae2d0
add esp, 0x30
mov byte [esp + 0xf8], 2
lea ecx, [esp + 0x30]
call fcn.051ae2c0
mov dword [esp + 0xf8], 0xffffffff
lea ecx, [esp + 0x7c]
call fcn.05001620
mov eax, 4
jmp 0x50c7053
cmp dword [esp + 0xc0], 0x10
mov eax, dword [esp + 0xac]
jae 0x50c6ae8
lea eax, [esp + 0xac]
lea ecx, [esp + 0x50]
push ecx
push ebx
push eax
push esi
mov ecx, 0x53f4cc8
call fcn.05065960
mov ecx, dword [eax + 0x2f4]
call fcn.051a9a70
test eax, eax
je 0x50c6b9f
push str._ERROR:
push 0xff
push 0x940
push str..META_nvram.cpp
lea ecx, [esp + 0x40]
call fcn.051ae270
mov dword [esp + 0x14], eax
mov byte [esp + 0xf8], 6
push esi
mov ecx, 0x53f4cc8
call fcn.05065960
mov edx, dword [esp + 0x50]
mov eax, dword [eax + 8]
push edx
sub esp, 0x1c
mov edi, esp
push ebx
push str.TraverseBitMap__:_GetOffset___s_____s___fail___size__d_
push eax
mov eax, dword [esp + 0x40]
mov ecx, 7
lea esi, [esp + 0xd4]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.051ae2d0
add esp, 0x30
mov byte [esp + 0xf8], 2
lea ecx, [esp + 0x30]
call fcn.051ae2c0
mov dword [esp + 0xf8], 0xffffffff
lea ecx, [esp + 0x7c]
call fcn.05001620
mov eax, 5
jmp 0x50c7053
cmp dword [esp + 0xc0], 0x10
mov eax, dword [esp + 0xac]
jae 0x50c6bb7
lea eax, [esp + 0xac]
lea ecx, [esp + 0x44]
push ecx
push ebx
push eax
push esi
mov ecx, 0x53f4cc8
call fcn.05065960
mov ecx, dword [eax + 0x2f4]
call fcn.051a9710
test eax, eax
je 0x50c6c6e
push str._ERROR:
push 0xff
push 0x946
push str..META_nvram.cpp
lea ecx, [esp + 0x40]
call fcn.051ae270
mov dword [esp + 0x14], eax
mov byte [esp + 0xf8], 7
push esi
mov ecx, 0x53f4cc8
call fcn.05065960
mov edx, dword [esp + 0x44]
mov eax, dword [eax + 8]
push edx
sub esp, 0x1c
mov edi, esp
push ebx
push str.TraverseBitMap__:_GetOffset___s_____s___fail___alignment__d_
push eax
mov eax, dword [esp + 0x40]
mov ecx, 7
lea esi, [esp + 0xd4]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.051ae2d0
add esp, 0x30
mov byte [esp + 0xf8], 2
lea ecx, [esp + 0x30]
call fcn.051ae2c0
mov dword [esp + 0xf8], 0xffffffff
lea ecx, [esp + 0x7c]
call fcn.05001620
mov eax, 6
jmp 0x50c7053
cmp dword [esp + 0xc0], 0x10
mov eax, dword [esp + 0xac]
jae 0x50c6c86
lea eax, [esp + 0xac]
lea ecx, [esp + 0x2c]
push ecx
push ebx
push eax
push esi
mov ecx, 0x53f4cc8
call fcn.05065960
mov ecx, dword [eax + 0x2f4]
call fcn.051a9e10
test eax, eax
je 0x50c6cf8
push str._ERROR:
push 0xff
push 0x94e
push str..META_nvram.cpp
lea ecx, [esp + 0x40]
call fcn.051ae270
mov dword [esp + 0x14], eax
mov byte [esp + 0xf8], 8
push esi
mov ecx, 0x53f4cc8
call fcn.05065960
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + 8]
push edx
sub esp, 0x1c
mov edi, esp
push ebx
push str.TraverseBitMap__:_GetOffset___s_____s___fail___type__d_
push eax
mov eax, dword [esp + 0x40]
jmp 0x50c6c28
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0xcc]
call fcn.050c2550
mov ecx, dword [esp + 0xc4]
mov eax, dword [esp + 0xdc]
lea edx, [esp + 0x24]
mov dword [esp + 0x14], ecx
push edx
lea ecx, [esp + 0x18]
mov dword [esp + 0x1c], eax
call fcn.05138880
test al, al
je 0x50c6dae
push str._ERROR:
push 0xff
push 0x956
push str..META_nvram.cpp
lea ecx, [esp + 0x40]
call fcn.051ae270
mov edi, eax
mov byte [esp + 0xf8], 9
push esi
mov ecx, 0x53f4cc8
call fcn.05065960
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 8]
push ecx
push str.TraverseBitMap__:_offset__d__is_not_found_in_Offset_Bit_Map_
push eax
push edi
call fcn.051ae2d0
add esp, 0x10
mov byte [esp + 0xf8], 2
lea ecx, [esp + 0x30]
call fcn.051ae2c0
mov dword [esp + 0xf8], 0xffffffff
lea ecx, [esp + 0x7c]
call fcn.05001620
mov eax, 7
jmp 0x50c7053
lea ecx, [esp + 0x24]
call fcn.05163ce0
mov ecx, dword [eax + 0x18]
mov edx, dword [ecx]
add eax, 4
mov eax, dword [eax]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x24]
call fcn.05163ce0
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 4]
add eax, 4
lea eax, [esp + 0x14]
mov dword [esp + 0x58], ecx
push eax
lea ecx, [esp + 0x58]
mov dword [esp + 0x58], edx
call fcn.05067840
test al, al
je 0x50c6edc
lea ecx, [esp + 0x14]
call fcn.0516d6b0
mov edx, edi
lea ebx, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x50c6e07
mov ecx, dword [eax + 0x14]
sub edx, ebx
push edx
push edi
push ecx
push 0
mov ecx, eax
call dword [sym.imp.MSVCP90.dll_public:_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::compare_unsigned_int__unsigned_int__char_const___unsigned_int_const]
test eax, eax
je 0x50c6edc
push 0
lea edx, [esp + 0x78]
push edx
lea ecx, [esp + 0x1c]
call fcn.05068240
lea ecx, [esp + 0x24]
call fcn.05163ce0
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 4]
add eax, 4
lea eax, [esp + 0x14]
mov dword [esp + 0x4c], ecx
push eax
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], edx
call fcn.05138880
test al, al
je 0x50c6dc9
push str._ERROR:
push 0xff
push 0x966
push str..META_nvram.cpp
lea ecx, [esp + 0x40]
call fcn.051ae270
mov ebx, eax
mov byte [esp + 0xf8], 0xa
push esi
mov ecx, 0x53f4cc8
call fcn.05065960
mov eax, dword [eax + 8]
push edi
push str.TraverseBitMap__:_bitname__s__is_not_found_in_NVram_bitdata_list_
push eax
push ebx
call fcn.051ae2d0
add esp, 0x10
mov byte [esp + 0xf8], 2
lea ecx, [esp + 0x30]
call fcn.051ae2c0
mov dword [esp + 0xf8], 0xffffffff
lea ecx, [esp + 0x7c]
call fcn.05001620
mov eax, 8
jmp 0x50c7053
mov eax, dword [esp + 0xac]
mov esi, 0x10
cmp dword [esp + 0xc0], esi
jae 0x50c6ef8
lea eax, [esp + 0xac]
mov ecx, dword [esp + 0x5c]
push eax
call dword [0x523a2ec]
mov eax, dword [esp + 0xac]
cmp dword [esp + 0xc0], esi
jae 0x50c6f1a
lea eax, [esp + 0xac]
mov ecx, dword [esp + 0x60]
push eax
call dword [0x523a2ec]
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.051a91d0
mov esi, dword [esp + 0x70]
add esp, 4
push eax
mov ecx, esi
call dword [0x523a2ec]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x50]
mov dword [eax], edx
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x44]
mov dword [edx], ecx
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x2c]
mov dword [ecx], eax
push edx
mov ecx, esi
call dword [0x523a278]
lea ecx, [esp + 0x14]
call fcn.0516d6b0
mov ecx, dword [esp + 0x1c]
push eax
call fcn.050c3060
mov dword [esp + 0xf8], 0xffffffff
lea ecx, [esp + 0x7c]
call fcn.05001620
xor eax, eax
jmp 0x50c7053
push str._ERROR:
push 0xff
push 0x922
push str..META_nvram.cpp
lea ecx, [esp + 0x40]
call fcn.051ae270
mov dword [esp + 0x1c], eax
mov dword [esp + 0xf8], 1
push esi
mov ecx, 0x53f4cc8
call fcn.05065960
mov eax, dword [eax + 8]
push edi
push edi
push ebx
push ebx
push str.TraverseBitMap__:_field_or_bitname_is_empty_string___field_0x_08X___s___bitname_0x_08X___s_
push eax
mov eax, dword [esp + 0x34]
push eax
call fcn.051ae2d0
add esp, 0x1c
jmp 0x50c703a
push str._ERROR:
push 0xff
push 0x91d
push str..META_nvram.cpp
lea ecx, [esp + 0x40]
call fcn.051ae270
mov dword [esp + 0x1c], eax
mov dword [esp + 0xf8], 0
push esi
mov ecx, 0x53f4cc8
call fcn.05065960
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x1c]
push edi
push ebx
push str.TraverseBitMap__:_field_0x_08X__or_bitname_0x_08X__is_NULL_
push eax
push ecx
call fcn.051ae2d0
add esp, 0x14
mov dword [esp + 0xf8], 0xffffffff
lea ecx, [esp + 0x30]
call fcn.051ae2c0
mov eax, 1
mov ecx, dword [esp + 0xf0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.0520b902
mov esp, ebp
pop ebp
ret