Function at 0x40a420
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x194
mov eax, dword [0x447170]
xor eax, esp
mov dword [esp + 0x190], eax
movdqu xmm0, xmmword [str.0x00000000_n]
push ebx
mov ebx, dword [0x4499d4]
push ebp
push esi
mov esi, dword [esp + 0x1a4]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
movdqu xmmword [esp + 0x38], xmm0
push str._WARNING___PE_SIGNATURE_VERIFICATION_FAILED_____n_Filename:
movq xmm0, qword [0x43e354]
movq qword [esp + 0x4c], xmm0
call edi
push esi
call edi
push str._n_Error:
call edi
mov ebp, dword [esp + 0x1ac]
mov ecx, ebp
shr ecx, 0x1c
and ecx, 0xf
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add cx, ax
mov word [esp + 0x3c], cx
mov ecx, ebp
shr ecx, 0x18
and ecx, 0xf
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add cx, ax
mov word [esp + 0x3e], cx
mov ecx, ebp
shr ecx, 0x14
and ecx, 0xf
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add cx, ax
mov word [esp + 0x40], cx
mov ecx, ebp
shr ecx, 0x10
and ecx, 0xf
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add cx, ax
mov word [esp + 0x42], cx
mov ecx, ebp
shr ecx, 0xc
and ecx, 0xf
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add cx, ax
mov word [esp + 0x44], cx
mov ecx, ebp
shr ecx, 8
and ecx, 0xf
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add cx, ax
mov word [esp + 0x46], cx
mov ecx, ebp
shr ecx, 4
and ecx, 0xf
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add cx, ax
mov word [esp + 0x48], cx
mov ecx, ebp
and ecx, 0xf
cmp ecx, 0xa
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
add cx, ax
lea eax, [esp + 0x38]
push eax
mov word [esp + 0x4e], cx
call edi
test ebx, ebx
jne 0x40a7fe
cmp dword [0x447168], ebx
je 0x40a83a
mov esi, dword [0x4499a8]
xor eax, eax
mov dword [esp + 0x30], 0x2000100
mov word [esp + 0x34], ax
mov dword [esp + 0x20], 0x41fcc608
mov dword [esp + 0x24], 0x4def8496
mov dword [esp + 0x28], 0x9b7d3eb4
mov dword [esp + 0x2c], 0xffa675d6
mov dword [0x447168], eax
test esi, esi
jne 0x40a5eb
push 0x43e094
call fcn.00408e80
mov edi, eax
add esp, 4
xor eax, eax
cmp eax, 0x43e094
je 0x40a5c9
test edi, edi
je 0x40a5d6
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov esi, eax
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [0x4499a8], esi
test esi, esi
je 0x40a84a
cmp dword [0x4499ac], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
jne 0x40a615
push str.RegOpenKeyExW
push esi
call edi
mov dword [0x4499ac], eax
test eax, eax
je 0x40a84a
mov esi, dword [0x4499a8]
cmp dword [0x4499b0], 0
jne 0x40a639
push str.RegEnumValueW
push esi
call edi
mov dword [0x4499b0], eax
test eax, eax
je 0x40a84a
mov esi, dword [0x4499a8]
cmp dword [0x4499b8], 0
jne 0x40a657
push 0x43e420
push esi
call edi
mov dword [0x4499b8], eax
test eax, eax
je 0x40a84a
cmp dword [0x4499cc], 0
jne 0x40a68a
push 0
push str.Ole32.dll
call fcn.0040a3c0
add esp, 8
mov dword [0x4499cc], eax
test eax, eax
je 0x40a68a
push str.StringFromGUID2
push eax
call edi
mov esi, eax
mov dword [0x4499d0], esi
jmp 0x40a690
mov esi, dword [0x4499d0]
test esi, esi
je 0x40a84a
push 0x4e
lea eax, [esp + 0x54]
push 0
push eax
call fcn.0040e430
add esp, 0xc
lea eax, [esp + 0x50]
push 0x27
push eax
lea eax, [esp + 0x28]
push eax
call esi
cmp eax, 0x27
jne 0x40a84a
lea ebp, [esp + 0x30]
jmp 0x40a6d0
movzx eax, word [ebp]
test ax, ax
je 0x40a82f
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], 0
push ecx
or eax, 0x20019
push eax
push 0
push str.SOFTWARENVIDIA_CorporationGlobal
push 0x80000002
call dword [0x4499ac]
test eax, eax
jne 0x40a7f3
xor esi, esi
xor edi, edi
mov edi, edi
push 0x100
lea eax, [esp + 0xa4]
mov dword [esp + 0x18], 0x80
push 0
push eax
mov dword [esp + 0x24], 4
call fcn.0040e430
add esp, 0xc
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push 0
push 0
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0xb4]
push eax
push esi
push dword [esp + 0x2c]
call dword [0x4499b0]
inc esi
test eax, eax
jne 0x40a7d1
lea eax, [esp + 0x50]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40a770
sub eax, edx
sar eax, 1
cmp eax, dword [esp + 0x14]
jne 0x40a710
lea ecx, [esp + 0xa0]
lea eax, [esp + 0x50]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40a7b6
test dx, dx
je 0x40a7b2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40a7b6
add eax, 4
add ecx, 4
test dx, dx
jne 0x40a790
xor eax, eax
jmp 0x40a7bb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40a710
cmp dword [esp + 0x1c], eax
setne al
or edi, eax
jmp 0x40a710
cmp eax, 0x103
jne 0x40a710
push dword [esp + 0x10]
call dword [0x4499b8]
xor ebx, ebx
test edi, edi
setne bl
mov dword [0x4499d4], ebx
add ebp, 2
test ebx, ebx
je 0x40a6d0
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 + 0x1a0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0040e41a
add esp, 0x194
ret
test ebx, ebx
jne 0x40a7fe
mov ebp, dword [esp + 0x1ac]
cmp dword [0x4499d4], 0
jne 0x40a7fe
push ebp
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x40a816