Function at 0x46bd9b
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x158
mov eax, dword [0x4f5470]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor ebx, ebx
mov dword [ebp - 0x8c], ecx
push esi
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
call fcn.0046c7b1
push ebx
push ebx
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x58]
mov dword [ebp - 0x4c], ebx
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x5c], ebx
push eax
push ebx
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x38], ebx
push eax
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x58], ebx
push eax
push ebx
push ebx
push ebx
push dword [esi]
mov dword [ebp - 0x50], ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
mov esi, eax
test esi, esi
je 0x46be6c
call fcn.0040a000
cmp eax, 2
jg 0x46be52
push 2
push 0x7e
push str.d:webapps_b_build_slave_repo_build_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x30], 1
call fcn.0040a070
push esi
add eax, 8
push str.Failed_getting_info_of_key_to_backup__result:
push eax
call fcn.00408da0
pop ecx
pop ecx
mov ecx, eax
call fcn.0041e010
test byte [ebp - 0x30], 1
je 0x46c1bb
lea ecx, [ebp - 0x158]
call fcn.0040a0c0
jmp 0x46c1bb
mov eax, dword [ebp - 0x5c]
lea edx, [ebp - 0x5c]
cmp eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x58]
push edi
cmovae ecx, edx
mov eax, dword [ecx]
lea ecx, [ebp - 0x78]
inc eax
push eax
call fcn.00415a50
cmp dword [ebp - 0x38], ebx
je 0x46c00a
push dword [ebp - 0x38]
lea ecx, [ebp - 0x84]
call fcn.0046ccf9
xor eax, eax
lea ecx, [ebp - 0x68]
inc eax
cmp dword [ebp - 0x50], ebx
cmovne eax, dword [ebp - 0x50]
push eax
call fcn.0046bbec
mov edi, ebx
mov esi, dword [ebp - 0x78]
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
cmp dword [ebp - 0x38], ebx
jbe 0x46c000
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x64]
sub eax, esi
sar eax, 1
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x68]
sub ecx, eax
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x3c]
push ecx
push eax
lea eax, [ebp - 0x40]
push eax
push ebx
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x54]
push esi
push edi
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov dword [ebp - 0x6c], eax
sub eax, ebx
je 0x46bf43
sub eax, 0xea
jne 0x46bf83
mov eax, dword [ebp - 0x88]
cmp dword [ebp - 0x3c], eax
jbe 0x46bf29
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x68]
call fcn.0045c188
mov eax, dword [ebp - 0x34]
inc eax
cmp eax, dword [ebp - 0x90]
jbe 0x46bf78
push eax
lea ecx, [ebp - 0x78]
call fcn.0041e6a0
mov esi, dword [ebp - 0x78]
jmp 0x46bf78
lea ecx, [ebp - 0x2c]
call fcn.0046bceb
push eax
lea ecx, [ebp - 0x84]
call fcn.0046cc8c
lea ecx, [ebp - 0x2c]
call fcn.0046bd65
push dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x80]
push dword [ebp - 0x68]
push dword [ebp - 0x40]
lea ecx, [ecx - 0x28]
push dword [ebp - 0x34]
push esi
call fcn.0046c407
inc edi
cmp edi, dword [ebp - 0x38]
jb 0x46bec9
jmp 0x46c000
sub eax, 0x19
je 0x46bffd
call fcn.0040a000
cmp eax, 2
jg 0x46bfdf
push 2
push 0xa3
push str.d:webapps_b_build_slave_repo_build_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x30], 2
call fcn.0040a070
push dword [ebp - 0x6c]
add eax, 8
push 0x4d06f4
push edi
push str.Failed_backing_up_value
push eax
call fcn.00408da0
pop ecx
pop ecx
mov ecx, eax
call fcn.0040abc0
push eax
call fcn.00408da0
pop ecx
pop ecx
mov ecx, eax
call fcn.0041e010
test byte [ebp - 0x30], 2
je 0x46bff0
lea ecx, [ebp - 0x158]
call fcn.0040a0c0
lea ecx, [ebp - 0x68]
call fcn.0040ee10
jmp 0x46c1b2
mov dword [ebp - 0x38], edi
lea ecx, [ebp - 0x68]
call fcn.0040ee10
jmp 0x46c00d
mov esi, dword [ebp - 0x78]
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x46c190
mov dword [ebp - 0x34], ebx
mov edi, ebx
mov eax, dword [ebp - 0x74]
push ebx
push ebx
sub eax, esi
push ebx
sar eax, 1
push ebx
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x54]
push esi
push edi
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov dword [ebp - 0x6c], eax
sub eax, ebx
je 0x46c05c
sub eax, 0xea
jne 0x46c0b3
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x78]
inc eax
push eax
call fcn.0041e6a0
mov esi, dword [ebp - 0x78]
jmp 0x46c0a8
lea ecx, [ebp - 0xa8]
call fcn.0046bc97
push eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x1c], esi
call fcn.0046bc6f
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x48]
call fcn.0046b852
push eax
add eax, 0x10
lea ecx, [ebp - 0x48]
push eax
push ebx
lea eax, [ebp - 0x94]
push eax
call fcn.0046ba69
lea ecx, [ebp - 0x18]
call fcn.0046bd45
lea ecx, [ebp - 0xa8]
call fcn.0046bd45
inc edi
cmp edi, dword [ebp - 0x4c]
jb 0x46c01d
jmp 0x46c12c
sub eax, 0x19
je 0x46c129
call fcn.0040a000
cmp eax, 2
jg 0x46c10f
push 2
push 0xc3
push str.d:webapps_b_build_slave_repo_build_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x30], 8
call fcn.0040a070
push dword [ebp - 0x6c]
add eax, 8
push str._for_backup__result:
push edi
push str.Failed_getting_name_of_subkey
push eax
call fcn.00408da0
pop ecx
pop ecx
mov ecx, eax
call fcn.0040abc0
push eax
call fcn.00408da0
pop ecx
pop ecx
mov ecx, eax
call fcn.0041e010
test byte [ebp - 0x30], 8
je 0x46c1b2
lea ecx, [ebp - 0x158]
call fcn.0040a0c0
jmp 0x46c1b2
mov dword [ebp - 0x4c], edi
lea ecx, [ebp - 0x68]
call fcn.0040edf0
mov eax, dword [ebp - 0x48]
mov esi, dword [eax]
mov dword [ebp - 0x40], esi
cmp esi, eax
je 0x46c188
lea eax, [esi + 0x10]
cmp dword [eax + 0x14], 8
jb 0x46c14b
mov eax, dword [eax]
push 0x20009
push eax
mov eax, dword [ebp - 0x54]
lea ecx, [ebp - 0x68]
push dword [eax]
call fcn.00417320
mov edi, eax
test edi, edi
jne 0x46c239
lea eax, [ebp - 0x68]
push eax
lea ecx, [esi + 0x28]
call fcn.0046bd9b
test al, al
je 0x46c1e2
lea ecx, [ebp - 0x40]
call fcn.00462423
mov esi, dword [ebp - 0x40]
cmp esi, dword [ebp - 0x48]
jne 0x46c140
lea ecx, [ebp - 0x68]
call fcn.00417200
mov esi, dword [ebp - 0x8c]
lea eax, [ebp - 0x84]
push eax
mov ecx, esi
call fcn.0046cd73
lea eax, [ebp - 0x48]
push eax
lea ecx, [esi + 0xc]
call fcn.0046cd4b
mov bl, 1
lea ecx, [ebp - 0x78]
call fcn.0040ee10
pop edi
lea ecx, [ebp - 0x48]
call fcn.0046bd0b
lea ecx, [ebp - 0x84]
call fcn.0046c99b
mov ecx, dword [ebp - 4]
mov al, bl
pop esi
xor ecx, ebp
pop ebx
call fcn.004a7e44
mov esp, ebp
pop ebp
ret 4
call fcn.0040a000
cmp eax, 2
jg 0x46c233
push 2
push 0xd8
push str.d:webapps_b_build_slave_repo_build_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x30], 0x40
call fcn.0040a070
push 0x4f06a8
add esi, 0x10
add eax, 8
push esi
push str.Failed_backing_up_subkey__
push eax
call fcn.00408da0
pop ecx
pop ecx
push eax
call fcn.004051b0
pop ecx
pop ecx
push eax
call fcn.00408da0
pop ecx
pop ecx
test byte [ebp - 0x30], 0x40
jmp 0x46c296
call fcn.0040a000
cmp eax, 2
jg 0x46c292
push 2
push 0xd3
push str.d:webapps_b_build_slave_repo_build_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x30], 0x20
call fcn.0040a070
push edi
push str.__for_backup__result:
add esi, 0x10
add eax, 8
push esi
push str.Failed_opening_subkey__
push eax
call fcn.00408da0
pop ecx
pop ecx
push eax
call fcn.004051b0
pop ecx
pop ecx
push eax
call fcn.00408da0
pop ecx
pop ecx
mov ecx, eax
call fcn.0041e010
test byte [ebp - 0x30], 0x20
je 0x46c2a3
lea ecx, [ebp - 0x158]
call fcn.0040a0c0
lea ecx, [ebp - 0x68]
call fcn.00417200
jmp 0x46c1b2