Function at 0x430097
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x164
mov eax, dword [0x4d5630]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor eax, eax
push edi
mov edi, dword [ebp + 0xc]
mov ebx, eax
push 0x80
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_3desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x74], eax
mov dword [ebp - 0xa4], ebx
call fcn.00438ea0
pop ecx
pop ecx
cmp eax, 1
jl 0x430115
push 0xffffffffffffffff
push 0x1d
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_3desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x160]
inc ebx
call fcn.00438400
add eax, 8
push str.DeleteAndSaveRecursive_:
push eax
call fcn.00404c5e
cmp dword [esi + 0x14], 8
pop ecx
pop ecx
jb 0x43010c
mov esi, dword [esi]
push esi
push eax
call fcn.00438950
pop ecx
pop ecx
test bl, 1
je 0x430128
lea ecx, [ebp - 0x160]
and ebx, 0xfffffffe
call fcn.00438510
lea ecx, [ebp - 0xa0]
call fcn.0044c260
and dword [ebp - 0x88], 0
push 0x2c
call fcn.00483600
mov esi, eax
xor eax, eax
pop ecx
test esi, esi
je 0x43016a
mov dword [esi + 0x14], 7
xor ecx, ecx
mov dword [esi + 0x10], eax
mov word [esi], cx
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
jmp 0x43016c
mov esi, eax
mov ecx, dword [ebp - 0x70]
cmp esi, ecx
je 0x430181
push 0xffffffffffffffff
push eax
push ecx
mov ecx, esi
call fcn.00404911
mov ecx, dword [ebp - 0x70]
cmp dword [ecx + 0x14], 8
jb 0x430189
mov ecx, dword [ecx]
mov eax, dword [ebp - 0x78]
push 0x3001f
push ecx
lea ecx, [ebp - 0xa0]
push dword [eax + 0x1c]
call fcn.0044c310
cmp eax, 5
je 0x4301c5
test eax, eax
jne 0x4302a4
push 0x30019
push 4
pop edx
mov ecx, edi
call fcn.0042d33f
pop ecx
test al, al
jne 0x4302ef
push 0x80
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_3desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
call fcn.00438ea0
pop ecx
pop ecx
cmp eax, 1
jl 0x430204
push 2
pop eax
push 0xffffffffffffffff
push 0x2b
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_3desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x160]
or ebx, eax
call fcn.00438400
add eax, 8
push str.Insufficient_permissions_on_the_key
push eax
call fcn.00404c5e
pop ecx
pop ecx
test bl, 2
je 0x430217
lea ecx, [ebp - 0x160]
and ebx, 0xfffffffd
call fcn.00438510
lea eax, [esi + 0x1c]
mov ecx, edi
push eax
push 1
push 0x3001f
push 4
pop edx
call fcn.0042d63a
add esp, 0xc
test al, al
jne 0x43027e
call fcn.00438e90
push 2
pop ecx
cmp eax, ecx
jg 0x430276
push ecx
push 0x2f
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_3desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x160]
or ebx, 4
call fcn.00438400
add eax, 8
push str.Unable_to_obtain_sufficient_permissions_on_key
push eax
call fcn.00404c5e
cmp dword [edi + 0x14], 8
pop ecx
pop ecx
jb 0x43026d
mov edi, dword [edi]
push edi
push eax
call fcn.00438950
pop ecx
pop ecx
test bl, 4
jmp 0x430478
mov eax, dword [ebp - 0x70]
cmp dword [eax + 0x14], 8
jb 0x430289
mov eax, dword [eax]
push 0x3001f
push eax
mov eax, dword [ebp - 0x78]
lea ecx, [ebp - 0xa0]
push dword [eax + 0x1c]
call fcn.0044c310
test eax, eax
je 0x4302ef
call fcn.00438e90
push 2
pop ecx
cmp eax, ecx
jg 0x4302e7
push ecx
push 0x37
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_3desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x160]
or ebx, 8
call fcn.00438400
add eax, 8
push str.Failed_to_open_key
push eax
call fcn.00404c5e
cmp dword [edi + 0x14], 8
pop ecx
pop ecx
jb 0x4302de
mov edi, dword [edi]
push edi
push eax
call fcn.00438950
pop ecx
pop ecx
test bl, 8
jmp 0x430478
lea eax, [ebp - 0x88]
xor edi, edi
push eax
push edi
push 0x16
push dword [ebp - 0xa0]
call dword [sym.imp.ADVAPI32.dll_RegGetKeySecurity]
test eax, eax
je 0x430360
cmp eax, 0x7a
je 0x430360
call fcn.00438e90
push 2
pop ecx
cmp eax, ecx
jg 0x430358
push ecx
push 0x40
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_3desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x160]
or ebx, 0x10
call fcn.00438400
add eax, 8
push str.Failed_to_obtain_security_descriptor_for
push eax
call fcn.00404c5e
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x80]
cmp dword [eax + 0x14], 8
jb 0x43034f
mov eax, dword [eax]
push eax
push ecx
call fcn.00438950
pop ecx
pop ecx
test bl, 0x10
jmp 0x430478
push dword [ebp - 0x88]
call fcn.00483600
pop ecx
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x7c], eax
mov dword [esi + 0x18], edi
test ecx, ecx
je 0x430383
push ecx
call fcn.004835e0
mov eax, dword [ebp - 0x7c]
pop ecx
mov dword [esi + 0x18], eax
lea eax, [ebp - 0x88]
push eax
push dword [esi + 0x18]
push 0x16
push dword [ebp - 0xa0]
call dword [sym.imp.ADVAPI32.dll_RegGetKeySecurity]
test eax, eax
je 0x4303fb
call fcn.00438e90
push 2
pop ecx
cmp eax, ecx
jg 0x4303f6
push ecx
push 0x50
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_3desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x160]
or ebx, 0x20
call fcn.00438400
add eax, 8
push str.Failed_to_obtain_security_descriptor_for
push eax
call fcn.00404c5e
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x80]
cmp dword [eax + 0x14], 8
jb 0x4303e1
mov eax, dword [eax]
push eax
push ecx
call fcn.00438950
push str._but_we_succeeded_earlier_
push eax
call fcn.00404c5e
add esp, 0x10
test bl, 0x20
jmp 0x430478
xor eax, eax
lea ecx, [ebp - 0xa8]
push eax
push eax
push ecx
lea ecx, [ebp - 0x8c]
push ecx
lea ecx, [ebp - 0x90]
push ecx
push eax
lea ecx, [ebp - 0x6c]
push ecx
push eax
push eax
push eax
push eax
push dword [ebp - 0xa0]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
je 0x43048e
call fcn.00438e90
push 2
pop ecx
cmp eax, ecx
jg 0x430475
push ecx
push 0x5f
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_3desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x160]
or ebx, 0x40
call fcn.00438400
add eax, 8
push str.Failed_to_obtain_key_info_for
push eax
call fcn.00404c5e
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x80]
cmp dword [eax + 0x14], 8
jb 0x43046c
mov eax, dword [eax]
push eax
push ecx
call fcn.00438950
pop ecx
pop ecx
test bl, 0x40
je 0x4307c8
lea ecx, [ebp - 0x160]
call fcn.00438510
jmp 0x4307c8
push 0x80
mov edi, str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_3desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
push edi
call fcn.00438ea0
pop ecx
pop ecx
cmp eax, 1
jl 0x4304d6
push 0xffffffffffffffff
push 0x62
push edi
lea ecx, [ebp - 0x160]
or ebx, 0x80
call fcn.00438400
push str._values
push dword [ebp - 0x90]
lea ecx, [eax + 8]
call fcn.004121ba
push eax
call fcn.00404c5e
pop ecx
pop ecx
test bl, bl
jns 0x4304eb
lea ecx, [ebp - 0x160]
and ebx, 0xffffff7f
call fcn.00438510
mov eax, dword [ebp - 0x8c]
xor ecx, ecx
inc dword [ebp - 0x6c]
inc eax
push 2
pop edx
mov dword [ebp - 0x8c], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00483600
pop ecx
push dword [ebp - 0xa8]
mov edi, eax
mov dword [ebp - 0x7c], edi
call fcn.00483600
xor edx, edx
mov dword [ebp - 0x84], eax
pop ecx
mov dword [ebp - 0x68], edx
cmp dword [ebp - 0x90], edx
jg 0x430567
mov ecx, dword [ebp - 0x78]
push esi
lea ecx, [ecx + 0x20]
call fcn.00430b6e
mov eax, dword [ebp - 0x6c]
xor ecx, ecx
push 2
pop edx
xor esi, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00483600
pop ecx
mov edi, eax
jmp 0x43074e
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0xb0], ecx
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0xac], ecx
lea ecx, [ebp - 0xac]
push ecx
push eax
lea eax, [ebp - 0xa4]
push eax
push 0
lea eax, [ebp - 0xb0]
push eax
push edi
push edx
push dword [ebp - 0xa0]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x430640
push 0x24
call fcn.00483600
pop ecx
mov ecx, eax
mov dword [ebp - 0x94], eax
test ecx, ecx
je 0x4305d7
xor eax, eax
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], eax
xor edx, edx
mov word [ecx], dx
mov dword [ecx + 0x1c], eax
jmp 0x4305df
xor ecx, ecx
mov dword [ebp - 0x94], ecx
mov eax, dword [ebp - 0xa4]
push edi
mov dword [ecx + 0x18], eax
call fcn.004038d1
pop ecx
mov ecx, dword [ebp - 0x94]
push eax
push edi
call fcn.004046e6
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0xac]
push edx
mov dword [edx + 0x20], eax
mov ecx, dword [edx + 0x1c]
mov eax, dword [ebp - 0x84]
mov dword [edx + 0x1c], eax
mov eax, ecx
lea ecx, [esi + 0x20]
mov dword [ebp - 0x84], eax
call fcn.00430b6e
mov edx, dword [ebp - 0x68]
inc edx
mov dword [ebp - 0x68], edx
cmp edx, dword [ebp - 0x90]
jl 0x430561
jmp 0x430534
call fcn.00438e90
push 2
pop ecx
cmp eax, ecx
jg 0x43067f
push ecx
push 0x72
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_3desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x160]
or ebx, 0x100
call fcn.00438400
push dword [ebp - 0x68]
add eax, 8
push str.Failed_to_obtain_value_nr
push eax
call fcn.00404c5e
pop ecx
pop ecx
mov ecx, eax
call fcn.00412122
test ebx, 0x100
je 0x430692
lea ecx, [ebp - 0x160]
call fcn.00438510
xor ecx, ecx
mov dword [ebp - 0x74], ecx
jmp 0x4307ac
test eax, eax
jne 0x430804
push dword [ebp - 0x70]
lea ecx, [ebp - 0x34]
call fcn.0043c0d0
push edi
lea ecx, [ebp - 0x4c]
call fcn.0040409d
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x34]
call fcn.0043c3e0
push eax
lea ecx, [ebp - 0x34]
call fcn.0043c1e0
lea ecx, [ebp - 0x64]
call fcn.0043c140
push 0
push 1
lea ecx, [ebp - 0x4c]
call fcn.00404402
push dword [ebp - 0x80]
lea ecx, [ebp - 0x1c]
call fcn.0043c0d0
push edi
lea ecx, [ebp - 0x4c]
call fcn.0040409d
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0043c3e0
push eax
lea ecx, [ebp - 0x1c]
call fcn.0043c1e0
lea ecx, [ebp - 0x64]
call fcn.0043c140
push 0
push 1
lea ecx, [ebp - 0x4c]
call fcn.00404402
mov ecx, dword [ebp - 0x78]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.00430097
lea ecx, [ebp - 0x1c]
test al, al
je 0x4307f5
call fcn.0043c140
lea ecx, [ebp - 0x34]
call fcn.0043c140
mov eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x68], eax
xor eax, eax
push eax
push eax
push eax
push eax
push ecx
push edi
push eax
push dword [ebp - 0xa0]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0x103
jne 0x43069c
lea ecx, [ebp - 0xa0]
call fcn.0044c2b0
mov eax, dword [ebp - 0x70]
cmp dword [eax + 0x14], 8
jb 0x43078d
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x78]
push dword [eax + 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov byte [ebp - 0x74], 1
test edi, edi
je 0x4307a9
push edi
call fcn.004835e0
pop ecx
mov edi, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x4307bd
push eax
call fcn.004835e0
pop ecx
test edi, edi
je 0x4307c8
push edi
call fcn.004835e0
pop ecx
test esi, esi
je 0x4307d4
push ecx
mov ecx, esi
call fcn.00430c0d
lea ecx, [ebp - 0xa0]
call fcn.0044c280
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 0x74]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.00486d53
mov esp, ebp
pop ebp
ret 8
call fcn.0043c140
lea ecx, [ebp - 0x34]
call fcn.0043c140
jmp 0x43084f
call fcn.00438e90
push 2
pop ecx
cmp eax, ecx
jg 0x43083c
push ecx
push 0x8c
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_3desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x160]
or ebx, 0x200
call fcn.00438400
add eax, 8
push str.Failed_to_read_a_subkey
push eax
call fcn.00404c5e
pop ecx
pop ecx
test ebx, 0x200
je 0x43084f
lea ecx, [ebp - 0x160]
call fcn.00438510
xor eax, eax
mov dword [ebp - 0x74], eax
jmp 0x43079e