Function at 0x401230
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1a0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov eax, dword [0x45a454]
xor eax, ebp
mov dword [esp + 0x198], eax
xor eax, eax
xchg byte [edx], al
xor eax, eax
xchg byte [ecx], al
push str.dxgi_window
call fcn.004035b0
add esp, 4
test eax, eax
je 0x40163a
mov esi, eax
push str.dxgi.dll
call fcn.00403270
add esp, 4
test eax, eax
je 0x40163a
push str.CreateDXGIFactory1
mov dword [esp + 0xc], eax
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x401565
mov edi, eax
lea eax, [esp + 0x7c]
push 0x110
push 0
push eax
call fcn.004273a0
add esp, 0xc
mov dword [esp + 0x70], 0x11c
sub esp, 0x10
movaps xmm0, xmmword [0x447040]
movups xmmword [esp], xmm0
mov ebx, dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
call ebx
push 3
push 1
push edx
push eax
call ebx
push 3
push 0x20
push edx
push eax
call ebx
mov dword [esp + 0x74], 6
mov dword [esp + 0x78], 2
mov word [esp + 0x184], 0
lea ebx, [esp + 0x70]
push edx
push eax
push 0x23
push ebx
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
mov eax, 0x4470a0
mov ecx, 0x447090
cmove ecx, eax
movups xmm0, xmmword [ecx]
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x34], 0
mov ecx, edi
call dword [0x457158]
lea eax, [esp + 0x34]
lea ecx, [esp + 0x60]
push eax
push ecx
call edi
test eax, eax
js 0x40157c
mov dword [esp + 0x30], 0
mov edi, dword [esp + 0x34]
mov eax, dword [edi]
mov ecx, dword [eax + 0x30]
call dword [0x457158]
lea eax, [esp + 0x30]
push eax
push 0
push edi
call ecx
test eax, eax
js 0x40158f
push str.d3d10.dll
call fcn.00403270
add esp, 4
test eax, eax
je 0x4015fe
push str.D3D10CreateDeviceAndSwapChain
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x401597
mov ecx, eax
xorps xmm0, xmm0
movups xmmword [esp + 0x98], xmm0
movups xmmword [esp + 0x78], xmm0
movups xmmword [esp + 0x88], xmm0
mov dword [esp + 0xa8], 0
mov dword [esp + 0x98], 2
mov dword [esp + 0x80], 0x1c
mov dword [esp + 0x70], 2
mov dword [esp + 0x74], 2
mov dword [esp + 0x94], 0x20
mov dword [esp + 0x9c], esi
mov dword [esp + 0x8c], 1
mov dword [esp + 0xa0], 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x10], 0
mov esi, dword [esp + 0x30]
call dword [0x457158]
sub esp, 0x20
lea eax, [esp + 0x30]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x58]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ebx
movaps xmm0, xmmword [0x447050]
movups xmmword [esp + 4], xmm0
mov dword [esp], esi
call ecx
test eax, eax
js 0x4015ab
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov esi, dword [esp + 0x38]
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [0x457158]
lea eax, [esp + 0x2c]
push eax
push 0x4470b0
push esi
call ecx
mov esi, eax
mov ebx, dword [esp + 0x38]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [0x457158]
lea eax, [esp + 0x28]
push eax
push 0x4470c0
push ebx
call ecx
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 0x20]
xor edx, edx
mov ecx, dword [esp + 8]
sub ebx, ecx
cmovb ebx, edx
mov edi, dword [ebp + 8]
xchg dword [edi + 8], ebx
mov ebx, dword [esp + 0x38]
mov ebx, dword [ebx]
mov ebx, dword [ebx + 0x34]
sub ebx, ecx
cmovb ebx, edx
xchg dword [edi + 0x10], ebx
mov ebx, dword [esp + 0x38]
mov ebx, dword [ebx]
mov ebx, dword [ebx + 8]
sub ebx, ecx
cmovb ebx, edx
xchg dword [edi + 0x18], ebx
test esi, esi
js 0x4014ef
mov esi, dword [esp + 0x2c]
mov esi, dword [esi]
mov esi, dword [esi + 0x58]
sub esi, ecx
cmovb esi, edx
xchg dword [edi + 0xc], esi
test eax, eax
js 0x401509
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov eax, dword [eax + 0x9c]
xor edx, edx
sub eax, ecx
cmovb eax, edx
xchg dword [edi + 0x14], eax
push ecx
call fcn.00403550
add esp, 4
xchg dword [edi + 4], eax
xor ebx, ebx
cmp dword [edi + 4], 0
sete byte [esp + 8]
mov esi, dword [esp + 0x28]
test esi, esi
je 0x40153e
mov dword [esp + 0x28], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [0x457158]
push esi
call ecx
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x40155c
mov dword [esp + 0x2c], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [0x457158]
push esi
call ecx
movzx eax, byte [esp + 8]
mov bl, al
jmp 0x4015be
push str.CreateDXGIFactory1
push str.GetProcAddress__s__failed
call fcn.00401b00
add esp, 8
jmp 0x40163a
push eax
push str.COM_call_failed:_create_factory_factory_iid__factory.Receive_void_____HR:__08X
call fcn.00401b00
add esp, 8
jmp 0x40161c
push eax
push str.COM_call_failed:_factory__EnumAdapters1_0__adapter.Receive____HR:__08X
jmp 0x4015a1
push str.D3D10CreateDeviceAndSwapChain
push str.GetProcAddress__s__failed
call fcn.00401b00
add esp, 8
jmp 0x4015fe
push eax
push str.COM_call_failed:_create_adapter__D3D10_DRIVER_TYPE_HARDWARE__nullptr__0__D3D10_SDK_VERSION__desc__swap.Receive____device.Receive____HR:__08X
call fcn.00401b00
add esp, 8
mov ebx, 1
mov esi, dword [esp + 0x10]
test esi, esi
je 0x4015dc
mov dword [esp + 0x10], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [0x457158]
push esi
call ecx
mov esi, dword [esp + 0x38]
test esi, esi
je 0x4015fa
mov dword [esp + 0x38], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [0x457158]
push esi
call ecx
test ebx, ebx
je 0x401650
mov esi, dword [esp + 0x30]
test esi, esi
je 0x40161c
mov dword [esp + 0x30], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [0x457158]
push esi
call ecx
mov esi, dword [esp + 0x34]
test esi, esi
je 0x40163a
mov dword [esp + 0x34], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [0x457158]
push esi
call ecx
mov ecx, dword [esp + 0x198]
xor ecx, ebp
call fcn.0040d348
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov al, 1
mov ecx, dword [ebp + 8]
xchg byte [ecx], al
push str.d3d12.dll
call fcn.00403270
add esp, 4
test eax, eax
je 0x4015fe
mov esi, eax
push eax
call fcn.00403550
add esp, 4
mov ecx, dword [ebp + 0xc]
xchg dword [ecx + 4], eax
cmp dword [ecx + 4], 0
je 0x4015fe
mov ecx, esi
call fcn.00401a60
test eax, eax
je 0x4015fe
mov ecx, eax
mov dword [esp + 0x2c], 0
mov ebx, dword [esp + 0x30]
call dword [0x457158]
lea eax, [esp + 0x2c]
push eax
push 0x4470d0
push 0xb000
push ebx
call ecx
test eax, eax
js 0x401847
xorps xmm0, xmm0
movaps xmmword [esp + 0x10], xmm0
mov dword [esp + 0x28], 0
mov ebx, dword [esp + 0x2c]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x20]
call dword [0x457158]
lea eax, [esp + 0x28]
push eax
push 0x4470e0
lea eax, [esp + 0x18]
push eax
push ebx
call ecx
test eax, eax
js 0x401857
sub esp, 0x30
movaps xmm0, xmmword [0x447060]
movups xmmword [esp + 0x1c], xmm0
movaps xmm0, xmmword [0x447070]
movups xmmword [esp + 0xc], xmm0
mov dword [esp + 0x2c], 0
mov dword [esp + 8], str.test
mov dword [esp + 4], str.Static
mov dword [esp], 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
test eax, eax
je 0x40185f
mov dword [esp + 0x38], 0x447020
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x5c], ecx
xorps xmm0, xmm0
movaps xmmword [esp + 0x70], xmm0
movaps xmm0, xmmword [0x447080]
movaps xmmword [esp + 0x80], xmm0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0x20
mov dword [esp + 0x98], 2
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], 1
mov dword [esp + 0xa4], 3
mov dword [esp + 0xa8], 0
mov dword [esp + 0xc], 0
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x28]
mov eax, dword [edi]
mov ecx, dword [eax + 0x28]
call dword [0x457158]
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x74]
push eax
push ebx
push edi
call ecx
test eax, eax
js 0x4018b8
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
cmp dword [ecx], edx
je 0x40192b
mov eax, 0xfffffffb
cmp dword [ecx + eax*4 + 0x18], edx
je 0x401934
cmp dword [ecx + eax*4 + 0x1c], edx
je 0x40193e
cmp dword [ecx + eax*4 + 0x20], edx
je 0x401948
cmp dword [ecx + eax*4 + 0x24], edx
je 0x401952
cmp eax, 0x5a
je 0x401a41
lea edi, [eax + 5]
cmp dword [ecx + eax*4 + 0x28], edx
mov eax, edi
jne 0x4017fb
cmp edi, 0x5f
setb byte [esp + 8]
add edi, 5
jmp 0x40195c
push eax
push str.COM_call_failed:_create_adapter__D3D_FEATURE_LEVEL_11_0____uuidof_ID3D12Device___device.Receive_void_____HR:__08X
call fcn.00401b00
add esp, 8
jmp 0x401891
push eax
push str.COM_call_failed:_device__CreateCommandQueue_desc____uuidof_ID3D12CommandQueue___queue.Receive_void_____HR:__08X
jmp 0x40186b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_create_window__d
call fcn.00401b00
add esp, 8
mov esi, dword [esp + 0x28]
test esi, esi
je 0x401891
mov dword [esp + 0x28], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [0x457158]
push esi
call ecx
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x4015fe
mov dword [esp + 0x2c], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [0x457158]
push esi
call ecx
jmp 0x4015fe
push eax
push str.COM_call_failed:_factory__CreateSwapChain_queue__swapDesc__swap.Receive____HR:__08X
call fcn.00401b00
add esp, 8
mov esi, dword [esp + 0xc]
test esi, esi
je 0x4018e4
mov dword [esp + 0xc], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [0x457158]
push esi
call ecx
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x401873
mov eax, dword [esi]
mov ebx, dword [eax + 8]
mov ecx, ebx
call dword [0x457158]
mov ecx, esi
call ebx
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x401873
xor ebx, ebx
lea eax, [esp + 0x38]
cmp esi, eax
setne bl
mov eax, dword [esi]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [0x457158]
mov ecx, esi
push ebx
call edi
jmp 0x401873
mov byte [esp + 8], 1
xor edi, edi
jmp 0x40195c
mov byte [esp + 8], 1
add eax, 6
jmp 0x40195a
mov byte [esp + 8], 1
add eax, 7
jmp 0x40195a
mov byte [esp + 8], 1
add eax, 8
jmp 0x40195a
mov byte [esp + 8], 1
add eax, 9
mov edi, eax
push edi
push str.Found_ID3D12CommandQueue_at_offset__d_inside_IDXGISwapchain
call fcn.00401b00
add esp, 8
mov ebx, dword [ebp + 0xc]
xchg dword [ebx + 0x10], edi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.D3D12SerializeRootSignature
push esi
call edi
sub eax, esi
xchg dword [ebx + 8], eax
push str.D3D12SerializeVersionedRootSignature
push esi
call edi
sub eax, esi
xchg dword [ebx + 0xc], eax
mov esi, dword [esp + 0xc]
test esi, esi
je 0x4019ae
mov dword [esp + 0xc], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [0x457158]
push esi
call ecx
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x4019ec
mov eax, dword [esi]
mov edi, dword [eax + 8]
mov ecx, edi
call dword [0x457158]
mov ecx, esi
call edi
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x4019ec
xor ebx, ebx
lea eax, [esp + 0x38]
cmp esi, eax
setne bl
mov eax, dword [esi]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [0x457158]
mov ecx, esi
push ebx
call edi
mov esi, dword [esp + 0x28]
test esi, esi
movzx ebx, byte [esp + 8]
je 0x401a0f
mov dword [esp + 0x28], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [0x457158]
push esi
call ecx
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x401a2d
mov dword [esp + 0x2c], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [0x457158]
push esi
call ecx
test bl, bl
je 0x4015fe
mov al, 1
mov ecx, dword [ebp + 0xc]
xchg byte [ecx], al
jmp 0x4015fe
add eax, 5
cmp eax, 0x5f
setb byte [esp + 8]
push str.Failed_to_find_ID3D12CommandQueue_offset_inside_IDXGISwapchain
call fcn.00401b00
add esp, 4
jmp 0x401990