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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x158
mov eax, dword [0x4a22d0]
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.0045c0f0
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 0x45b7a9
call fcn.00409a00
cmp eax, 2
jg 0x45b78f
push 2
push 0x7e
push str.c:_b_build_slavewin_build_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x30], 1
call fcn.00409a70
push esi
add eax, 8
push str.Failed_getting_info_of_key_to_backup__result:
push eax
call fcn.00408be0
pop ecx
pop ecx
mov ecx, eax
call fcn.0041c510
test byte [ebp - 0x30], 1
je 0x45baf8
lea ecx, [ebp - 0x158]
call fcn.00409ac0
jmp 0x45baf8
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.00410d00
cmp dword [ebp - 0x38], ebx
je 0x45b947
push dword [ebp - 0x38]
lea ecx, [ebp - 0x84]
call fcn.0045c638
xor eax, eax
lea ecx, [ebp - 0x68]
inc eax
cmp dword [ebp - 0x50], ebx
cmovne eax, dword [ebp - 0x50]
push eax
call fcn.0045b4e5
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 0x45b93d
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 0x45b880
sub eax, 0xea
jne 0x45b8c0
mov eax, dword [ebp - 0x88]
cmp dword [ebp - 0x3c], eax
jbe 0x45b866
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x68]
call fcn.0044c2bc
mov eax, dword [ebp - 0x34]
inc eax
cmp eax, dword [ebp - 0x90]
jbe 0x45b8b5
push eax
lea ecx, [ebp - 0x78]
call fcn.00425080
mov esi, dword [ebp - 0x78]
jmp 0x45b8b5
lea ecx, [ebp - 0x2c]
call fcn.0045b5e4
push eax
lea ecx, [ebp - 0x84]
call fcn.0045c5cb
lea ecx, [ebp - 0x2c]
call fcn.0045b65e
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.0045bd44
inc edi
cmp edi, dword [ebp - 0x38]
jb 0x45b806
jmp 0x45b93d
sub eax, 0x19
je 0x45b93a
call fcn.00409a00
cmp eax, 2
jg 0x45b91c
push 2
push 0xa3
push str.c:_b_build_slavewin_build_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x30], 2
call fcn.00409a70
push dword [ebp - 0x6c]
add eax, 8
push 0x48f204
push edi
push str.Failed_backing_up_value
push eax
call fcn.00408be0
pop ecx
pop ecx
mov ecx, eax
call fcn.0040a600
push eax
call fcn.00408be0
pop ecx
pop ecx
mov ecx, eax
call fcn.0041c510
test byte [ebp - 0x30], 2
je 0x45b92d
lea ecx, [ebp - 0x158]
call fcn.00409ac0
lea ecx, [ebp - 0x68]
call fcn.0040eb90
jmp 0x45baef
mov dword [ebp - 0x38], edi
lea ecx, [ebp - 0x68]
call fcn.0040eb90
jmp 0x45b94a
mov esi, dword [ebp - 0x78]
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x45bacd
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 0x45b999
sub eax, 0xea
jne 0x45b9f0
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x78]
inc eax
push eax
call fcn.00425080
mov esi, dword [ebp - 0x78]
jmp 0x45b9e5
lea ecx, [ebp - 0xa8]
call fcn.0045b590
push eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x1c], esi
call fcn.0045b568
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x48]
call fcn.0045b14b
push eax
add eax, 0x10
lea ecx, [ebp - 0x48]
push eax
push ebx
lea eax, [ebp - 0x94]
push eax
call fcn.0045b362
lea ecx, [ebp - 0x18]
call fcn.0045b63e
lea ecx, [ebp - 0xa8]
call fcn.0045b63e
inc edi
cmp edi, dword [ebp - 0x4c]
jb 0x45b95a
jmp 0x45ba69
sub eax, 0x19
je 0x45ba66
call fcn.00409a00
cmp eax, 2
jg 0x45ba4c
push 2
push 0xc3
push str.c:_b_build_slavewin_build_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x30], 8
call fcn.00409a70
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.00408be0
pop ecx
pop ecx
mov ecx, eax
call fcn.0040a600
push eax
call fcn.00408be0
pop ecx
pop ecx
mov ecx, eax
call fcn.0041c510
test byte [ebp - 0x30], 8
je 0x45baef
lea ecx, [ebp - 0x158]
call fcn.00409ac0
jmp 0x45baef
mov dword [ebp - 0x4c], edi
lea ecx, [ebp - 0x68]
call fcn.0040eb70
mov eax, dword [ebp - 0x48]
mov esi, dword [eax]
mov dword [ebp - 0x40], esi
cmp esi, eax
je 0x45bac5
lea eax, [esi + 0x10]
cmp dword [eax + 0x14], 8
jb 0x45ba88
mov eax, dword [eax]
push 0x20009
push eax
mov eax, dword [ebp - 0x54]
lea ecx, [ebp - 0x68]
push dword [eax]
call fcn.00415b90
mov edi, eax
test edi, edi
jne 0x45bb76
lea eax, [ebp - 0x68]
push eax
lea ecx, [esi + 0x28]
call fcn.0045b6d8
test al, al
je 0x45bb1f
lea ecx, [ebp - 0x40]
call fcn.00449469
mov esi, dword [ebp - 0x40]
cmp esi, dword [ebp - 0x48]
jne 0x45ba7d
lea ecx, [ebp - 0x68]
call fcn.004159e0
mov esi, dword [ebp - 0x8c]
lea eax, [ebp - 0x84]
push eax
mov ecx, esi
call fcn.00448807
lea eax, [ebp - 0x48]
push eax
lea ecx, [esi + 0xc]
call fcn.0045c68a
mov bl, 1
lea ecx, [ebp - 0x78]
call fcn.0040eb90
pop edi
lea ecx, [ebp - 0x48]
call fcn.0045b604
lea ecx, [ebp - 0x84]
call fcn.0045c2da
mov ecx, dword [ebp - 4]
mov al, bl
pop esi
xor ecx, ebp
pop ebx
call fcn.0046e2b4
mov esp, ebp
pop ebp
ret 4
call fcn.00409a00
cmp eax, 2
jg 0x45bb70
push 2
push 0xd8
push str.c:_b_build_slavewin_build_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x30], 0x40
call fcn.00409a70
push 0x49ce98
add esi, 0x10
add eax, 8
push esi
push str.Failed_backing_up_subkey__
push eax
call fcn.00408be0
pop ecx
pop ecx
push eax
call fcn.0042eb9f
pop ecx
pop ecx
push eax
call fcn.00408be0
pop ecx
pop ecx
test byte [ebp - 0x30], 0x40
jmp 0x45bbd3
call fcn.00409a00
cmp eax, 2
jg 0x45bbcf
push 2
push 0xd3
push str.c:_b_build_slavewin_build_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x30], 0x20
call fcn.00409a70
push edi
push str.__for_backup__result:
add esi, 0x10
add eax, 8
push esi
push str.Failed_opening_subkey__
push eax
call fcn.00408be0
pop ecx
pop ecx
push eax
call fcn.0042eb9f
pop ecx
pop ecx
push eax
call fcn.00408be0
pop ecx
pop ecx
mov ecx, eax
call fcn.0041c510
test byte [ebp - 0x30], 0x20
je 0x45bbe0
lea ecx, [ebp - 0x158]
call fcn.00409ac0
lea ecx, [ebp - 0x68]
call fcn.004159e0
jmp 0x45baef