Function at 0x4059f0
Capabilities:
Query or enumerate registry value
Terminate process

Disassembly:
push 0xffffffffffffffff
push 0x41a207
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x21c
mov eax, dword [0x427880]
xor eax, dword [esp + 0x228]
push ebx
push ebp
push esi
push edi
mov esi, ecx
push str.SOFTWAREPlotSoftPDFillWinIni
lea ecx, [esp + 0x20]
mov dword [esp + 0x22c], eax
call fcn.00404410
mov ecx, dword [esp + 0x1c]
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [esp + 0x10]
push eax
push 0x20019
xor ebx, ebx
push ebx
push ecx
push 0x80000002
mov dword [esp + 0x248], ebx
call edi
test eax, eax
mov ebp, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
jne 0x405ad5
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x24]
push eax
push ebx
push ebx
push str.firstname
push ecx
mov dword [esp + 0x2c], 0x208
call ebp
test eax, eax
jne 0x405aca
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x1c]
call fcn.00404410
lea ecx, [esi + 8]
push eax
mov byte [esp + 0x238], 1
call fcn.00401510
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x234], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405aca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x10]
push ecx
push 0x20019
push ebx
push edx
push 0x80000002
call edi
test eax, eax
jne 0x405b63
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
push ecx
push ebx
push ebx
push str.lastname
push edx
mov dword [esp + 0x30], 0x208
call ebp
test eax, eax
jne 0x405b58
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x18]
call fcn.00404410
lea ecx, [esi + 0xc]
push eax
mov byte [esp + 0x238], 2
call fcn.00401510
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x234], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405b58
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x10]
push ecx
push 0x20019
push ebx
push edx
push 0x80000002
call edi
test eax, eax
jne 0x405bf1
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
push ecx
push ebx
push ebx
push str.email
push edx
mov dword [esp + 0x30], 0x208
call ebp
test eax, eax
jne 0x405be6
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x18]
call fcn.00404410
lea ecx, [esi + 0x10]
push eax
mov byte [esp + 0x238], 3
call fcn.00401510
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x234], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405be6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x10]
push ecx
push 0x20019
push ebx
push edx
push 0x80000002
call edi
test eax, eax
jne 0x405c7f
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
push ecx
push ebx
push ebx
push 0x41f000
push edx
mov dword [esp + 0x30], 0x208
call ebp
test eax, eax
jne 0x405c74
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x18]
call fcn.00404410
lea ecx, [esi + 0x14]
push eax
mov byte [esp + 0x238], 4
call fcn.00401510
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x234], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405c74
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov dword [esp + 0x234], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
pop edi
pop esi
pop ebp
pop ebx
jg 0x405cac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x21c]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x218]
xor ecx, dword [esp + 0x228]
mov eax, 1
add esp, 0x228
jmp fcn.00419c26