Function at 0x4076a8
Capabilities:
Check if file exists
Get file attributes
Query or enumerate registry value
Set console window title

Disassembly:
push 0x78
mov eax, 0x40946d
call fcn.004093a1
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
mov edi, dword [ebp - 0x74]
and dword [ebp - 0x2c], 0
xor ebx, ebx
mov eax, 0x80070057
test edi, edi
je 0x4076dd
test dword [ebp - 0x54], reloc.ole32.dll_CoInitializeEx
jne 0x407832
and dword [ebp - 0x28], ebx
call fcn.00407572
mov esi, 0x401570
test eax, eax
jne 0x4076f3
mov esi, 0x4015ac
lea eax, [ebp - 0x28]
push eax
push 0
push 0
push 0x10000006
push esi
push 0x4013b8
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
jne 0x4077f8
mov eax, dword [ebp - 0x28]
shr eax, 1
xor ecx, ecx
push 2
inc eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call dword [sym.imp.msvcrt.dll____U_YAPAXI_Z]
pop ecx
mov ecx, dword [ebp - 0x28]
add ecx, 2
push ecx
push 0
push eax
mov dword [ebp - 0x2c], eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x2c]
push 0
push 0x10000006
push esi
push 0x4013b8
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
jne 0x407772
mov edi, dword [ebp - 0x2c]
jmp 0x4077cb
call fcn.00407572
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test eax, eax
je 0x4077a7
push 0x4015e0
call esi
cmp eax, reloc.ole32.dll_CoInitializeEx
je 0x407794
mov edi, 0x4015e0
jmp 0x4077cb
push 0x4016b0
call esi
cmp eax, reloc.ole32.dll_CoInitializeEx
je 0x4077ce
mov edi, 0x4016b0
jmp 0x4077cb
push 0x401790
call esi
cmp eax, reloc.ole32.dll_CoInitializeEx
je 0x4077ba
mov edi, 0x401790
jmp 0x4077cb
push 0x401840
call esi
cmp eax, reloc.ole32.dll_CoInitializeEx
je 0x4077ce
mov edi, 0x401840
xor ebx, ebx
inc ebx
and dword [ebp - 0x24], 0
lea eax, [ebp - 0x24]
push eax
push 0x6d
call fcn.0040727c
test eax, eax
js 0x407bba
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleW]
push dword [ebp - 0x24]
call dword [sym.imp.msvcrt.dll_free]
pop ecx
test edi, edi
je 0x40780d
lea edx, [ebp - 0x24]
mov eax, 0x7ffffffe
mov ecx, edi
call fcn.0040502d
jmp 0x407812
mov eax, 0x80070057
test eax, eax
jns 0x40781a
xor eax, eax
jmp 0x40781d
mov eax, dword [ebp - 0x24]
push edi
inc eax
mov esi, 0x40a438
call fcn.00404f62
test ebx, ebx
jne 0x40785c
mov eax, 0x80070057
test edi, edi
je 0x407845
lea edx, [ebp - 0x24]
mov eax, 0x7ffffffe
mov ecx, edi
call fcn.0040502d
test eax, eax
jns 0x40784d
xor eax, eax
jmp 0x407850
mov eax, dword [ebp - 0x24]
push edi
inc eax
mov esi, 0x40a438
call fcn.00404f62
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x10], ecx
lea eax, [ebp - 0x10]
push eax
push 0x4019e8
push 1
push ecx
mov byte [ebp - 4], 1
mov ebx, dword [sym.imp.ole32.dll_CoCreateInstance]
push 0x401068
call ebx
mov esi, eax
test esi, esi
jns 0x4078a4
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x407ba7
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
jmp 0x407ba7
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
lea edx, [ebp - 0x1c]
push edx
push 0x4010a8
push eax
call dword [ecx]
mov esi, eax
test esi, esi
js 0x40788a
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
push 2
pop edx
push edx
mov esi, 0x40a438
push esi
push eax
call dword [ecx + 0x14]
and dword [ebp - 0x34], 0
test eax, eax
js 0x4078f1
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
lea edx, [ebp - 0x34]
push edx
push 0x104
push esi
push eax
call dword [ecx + 0x40]
mov esi, eax
test esi, esi
jns 0x407919
jmp 0x40788a
lea edx, [ebp - 0x24]
mov eax, 0x7ffffffe
mov ecx, 0x401918
call fcn.0040502d
test eax, eax
jns 0x40790b
xor eax, eax
jmp 0x40790e
mov eax, dword [ebp - 0x24]
push 0x401918
inc eax
call fcn.00404f62
and dword [ebp - 0x18], 0
lea eax, [ebp - 0x18]
push eax
push 0x401998
push 3
push 0
push 0x401088
call ebx
mov esi, eax
test esi, esi
jns 0x407951
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x407948
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov byte [ebp - 4], 0
jmp 0x407b9a
xor ebx, ebx
mov dword [ebp - 0x14], ebx
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 3
push 0x76
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], ebx
call fcn.0040727c
mov esi, eax
test esi, esi
jns 0x40798d
push 2
pop eax
mov byte [ebp - 4], al
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x407b86
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
jmp 0x407b86
lea eax, [ebp - 0x24]
push eax
push 0x77
call fcn.0040727c
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x34]
mov bl, 1
push 0x40a438
push edi
push dword [ebp - 0x20]
call fcn.00407303
push dword [ebp - 0x2c]
mov esi, dword [sym.imp.msvcrt.dll_free]
mov edi, eax
call esi
pop ecx
push dword [ebp - 0x20]
call esi
pop ecx
push dword [ebp - 0x24]
call esi
pop ecx
test edi, edi
jns 0x407a1a
push 2
pop eax
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x4079e0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4079f1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x407a02
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], reloc.ole32.dll_CoInitializeEx
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x407a13
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, edi
jmp 0x407bba
mov eax, dword [ebp - 0x18]
push dword [ebp - 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
jns 0x407a41
push 2
pop eax
mov byte [ebp - 4], al
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x4079e0
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
jmp 0x4079e0
call fcn.004074f3
test eax, eax
je 0x407b34
lea eax, [ebp - 0x20]
push eax
push 0x7a
call fcn.0040727c
mov edi, eax
test edi, edi
js 0x407a2c
lea eax, [ebp - 0x24]
push eax
push 0x7b
call fcn.0040727c
lea eax, [ebp - 0x14]
push eax
push 0
mov eax, 0x401338
push eax
push eax
push dword [ebp - 0x20]
mov bl, 1
call fcn.00407303
push dword [ebp - 0x20]
mov edi, eax
call esi
pop ecx
push dword [ebp - 0x24]
call esi
pop ecx
test edi, edi
js 0x4079cd
mov eax, dword [ebp - 0x18]
push dword [ebp - 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
js 0x407a2c
lea eax, [ebp - 0x20]
push eax
push 0x65
call fcn.0040727c
mov edi, eax
test edi, edi
js 0x407a2c
lea eax, [ebp - 0x24]
push eax
push 0x6f
call fcn.0040727c
lea eax, [ebp - 0x14]
push eax
push 0
mov eax, 0x401338
push eax
push eax
push dword [ebp - 0x20]
xor bl, bl
call fcn.00407303
push dword [ebp - 0x20]
mov edi, eax
call esi
pop ecx
push dword [ebp - 0x24]
call esi
pop ecx
test edi, edi
jns 0x407b1e
push 2
pop eax
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x407b05
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x407b16
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], bl
jmp 0x4079f5
mov eax, dword [ebp - 0x18]
push dword [ebp - 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov esi, eax
test esi, esi
js 0x407971
xor ebx, ebx
mov dword [ebp - 0x30], ebx
lea edx, [ebp - 0x30]
push edx
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
push 0x401988
push eax
call dword [ecx]
mov esi, eax
test esi, esi
js 0x407b62
mov ecx, dword [ebp + 8]
push dword [ebp - 0x30]
mov eax, dword [ecx]
push ecx
call dword [eax + 0x1c]
mov esi, eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x407b73
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
push 2
pop eax
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x407b86
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x407b97
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x407ba7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], reloc.ole32.dll_CoInitializeEx
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x407bb8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, esi
call fcn.004093d9
ret 4