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 [0x459444]
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.00403540
add esp, 4
test eax, eax
je 0x401642
mov edi, eax
push str.dxgi.dll
call fcn.00403200
add esp, 4
test eax, eax
je 0x401642
mov esi, eax
push str.CreateDXGIFactory1
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40156d
mov ebx, eax
mov dword [esp + 8], esi
lea eax, [esp + 0x7c]
push 0x110
push 0
push eax
call fcn.00425e40
add esp, 0xc
mov dword [esp + 0x70], 0x11c
sub esp, 0x10
movaps xmm0, xmmword [0x446040]
movups xmmword [esp], xmm0
mov esi, dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
call esi
push 3
push 1
push edx
push eax
call esi
push 3
push 0x20
push edx
push eax
call esi
mov dword [esp + 0x74], 6
mov dword [esp + 0x78], 2
mov word [esp + 0x184], 0
lea ecx, [esp + 0x70]
push edx
push eax
push 0x23
push ecx
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
mov eax, 0x4460a0
mov ecx, 0x446090
cmove ecx, eax
movups xmm0, xmmword [ecx]
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x34], 0
mov ecx, ebx
call dword [section..00cfg]
lea eax, [esp + 0x34]
lea ecx, [esp + 0x60]
push eax
push ecx
call ebx
test eax, eax
js 0x401584
mov dword [esp + 0x30], 0
mov esi, dword [esp + 0x34]
mov eax, dword [esi]
mov ecx, dword [eax + 0x30]
call dword [section..00cfg]
lea eax, [esp + 0x30]
push eax
push 0
push esi
call ecx
test eax, eax
js 0x401597
push str.d3d10.dll
call fcn.00403200
add esp, 4
test eax, eax
je 0x401606
push str.D3D10CreateDeviceAndSwapChain
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40159f
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], edi
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 [section..00cfg]
sub esp, 0x20
lea eax, [esp + 0x30]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x58]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x14], eax
movaps xmm0, xmmword [0x446050]
movups xmmword [esp + 4], xmm0
mov dword [esp], esi
call ecx
test eax, eax
js 0x4015b3
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 [section..00cfg]
lea eax, [esp + 0x2c]
push eax
push 0x4460b0
push esi
call ecx
mov edi, eax
mov esi, dword [esp + 0x38]
mov eax, dword [esi]
mov ecx, dword [eax]
call dword [section..00cfg]
lea eax, [esp + 0x28]
push eax
push 0x4460c0
push esi
call ecx
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x20]
xor ecx, ecx
mov ebx, dword [esp + 8]
sub edx, ebx
cmovb edx, ecx
mov esi, dword [ebp + 8]
xchg dword [esi + 8], edx
mov edx, dword [esp + 0x38]
mov edx, dword [edx]
mov edx, dword [edx + 0x34]
sub edx, ebx
cmovb edx, ecx
xchg dword [esi + 0x10], edx
mov edx, dword [esp + 0x38]
mov edx, dword [edx]
mov edx, dword [edx + 8]
sub edx, ebx
cmovb edx, ecx
xchg dword [esi + 0x18], edx
test edi, edi
js 0x4014f8
mov edx, dword [esp + 0x2c]
mov edx, dword [edx]
mov edx, dword [edx + 0x58]
sub edx, ebx
cmovb edx, ecx
xchg dword [esi + 0xc], edx
test eax, eax
js 0x401512
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov eax, dword [eax + 0x9c]
xor ecx, ecx
sub eax, ebx
cmovb eax, ecx
xchg dword [esi + 0x14], eax
push ebx
call fcn.004034e0
add esp, 4
xchg dword [esi + 4], eax
xor ebx, ebx
cmp dword [esi + 4], 0
sete byte [esp + 8]
mov esi, dword [esp + 0x28]
test esi, esi
je 0x401547
mov dword [esp + 0x28], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push esi
call ecx
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x401565
mov dword [esp + 0x2c], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push esi
call ecx
mov al, byte [esp + 8]
mov bl, al
jmp 0x4015c6
push str.CreateDXGIFactory1
push str.GetProcAddress__s__failed
call fcn.00401a40
add esp, 8
jmp 0x401642
push eax
push str.COM_call_failed:_create_factory_factory_iid__factory.Receive_void_____HR:__08X
call fcn.00401a40
add esp, 8
jmp 0x401624
push eax
push str.COM_call_failed:_factory__EnumAdapters1_0__adapter.Receive____HR:__08X
jmp 0x4015a9
push str.D3D10CreateDeviceAndSwapChain
push str.GetProcAddress__s__failed
call fcn.00401a40
add esp, 8
jmp 0x401606
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.00401a40
add esp, 8
mov ebx, 1
mov esi, dword [esp + 0x10]
test esi, esi
je 0x4015e4
mov dword [esp + 0x10], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push esi
call ecx
mov esi, dword [esp + 0x38]
test esi, esi
je 0x401602
mov dword [esp + 0x38], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push esi
call ecx
test ebx, ebx
je 0x401658
mov esi, dword [esp + 0x30]
test esi, esi
je 0x401624
mov dword [esp + 0x30], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push esi
call ecx
mov esi, dword [esp + 0x34]
test esi, esi
je 0x401642
mov dword [esp + 0x34], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push esi
call ecx
mov ecx, dword [esp + 0x198]
xor ecx, ebp
call fcn.0040adc8
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.00403200
add esp, 4
test eax, eax
je 0x401606
mov esi, eax
push eax
call fcn.004034e0
add esp, 4
mov ecx, dword [ebp + 0xc]
xchg dword [ecx + 4], eax
cmp dword [ecx + 4], 0
je 0x401606
mov ecx, esi
call fcn.004019a0
test eax, eax
je 0x401606
mov ecx, eax
mov dword [esp + 0x2c], 0
mov edi, dword [esp + 0x30]
call dword [section..00cfg]
lea eax, [esp + 0x2c]
push eax
push 0x4460d0
push 0xb000
push edi
call ecx
test eax, eax
js 0x40184b
xorps xmm0, xmm0
movaps xmmword [esp + 0x10], xmm0
mov dword [esp + 0x28], 0
mov edi, dword [esp + 0x2c]
mov eax, dword [edi]
mov ecx, dword [eax + 0x20]
call dword [section..00cfg]
lea eax, [esp + 0x28]
push eax
push 0x4460e0
lea eax, [esp + 0x18]
push eax
push edi
call ecx
test eax, eax
js 0x401863
sub esp, 0x30
movaps xmm0, xmmword [0x446060]
movups xmmword [esp + 0x1c], xmm0
movaps xmm0, xmmword [0x446070]
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 0x40186b
mov dword [esp + 0x38], 0x446020
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 [0x446080]
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 [section..00cfg]
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x74]
push eax
push ebx
push edi
call ecx
test eax, eax
js 0x401889
mov eax, dword [esp + 0xc]
mov edi, 4
mov ecx, dword [esp + 0x28]
cmp dword [eax + edi*4 - 0x10], ecx
je 0x40189e
cmp dword [eax + edi*4 - 0xc], ecx
je 0x4018a3
cmp dword [eax + edi*4 - 8], ecx
je 0x4018a8
cmp dword [eax + edi*4 - 4], ecx
je 0x4018ad
cmp dword [eax + edi*4], ecx
je 0x4018b0
add edi, 5
cmp edi, 0x68
jne 0x4017fb
push str.Failed_to_find_ID3D12CommandQueue_offset_inside_IDXGISwapchain
call fcn.00401a40
add esp, 4
mov ebx, 1
jmp 0x4018e6
push eax
push str.COM_call_failed:_create_adapter__D3D_FEATURE_LEVEL_11_0____uuidof_ID3D12Device___device.Receive_void_____HR:__08X
call fcn.00401a40
add esp, 8
mov ebx, 1
jmp 0x401967
push eax
push str.COM_call_failed:_device__CreateCommandQueue_desc____uuidof_ID3D12CommandQueue___queue.Receive_void_____HR:__08X
jmp 0x401877
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_create_window__d
call fcn.00401a40
add esp, 8
mov ebx, 1
jmp 0x401949
push eax
push str.COM_call_failed:_factory__CreateSwapChain_queue__swapDesc__swap.Receive____HR:__08X
call fcn.00401a40
add esp, 8
mov ebx, 1
jmp 0x4018e6
add edi, 0xfffffffc
jmp 0x4018b0
add edi, 0xfffffffd
jmp 0x4018b0
add edi, 0xfffffffe
jmp 0x4018b0
add edi, 0xffffffff
push edi
push str.Found_ID3D12CommandQueue_at_offset__d_inside_IDXGISwapchain
call fcn.00401a40
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
xor ebx, ebx
mov esi, dword [esp + 0xc]
test esi, esi
je 0x401904
mov dword [esp + 0xc], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push esi
call ecx
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x401949
mov eax, dword [esi]
mov edi, dword [eax + 8]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x401949
xor ecx, ecx
lea eax, [esp + 0x38]
cmp esi, eax
setne cl
mov dword [esp + 8], ecx
mov eax, dword [esi]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push dword [esp + 8]
call edi
mov esi, dword [esp + 0x28]
test esi, esi
je 0x401967
mov dword [esp + 0x28], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push esi
call ecx
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x401985
mov dword [esp + 0x2c], 0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push esi
call ecx
test ebx, ebx
jne 0x401606
mov al, 1
mov ecx, dword [ebp + 0xc]
xchg byte [ecx], al
jmp 0x401606