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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14c
mov eax, dword [0x4e26d0]
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_1desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x54], ebx
call fcn.0043d260
pop ecx
pop ecx
cmp eax, 1
jl 0x435b0b
push 0xffffffffffffffff
push 0x1d
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_1desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x148]
inc ebx
call fcn.0043c8d0
add eax, 8
push str.DeleteAndSaveRecursive_:
push eax
call fcn.00405c42
cmp dword [esi + 0x14], 8
pop ecx
pop ecx
jb 0x435b02
mov esi, dword [esi]
push esi
push eax
call fcn.0043ce20
pop ecx
pop ecx
test bl, 1
je 0x435b1e
lea ecx, [ebp - 0x148]
and ebx, 0xfffffffe
call fcn.0043c9e0
lea ecx, [ebp - 0x8c]
call fcn.00454790
and dword [ebp - 0x78], 0
push 0x2c
call fcn.00492cd0
mov esi, eax
xor eax, eax
pop ecx
test esi, esi
je 0x435b5d
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 0x435b5f
mov esi, eax
mov ecx, dword [ebp - 0x64]
cmp esi, ecx
je 0x435b74
push 0xffffffffffffffff
push eax
push ecx
mov ecx, esi
call fcn.004058f5
mov ecx, dword [ebp - 0x64]
cmp dword [ecx + 0x14], 8
jb 0x435b7c
mov ecx, dword [ecx]
mov eax, dword [ebp - 0x60]
push 0x3001f
push ecx
lea ecx, [ebp - 0x8c]
push dword [eax + 0x1c]
call fcn.00454840
cmp eax, 5
je 0x435bb8
test eax, eax
jne 0x435c97
push 0x30019
push 4
pop edx
mov ecx, edi
call fcn.00432b90
pop ecx
test al, al
jne 0x435ce2
push 0x80
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_1desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
call fcn.0043d260
pop ecx
pop ecx
cmp eax, 1
jl 0x435bf7
push 2
pop eax
push 0xffffffffffffffff
push 0x2b
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_1desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x148]
or ebx, eax
call fcn.0043c8d0
add eax, 8
push str.Insufficient_permissions_on_the_key
push eax
call fcn.00405c42
pop ecx
pop ecx
test bl, 2
je 0x435c0a
lea ecx, [ebp - 0x148]
and ebx, 0xfffffffd
call fcn.0043c9e0
lea eax, [esi + 0x1c]
mov ecx, edi
push eax
push 1
push 0x3001f
push 4
pop edx
call fcn.00432e8b
add esp, 0xc
test al, al
jne 0x435c71
call fcn.0043d250
push 2
pop ecx
cmp eax, ecx
jg 0x435c69
push ecx
push 0x2f
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_1desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x148]
or ebx, 4
call fcn.0043c8d0
add eax, 8
push str.Unable_to_obtain_sufficient_permissions_on_key
push eax
call fcn.00405c42
cmp dword [edi + 0x14], 8
pop ecx
pop ecx
jb 0x435c60
mov edi, dword [edi]
push edi
push eax
call fcn.0043ce20
pop ecx
pop ecx
test bl, 4
jmp 0x435e5c
mov eax, dword [ebp - 0x64]
cmp dword [eax + 0x14], 8
jb 0x435c7c
mov eax, dword [eax]
push 0x3001f
push eax
mov eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x8c]
push dword [eax + 0x1c]
call fcn.00454840
test eax, eax
je 0x435ce2
call fcn.0043d250
push 2
pop ecx
cmp eax, ecx
jg 0x435cda
push ecx
push 0x37
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_1desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x148]
or ebx, 8
call fcn.0043c8d0
add eax, 8
push str.Failed_to_open_key
push eax
call fcn.00405c42
cmp dword [edi + 0x14], 8
pop ecx
pop ecx
jb 0x435cd1
mov edi, dword [edi]
push edi
push eax
call fcn.0043ce20
pop ecx
pop ecx
test bl, 8
jmp 0x435e5c
lea eax, [ebp - 0x78]
xor edi, edi
push eax
push edi
push 0x16
push dword [ebp - 0x8c]
call dword [sym.imp.ADVAPI32.dll_RegGetKeySecurity]
test eax, eax
je 0x435d50
cmp eax, 0x7a
je 0x435d50
call fcn.0043d250
push 2
pop ecx
cmp eax, ecx
jg 0x435d48
push ecx
push 0x40
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_1desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x148]
or ebx, 0x10
call fcn.0043c8d0
add eax, 8
push str.Failed_to_obtain_security_descriptor_for
push eax
call fcn.00405c42
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0x14], 8
jb 0x435d3f
mov eax, dword [eax]
push eax
push ecx
call fcn.0043ce20
pop ecx
pop ecx
test bl, 0x10
jmp 0x435e5c
push dword [ebp - 0x78]
call fcn.00492cd0
pop ecx
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x70], eax
mov dword [esi + 0x18], edi
test ecx, ecx
je 0x435d70
push ecx
call fcn.00492cb0
mov eax, dword [ebp - 0x70]
pop ecx
mov dword [esi + 0x18], eax
lea eax, [ebp - 0x78]
push eax
push dword [esi + 0x18]
push 0x16
push dword [ebp - 0x8c]
call dword [sym.imp.ADVAPI32.dll_RegGetKeySecurity]
test eax, eax
je 0x435de5
call fcn.0043d250
push 2
pop ecx
cmp eax, ecx
jg 0x435de0
push ecx
push 0x50
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_1desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x148]
or ebx, 0x20
call fcn.0043c8d0
add eax, 8
push str.Failed_to_obtain_security_descriptor_for
push eax
call fcn.00405c42
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0x14], 8
jb 0x435dcb
mov eax, dword [eax]
push eax
push ecx
call fcn.0043ce20
push str._but_we_succeeded_earlier_
push eax
call fcn.00405c42
add esp, 0x10
test bl, 0x20
jmp 0x435e5c
xor eax, eax
lea ecx, [ebp - 0x94]
push eax
push eax
push ecx
lea ecx, [ebp - 0x74]
push ecx
lea ecx, [ebp - 0x7c]
push ecx
push eax
lea ecx, [ebp - 0x58]
push ecx
push eax
push eax
push eax
push eax
push dword [ebp - 0x8c]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
je 0x435e72
call fcn.0043d250
push 2
pop ecx
cmp eax, ecx
jg 0x435e59
push ecx
push 0x5f
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_1desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x148]
or ebx, 0x40
call fcn.0043c8d0
add eax, 8
push str.Failed_to_obtain_key_info_for
push eax
call fcn.00405c42
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0x14], 8
jb 0x435e50
mov eax, dword [eax]
push eax
push ecx
call fcn.0043ce20
pop ecx
pop ecx
test bl, 0x40
je 0x436191
lea ecx, [ebp - 0x148]
call fcn.0043c9e0
jmp 0x436191
push 0x80
mov edi, str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_1desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
push edi
call fcn.0043d260
pop ecx
pop ecx
cmp eax, 1
jl 0x435eb7
push 0xffffffffffffffff
push 0x62
push edi
lea ecx, [ebp - 0x148]
or ebx, 0x80
call fcn.0043c8d0
push str._values
push dword [ebp - 0x7c]
lea ecx, [eax + 8]
call fcn.00413dc9
push eax
call fcn.00405c42
pop ecx
pop ecx
test bl, bl
jns 0x435ecc
lea ecx, [ebp - 0x148]
and ebx, 0xffffff7f
call fcn.0043c9e0
mov eax, dword [ebp - 0x74]
xor ecx, ecx
inc dword [ebp - 0x58]
inc eax
push 2
pop edx
mov dword [ebp - 0x74], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00492cd0
pop ecx
push dword [ebp - 0x94]
mov edi, eax
mov dword [ebp - 0x70], edi
call fcn.00492cd0
xor edx, edx
mov dword [ebp - 0x6c], eax
pop ecx
mov dword [ebp - 0x50], edx
cmp dword [ebp - 0x7c], edx
jg 0x435f39
mov ecx, dword [ebp - 0x60]
push esi
lea ecx, [ecx + 0x20]
call fcn.00436537
mov eax, dword [ebp - 0x58]
xor ecx, ecx
push 2
pop edx
xor esi, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00492cd0
pop ecx
mov edi, eax
jmp 0x43611a
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x98], ecx
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x90], ecx
lea ecx, [ebp - 0x90]
push ecx
push eax
lea eax, [ebp - 0x54]
push eax
push 0
lea eax, [ebp - 0x98]
push eax
push edi
push edx
push dword [ebp - 0x8c]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x435ff0
push 0x24
call fcn.00492cd0
pop ecx
mov ecx, eax
mov dword [ebp - 0x80], eax
test ecx, ecx
je 0x435f9c
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 0x435fa1
xor ecx, ecx
mov dword [ebp - 0x80], ecx
mov eax, dword [ebp - 0x54]
push edi
mov dword [ecx + 0x18], eax
call fcn.00404dc1
pop ecx
mov ecx, dword [ebp - 0x80]
push eax
push edi
call fcn.0040576a
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x90]
push edx
mov dword [edx + 0x20], eax
mov ecx, dword [edx + 0x1c]
mov eax, dword [ebp - 0x6c]
mov dword [edx + 0x1c], eax
mov eax, ecx
lea ecx, [esi + 0x20]
mov dword [ebp - 0x6c], eax
call fcn.00436537
mov edx, dword [ebp - 0x50]
inc edx
mov dword [ebp - 0x50], edx
cmp edx, dword [ebp - 0x7c]
jl 0x435f36
jmp 0x435f09
call fcn.0043d250
push 2
pop ecx
cmp eax, ecx
jg 0x43602f
push ecx
push 0x72
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_1desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x148]
or ebx, 0x100
call fcn.0043c8d0
push dword [ebp - 0x50]
add eax, 8
push str.Failed_to_obtain_value_nr
push eax
call fcn.00405c42
pop ecx
pop ecx
mov ecx, eax
call fcn.00413d31
test ebx, 0x100
je 0x436042
lea ecx, [ebp - 0x148]
call fcn.0043c9e0
xor ecx, ecx
mov dword [ebp - 0x5c], ecx
jmp 0x436178
test eax, eax
jne 0x4361cd
push ecx
push ecx
mov ecx, esp
push dword [ebp - 0x64]
call fcn.00405e2f
lea ecx, [ebp - 0x34]
call fcn.0043fe80
push ecx
push ecx
mov eax, esp
mov dword [ebp - 0x54], eax
mov dword [eax], edi
test edi, edi
jne 0x436079
xor eax, eax
jmp 0x436080
push edi
call fcn.00404dc1
pop ecx
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 4], eax
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x34]
call fcn.004401d0
push eax
lea ecx, [ebp - 0x34]
call fcn.0043ffa0
lea ecx, [ebp - 0x4c]
call fcn.0043ff00
push ecx
push ecx
mov ecx, esp
push dword [ebp - 0x68]
call fcn.00405e2f
lea ecx, [ebp - 0x1c]
call fcn.0043fe80
push ecx
push ecx
mov eax, esp
mov dword [ebp - 0x54], eax
mov dword [eax], edi
test edi, edi
jne 0x4360c8
xor eax, eax
jmp 0x4360cf
push edi
call fcn.00404dc1
pop ecx
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 4], eax
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x1c]
call fcn.004401d0
push eax
lea ecx, [ebp - 0x1c]
call fcn.0043ffa0
lea ecx, [ebp - 0x4c]
call fcn.0043ff00
mov ecx, dword [ebp - 0x60]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.00435a90
lea ecx, [ebp - 0x1c]
test al, al
je 0x4361be
call fcn.0043ff00
lea ecx, [ebp - 0x34]
call fcn.0043ff00
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x50], eax
xor eax, eax
push eax
push eax
push eax
push eax
push ecx
push edi
push eax
push dword [ebp - 0x8c]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0x103
jne 0x43604c
lea ecx, [ebp - 0x8c]
call fcn.004547e0
mov eax, dword [ebp - 0x64]
cmp dword [eax + 0x14], 8
jb 0x436159
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x60]
push dword [eax + 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov byte [ebp - 0x5c], 1
test edi, edi
je 0x436175
push edi
call fcn.00492cb0
pop ecx
mov edi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x6c]
test eax, eax
je 0x436186
push eax
call fcn.00492cb0
pop ecx
test edi, edi
je 0x436191
push edi
call fcn.00492cb0
pop ecx
test esi, esi
je 0x43619d
push ecx
mov ecx, esi
call fcn.004365d6
lea ecx, [ebp - 0x8c]
call fcn.004547b0
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 0x5c]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.0049653f
mov esp, ebp
pop ebp
ret 8
call fcn.0043ff00
lea ecx, [ebp - 0x34]
call fcn.0043ff00
jmp 0x436218
call fcn.0043d250
push 2
pop ecx
cmp eax, ecx
jg 0x436205
push ecx
push 0x8c
push str.c:_buildbot_slaveworkdir_reposlar6desktop_2013_1desktoplauncherinstaller_service_transactionsdelete_reg_key_operation.cc
lea ecx, [ebp - 0x148]
or ebx, 0x200
call fcn.0043c8d0
add eax, 8
push str.Failed_to_read_a_subkey
push eax
call fcn.00405c42
pop ecx
pop ecx
test ebx, 0x200
je 0x436218
lea ecx, [ebp - 0x148]
call fcn.0043c9e0
xor eax, eax
mov dword [ebp - 0x5c], eax
jmp 0x43616a