Function at 0x43a393
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc8
push ebx
push esi
xor esi, esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], esi
mov dword [ebp - 8], esi
cmp dword [edi + 0xc], esi
jbe 0x43a414
mov dword [ebp - 4], esi
mov esi, dword [edi]
add esi, dword [ebp - 4]
mov edx, dword [esi + 0x1c]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
mov eax, edx
sub eax, ebx
mov ebx, dword [esi + 0x2c]
sub ecx, edx
neg eax
sbb eax, eax
and eax, edx
cmp dword [esi + 0x10], 0
jne 0x43a3d9
and dword [ebp - 0xc], 0
jmp 0x43a3e9
cmp dword [esi + 0x14], 8
jb 0x43a3e6
mov edx, dword [esi]
mov dword [ebp - 0xc], edx
jmp 0x43a3e9
mov dword [ebp - 0xc], esi
mov edx, dword [ebp + 8]
mov edx, dword [edx]
push ecx
push eax
push ebx
push 0
push dword [ebp - 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ebx, eax
test ebx, ebx
jne 0x43a43e
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
add dword [ebp - 4], 0x30
cmp eax, dword [edi + 0xc]
jb 0x43a3b1
xor esi, esi
lea ecx, [ebp - 0x18]
call fcn.0043c9d9
mov dword [ebp - 0xc], esi
cmp dword [edi + 0x10], esi
jbe 0x43a4f5
mov dword [ebp - 4], esi
mov dword [ebp - 8], esi
mov esi, dword [edi + 4]
add esi, dword [ebp - 8]
cmp dword [esi + 0x14], 8
jb 0x43a4ab
mov ecx, dword [esi]
jmp 0x43a4ad
call fcn.0040ab90
push 2
pop ecx
cmp eax, ecx
jg 0x43a491
push ecx
push 0x111
mov dword [ebp - 0x10], ecx
push str.installer_tdsetuputil_registry_key_backup.cc
lea ecx, [ebp - 0xc8]
call fcn.0040add0
push ebx
push str.___result:
push esi
add eax, 8
push str.Failed_writing_value__
push eax
call fcn.00403540
pop ecx
pop ecx
push eax
call fcn.00404340
pop ecx
pop ecx
push eax
call fcn.00403540
pop ecx
pop ecx
mov ecx, eax
call fcn.0043a273
test byte [ebp - 0x10], 2
je 0x43a4a2
lea ecx, [ebp - 0xc8]
call fcn.0040ae20
xor al, al
pop edi
pop esi
pop ebx
leave
ret 4
mov ecx, esi
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push 0x20006
push ecx
push eax
lea ecx, [ebp - 0x18]
call fcn.0043caca
mov ebx, eax
test ebx, ebx
jne 0x43a4fc
mov ecx, dword [edi + 8]
add ecx, dword [ebp - 4]
lea eax, [ebp - 0x18]
push eax
call fcn.0043a393
test al, al
je 0x43a570
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
add dword [ebp - 8], 0x1c
add dword [ebp - 4], 0x14
cmp eax, dword [edi + 0x10]
jb 0x43a42e
mov bl, 1
jmp 0x43a5da
call fcn.0040ab90
cmp eax, 2
jg 0x43a552
push 2
push 0x11e
push str.installer_tdsetuputil_registry_key_backup.cc
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x10], 4
call fcn.0040add0
push ebx
push str.___result:
push esi
add eax, 8
push str.Failed_creating_subkey__
push eax
call fcn.00403540
pop ecx
pop ecx
push eax
call fcn.00404340
pop ecx
pop ecx
push eax
call fcn.00403540
pop ecx
pop ecx
mov ecx, eax
call fcn.0043a273
test byte [ebp - 0x10], 4
je 0x43a563
lea ecx, [ebp - 0xc8]
call fcn.0040ae20
lea ecx, [ebp - 0x18]
call fcn.0043ca36
jmp 0x43a4a2
call fcn.0040ab90
cmp eax, 2
jg 0x43a5c7
push 2
push 0x123
push str.installer_tdsetuputil_registry_key_backup.cc
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x10], 8
call fcn.0040add0
push 0
push str.___result:
push esi
add eax, 8
push str.Failed_writing_subkey__
push eax
call fcn.00403540
pop ecx
pop ecx
push eax
call fcn.00404340
pop ecx
pop ecx
push eax
call fcn.00403540
pop ecx
pop ecx
mov ecx, eax
call fcn.0043a273
test byte [ebp - 0x10], 8
je 0x43a5d8
lea ecx, [ebp - 0xc8]
call fcn.0040ae20
xor bl, bl
lea ecx, [ebp - 0x18]
call fcn.0043ca36
mov al, bl
jmp 0x43a4a4