Function at 0x5f343021
Capabilities:
Delete registry value
Persist via windows service
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
xor ebx, ebx
push edi
push 0x208
mov dword [ebp - 0x18], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x24], ebx
call dword [sym.imp.msvcrt.dll_malloc]
mov esi, eax
cmp esi, ebx
pop ecx
mov dword [ebp - 0x1c], esi
jne 0x5f343051
push 0xe
jmp 0x5f3431ca
push 0x5f341e18
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov edi, 0x5f34112c
push edi
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
call esi
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
call esi
push edi
push dword [ebp - 0x1c]
call esi
push 0x5f341e00
push dword [ebp - 0x1c]
call esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 0x18]
push eax
mov edi, 0x2001f
push edi
push ebx
push dword [ebp - 0x1c]
push dword [ebp + 0xc]
call esi
cmp eax, ebx
jne 0x5f3431c9
lea eax, [ebp - 4]
push eax
push edi
push ebx
push 0x5f341f18
push dword [ebp + 0xc]
call esi
cmp eax, ebx
jne 0x5f3431c9
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push 4
pop edi
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
push ebx
push 0x5f341eac
push dword [ebp - 4]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], edi
call esi
cmp eax, ebx
jne 0x5f3431c9
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
push ebx
push 0x5f341ec8
push dword [ebp - 4]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], edi
call esi
cmp eax, ebx
jne 0x5f3431c9
lea eax, [ebp - 8]
push eax
push 0x5f345c4c
lea eax, [ebp - 0x10]
push eax
push ebx
push 0x5f341edc
push dword [ebp - 4]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 8], edi
call esi
test eax, eax
mov ecx, 0x10000
je 0x5f343143
mov dword [0x5f345c4c], ecx
cmp dword [0x5f345c4c], ecx
jne 0x5f343293
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x10]
push eax
push ebx
push 0x5f341eac
push dword [ebp - 0x18]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 8], edi
call esi
test eax, eax
jne 0x5f34317e
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0xc]
ja 0x5f34317e
push ebx
jmp 0x5f3431ca
lea eax, [ebp - 8]
push eax
push ebx
lea eax, [ebp - 0x10]
push eax
push ebx
push 0x5f341e64
push dword [ebp - 4]
call esi
test eax, eax
jne 0x5f3431a0
mov eax, 0xaa
jmp 0x5f3432d2
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
shl eax, 1
push eax
push dword [ebp + 0x10]
mov dword [ebp - 8], eax
push 1
push ebx
push 0x5f341e64
push dword [ebp - 4]
call esi
cmp eax, ebx
je 0x5f3431d5
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x5f343293
push dword [ebp + 0x14]
add dword [ebp - 0xc], 2
mov eax, dword [ebp - 0xc]
push dword [ebp + 0x18]
add dword [ebp - 0x14], 2
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
push eax
push dword [ebp - 0xc]
mov dword [ebp - 0x2c], eax
push dword [ebp + 8]
call fcn.5f342ba0
test eax, eax
je 0x5f343293
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x14]
call fcn.5f342cae
test eax, eax
je 0x5f343293
push dword [ebp + 0x14]
push dword [ebp - 4]
call fcn.5f342e40
test eax, eax
je 0x5f343293
push edi
lea eax, [ebp - 0xc]
push eax
push edi
push ebx
push 0x5f341eac
push dword [ebp - 4]
call esi
push edi
lea eax, [ebp - 0x14]
push eax
push edi
push ebx
push 0x5f341ec8
push dword [ebp - 4]
call esi
push edi
lea eax, [ebp - 0xc]
push eax
push edi
push ebx
push 0x5f341eac
push dword [ebp - 0x18]
call esi
push edi
lea eax, [ebp - 0x14]
push eax
push edi
push ebx
push 0x5f341ec8
push dword [ebp - 0x18]
call esi
push edi
lea eax, [ebp - 0x28]
push eax
push edi
push ebx
push 0x5f341e78
push dword [ebp - 0x18]
call esi
push edi
lea eax, [ebp - 0x2c]
push eax
push edi
push ebx
push 0x5f341e94
push dword [ebp - 0x18]
call esi
mov dword [ebp - 0x24], 1
cmp dword [ebp - 4], ebx
je 0x5f3432a6
push 0x5f341e64
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp dword [ebp - 0x1c], ebx
je 0x5f3432b5
push dword [ebp - 0x1c]
call dword [sym.imp.msvcrt.dll_free]
pop ecx
cmp dword [ebp - 0x18], ebx
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x5f3432c5
push dword [ebp - 0x18]
call esi
cmp dword [ebp - 4], ebx
je 0x5f3432cf
push dword [ebp - 4]
call esi
mov eax, dword [ebp - 0x24]
pop edi
pop esi
pop ebx
leave
ret 0x14