Function at 0x407c11
Capabilities:
Query or enumerate registry value

Disassembly:
mov eax, 0x40a32c
call fcn.00406634
sub esp, 0x570
mov eax, dword [0x40d350]
push ebx
push esi
mov esi, 0x40d350
xor ebx, ebx
push edi
mov ecx, esi
mov byte [ebp - 0x12], bl
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], ebx
mov ecx, esi
mov eax, dword [0x40d350]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x34], eax
mov eax, 0x104
mov byte [ebp - 4], 1
push eax
push eax
lea ecx, [ebp - 0x30]
call fcn.00408267
push eax
push 0x400000
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push eax
lea ecx, [ebp - 0x30]
call fcn.00408234
push dword [ebp - 0x30]
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov edx, dword [0x40d350]
mov edi, eax
mov ecx, esi
mov dword [ebp - 0x28], edi
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x2c], eax
push 2
pop eax
mov byte [ebp - 4], al
test edi, edi
je 0x407dca
test edi, 0xffff0000
jne 0x407dca
movzx esi, di
mov ecx, esi
call fcn.004076bc
test eax, eax
je 0x407cca
push esi
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040847c
mov esi, 0x40d350
mov byte [ebp - 4], 3
mov ecx, esi
mov eax, dword [0x40d350]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x1c], esi
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call fcn.0040818b
push 2
lea ecx, [edi + 2]
pop edx
mov ax, word [edi]
add edi, edx
cmp ax, bx
jne 0x407cf6
sub edi, ecx
xor ecx, ecx
sar edi, 1
inc edi
mov eax, edi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new___unsigned_int_]
push dword [ebp - 0x28]
mov dword [0x40d340], eax
push edi
push eax
call fcn.0040138d
add esp, 0x10
mov ecx, eax
call fcn.0040678a
mov eax, dword [0x40d350]
mov ecx, 0x40d350
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 6
push eax
push 0x20019
push ebx
push str.SOFTWARECrypto_ProTrace
push 0x80000002
mov dword [ebp - 0x10], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x407d7d
mov ecx, dword [ebp - 0x10]
mov eax, ebx
mov dword [ebp - 0x44], ecx
test eax, eax
mov edi, dword [ebp - 0x2c]
je 0x407dd8
mov byte [ebp - 0x11], bl
lea eax, [ebp - 0x10]
mov ecx, 0x104
push eax
mov dword [ebp - 0x10], ecx
push ecx
lea ecx, [ebp - 0x18]
call fcn.00408267
mov ecx, dword [ebp - 0x28]
mov edx, eax
call fcn.00407b4d
pop ecx
test eax, eax
jne 0x407e4c
cmp dword [ebp - 0x10], eax
jbe 0x407e4c
push dword [ebp - 0x10]
lea ecx, [ebp - 0x18]
call fcn.00408234
mov byte [ebp - 0x12], 1
jmp 0x407e5f
push edi
lea ecx, [ebp - 0x2c]
call fcn.004082ed
jmp 0x407ccf
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], ebx
push eax
push ebx
push dword [ebp - 0x28]
lea ecx, [ebp - 0x44]
call fcn.004086fa
mov byte [ebp - 0x11], 1
test eax, eax
jne 0x407d85
cmp dword [ebp - 0x10], 0
mov al, 1
mov byte [ebp - 0x12], al
jbe 0x407e44
lea eax, [ebp - 0x10]
push eax
push 0x104
lea ecx, [ebp - 0x18]
call fcn.00408267
push eax
push dword [ebp - 0x28]
lea ecx, [ebp - 0x44]
call fcn.004086fa
lea ecx, [ebp - 0x18]
test eax, eax
je 0x407e34
push ebx
call fcn.00408401
mov byte [ebp - 0x12], bl
mov byte [ebp - 0x11], 1
jmp 0x407d85
mov eax, dword [ebp - 0x10]
dec eax
push eax
call fcn.00408234
mov byte [ebp - 0x11], 1
jmp 0x407e65
mov byte [ebp - 0x12], al
mov byte [ebp - 0x11], al
jmp 0x407e65
push ebx
lea ecx, [ebp - 0x18]
call fcn.00408401
cmp byte [ebp - 0x12], 0
je 0x407f09
cmp byte [ebp - 0x11], 0
je 0x407eb3
lea eax, [ebp - 0x10]
push eax
push ebx
push edi
lea ecx, [ebp - 0x44]
call fcn.004086fa
test eax, eax
jne 0x407eb3
cmp dword [ebp - 0x10], eax
jbe 0x407eb3
lea eax, [ebp - 0x10]
push eax
push 0x104
lea ecx, [ebp - 0x1c]
call fcn.00408267
push eax
push edi
lea ecx, [ebp - 0x44]
call fcn.004086fa
lea ecx, [ebp - 0x1c]
test eax, eax
je 0x407ea6
push ebx
call fcn.00408401
jmp 0x407eb0
mov eax, dword [ebp - 0x10]
dec eax
push eax
call fcn.00408234
mov esi, dword [ebp - 0x1c]
cmp dword [esi - 0xc], ebx
jg 0x407efe
lea eax, [ebp - 0x10]
mov ecx, 0x104
push eax
mov dword [ebp - 0x10], ecx
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00408267
mov edx, eax
mov ecx, edi
call fcn.00407b4d
pop ecx
test eax, eax
jne 0x407eed
cmp dword [ebp - 0x10], eax
jbe 0x407eed
push dword [ebp - 0x10]
lea ecx, [ebp - 0x1c]
call fcn.00408234
jmp 0x407ef6
push ebx
lea ecx, [ebp - 0x1c]
call fcn.00408401
mov esi, dword [ebp - 0x1c]
cmp dword [esi - 0xc], ebx
jle 0x407f09
push esi
mov ecx, 0x40d340
call fcn.00408604
cmp byte [ebp - 0x11], 0
mov dword [ebp - 0x20], ebx
je 0x407f4c
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], 4
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x10]
push eax
push ebx
push str.ProcessFlags
push dword [ebp - 0x44]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x407f42
cmp dword [ebp - 0x10], 4
push 0xd
pop ecx
cmovne eax, ecx
cmp dword [ebp - 0x20], 0
jne 0x407f99
test eax, eax
je 0x407f99
lea eax, [ebp - 0x10]
mov ecx, 0x104
push eax
mov dword [ebp - 0x10], ecx
push ecx
lea ecx, [ebp - 0x34]
call fcn.00408267
mov edx, eax
mov ecx, str.ProcessFlags
call fcn.00407b4d
pop ecx
test eax, eax
jne 0x407f99
cmp dword [ebp - 0x10], eax
jbe 0x407f99
lea eax, [ebp - 0x20]
push eax
push 0x40b774
push dword [ebp - 0x34]
call fcn.00401338
mov ecx, dword [ebp - 0x20]
xor edx, edx
add esp, 0xc
cmp eax, 1
cmovne ecx, edx
mov dword [ebp - 0x20], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, eax
call fcn.00407ab5
mov dword [ebp - 0x10], eax
test eax, eax
je 0x407fc6
mov ecx, eax
call fcn.00409d14
mov ecx, dword [ebp - 0x10]
lea edx, [ebp - 0x57c]
call fcn.00408c10
test eax, eax
jne 0x407fd3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x408076
mov eax, dword [ebp - 0x20]
mov ecx, eax
and ecx, 2
and eax, 1
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x24], eax
mov edx, dword [ecx + 0x1c]
test edx, edx
je 0x408017
mov eax, dword [ebp - 0x2f0]
cmp dword [ebp - 0x38], 0
mov dword [edx + 0x424], eax
mov eax, dword [ebp - 0x24]
mov byte [edx + 0x42a], al
setne al
mov byte [edx + 0x429], 1
mov byte [edx + 0x42b], al
mov eax, dword [ebp - 0x2e0]
jmp 0x40806b
lea edx, [ebp - 0x2dc]
push edx
mov edx, eax
call fcn.00408ca5
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x2dc]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40805c
test dx, dx
je 0x408058
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40805c
add eax, 4
add ecx, 4
test dx, dx
jne 0x408036
mov eax, ebx
jmp 0x408061
sbb eax, eax
or eax, 1
test eax, eax
je 0x4080c6
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
sub eax, 1
mov dword [ebp - 0x24], eax
jns 0x40801f
push 0x7e
pop ebx
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x408084
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.004079cc
lea ecx, [esi - 0x10]
call fcn.004079cc
lea ecx, [edi - 0x10]
call fcn.004079cc
mov ecx, dword [ebp - 0x34]
lea ecx, [ecx - 0x10]
call fcn.004079cc
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.004079cc
mov ecx, dword [ebp - 0xc]
mov eax, ebx
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x38], ecx
cmp ecx, 0xffffffff
je 0x408073
mov eax, dword [ebp - 0x18]
mov eax, dword [eax - 0xc]
test eax, eax
jne 0x4080f4
mov dl, byte [ebp - 0x12]
test dl, dl
sete al
inc eax
test dl, dl
push eax
push 3
pop eax
push 0
pop edx
cmove eax, edx
mov edx, ecx
jmp 0x40812d
cmp eax, 1
jne 0x408138
push ecx
lea ecx, [ebp - 0x18]
call fcn.00408297
push 0x30
pop ecx
cmp ax, cx
jb 0x408138
push ecx
lea ecx, [ebp - 0x18]
call fcn.00408297
cmp ax, 0x34
ja 0x408138
push 1
push ecx
lea ecx, [ebp - 0x18]
call fcn.00408297
mov edx, dword [ebp - 0x38]
movzx eax, ax
sub eax, 0x30
mov ecx, dword [ebp - 0x10]
push eax
call fcn.004088d9
jmp 0x408140
mov ecx, dword [ebp - 0x18]
call fcn.004092f5
mov ecx, dword [ebp - 0x10]
push 1
call fcn.00409939
mov ecx, dword [ebp - 0x10]
call fcn.0040877e
push dword [ebp - 0x10]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
call fcn.00408165
jmp 0x408076