Function at 0x553d80
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59d3ef
mov eax, dword fs:[0]
push eax
sub esp, 0x13c
push ebx
push esi
push edi
mov eax, dword [0x5da084]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x6c], ecx
xor ebx, ebx
mov dword [ebp - 0x14], ebx
mov eax, dword [ecx + 8]
cmp dword [eax - 0x10], ebx
je 0x554748
mov eax, dword [ecx + 4]
cmp dword [eax - 0x10], ebx
je 0x554748
mov eax, dword [ecx + 0xc]
cmp dword [eax - 0x10], ebx
je 0x554748
mov eax, dword [ecx]
lea edx, [ebp - 0x98]
push edx
mov byte [ebp - 0xd], 1
call dword [eax + 0x30]
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 0x94]
mov esi, dword [ebp - 0x98]
mov dword [ebp - 0x84], eax
cmp esi, eax
je 0x554724
add esi, 0xc
or edi, 0xffffffff
mov dword [ebp - 0x20], esi
nop dword [eax]
lea ecx, [ebp - 0x18]
call fcn.00414d80
mov byte [ebp - 4], 1
cmp byte [esi + 4], 0
je 0x5540b1
push ecx
mov eax, ecx
mov ecx, dword [ebp - 0x6c]
push eax
push dword [esi - 8]
mov eax, dword [ecx]
push dword [esi - 0xc]
call dword [eax + 0x24]
mov edx, eax
lea ecx, [esi - 4]
call fcn.0054ce90
add esp, 0x10
test al, al
jne 0x5545f5
lea ecx, [ebp - 0x78]
call fcn.00414d80
mov byte [ebp - 4], 2
mov eax, ecx
push dword [esi]
push 0x5cce5c
push eax
call fcn.00544cc0
add esp, 0xc
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 3
call fcn.00414d80
mov eax, dword [esi - 0xc]
or ebx, 1
mov ecx, str.failed_to_add_RegSet:__
mov dword [ebp - 0x14], ebx
push dword [eax - 0x10]
push eax
call fcn.00416660
mov edx, ecx
lea ecx, [ebp - 0x4c]
push eax
call fcn.00544610
add esp, 0xc
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 4
call fcn.00414d80
mov edx, dword [ebp - 0x4c]
or ebx, 2
mov ecx, 0x5cce98
mov dword [ebp - 0x14], ebx
call fcn.00416660
push eax
push ecx
push dword [edx - 0x10]
lea ecx, [ebp - 0x48]
call fcn.00544610
add esp, 0xc
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 5
call fcn.00414d80
mov eax, dword [esi - 8]
or ebx, 4
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x14], ebx
push dword [eax - 0x10]
push eax
push dword [edx - 0x10]
call fcn.00544610
add esp, 0xc
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 6
call fcn.00414d80
mov edx, dword [ebp - 0x44]
or ebx, 8
mov ecx, 0x5cce98
mov dword [ebp - 0x14], ebx
call fcn.00416660
push eax
push ecx
push dword [edx - 0x10]
lea ecx, [ebp - 0x40]
call fcn.00544610
add esp, 0xc
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 7
call fcn.00414d80
mov eax, dword [esi - 4]
or ebx, 0x10
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x14], ebx
push dword [eax - 0x10]
push eax
push dword [edx - 0x10]
call fcn.00544610
add esp, 0xc
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 8
call fcn.00414d80
mov edx, dword [ebp - 0x3c]
or ebx, 0x20
mov ecx, str._._Error:
mov dword [ebp - 0x14], ebx
call fcn.00416660
push eax
push ecx
push dword [edx - 0x10]
lea ecx, [ebp - 0x38]
call fcn.00544610
add esp, 0xc
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 9
call fcn.00414d80
mov esi, dword [ebp - 0x18]
or ebx, 0x40
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x14], ebx
push dword [esi - 0x10]
push esi
push dword [edx - 0x10]
call fcn.00544610
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x34]
add esp, 0xc
push eax
call fcn.00544730
mov ecx, dword [ebp - 0x34]
and ebx, 0xffffffbf
add ecx, 0xfffffff0
mov eax, edi
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x553fce
cmp dword [ecx + 4], 0
jle 0x553fce
push ecx
call fcn.00577de8
add esp, 4
mov ecx, dword [ebp - 0x38]
and ebx, 0xffffffdf
add ecx, 0xfffffff0
mov eax, edi
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x553ff2
cmp dword [ecx + 4], 0
jle 0x553ff2
push ecx
call fcn.00577de8
add esp, 4
mov ecx, dword [ebp - 0x3c]
and ebx, 0xffffffef
add ecx, 0xfffffff0
mov eax, edi
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x554016
cmp dword [ecx + 4], 0
jle 0x554016
push ecx
call fcn.00577de8
add esp, 4
mov ecx, dword [ebp - 0x40]
and ebx, 0xfffffff7
add ecx, 0xfffffff0
mov eax, edi
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x55403a
cmp dword [ecx + 4], 0
jle 0x55403a
push ecx
call fcn.00577de8
add esp, 4
mov ecx, dword [ebp - 0x44]
and ebx, 0xfffffffb
add ecx, 0xfffffff0
mov eax, edi
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x55405e
cmp dword [ecx + 4], 0
jle 0x55405e
push ecx
call fcn.00577de8
add esp, 4
mov ecx, dword [ebp - 0x48]
and ebx, 0xfffffffd
add ecx, 0xfffffff0
mov eax, edi
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x554082
cmp dword [ecx + 4], 0
jle 0x554082
push ecx
call fcn.00577de8
add esp, 4
mov ecx, dword [ebp - 0x4c]
and ebx, 0xfffffffe
add ecx, 0xfffffff0
mov eax, edi
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x5540a6
cmp dword [ecx + 4], 0
jle 0x5540a6
push ecx
call fcn.00577de8
add esp, 4
mov ecx, dword [ebp - 0x78]
add ecx, 0xfffffff0
jmp 0x55459b
sub esp, 8
mov byte [ebp - 0x19], 0
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x7c], 0
push dword [0x5dfa18]
call fcn.0054d030
movzx eax, byte [ebp - 0x19]
add esp, 0xc
cmp dword [ebp - 0x7c], 0
mov ecx, 1
cmova eax, ecx
mov dword [ebp - 0x30], eax
lea eax, [esi - 8]
mov ecx, eax
mov dword [ebp - 0x74], eax
call fcn.00555130
test al, al
je 0x55412c
cmp byte [ebp - 0x30], 0
je 0x55412c
mov byte [ebp - 4], 0
mov eax, edi
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x55461d
cmp dword [ecx + 4], 0
jle 0x55461d
push ecx
call fcn.00577de8
add esp, 4
jmp 0x55461d
mov eax, dword [esi - 8]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x14], eax
mov eax, dword [esi - 0xc]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx]
call dword [eax + 0x24]
cmp byte [0x5df50d], 0
mov ecx, eax
mov eax, dword [esi]
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x70], eax
je 0x55416c
push eax
push esi
push dword [ebp - 0x30]
push ecx
push str.RfSetKeyValue:__x__s__s_ld_n
call fcn.005438a0
add esp, 0x14
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x2c], vtable.sibcrux::CSafeRegKey.0
mov dword [ebp - 0x28], 0
call fcn.00414d80
push ecx
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 0xa
push eax
push dword [ebp - 0x30]
lea ecx, [ebp - 0x2c]
push dword [ebp - 0x88]
call fcn.0054d190
test al, al
jne 0x5541ea
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], vtable.sibcrux::CSafeRegKey.0
test eax, eax
je 0x5541bc
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x28], 0
mov ecx, dword [ebp - 0x24]
mov eax, edi
add ecx, 0xfffffff0
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x5541e2
cmp dword [ecx + 4], 0
jle 0x5541e2
push ecx
call fcn.00577de8
mov esi, dword [ebp - 0x18]
jmp 0x554304
mov esi, dword [ebp - 0x18]
jmp 0x554307
cmp byte [0x5df50d], 0
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x70], eax
je 0x554208
push eax
push esi
push str.SetValue:__s_d_n
call fcn.005438a0
add esp, 0xc
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x55424a
push dword [ebp - 0x24]
lea eax, [ebp - 0x18]
push esi
push str.Cannot_set_registry_value__s_in__s:_parent_was_not_created
push eax
call fcn.00544cc0
mov esi, dword [ebp - 0x18]
add esp, 0x10
cmp byte [0x5df50d], 0
je 0x55423e
push esi
push str._s_n
call fcn.005438a0
add esp, 8
mov dword [ebp - 0x2c], vtable.sibcrux::CSafeRegKey.0
jmp 0x5542e6
push 4
lea ecx, [ebp - 0x70]
push ecx
push 4
push 0
push esi
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x5545bc
mov edx, eax
lea ecx, [ebp - 0x8c]
call fcn.005440a0
mov byte [ebp - 4], 0xb
push dword [eax]
lea eax, [ebp - 0x18]
push dword [ebp - 0x24]
push esi
push str.Cannot_set_registry_value__s_in__s:__s
push eax
call fcn.00544cc0
mov byte [ebp - 4], 0xa
add esp, 0x14
mov ecx, dword [ebp - 0x8c]
mov eax, edi
add ecx, 0xfffffff0
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x5542b4
cmp dword [ecx + 4], 0
jle 0x5542b4
push ecx
call fcn.00577de8
add esp, 4
cmp byte [0x5df50d], 0
mov esi, dword [ebp - 0x18]
je 0x5542ce
push esi
push str.SetValue:__s_n
call fcn.005438a0
add esp, 8
mov eax, dword [ebp - 0x28]
push eax
mov dword [ebp - 0x2c], vtable.sibcrux::CSafeRegKey.0
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x28], 0
mov ecx, dword [ebp - 0x24]
mov eax, edi
add ecx, 0xfffffff0
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x554307
cmp dword [ecx + 4], 0
jle 0x554307
push ecx
call fcn.00577de8
add esp, 4
lea ecx, [ebp - 0x80]
call fcn.00414d80
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 0xc
push dword [eax]
mov eax, ecx
push 0x5cce5c
push eax
call fcn.00544cc0
add esp, 0xc
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0xd
call fcn.00414d80
mov eax, dword [ebp - 0x20]
or ebx, 0x100
mov ecx, str.failed_to_add_RegSet:__
mov dword [ebp - 0x14], ebx
mov eax, dword [eax - 0xc]
push dword [eax - 0x10]
push eax
call fcn.00416660
mov edx, ecx
lea ecx, [ebp - 0x68]
push eax
call fcn.00544610
add esp, 0xc
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0xe
call fcn.00414d80
mov edx, dword [ebp - 0x68]
or ebx, 0x400
mov ecx, 0x5cce98
mov dword [ebp - 0x14], ebx
call fcn.00416660
push eax
push ecx
push dword [edx - 0x10]
lea ecx, [ebp - 0x64]
call fcn.00544610
add esp, 0xc
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xf
call fcn.00414d80
mov eax, dword [ebp - 0x74]
or ebx, 0x200
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x14], ebx
mov eax, dword [eax]
push dword [eax - 0x10]
push eax
push dword [edx - 0x10]
call fcn.00544610
add esp, 0xc
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x10
call fcn.00414d80
mov edx, dword [ebp - 0x60]
or ebx, 0x800
mov ecx, 0x5cce98
mov dword [ebp - 0x14], ebx
call fcn.00416660
push eax
push ecx
push dword [edx - 0x10]
lea ecx, [ebp - 0x5c]
call fcn.00544610
add esp, 0xc
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x11
call fcn.00414d80
mov eax, dword [ebp - 0x80]
or ebx, 0x80
mov dword [ebp - 0x14], ebx
lea ecx, [eax - 0x10]
mov dword [ebp - 0x74], ecx
push dword [eax - 0x10]
mov edx, dword [ebp - 0x5c]
lea ecx, [ebp - 0x58]
push eax
push dword [edx - 0x10]
call fcn.00544610
add esp, 0xc
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x12
call fcn.00414d80
mov edx, dword [ebp - 0x58]
or ebx, 0x1000
mov ecx, str._._Error:
mov dword [ebp - 0x14], ebx
call fcn.00416660
push eax
push ecx
push dword [edx - 0x10]
lea ecx, [ebp - 0x54]
call fcn.00544610
add esp, 0xc
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x13
call fcn.00414d80
push dword [esi - 0x10]
mov edx, dword [ebp - 0x54]
or ebx, 0x2000
push esi
mov dword [ebp - 0x14], ebx
push dword [edx - 0x10]
call fcn.00544610
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x50]
add esp, 0xc
push eax
call fcn.00544730
mov ecx, dword [ebp - 0x50]
and ebx, 0xffffdfff
add ecx, 0xfffffff0
mov eax, edi
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x5544ae
cmp dword [ecx + 4], 0
jle 0x5544ae
push ecx
call fcn.00577de8
add esp, 4
mov ecx, dword [ebp - 0x54]
and ebx, 0xffffefff
add ecx, 0xfffffff0
mov eax, edi
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x5544d5
cmp dword [ecx + 4], 0
jle 0x5544d5
push ecx
call fcn.00577de8
add esp, 4
mov ecx, dword [ebp - 0x58]
and ebx, 0xffffff7f
add ecx, 0xfffffff0
mov eax, edi
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x5544fc
cmp dword [ecx + 4], 0
jle 0x5544fc
push ecx
call fcn.00577de8
add esp, 4
mov ecx, dword [ebp - 0x5c]
and ebx, 0xfffff7ff
add ecx, 0xfffffff0
mov eax, edi
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x554523
cmp dword [ecx + 4], 0
jle 0x554523
push ecx
call fcn.00577de8
add esp, 4
mov ecx, dword [ebp - 0x60]
and ebx, 0xfffffdff
add ecx, 0xfffffff0
mov eax, edi
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x55454a
cmp dword [ecx + 4], 0
jle 0x55454a
push ecx
call fcn.00577de8
add esp, 4
mov ecx, dword [ebp - 0x64]
and ebx, 0xfffffbff
add ecx, 0xfffffff0
mov eax, edi
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x554571
cmp dword [ecx + 4], 0
jle 0x554571
push ecx
call fcn.00577de8
add esp, 4
mov ecx, dword [ebp - 0x68]
and ebx, 0xfffffeff
add ecx, 0xfffffff0
mov eax, edi
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x554598
cmp dword [ecx + 4], 0
jle 0x554598
push ecx
call fcn.00577de8
add esp, 4
mov ecx, dword [ebp - 0x74]
mov eax, edi
mov byte [ebp - 0xd], 0
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x5545f8
cmp dword [ecx + 4], 0
jle 0x5545f8
push ecx
call fcn.00577de8
add esp, 4
jmp 0x5545f8
mov eax, dword [ebp - 0x28]
push eax
mov dword [ebp - 0x2c], vtable.sibcrux::CSafeRegKey.0
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x24]
mov eax, edi
mov dword [ebp - 0x28], 0
add ecx, 0xfffffff0
lock xadd dword [ecx + 8], eax
dec eax
test eax, eax
jg 0x5545f5
cmp dword [ecx + 4], 0
jle 0x5545f5
push ecx
call fcn.00577de8
add esp, 4
mov esi, dword [ebp - 0x18]
mov byte [ebp - 4], 0
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 8], eax
dec eax
test eax, eax
jg 0x55461a
cmp dword [esi + 4], 0
jle 0x55461a
push esi
call fcn.00577de8
add esp, 4
mov esi, dword [ebp - 0x20]
add esi, 0x14
mov dword [ebp - 0x20], esi
lea eax, [esi - 0xc]
cmp eax, dword [ebp - 0x84]
jne 0x553e10
mov bl, byte [ebp - 0xd]
test bl, bl
jne 0x554727
lea ecx, [ebp + 8]
call fcn.00414d80
mov ecx, dword [ebp - 0x6c]
lea edx, [ebp + 8]
mov byte [ebp - 4], 0x14
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
test al, al
jne 0x5546e4
mov ecx, dword [0x5dfbe0]
test ecx, ecx
je 0x5546e4
mov eax, dword [ecx]
push 1
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x5546e4
push ecx
lea ecx, [ebp - 0x148]
call fcn.00430ce0
mov dword [ebp - 0xb0], 0x5ccedc
mov dword [ebp - 0xac], 1
mov dword [ebp - 0xa8], str.C:jenkins_slaveDailyhotfix7.1.2_metaDesktopWinmain_rebarcosy_srcwinCloudStorageProviderHelper.cpp
mov dword [ebp - 0xa4], 0x119
mov dword [ebp - 0xa0], str.sibcrux::CloudStorageProviderEntry::add
mov byte [ebp - 0x9c], 1
mov edx, str.failed_to_cleanup_after_failed_add:
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x148]
call fcn.00416960
lea edx, [ebp + 8]
mov ecx, eax
call fcn.005432e0
lea ecx, [ebp - 0x148]
call fcn.00430bd0
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lock xadd dword [eax + 8], edi
dec edi
test edi, edi
jg 0x554727
cmp dword [eax + 4], 0
jle 0x554727
push eax
call fcn.00577de8
add esp, 4
lea ecx, [ebp - 0x98]
call fcn.005550b0
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov bl, byte [ebp - 0xd]
lea ecx, [ebp - 0x98]
call fcn.005550b0
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, str.incomplete_entry_for_add
call fcn.00416660
push eax
push ecx
mov ecx, dword [ebp + 8]
call fcn.004163d0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4