Function at 0x408910
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x160
mov rax, qword [0x0041f2d0]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov rdi, rcx
mov rcx, qword [rcx]
lea rdx, str.Direct3DCreate9
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
jne 0x4089b2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Error_in_loading_Direct3DCreate9:
mov ebx, eax
call fcn.00402790
mov edx, ebx
mov rcx, rax
call qword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
mov rdx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_]
mov rcx, rax
call qword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Return_code:_0
call fcn.00402790
mov rdx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_]
mov rcx, rax
call qword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xor ecx, ecx
call qword [sym.imp.MSVCR100.dll_exit]
int3
mov ecx, 0x20
call rax
mov rcx, rax
test rax, rax
jne 0x408a19
mov rcx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Error_in_calling_Direct3DCreate9
call fcn.00402790
mov rdx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_]
mov rcx, rax
call qword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Return_code:_0
call fcn.00402790
mov rdx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_]
mov rcx, rax
call qword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xor ecx, ecx
call qword [sym.imp.MSVCR100.dll_exit]
int3
mov rax, qword [rax]
xor edx, edx
lea r9, [rsp + 0x20]
lea r8d, [rdx + 1]
call qword [rax + 0x70]
mov ebx, eax
test eax, eax
je 0x408a93
mov rcx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Error_in_calling_GetDeviceCaps:
call fcn.00402790
mov edx, ebx
mov rcx, rax
call qword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
mov rdx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_]
mov rcx, rax
call qword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Return_code:_0
call fcn.00402790
mov rdx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_]
mov rcx, rax
call qword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xor ecx, ecx
call qword [sym.imp.MSVCR100.dll_exit]
int3
cmp dword [rsp + 0xec], 0xffff0300
jae 0x408b08
mov rcx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.shader_model:
call fcn.00402790
mov edx, dword [rsp + 0xec]
mov rcx, rax
call qword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
mov rdx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_]
mov rcx, rax
call qword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Return_code:_0
call fcn.00402790
mov rdx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_]
mov rcx, rax
call qword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xor ecx, ecx
call qword [sym.imp.MSVCR100.dll_exit]
int3
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.shader_model:
call fcn.00402790
lea rdx, [0x00406130]
mov rcx, rax
call qword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
mov edx, dword [rsp + 0xec]
mov rcx, rax
call qword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
mov rdx, qword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_]
mov rcx, rax
call qword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.0040ead0
mov rbx, qword [rsp + 0x178]
add rsp, 0x160
pop rdi
ret