Function at 0x10034a7c
Capabilities:
Check for time delay via queryperformancecounter
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push edi
push esi
push ebx
sub esp, 0xb4
mov ebx, dword [0x10065658]
test ebx, ebx
je 0x10034b5e
mov eax, dword [0x100657c0]
test eax, eax
je 0x10034ae4
mov eax, dword [ebx]
test eax, eax
je 0x100352ff
mov eax, dword [0x100657b0]
test eax, eax
je 0x10034ac0
mov eax, dword [ebx + 4]
test eax, eax
je 0x100351db
push dword [0x10062cac]
push 0x10055160
push dword [ebx]
call fcn.10046d47
add esp, 0xc
call fcn.10048be3
mov ebx, dword [0x10065658]
test ebx, ebx
je 0x10034b5e
lea eax, [ebp + 8]
push 4
push eax
mov ecx, ebx
push str.IDirect3DDevice9P
call fcn.1002c134
mov ecx, dword [0x10065658]
test ecx, ecx
je 0x10034b5e
lea eax, [ebp + 0xc]
push 4
push eax
push str.CONSTRECTP
call fcn.1002c134
mov ecx, dword [0x10065658]
test ecx, ecx
je 0x10034b5e
lea eax, [ebp + 0x10]
push 4
push eax
push str.CONSTRECTP
call fcn.1002c134
mov ecx, dword [0x10065658]
test ecx, ecx
je 0x10034b5e
lea eax, [ebp + 0x14]
push 4
push eax
push str.HWND
call fcn.1002c134
mov ecx, dword [0x10065658]
test ecx, ecx
je 0x10034b5e
lea eax, [ebp + 0x18]
push 4
push eax
push str.CONSTRGNDATAP
call fcn.1002c134
mov edx, dword [ebp + 8]
test edx, edx
je 0x100358d8
mov eax, dword [0x10065668]
test eax, eax
jne 0x10034b78
mov dword [0x10065668], edx
mov ecx, dword [0x100657b8]
test ecx, ecx
jne 0x10034baf
mov edx, dword [0x100657b0]
test edx, edx
jne 0x10034ba8
mov eax, dword [0x100657b4]
test eax, eax
jne 0x10034cad
mov eax, dword [0x10065790]
test eax, eax
je 0x10034fc8
jmp 0x10034bc2
mov eax, dword [0x100657b4]
jmp 0x10034bb4
mov eax, dword [0x100657b4]
test eax, eax
jne 0x10034cad
mov edx, dword [0x100657b0]
test edx, edx
jne 0x10034bce
test ecx, ecx
je 0x10034cad
movzx eax, byte [0x10065664]
test eax, eax
je 0x10034ca2
push 1
push dword [0x10065690]
call sym.dat3.000_IDirect3DQuery9_Issue
test eax, eax
jne 0x10034c90
push 1
push 4
push 0x10061644
push dword [0x10065690]
call sym.dat3.000_IDirect3DQuery9_GetData
mov dword [0x10065660], eax
cmp eax, 1
jne 0x10034c2e
push 1
push 4
push 0x10061644
push dword [0x10065690]
call sym.dat3.000_IDirect3DQuery9_GetData
mov dword [0x10065660], eax
cmp eax, 1
je 0x10034c10
cmp eax, 0x88760868
je 0x10034c5b
mov eax, dword [0x10065690]
test eax, eax
je 0x10034c6a
mov ecx, dword [0x1006569c]
mov eax, dword [0x10061644]
xor edx, edx
div ecx
mov ecx, dword [0x100657b8]
add dword [0x10061648], eax
jmp 0x10034ca2
mov eax, dword [0x10065690]
test eax, eax
je 0x10034c6a
push eax
call sym.dat3.000_IDirect3DQuery9_Release
push 0x10065690
push 9
push dword [0x10065668]
call sym.dat3.000_IDirect3DDevice9_CreateQuery
mov ecx, dword [0x100657b8]
xor eax, eax
mov dword [0x10061644], eax
mov dword [0x10061648], eax
jmp 0x10034ca2
mov ecx, dword [0x100657b8]
xor eax, eax
mov dword [0x10061644], eax
mov dword [0x10061648], eax
test ecx, ecx
jne 0x10034cad
mov byte [0x10060130], 1
add dword [0x100656a0], 1
push 0x10065648
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [0x10065648]
mov edx, dword [0x1006564c]
sub eax, dword [0x10065650]
sbb edx, dword [0x10065654]
sub eax, dword [0x10065640]
sbb edx, dword [0x10065644]
jl 0x10034fb4
mov eax, dword [0x10060120]
test eax, eax
je 0x10034d21
add eax, 0xffffffff
mov dword [0x10060120], eax
jne 0x10034d21
mov eax, dword [0x100657b4]
test eax, eax
je 0x10034d0e
mov dword [0x100657b4], 2
mov eax, dword [0x10065790]
test eax, eax
je 0x10034d21
mov dword [0x10065790], 2
mov ebx, dword [0x100656a0]
mov eax, dword [0x10065678]
mov ecx, dword [0x10065658]
mov dword [0x100656a4], eax
xor edx, edx
mov dword [0x100656a0], edx
test ecx, ecx
mov dword [0x10065678], edx
je 0x1003552e
mov eax, dword [0x100657b0]
test eax, eax
je 0x10034f9c
test ebx, ebx
jne 0x10034d6a
mov dword [0x10065698], 1
jmp 0x10034d70
mov dword [0x10065698], ebx
push dword [0x10065668]
call sym.dat3.000_IDirect3DDevice9_GetAvailableTextureMem
fild dword [0x10065698]
fild dword [0x100656ac]
fild dword [0x100656b0]
mov ebx, dword [0x10065658]
mov esi, dword [0x100656a8]
mov edi, dword [0x10065698]
fxch st(1)
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
sub esi, eax
xor edx, edx
mov dword [esp + 0x94], esi
mov esi, dword [0x100656a4]
mov eax, esi
div edi
mov dword [esp + 0x90], eax
mov ecx, edi
shr ecx, 0x1f
fld dword [ecx*4 + 0x100543d0]
faddp st(3)
mov eax, esi
fxch st(2)
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
fdiv st(2), st(0)
fxch st(2)
fstp dword [esp + 0x60]
shr eax, 0x1f
xor edx, edx
fld dword [esp + 0x60]
fld dword [eax*4 + 0x100543d0]
mov eax, dword [0x10065688]
div edi
fxch st(1)
fstp dword [esp + 0x84]
fxch st(1)
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fdiv st(2)
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fstp dword [esp + 0x78]
fild dword [0x100656a4]
faddp st(1)
fild dword [0x10060128]
fxch st(1)
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fxch st(1)
fstp dword [esp + 0x60]
fdiv dword [esp + 0x60]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fstp dword [esp + 0x80]
fild dword [0x1006567c]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fdiv st(1)
xor edx, edx
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fstp dword [esp + 0x7c]
fild dword [0x100656b4]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fdiv st(1)
mov dword [esp + 0x70], eax
mov eax, dword [0x10061648]
div edi
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fstp dword [esp + 0x8c]
fild dword [0x100656b8]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fdivrp st(1)
mov dword [esp + 0x74], eax
mov eax, dword [0x100657b0]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fstp dword [esp + 0x88]
test eax, eax
je 0x10034f6b
mov eax, dword [0x100657c0]
test eax, eax
je 0x10034edb
mov eax, dword [ebx]
test eax, eax
je 0x1003535b
mov eax, dword [ebx + 4]
test eax, eax
je 0x100353ca
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x74]
fld dword [esp + 0x84]
fld dword [esp + 0x78]
fld dword [esp + 0x80]
fld dword [esp + 0x7c]
mov ebx, dword [esp + 0x70]
fld dword [esp + 0x8c]
fld dword [esp + 0x88]
fxch st(5)
fstp qword [esp + 0x1c]
fxch st(3)
fstp qword [esp + 0x24]
fxch st(1)
fstp qword [esp + 0x2c]
fstp qword [esp + 0x34]
fstp qword [esp + 0x40]
fstp qword [esp + 0x48]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], str._d__d__d__d__d__f__f__f__f__d__f__f_n
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x3c], ebx
call fcn.10046d47
call fcn.10048be3
mov dword [0x10060128], 1
xor eax, eax
mov dword [0x10061648], eax
mov dword [0x100656b4], eax
mov dword [0x100656b8], eax
mov dword [0x100656ac], eax
mov dword [0x100656b0], eax
mov dword [0x1006567c], eax
mov dword [0x10065688], eax
jmp 0x10034fa2
mov dword [0x10065698], ebx
push 0x10065650
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [0x100657b4]
jmp 0x10034fb9
mov eax, dword [0x100657b4]
cmp eax, 2
je 0x100358d8
mov ecx, dword [0x100657b8]
test ecx, ecx
je 0x10035166
mov edx, dword [0x10065668]
test edx, edx
je 0x10035166
mov eax, dword [0x100656bc]
test eax, eax
je 0x100358c6
call fcn.10037404
call fcn.100464d4
lea eax, [esp + 0x54]
xor edx, edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], edx
push eax
push edx
push dword [0x10065668]
call sym.dat3.000_IDirect3DDevice9_GetRenderTarget
test eax, eax
je 0x100356b9
mov ebx, dword [0x10065658]
test ebx, ebx
je 0x10035062
mov eax, dword [0x100657c0]
test eax, eax
je 0x10035062
mov eax, dword [ebx]
test eax, eax
je 0x1003565d
mov eax, dword [0x100657b0]
test eax, eax
je 0x10035049
mov eax, dword [ebx + 4]
test eax, eax
je 0x10035539
push str.IDirect3DDevice9_GetRenderTarget_failed_n
push 0x1005513c
push dword [ebx]
call fcn.10046d47
add esp, 0xc
call fcn.10048be3
mov eax, dword [0x10065698]
mov edx, 5
call fcn.10035e18
mov ebx, dword [0x10065698]
mov eax, dword [0x100656a4]
mov ecx, 1
cmp ebx, 0
cmove ebx, ecx
xor edx, edx
div ebx
mov edx, 4
call fcn.10035e18
mov eax, dword [0x100656a4]
mov edx, 3
call fcn.10035e18
push dword [0x10065668]
call sym.dat3.000_IDirect3DDevice9_GetAvailableTextureMem
mov edx, dword [0x100656a8]
sub edx, eax
mov eax, edx
mov edx, 2
call fcn.10035e18
mov ecx, dword [0x1006569c]
mov eax, dword [0x10061644]
xor edx, edx
div ecx
mov edx, 1
call fcn.10035e18
mov eax, dword [0x10061644]
xor edx, edx
call fcn.10035e18
mov eax, dword [esp + 0x54]
test eax, eax
je 0x1003511c
cmp eax, dword [esp + 0x50]
je 0x10035108
push eax
push 0
push dword [0x10065668]
call sym.dat3.000_IDirect3DDevice9_SetRenderTarget
mov eax, dword [esp + 0x54]
push eax
call sym.dat3.000_IDirect3DSurface9_Release
mov eax, dword [esp + 0x50]
test eax, eax
je 0x1003511c
push eax
call sym.dat3.000_IDirect3DSurface9_Release
mov eax, dword [0x100656bc]
test eax, eax
je 0x10035140
push eax
call sym.dat3.000_IDirect3DStateBlock9_Apply
push dword [0x100656bc]
call sym.dat3.000_IDirect3DStateBlock9_Release
mov dword [0x100656bc], 0
mov eax, dword [0x1006568c]
test eax, eax
jle 0x1003515f
mov eax, dword [ebp + 8]
push dword [eax + 4]
mov edx, dword [eax + 8]
call dword [edx + 0xa8]
add dword [0x1006568c], 0xffffffff
mov byte [0x10060130], 1
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
push dword [ebp + 0xc]
push dword [eax + 4]
mov edx, dword [eax + 8]
call dword [edx + 0x44]
mov dword [0x10065660], eax
mov eax, dword [0x100657a0]
test eax, eax
je 0x100351ac
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 8]
xor eax, eax
push eax
push 0x3f800000
push 0xff323232
push 1
push eax
push eax
push dword [edx + 4]
call dword [ecx + 0xac]
mov ecx, dword [0x10065658]
test ecx, ecx
je 0x100351c7
push 4
push 0x10065660
push str.HRESULT
call fcn.1002c134
mov eax, dword [0x10065660]
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 0x14
lea eax, [ebx + 0x108]
mov dword [esp + 0x6c], eax
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx esi, word [ebx + 0x10e]
movzx ecx, word [ebx + 0x10a]
movzx edx, word [ebx + 0x110]
movzx eax, word [ebx + 0x112]
lea edi, [ebx + 8]
mov dword [esp + 0x94], ebx
movzx ebx, word [ebx + 0x114]
mov dword [esp + 0x68], edi
push ebx
push eax
push edx
push ecx
push esi
push 0x10063940
push str._sPerflogDX__d__d__d._d._d.csv
push edi
mov ebx, dword [esp + 0xb4]
call fcn.1004665a
push 0x10054e68
mov eax, edi
push eax
call fcn.1004670e
add esp, 0x28
mov dword [ebx + 4], eax
test eax, eax
je 0x10035270
push eax
push str.used_vram___vram_usage_of_texture__vertex_data_nfps___frames_per_second_npps___polys_per_second_nppf___polys_fer_frame_noverdraw___effective_overdraw_per_frame_nstrst___IDirect3DDevice9::SetRenderState_per_frame_nsttxstgst___IDirect3DDevice9::SetTextureStageState_per_frame_nppc___polys_per_DrawPrimitve_nsttx___IDirect3DDevice9::SetTexture_per_frame_nstvp___IDirect3DDevice9::SetViewport_per_frame_nsvs___IDirect3DDevice9::SetVertexShader_per_frame_nsss___IDirect3DDevice9::SetStreamSource_per_frame_n_n
call fcn.100468f6
push dword [ebx + 4]
push str._used_vram___fps___pps___ppf___overdraw___strst___sttxstgst___ppc___sttx___stvp___svs___sss__n_n
call fcn.100468f6
add esp, 0x10
jmp 0x10034ac0
mov eax, dword [esp + 0x6c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx ecx, word [ebx + 0x10e]
movzx edi, word [ebx + 0x10a]
movzx esi, word [ebx + 0x110]
movzx edx, word [ebx + 0x112]
movzx eax, word [ebx + 0x114]
push eax
push edx
push esi
push edi
push ecx
push 0x10063940
push str._sPerflogDX__d__d__d._d._d.csv
mov eax, dword [esp + 0x84]
push eax
call fcn.1004665a
push 0x10054e68
mov eax, dword [esp + 0x8c]
push eax
call fcn.1004670e
add esp, 0x28
mov dword [ebx + 4], eax
test eax, eax
jne 0x10035250
push 0x10
push 0x1005456c
push str.fopen
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
push eax
push eax
call fcn.100468bc
mov eax, dword [ebx + 4]
jmp 0x10035250
mov dword [ebx + 0x118], 0
push 0x10063940
push str._slog_DX9.out
push 0x10065f20
call fcn.1004665a
push 0x10054e68
push 0x10065f20
call fcn.1004670e
add esp, 0x14
mov dword [ebx], eax
test eax, eax
jne 0x10034aac
push 0x10
push 0x1005456c
push str.fopen
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
push eax
push eax
call fcn.100468bc
jmp 0x10034aac
mov dword [ebx + 0x118], 0
push 0x10063940
push str._slog_DX9.out
push 0x10065f20
call fcn.1004665a
push 0x10054e68
push 0x10065f20
call fcn.1004670e
add esp, 0x14
mov dword [ebx], eax
test eax, eax
je 0x100353a6
mov eax, dword [0x100657b0]
test eax, eax
jne 0x10034edb
mov eax, dword [ebx + 4]
jmp 0x10034ee6
push 0x10
push 0x1005456c
push str.fopen
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
push eax
push eax
call fcn.100468bc
mov eax, dword [0x100657b0]
jmp 0x10035396
lea eax, [ebx + 0x108]
mov dword [esp + 0x6c], eax
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx ecx, word [ebx + 0x10a]
movzx edx, word [ebx + 0x110]
movzx eax, word [ebx + 0x112]
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], esi
movzx esi, word [ebx + 0x10e]
lea edi, [ebx + 8]
movzx ebx, word [ebx + 0x114]
mov dword [esp + 0x68], edi
push ebx
push eax
push edx
push ecx
push esi
push 0x10063940
push str._sPerflogDX__d__d__d._d._d.csv
push edi
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
call fcn.1004665a
push 0x10054e68
mov eax, dword [esp + 0x8c]
push eax
call fcn.1004670e
add esp, 0x28
mov dword [ebx + 4], eax
test eax, eax
je 0x10035483
push eax
push str.used_vram___vram_usage_of_texture__vertex_data_nfps___frames_per_second_npps___polys_per_second_nppf___polys_fer_frame_noverdraw___effective_overdraw_per_frame_nstrst___IDirect3DDevice9::SetRenderState_per_frame_nsttxstgst___IDirect3DDevice9::SetTextureStageState_per_frame_nppc___polys_per_DrawPrimitve_nsttx___IDirect3DDevice9::SetTexture_per_frame_nstvp___IDirect3DDevice9::SetViewport_per_frame_nsvs___IDirect3DDevice9::SetVertexShader_per_frame_nsss___IDirect3DDevice9::SetStreamSource_per_frame_n_n
call fcn.100468f6
push dword [ebx + 4]
push str._used_vram___fps___pps___ppf___overdraw___strst___sttxstgst___ppc___sttx___stvp___svs___sss__n_n
call fcn.100468f6
add esp, 0x10
mov eax, dword [ebx + 4]
jmp 0x10034ee6
mov eax, dword [esp + 0x6c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx ecx, word [ebx + 0x110]
movzx edx, word [ebx + 0x112]
movzx eax, word [ebx + 0x114]
mov dword [esp + 0x9c], edi
movzx edi, word [ebx + 0x10e]
mov dword [esp + 0xa0], esi
push eax
push edx
movzx esi, word [ebx + 0x10a]
push ecx
push esi
push edi
push 0x10063940
push str._sPerflogDX__d__d__d._d._d.csv
mov eax, dword [esp + 0x84]
push eax
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xbc]
call fcn.1004665a
push 0x10054e68
mov eax, dword [esp + 0x8c]
push eax
call fcn.1004670e
add esp, 0x28
mov dword [ebx + 4], eax
test eax, eax
jne 0x10035460
push 0x10
push 0x1005456c
push str.fopen
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
push eax
push eax
call fcn.100468bc
mov eax, dword [ebx + 4]
jmp 0x10035460
mov dword [0x10065698], ebx
jmp 0x10034fa2
lea eax, [ebx + 0x108]
mov dword [esp + 0x68], eax
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx esi, word [ebx + 0x10e]
movzx ecx, word [ebx + 0x10a]
movzx edx, word [ebx + 0x110]
movzx eax, word [ebx + 0x112]
lea edi, [ebx + 8]
mov dword [esp + 0xa0], ebx
movzx ebx, word [ebx + 0x114]
mov dword [esp + 0x6c], edi
push ebx
push eax
push edx
push ecx
push esi
push 0x10063940
push str._sPerflogDX__d__d__d._d._d.csv
push edi
mov ebx, dword [esp + 0xc0]
call fcn.1004665a
push 0x10054e68
mov eax, edi
push eax
call fcn.1004670e
add esp, 0x28
mov dword [ebx + 4], eax
test eax, eax
je 0x100355ce
push eax
push str.used_vram___vram_usage_of_texture__vertex_data_nfps___frames_per_second_npps___polys_per_second_nppf___polys_fer_frame_noverdraw___effective_overdraw_per_frame_nstrst___IDirect3DDevice9::SetRenderState_per_frame_nsttxstgst___IDirect3DDevice9::SetTextureStageState_per_frame_nppc___polys_per_DrawPrimitve_nsttx___IDirect3DDevice9::SetTexture_per_frame_nstvp___IDirect3DDevice9::SetViewport_per_frame_nsvs___IDirect3DDevice9::SetVertexShader_per_frame_nsss___IDirect3DDevice9::SetStreamSource_per_frame_n_n
call fcn.100468f6
push dword [ebx + 4]
push str._used_vram___fps___pps___ppf___overdraw___strst___sttxstgst___ppc___sttx___stvp___svs___sss__n_n
call fcn.100468f6
add esp, 0x10
jmp 0x10035049
mov eax, dword [esp + 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx edi, word [ebx + 0x10e]
movzx esi, word [ebx + 0x10a]
movzx ecx, word [ebx + 0x110]
movzx edx, word [ebx + 0x112]
movzx eax, word [ebx + 0x114]
push eax
push edx
push ecx
push esi
push edi
push 0x10063940
push str._sPerflogDX__d__d__d._d._d.csv
mov eax, dword [esp + 0x88]
push eax
call fcn.1004665a
push 0x10054e68
mov eax, dword [esp + 0x90]
push eax
call fcn.1004670e
add esp, 0x28
mov dword [ebx + 4], eax
test eax, eax
jne 0x100355ae
push 0x10
push 0x1005456c
push str.fopen
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
push eax
push eax
call fcn.100468bc
mov eax, dword [ebx + 4]
jmp 0x100355ae
mov dword [ebx + 0x118], 0
push 0x10063940
push str._slog_DX9.out
push 0x10065f20
call fcn.1004665a
push 0x10054e68
push 0x10065f20
call fcn.1004670e
add esp, 0x14
mov dword [ebx], eax
test eax, eax
jne 0x10035035
push 0x10
push 0x1005456c
push str.fopen
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
push eax
push eax
call fcn.100468bc
jmp 0x10035035
lea eax, [esp + 0x50]
push eax
xor edx, edx
push edx
push edx
push edx
push dword [0x10065668]
call sym.dat3.000_IDirect3DDevice9_GetBackBuffer
test eax, eax
jne 0x100356f3
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x54]
je 0x10035062
push eax
push 0
push dword [0x10065668]
call sym.dat3.000_IDirect3DDevice9_SetRenderTarget
jmp 0x10035062
mov ebx, dword [0x10065658]
test ebx, ebx
je 0x10035062
mov eax, dword [0x100657c0]
test eax, eax
je 0x10035062
mov eax, dword [ebx]
test eax, eax
je 0x1003586a
mov eax, dword [0x100657b0]
test eax, eax
je 0x10035728
mov eax, dword [ebx + 4]
test eax, eax
je 0x10035746
push str.IDirect3DDevice9_GetRenderTarget_failed_n
push 0x1005513c
push dword [ebx]
call fcn.10046d47
add esp, 0xc
call fcn.10048be3
jmp 0x10035062
lea eax, [ebx + 0x108]
mov dword [esp + 0x6c], eax
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx esi, word [ebx + 0x10e]
movzx ecx, word [ebx + 0x10a]
movzx edx, word [ebx + 0x110]
movzx eax, word [ebx + 0x112]
lea edi, [ebx + 8]
mov dword [esp + 0xa0], ebx
movzx ebx, word [ebx + 0x114]
mov dword [esp + 0x68], edi
push ebx
push eax
push edx
push ecx
push esi
push 0x10063940
push str._sPerflogDX__d__d__d._d._d.csv
push edi
mov ebx, dword [esp + 0xc0]
call fcn.1004665a
push 0x10054e68
mov eax, edi
push eax
call fcn.1004670e
add esp, 0x28
mov dword [ebx + 4], eax
test eax, eax
je 0x100357db
push eax
push str.used_vram___vram_usage_of_texture__vertex_data_nfps___frames_per_second_npps___polys_per_second_nppf___polys_fer_frame_noverdraw___effective_overdraw_per_frame_nstrst___IDirect3DDevice9::SetRenderState_per_frame_nsttxstgst___IDirect3DDevice9::SetTextureStageState_per_frame_nppc___polys_per_DrawPrimitve_nsttx___IDirect3DDevice9::SetTexture_per_frame_nstvp___IDirect3DDevice9::SetViewport_per_frame_nsvs___IDirect3DDevice9::SetVertexShader_per_frame_nsss___IDirect3DDevice9::SetStreamSource_per_frame_n_n
call fcn.100468f6
push dword [ebx + 4]
push str._used_vram___fps___pps___ppf___overdraw___strst___sttxstgst___ppc___sttx___stvp___svs___sss__n_n
call fcn.100468f6
add esp, 0x10
jmp 0x10035728
mov eax, dword [esp + 0x6c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx edi, word [ebx + 0x10e]
movzx esi, word [ebx + 0x10a]
movzx ecx, word [ebx + 0x110]
movzx edx, word [ebx + 0x112]
movzx eax, word [ebx + 0x114]
push eax
push edx
push ecx
push esi
push edi
push 0x10063940
push str._sPerflogDX__d__d__d._d._d.csv
mov eax, dword [esp + 0x84]
push eax
call fcn.1004665a
push 0x10054e68
mov eax, dword [esp + 0x8c]
push eax
call fcn.1004670e
add esp, 0x28
mov dword [ebx + 4], eax
test eax, eax
jne 0x100357bb
push 0x10
push 0x1005456c
push str.fopen
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
push eax
push eax
call fcn.100468bc
mov eax, dword [ebx + 4]
jmp 0x100357bb
mov dword [ebx + 0x118], 0
push 0x10063940
push str._slog_DX9.out
push 0x10065f20
call fcn.1004665a
push 0x10054e68
push 0x10065f20
call fcn.1004670e
add esp, 0x14
mov dword [ebx], eax
test eax, eax
jne 0x10035718
push 0x10
push 0x1005456c
push str.fopen
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
push eax
push eax
call fcn.100468bc
jmp 0x10035718
push 0x100656bc
push 1
push edx
call sym.dat3.000_IDirect3DDevice9_CreateStateBlock
jmp 0x10034feb
xor eax, eax
add esp, 0xb4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 0x14