Function at 0x401980
Capabilities:
Delete registry key
Set registry value

Disassembly:
sub esp, 0x110
push ebx
lea eax, [esp + 0x10]
push esi
lea ecx, [esp + 8]
xor ebx, ebx
push eax
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
push ecx
push ebx
push 0xf003f
push ebx
push ebx
push ebx
push 0x408190
push 0x80000001
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebx
call esi
mov eax, dword [esp + 0x11c]
cmp eax, 0x4080c4
jne 0x401ac9
push ebp
lea edx, [esp + 0x14]
push edi
lea eax, [esp + 0x14]
push edx
push eax
push ebx
push 0xf003f
push ebx
push ebx
push ebx
push 0x408238
push 0x80000000
call esi
mov edi, 0x408218
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov ecx, dword [esp + 0x18]
push 0x408218
push 1
push ebx
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push ecx
call ebx
mov edx, dword [esp + 0x14]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edx
call ebp
lea eax, [esp + 0x18]
lea ecx, [esp + 0x14]
push eax
push ecx
push 0
push 0xf003f
push 0
push 0
push 0
push 0x4081f4
push 0x80000000
call esi
lea edx, [esp + 0x20]
push 0x100
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edi, 0x4081f0
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x20]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x100
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x24]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
push 1
push 0
push 0
push ecx
call ebx
mov edx, dword [esp + 0x14]
push edx
call ebp
mov eax, dword [esp + 0x10]
push 1
push 0x4081ec
push 1
push 0
push 0x408174
push eax
call ebx
mov ecx, dword [esp + 0x10]
push ecx
call ebp
pop edi
pop ebp
pop esi
mov al, 1
pop ebx
add esp, 0x110
ret
cmp eax, 0x40809c
jne 0x401ae4
push 1
push 0x4081ec
push 1
push ebx
push 0x408184
jmp 0x401bc3
cmp eax, 0x4080b8
jne 0x401b0c
push 0x408238
push 0x80000000
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyA]
push 1
push 0x4081e8
push 1
push ebx
push 0x408174
jmp 0x401b55
cmp eax, 0x4080b0
jne 0x401b24
push 1
push 0x4081e8
push 1
push ebx
push 0x408184
jmp 0x401b8c
cmp eax, 0x4080ac
jne 0x401b3f
push 1
push 0x4081ec
push 1
push ebx
push 0x408168
jmp 0x401bc3
cmp eax, 0x4080a4
jne 0x401b76
push 1
push 0x4081e8
push 1
push ebx
push 0x408168
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [esp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov al, 1
pop ebx
add esp, 0x110
ret
cmp eax, 0x4080d8
jne 0x401bad
push 1
push 0x4081ec
push 1
push ebx
push 0x408158
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [esp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov al, 1
pop ebx
add esp, 0x110
ret
cmp eax, 0x4080cc
jne 0x401bd9
push 1
push 0x4081e8
push 1
push ebx
push 0x408158
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [esp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov al, 1
pop ebx
add esp, 0x110
ret