Function at 0x40e790
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x198
mov eax, dword [0x49a134]
xor eax, esp
mov dword [esp + 0x194], eax
movups xmm0, xmmword [str.0x00000000_n]
push ebx
mov ebx, dword [0x49c6ec]
push ebp
push esi
mov esi, dword [esp + 0x1a8]
push edi
movups xmmword [esp + 0x3c], xmm0
push str._WARNING___PE_SIGNATURE_VERIFICATION_FAILED_____n_Filename:
movq xmm0, qword [0x48928c]
movq qword [esp + 0x50], xmm0
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push str._n_Error:
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov ebp, dword [esp + 0x1b0]
mov ecx, ebp
shr ecx, 0x1c
cmp cx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add ax, cx
mov ecx, ebp
shr ecx, 0x18
and ecx, 0xf
mov word [esp + 0x40], ax
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add ax, cx
mov ecx, ebp
shr ecx, 0x14
and ecx, 0xf
mov word [esp + 0x42], ax
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add ax, cx
mov ecx, ebp
shr ecx, 0x10
and ecx, 0xf
mov word [esp + 0x44], ax
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add ax, cx
mov ecx, ebp
shr ecx, 0xc
and ecx, 0xf
mov word [esp + 0x46], ax
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add ax, cx
mov ecx, ebp
shr ecx, 8
and ecx, 0xf
mov word [esp + 0x48], ax
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add ax, cx
mov ecx, ebp
shr ecx, 4
and ecx, 0xf
mov word [esp + 0x4a], ax
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add ax, cx
mov ecx, ebp
mov word [esp + 0x4c], ax
and ecx, 0xf
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add ax, cx
mov word [esp + 0x4e], ax
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
test ebx, ebx
jne 0x40eb93
cmp dword [0x4991a4], ebx
je 0x40ebcb
xor eax, eax
mov dword [esp + 0x34], 0x2000100
push 0x42ea
mov word [esp + 0x3c], ax
mov dword [esp + 0x28], 0x41fcc608
mov dword [esp + 0x2c], 0x4def8496
mov dword [esp + 0x30], 0x9b7d3eb4
mov dword [esp + 0x34], 0xffa675d6
call fcn.0040e470
add esp, 4
mov dword [0x4991a4], ebx
test eax, eax
mov edi, str.SYSTEMControlSet001Services_nvlddmkm
mov eax, dword [0x49c558]
mov ecx, str.SOFTWARENVIDIA_CorporationGlobal
cmove edi, ecx
mov dword [esp + 0x20], edi
test eax, eax
jne 0x40e95e
push eax
push 0x488fe4
call fcn.0040e670
add esp, 8
mov dword [0x49c558], eax
test eax, eax
je 0x40ebdb
cmp dword [0x49c55c], 0
jne 0x40e985
push 0x4893d0
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x49c55c], eax
test eax, eax
je 0x40ebdb
mov eax, dword [0x49c558]
cmp dword [0x49c560], 0
jne 0x40e9ac
push str.RegEnumValueW
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x49c560], eax
test eax, eax
je 0x40ebdb
mov eax, dword [0x49c558]
cmp dword [0x49c568], 0
jne 0x40e9ce
push 0x4893f0
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x49c568], eax
test eax, eax
je 0x40ebdb
cmp dword [0x49c580], 0
jne 0x40ea05
push 0
push str.Ole32.dll
call fcn.0040e670
add esp, 8
mov dword [0x49c580], eax
test eax, eax
je 0x40ea05
push str.StringFromGUID2
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
mov dword [0x49c584], esi
jmp 0x40ea0b
mov esi, dword [0x49c584]
test esi, esi
je 0x40ebdb
push 0x4e
lea eax, [esp + 0x58]
push 0
push eax
call fcn.0042fc00
add esp, 0xc
lea eax, [esp + 0x54]
mov ecx, esi
push 0x27
push eax
lea eax, [esp + 0x2c]
push eax
call dword [0x485320]
call esi
cmp eax, 0x27
jne 0x40ebdb
lea ebp, [esp + 0x34]
nop word [eax + eax]
movzx eax, word [ebp]
test ax, ax
je 0x40ebc4
mov esi, dword [0x49c55c]
lea ecx, [esp + 0x10]
push ecx
or eax, 0x20019
mov dword [esp + 0x14], 0
push eax
push 0
push edi
push 0x80000002
mov ecx, esi
call dword [0x485320]
call esi
test eax, eax
jne 0x40eb88
xor ebx, ebx
xor edi, edi
push 0x100
lea eax, [esp + 0xa8]
mov dword [esp + 0x18], 0x80
push 0
push eax
mov dword [esp + 0x24], 4
call fcn.0042fc00
mov esi, dword [0x49c560]
lea eax, [esp + 0x24]
add esp, 0xc
mov ecx, esi
push eax
lea eax, [esp + 0x20]
push eax
push 0
push 0
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0xb8]
push eax
push ebx
push dword [esp + 0x2c]
call dword [0x485320]
call esi
inc ebx
test eax, eax
jne 0x40eb58
lea eax, [esp + 0x54]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40eaf7
sub eax, edx
sar eax, 1
cmp eax, dword [esp + 0x14]
jne 0x40ea94
lea ecx, [esp + 0xa4]
lea eax, [esp + 0x54]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40eb3d
test dx, dx
je 0x40eb39
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40eb3d
add eax, 4
add ecx, 4
test dx, dx
jne 0x40eb17
xor eax, eax
jmp 0x40eb42
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40ea94
cmp dword [esp + 0x1c], eax
setne al
or edi, eax
jmp 0x40ea94
cmp eax, 0x103
jne 0x40ea94
push dword [esp + 0x10]
mov esi, dword [0x49c568]
mov ecx, esi
call dword [0x485320]
call esi
xor ebx, ebx
test edi, edi
mov edi, dword [esp + 0x20]
setne bl
mov dword [0x49c6ec], ebx
add ebp, 2
test ebx, ebx
je 0x40ea50
push str._Signature_override_detected..._n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, 1
mov ecx, dword [esp + 0x1a4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042e063
add esp, 0x198
ret
mov ebp, dword [esp + 0x1b0]
cmp dword [0x49c6ec], 0
jne 0x40eb93
push ebp
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x40ebab