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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x168
mov eax, dword [0x5c2460]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
push ecx
mov dword [ebp - 0x94], ecx
push ecx
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
call fcn.0044aa64
push ebx
push ebx
lea eax, [ebp - 0x84]
mov dword [ebp - 0x64], ebx
push eax
lea eax, [ebp - 0x88]
mov dword [ebp - 0x8c], ebx
push eax
lea eax, [ebp - 0x54]
mov dword [ebp - 0x54], ebx
push eax
push ebx
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x88], ebx
push eax
lea eax, [ebp - 0x64]
mov dword [ebp - 0x84], ebx
push eax
push ebx
push ebx
push ebx
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
mov esi, eax
test esi, esi
je 0x449d4c
cmp dword [0x768ca0], 2
jg 0x449d32
push 2
push 0x7e
push str.e:360chrome37_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x164]
mov dword [ebp - 0x34], 1
call fcn.0045ce90
push esi
mov edx, str.Failed_getting_info_of_key_to_backup__result:
lea ecx, [eax + 8]
call fcn.00405723
mov ecx, eax
call fcn.0044444d
test byte [ebp - 0x34], 1
je 0x44a1b6
lea ecx, [ebp - 0x164]
call fcn.0045cee0
jmp 0x44a1b6
mov eax, dword [ebp - 0x8c]
lea edx, [ebp - 0x8c]
cmp eax, dword [ebp - 0x88]
lea ecx, [ebp - 0x88]
cmovae ecx, edx
mov eax, dword [ecx]
lea ecx, [ebp - 0x80]
inc eax
push eax
call fcn.0043bb3b
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x449f7b
cmp eax, 0x6666666
ja 0x44a2af
push eax
lea ecx, [ebp - 0x70]
call fcn.0044a895
xor edi, edi
mov dword [ebp - 0x4c], ebx
inc edi
mov dword [ebp - 0x48], ebx
cmp dword [ebp - 0x84], ebx
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x44], ebx
cmovne edi, dword [ebp - 0x84]
push edi
call fcn.00446068
mov esi, dword [ebp - 0x4c]
test al, al
je 0x449dc9
push edi
push ebx
push esi
call fcn.005091d0
add esp, 0xc
add dword [ebp - 0x48], edi
mov eax, ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x54], eax
jbe 0x449f70
mov edi, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x7c]
sub ecx, edi
sar ecx, 1
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x48]
sub ecx, esi
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0x50]
push ecx
push esi
lea ecx, [ebp - 0x38]
push ecx
push ebx
lea ecx, [ebp - 0x3c]
push ecx
push edi
push eax
mov eax, dword [ebp - 0x74]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov dword [ebp - 0x58], eax
sub eax, ebx
je 0x449e70
sub eax, 0xea
jne 0x449ee9
mov eax, dword [ebp - 0x90]
cmp dword [ebp - 0x50], eax
jbe 0x449e47
push dword [ebp - 0x50]
lea ecx, [ebp - 0x4c]
call fcn.00435c34
mov esi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x3c]
inc eax
cmp eax, dword [ebp - 0x98]
jbe 0x449e5f
push eax
lea ecx, [ebp - 0x80]
call fcn.0044a747
mov edi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x54]
jb 0x449de3
jmp 0x449f70
xor eax, eax
mov dword [ebp - 0x1c], 7
mov word [ebp - 0x30], ax
lea ecx, [ebp - 0x70]
lea eax, [ebp - 0x30]
mov dword [ebp - 0x20], ebx
push eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
call fcn.0044a7a4
lea ecx, [ebp - 0x18]
call fcn.00435fa1
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.0040536f
mov ebx, dword [ebp - 0x6c]
push dword [ebp - 0x3c]
mov eax, dword [ebp - 0x80]
add ebx, 0xffffffd8
mov edi, dword [ebp - 0x50]
mov ecx, ebx
mov esi, dword [ebp - 0x38]
push eax
call fcn.00405941
mov dword [ebx + 0x24], esi
lea ecx, [ebx + 0x18]
mov esi, dword [ebp - 0x4c]
lea eax, [edi + esi]
push eax
push esi
call fcn.00446004
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp - 0x80]
inc eax
mov dword [ebp - 0x40], eax
xor ebx, ebx
jmp 0x449e62
sub eax, 0x19
je 0x449f6a
cmp dword [0x768ca0], 2
jg 0x449f45
push 2
push 0xa3
push str.e:360chrome37_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x164]
mov dword [ebp - 0x34], 2
call fcn.0045ce90
push dword [ebp - 0x58]
mov edx, str.Failed_backing_up_value
push ecx
mov ecx, dword [ebp - 0x40]
push ecx
lea ecx, [eax + 8]
call fcn.00405723
mov ecx, eax
call fcn.0040761a
pop ecx
mov edx, str.__result:
mov ecx, eax
call fcn.00405723
mov ecx, eax
call fcn.0044444d
test byte [ebp - 0x34], 2
je 0x449f56
lea ecx, [ebp - 0x164]
call fcn.0045cee0
test esi, esi
je 0x44a1a8
push esi
call fcn.0050269b
pop ecx
jmp 0x44a1a8
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x54], ecx
test esi, esi
je 0x449f7b
push esi
call fcn.0050269b
pop ecx
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x44a157
mov edi, dword [ebp - 0x80]
mov esi, ebx
mov dword [ebp - 0x3c], ebx
mov eax, dword [ebp - 0x7c]
push ebx
push ebx
sub eax, edi
push ebx
sar eax, 1
push ebx
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x74]
push edi
push esi
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov dword [ebp - 0x58], eax
sub eax, ebx
je 0x449fd4
sub eax, 0xea
jne 0x44a078
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x80]
inc eax
push eax
call fcn.0044a747
mov edi, dword [ebp - 0x80]
jmp 0x44a06d
push ecx
push ecx
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xa8], ebx
call fcn.0044aa64
lea eax, [ebp - 0xb0]
mov dword [ebp - 0x20], edi
push eax
lea ecx, [ebp - 0x1c]
call fcn.0044ab9a
lea ecx, [ebp - 0x60]
call fcn.0044accc
mov dword [ebp - 0x38], eax
mov word [eax + 0xc], 0
add eax, 0x10
mov dword [ebp - 0x58], eax
je 0x44a03a
push dword [ebp - 0x20]
mov ecx, eax
call fcn.004058f0
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x1c]
push eax
add ecx, 0x28
call fcn.0044ab9a
mov eax, dword [ebp - 0x58]
push dword [ebp - 0x38]
push eax
push ecx
lea eax, [ebp - 0x9c]
push eax
lea ecx, [ebp - 0x60]
call fcn.0044aaf4
lea ecx, [ebp - 0x1c]
call fcn.00449c63
lea ecx, [ebp - 0xa4]
call fcn.0044a80f
lea ecx, [ebp - 0xb0]
call fcn.0044a9a1
inc esi
cmp esi, dword [ebp - 0x64]
jb 0x449f8e
jmp 0x44a0ee
sub eax, 0x19
je 0x44a0eb
cmp dword [0x768ca0], 2
jg 0x44a0d1
push 2
push 0xc3
push str.e:360chrome37_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x164]
mov dword [ebp - 0x34], 8
call fcn.0045ce90
push dword [ebp - 0x58]
mov edx, str.Failed_getting_name_of_subkey
push ecx
push esi
lea ecx, [eax + 8]
call fcn.00405723
mov ecx, eax
call fcn.0040761a
pop ecx
mov edx, str._for_backup__result:
mov ecx, eax
call fcn.00405723
mov ecx, eax
call fcn.0044444d
test byte [ebp - 0x34], 8
je 0x44a1a8
lea ecx, [ebp - 0x164]
call fcn.0045cee0
jmp 0x44a1a8
mov dword [ebp - 0x64], esi
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
mov esi, dword [eax]
mov dword [ebp - 0x38], esi
cmp esi, eax
je 0x44a14f
lea eax, [esi + 0x10]
cmp dword [eax + 0x14], 8
jb 0x44a10e
mov eax, dword [eax]
push 0x20009
push eax
mov eax, dword [ebp - 0x74]
lea ecx, [ebp - 0x4c]
push dword [eax]
call fcn.0045b6e0
mov edi, eax
test edi, edi
jne 0x44a235
lea eax, [ebp - 0x4c]
push eax
lea ecx, [esi + 0x28]
call fcn.00449c76
test al, al
je 0x44a1db
lea ecx, [ebp - 0x38]
call fcn.00416516
mov esi, dword [ebp - 0x38]
cmp esi, dword [ebp - 0x60]
jne 0x44a103
lea ecx, [ebp - 0x4c]
call fcn.0045b550
mov edx, dword [ebp - 0x94]
lea eax, [ebp - 0x70]
cmp edx, eax
je 0x44a186
mov ecx, dword [edx]
mov eax, dword [ebp - 0x70]
mov dword [edx], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp - 0x6c]
mov dword [edx + 4], ecx
mov ecx, dword [edx + 8]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x68]
mov dword [edx + 8], eax
mov dword [ebp - 0x68], ecx
add edx, 0xc
lea eax, [ebp - 0x60]
cmp edx, eax
je 0x44a1a6
mov ecx, dword [edx]
mov eax, dword [ebp - 0x60]
mov dword [edx], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x60], ecx
mov ecx, dword [edx + 4]
mov dword [edx + 4], eax
mov dword [ebp - 0x5c], ecx
mov bl, 1
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x44a1b6
push eax
call fcn.0050269b
pop ecx
lea ecx, [ebp - 0x60]
call fcn.0044a80f
lea ecx, [ebp - 0x70]
call fcn.0044a9a1
mov ecx, dword [ebp - 8]
mov al, bl
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00501d03
mov esp, ebp
pop ebp
ret 4
cmp dword [0x768ca0], 2
jg 0x44a22f
push 2
push 0xd8
push str.e:360chrome37_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x164]
mov dword [ebp - 0x34], 0x40
call fcn.0045ce90
mov edx, str.Failed_backing_up_subkey__
add esi, 0x10
lea ecx, [eax + 8]
call fcn.00405723
cmp dword [esi + 0x14], 8
jb 0x44a21a
mov esi, dword [esi]
mov edx, esi
mov ecx, eax
call fcn.0045d6f0
mov edx, 0x54def4
mov ecx, eax
call fcn.00405723
test byte [ebp - 0x34], 0x40
jmp 0x44a295
cmp dword [0x768ca0], 2
jg 0x44a291
push 2
push 0xd3
push str.e:360chrome37_srcchromeinstallerutil_registry_key_backup.cc
lea ecx, [ebp - 0x164]
mov dword [ebp - 0x34], 0x20
call fcn.0045ce90
mov edx, str.Failed_opening_subkey__
add esi, 0x10
lea ecx, [eax + 8]
call fcn.00405723
cmp dword [esi + 0x14], 8
jb 0x44a274
mov esi, dword [esi]
mov edx, esi
mov ecx, eax
call fcn.0045d6f0
push edi
mov edx, str.__for_backup__result:
mov ecx, eax
call fcn.00405723
mov ecx, eax
call fcn.0044444d
test byte [ebp - 0x34], 0x20
je 0x44a2a2
lea ecx, [ebp - 0x164]
call fcn.0045cee0
lea ecx, [ebp - 0x4c]
call fcn.0045b550
jmp 0x44a1a8
push str.vector_T__too_long
call fcn.0051feb5
int3