Function at 0x43b9e0
Capabilities:
Set registry value

Disassembly:
mov eax, 0x1000c
call fcn.004444f0
mov ecx, dword [0x45de54]
push esi
push edi
xor edi, edi
push edi
push 0xffffffffffffffff
push 0x452c78
call fcn.0043e8a0
mov eax, dword [esp + 0x1001c]
cmp eax, edi
je 0x43bcf6
mov esi, dword [esp + 0x10018]
cmp esi, edi
je 0x43bcf6
cmp esi, 0xfffffffe
je 0x43bcf6
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x10024]
lea edx, [esp + 0xc]
push edx
push edi
push 0x20006
push edi
push 0x44f4f8
push edi
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x43bcf6
lea eax, [esi - 1]
cmp eax, 6
ja case.0x43ba5e.5
jmp dword [eax*4 + 0x43bd08]
mov al, byte [0x45f111]
test al, al
mov edx, dword [esp + 0x10028]
je 0x43ba8c
push 0xffff
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.00401050
add esp, 0xc
lea edx, [esp + 0x14]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43ba91
mov ecx, dword [esp + 0x10024]
sub eax, esi
inc eax
push eax
push edx
mov edx, dword [esp + 0x10]
push 1
push edi
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne case.0x43ba5e.5
mov ecx, dword [0x45de54]
push edi
push 0xffffffffffffffff
push 0x44f664
call fcn.0043e8a0
mov eax, dword [esp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov eax, 1
pop esi
add esp, 0x1000c
ret 0x14
mov al, byte [0x45f111]
test al, al
je 0x43bb0e
mov ecx, dword [esp + 0x10028]
push 0xffff
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00401050
add esp, 0xc
lea edx, [esp + 0x14]
jmp 0x43bb15
mov edx, dword [esp + 0x10028]
mov eax, edx
lea esi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43bb20
sub eax, esi
inc eax
push eax
push edx
push 2
jmp 0x43bbdb
mov eax, dword [esp + 0x10028]
push 0xfffe
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00401050
lea eax, [esp + 0x20]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43bb54
sub eax, edx
mov byte [esp + eax + 0x15], cl
je 0x43bb70
cmp byte [esp + eax + 0x13], 0xa
jne 0x43bb70
dec eax
mov byte [esp + eax + 0x14], 0
mov dl, byte [esp + 0x14]
test dl, dl
lea ecx, [esp + 0x14]
je 0x43bb90
lea esp, [esp]
cmp byte [ecx], 0xa
jne 0x43bb88
mov byte [ecx], 0
mov dl, byte [ecx + 1]
inc ecx
test dl, dl
jne 0x43bb80
cmp eax, edi
je 0x43bba1
add eax, 2
push eax
lea edx, [esp + 0x18]
push edx
push 7
jmp 0x43bbdb
xor eax, eax
push eax
lea edx, [esp + 0x18]
push edx
push 7
jmp 0x43bbdb
mov eax, dword [esp + 0x10028]
cmp byte [eax], 0
je 0x43bbce
lea ecx, [esp + 0xc]
push ecx
push 0x4576ec
push eax
call fcn.0044588c
add esp, 0xc
jmp 0x43bbd2
mov dword [esp + 0xc], edi
push 4
lea edx, [esp + 0x10]
push edx
push 4
mov eax, dword [esp + 0x10030]
mov ecx, dword [esp + 0x14]
push edi
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x43bc06
mov ecx, dword [0x45de54]
push edi
push 0xffffffffffffffff
push 0x44f664
call fcn.0043e8a0
mov edx, dword [esp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov eax, 1
pop esi
add esp, 0x1000c
ret 0x14
push ebx
mov ebx, dword [esp + 0x1002c]
mov eax, ebx
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43bc30
sub eax, edx
push ebp
mov ebp, eax
and eax, 0x80000001
jns 0x43bc48
dec eax
or eax, 0xfffffffe
inc eax
je 0x43bc54
mov ecx, dword [esp + 0x10]
push ecx
jmp 0x43bcee
xor esi, esi
test ebp, ebp
jle 0x43bcb5
lea ebx, [ebx]
cmp edi, 0xffff
jae 0x43bcb5
xor edx, edx
mov ecx, 0x10
nop
mov al, byte [esi + ebx]
cmp al, 0x30
jl 0x43bc83
cmp al, 0x39
jg 0x43bc83
movsx eax, al
sub eax, 0x30
jmp 0x43bca1
cmp al, 0x41
jl 0x43bc93
cmp al, 0x46
jg 0x43bc93
movsx eax, al
sub eax, 0x37
jmp 0x43bca1
cmp al, 0x61
jl 0x43bc4a
cmp al, 0x66
jg 0x43bc4a
movsx eax, al
sub eax, 0x57
imul eax, ecx
add edx, eax
inc esi
sub ecx, 0xf
jns 0x43bc70
mov byte [esp + edi + 0x1c], dl
inc edi
cmp esi, ebp
jl 0x43bc60
mov eax, dword [esp + 0x1002c]
mov ecx, dword [esp + 0x10]
push edi
lea edx, [esp + 0x20]
push edx
push 3
push 0
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x43bce9
mov ecx, dword [0x45de54]
push eax
push 0xffffffffffffffff
push 0x44f664
call fcn.0043e8a0
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop ebp
pop ebx
pop edi
mov eax, 1
pop esi
add esp, 0x1000c
ret 0x14