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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push esi
xor esi, esi
push edi
push dword [ebp + 0xc]
mov ebx, ecx
push dword [ebp + 8]
mov dword [ebx + 0x9c], esi
mov dword [ebp - 4], esi
mov dword [ebp - 8], esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], esi
call fcn.100e83fb
mov edi, eax
cmp edi, esi
jl 0x1010fae2
xor edi, edi
cmp dword [ebx + 8], esi
jbe 0x1010f2ef
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
mov edx, dword [ebx + 0x10]
mov eax, dword [edx + eax*4]
mov eax, dword [eax + 4]
test al, 8
je 0x1010f2d2
test ah, 1
je 0x1010f2d6
test al, 0x10
je 0x1010f2e9
mov eax, dword [ebx]
push esi
push ecx
mov ecx, ebx
call dword [eax + 8]
test eax, eax
jl 0x1010f9b3
xor esi, esi
inc edi
cmp edi, dword [ebx + 8]
jb 0x1010f2b8
mov eax, dword [ebx + 0x108]
cmp eax, esi
mov dword [ebx + 0xa0], esi
mov dword [ebx + 0xa4], esi
mov dword [ebx + 0xa8], esi
mov dword [ebx + 0xb0], esi
mov dword [ebx + 0xb4], esi
je 0x1010f323
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebx + 0x108], esi
test byte [ebx + 0x34], 4
jne 0x1010f378
mov edi, str.d3d9.dll
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp eax, esi
jne 0x1010f344
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, esi
je 0x1010f378
push str.Direct3DShaderValidatorCreate9
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, esi
je 0x1010f378
call eax
cmp eax, esi
mov dword [ebx + 0x108], eax
je 0x1010f378
mov ecx, dword [eax]
push 1
push ebx
push 0x1010bfc3
push eax
call dword [ecx + 0xc]
mov edi, eax
cmp edi, esi
jl 0x1010fae2
test byte [ebx + 0x34], 1
je 0x1010f3ad
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*2]
shl eax, 4
push eax
call fcn.101134ba
cmp eax, esi
pop ecx
mov dword [ebx + 0xb8], eax
je 0x1010f800
mov eax, dword [ebx + 0xc]
shl eax, 1
mov dword [ebx + 0xbc], esi
mov dword [ebx + 0xc0], eax
or dword [ebx + 0xcc], 0xffffffff
xor eax, eax
cmp dword [ebx + 8], esi
mov dword [ebx + 0xe0], esi
jbe 0x1010f3d9
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + eax*4]
mov dword [ecx + 0x1c], esi
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + eax*4]
inc eax
mov dword [ecx + 0x20], esi
cmp eax, dword [ebx + 8]
jb 0x1010f3c1
cmp dword [ebx + 8], esi
mov dword [ebp - 0x28], esi
mov dword [ebp + 0xc], esi
jbe 0x1010f424
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov edx, dword [ebx + 0x10]
mov edi, dword [edx + ecx*4]
mov ecx, dword [edi + 4]
test cl, 8
je 0x1010f402
test ch, 1
je 0x1010f407
test cl, 0x10
je 0x1010f410
mov edx, dword [ebx]
push esi
push eax
mov ecx, ebx
call dword [edx + 8]
test byte [edi + 4], 0x40
je 0x1010f419
inc dword [ebp - 0x28]
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebx + 8]
jb 0x1010f3e4
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebx + 0x88]
jbe 0x1010f489
lea eax, [ebp - 0x3c]
push eax
push esi
push dword [ebx + 0x30]
call fcn.100a2ef8
test eax, eax
jl 0x1010f9b3
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1010f46c
push eax
push dword [ebp - 0x3c]
push str.maximum_number_of_samplers_exceeded.__s_target_can_have_a_maximum_of__i_samplers
push 0x119e
push 0
push ebx
call fcn.100e146f
add esp, 0x18
jmp 0x1010f9b3
push dword [ebp - 0x3c]
push str._s_target_does_not_support_texture_lookups
push 0x11c1
push 0
push ebx
call fcn.100e146f
add esp, 0x14
jmp 0x1010f9b3
mov ecx, dword [ebx + 0x30]
mov eax, 0xffff0000
and ecx, eax
cmp ecx, 0xfffe0000
jne 0x1010f4c0
push 0x76
push 0x100
push 8
push dword [ebx + 0x6c]
mov ecx, ebx
push dword [ebx + 0x58]
call fcn.10109658
mov edi, eax
cmp edi, esi
jl 0x1010fae2
mov eax, 0xffff0000
mov ecx, dword [ebx + 0x30]
and ecx, eax
cmp ecx, eax
jne 0x1010f4e7
push 0x73
push esi
push 0x40
push dword [ebx + 0x88]
mov ecx, ebx
push 0xffffffffffffffff
call fcn.10109658
mov edi, eax
cmp edi, esi
jl 0x1010fae2
cmp dword [ebx + 8], esi
jbe 0x1010f552
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0x14]
mov dword [ebp + 0xc], eax
mov eax, dword [edi]
mov ecx, dword [eax]
cmp dword [ebx + 0x60], ecx
jne 0x1010f50c
mov edx, dword [eax + 8]
inc edx
cmp edx, dword [ebp - 0x2c]
jbe 0x1010f50c
mov dword [ebp - 0x2c], edx
jmp 0x1010f54a
cmp dword [ebx + 0x58], ecx
jne 0x1010f51f
mov edx, dword [eax + 8]
inc edx
cmp edx, dword [ebp - 4]
jbe 0x1010f51f
mov dword [ebp - 4], edx
jmp 0x1010f54a
cmp dword [ebx + 0x5c], ecx
jne 0x1010f532
mov edx, dword [eax + 8]
inc edx
cmp edx, dword [ebp - 8]
jbe 0x1010f532
mov dword [ebp - 8], edx
jmp 0x1010f54a
mov edx, dword [ebx + 0x10]
mov ecx, dword [edx + ecx*4]
test byte [ecx + 4], 0x40
je 0x1010f54a
mov eax, dword [eax + 8]
inc eax
cmp eax, dword [ebp - 0x18]
jbe 0x1010f54a
mov dword [ebp - 0x18], eax
add edi, 4
dec dword [ebp + 0xc]
jne 0x1010f4f5
mov eax, dword [ebp - 4]
shl eax, 2
push eax
mov dword [ebp - 0x28], eax
call fcn.101134ba
cmp eax, esi
pop ecx
mov dword [ebp - 0xc], eax
je 0x1010f800
mov edi, dword [ebp - 8]
shl edi, 2
push edi
mov dword [ebp + 0xc], edi
call fcn.101134ba
cmp eax, esi
pop ecx
mov dword [ebp - 0x10], eax
je 0x1010f800
mov eax, dword [ebp - 0x18]
shl eax, 2
push eax
mov dword [ebp - 0x2c], eax
call fcn.101134ba
cmp eax, esi
pop ecx
mov dword [ebp - 0x20], eax
je 0x1010f800
push dword [ebp - 0x28]
call fcn.101134ba
cmp eax, esi
pop ecx
mov dword [ebp - 0x30], eax
je 0x1010f800
push edi
call fcn.101134ba
cmp eax, esi
pop ecx
mov dword [ebp - 0x14], eax
je 0x1010f800
mov ecx, dword [ebp - 0x28]
mov edi, dword [ebp - 0xc]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x10]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x20]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor edx, edx
cmp dword [ebx + 8], esi
jbe 0x1010f65d
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax]
cmp dword [ebx + 0x5c], ecx
jne 0x1010f62e
cmp dword [eax + 0x50], 0xffffffff
je 0x1010f789
mov edi, dword [ebp - 0x10]
jmp 0x1010f651
cmp dword [ebx + 0x58], ecx
jne 0x1010f642
cmp dword [eax + 0x50], 0xffffffff
je 0x1010f790
mov edi, dword [ebp - 0xc]
jmp 0x1010f651
mov edi, dword [ebx + 0x10]
mov ecx, dword [edi + ecx*4]
test byte [ecx + 4], 0x40
je 0x1010f657
mov edi, dword [ebp - 0x20]
mov ecx, dword [eax + 8]
mov dword [edi + ecx*4], eax
inc edx
cmp edx, dword [ebx + 8]
jb 0x1010f612
cmp dword [ebx + 8], esi
mov dword [ebp + 0xc], esi
jbe 0x1010f6a2
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp + 0xc]
mov edx, dword [eax + ecx*4]
mov eax, dword [ebx + 0x58]
cmp eax, dword [edx]
jne 0x1010f697
xor eax, eax
cmp dword [ebp - 4], esi
jbe 0x1010f697
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx + eax*4]
cmp ecx, esi
je 0x1010f691
mov edi, dword [edx + 0x50]
cmp edi, dword [ecx + 0x50]
jne 0x1010f691
mov dword [edx + 8], eax
inc eax
cmp eax, dword [ebp - 4]
jb 0x1010f67c
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebx + 8]
jb 0x1010f665
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0xc]
mov esi, ecx
shr ecx, 2
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
xor esi, esi
rep stosb byte es:[edi], al
cmp dword [ebx + 8], esi
jbe 0x1010f6e8
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax]
mov edi, dword [ebx + 0x10]
mov edi, dword [edi + ecx*4]
mov ecx, dword [edi + 4]
test cl, 8
je 0x1010f6e2
test ch, 1
jne 0x1010f6e2
mov ecx, dword [eax + 8]
mov dword [edx + ecx*4], eax
inc esi
cmp esi, dword [ebx + 8]
jb 0x1010f6c1
xor ecx, ecx
xor eax, eax
cmp dword [ebp - 4], ecx
mov dword [ebp - 0x2c], ecx
jbe 0x1010f702
cmp dword [edx + eax*4], ecx
je 0x1010f6fc
inc dword [ebp - 0x2c]
inc eax
cmp eax, dword [ebp - 4]
jb 0x1010f6f4
mov ecx, ebx
call fcn.1010c09e
mov edi, eax
xor esi, esi
cmp edi, esi
jl 0x1010fae2
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x30]
mov edi, eax
cmp edi, esi
jl 0x1010fae2
test byte [ebx + 0x34], 8
je 0x1010f735
test byte [ebx + 0x92], 0x10
je 0x1010f757
mov ecx, ebx
call fcn.1010c060
mov edi, eax
cmp edi, esi
jl 0x1010fae2
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x2c]
mov edi, eax
cmp edi, esi
jl 0x1010fae2
push 0x63
push 0x40
push 0x100
push dword [ebx + 0x78]
mov ecx, ebx
push dword [ebx + 0x54]
call fcn.10109658
mov edi, eax
cmp edi, esi
jl 0x1010fae2
cmp dword [ebx + 0xc], esi
mov dword [ebx + 0x9c], esi
jbe 0x1010f79c
mov eax, dword [ebx + 0x18]
mov eax, dword [eax]
jmp 0x1010f79e
push str.internal_error:_output_register_missing_semantic
jmp 0x1010f795
push str.internal_error:_input_register_missing_semantic
push esi
push esi
jmp 0x1010fb75
xor eax, eax
mov dword [ebx + 0x98], eax
mov eax, dword [ebx]
mov ecx, ebx
mov dword [ebx + 0x94], esi
call dword [eax + 0x38]
mov edi, eax
cmp edi, esi
jl 0x1010fae2
and dword [ebp + 0xc], 0
cmp dword [ebx + 8], 0
jbe 0x1010f7ed
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [ecx]
mov edi, dword [eax]
mov edi, dword [edx + edi*4]
test byte [edi + 4], 0x80
je 0x1010f7e5
cmp dword [eax + 4], 0xffffffff
jne 0x1010f7e5
inc esi
add ecx, 4
dec dword [ebp - 0x28]
jne 0x1010f7d1
mov edi, esi
shl edi, 4
push edi
call fcn.101134ba
test eax, eax
pop ecx
mov dword [ebp - 0x1c], eax
jne 0x1010f80a
mov edi, 0x8007000e
jmp 0x1010fae2
shl esi, 2
push esi
call fcn.101134ba
test eax, eax
pop ecx
mov dword [ebp - 0x24], eax
je 0x1010f9b3
mov ecx, edi
mov edi, dword [ebp - 0x1c]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, esi
mov esi, dword [ebp - 0x24]
mov edx, ecx
shr ecx, 2
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor edi, edi
cmp dword [ebx + 8], edi
jbe 0x1010f8ae
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + edi*4]
mov ecx, dword [eax]
mov edx, dword [ebx + 0x10]
mov ecx, dword [edx + ecx*4]
test byte [ecx + 4], 0x80
je 0x1010f8a8
cmp dword [eax + 4], 0xffffffff
jne 0x1010f8a8
cmp dword [eax + 0x24], 0xffffffff
jne 0x1010f8a8
xor ecx, ecx
cmp dword [ebp + 0xc], ecx
jbe 0x1010f887
mov edx, dword [eax + 8]
cmp dword [esi + ecx*4], edx
je 0x1010f887
inc ecx
cmp ecx, dword [ebp + 0xc]
jb 0x1010f87c
cmp ecx, dword [ebp + 0xc]
jne 0x1010f895
mov edx, dword [eax + 8]
inc dword [ebp + 0xc]
mov dword [esi + ecx*4], edx
fld qword [eax + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + ecx*4]
fld st(0)
mov ecx, dword [ebp - 0x1c]
fstp dword [ecx + eax*4]
fstp st(0)
inc edi
cmp edi, dword [ebx + 8]
jb 0x1010f852
xor esi, esi
cmp dword [ebp + 0xc], esi
jbe 0x1010f8df
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
push dword [ecx + esi*4]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x3c]
mov edi, eax
test edi, edi
jl 0x1010fae2
add dword [ebp - 0x28], 0x10
inc esi
cmp esi, dword [ebp + 0xc]
jb 0x1010f8bb
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebx + 0x80]
jbe 0x1010f8fb
push str.maximum_number_of_inputs_exceeded
push 0x119a
push 0
jmp 0x1010fb75
mov eax, dword [ebp - 4]
and dword [ebp + 0xc], 0
test eax, eax
jbe 0x1010f936
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 0x30]
sub esi, edi
mov dword [ebp - 0x2c], eax
mov eax, dword [edi]
test eax, eax
je 0x1010f92e
mov edx, dword [ebx]
lea ecx, [esi + edi]
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x40]
test eax, eax
jge 0x1010f92e
mov dword [ebp + 0xc], 1
add edi, 4
dec dword [ebp - 0x2c]
jne 0x1010f911
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x48]
mov edi, eax
xor esi, esi
cmp edi, esi
jl 0x1010fae2
cmp dword [ebp - 0x18], esi
jbe 0x1010f971
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x1010f96b
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x44]
test eax, eax
jge 0x1010f96b
mov dword [ebp + 0xc], 1
inc esi
cmp esi, dword [ebp - 0x18]
jb 0x1010f94e
cmp dword [ebp - 8], 0
jbe 0x1010f9ac
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
sub esi, edi
mov dword [ebp - 0x2c], eax
mov eax, dword [edi]
test eax, eax
je 0x1010f9a4
mov edx, dword [ebx]
push 0
lea ecx, [esi + edi]
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x5c]
test eax, eax
jge 0x1010f9a4
mov dword [ebp + 0xc], 1
add edi, 4
dec dword [ebp - 0x2c]
jne 0x1010f985
xor ecx, ecx
cmp dword [ebp + 0xc], ecx
je 0x1010f9bd
mov edi, 0x80004005
jmp 0x1010fae2
xor esi, esi
cmp dword [ebp - 8], ecx
jbe 0x1010fa02
mov edx, dword [ebp - 0x10]
cmp dword [ecx + edx], 0
je 0x1010f9f9
and dword [ebp + 0xc], 0
test ecx, ecx
jbe 0x1010f9f9
mov eax, dword [ebp - 0x14]
sub edx, eax
cmp dword [edx + eax], 0
je 0x1010f9ee
mov edi, dword [ebp - 0x14]
mov edi, dword [ecx + edi]
cmp edi, dword [eax]
je 0x1010fb62
inc dword [ebp + 0xc]
add eax, 4
cmp dword [ebp + 0xc], esi
jb 0x1010f9da
inc esi
add ecx, 4
cmp esi, dword [ebp - 8]
jb 0x1010f9c4
mov ecx, ebx
call fcn.1010c060
mov edi, eax
test edi, edi
jl 0x1010fae2
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov edi, eax
test edi, edi
jl 0x1010fae2
mov ecx, ebx
call fcn.1010e578
mov edi, eax
test edi, edi
jl 0x1010fae2
test byte [ebx + 0x34], 1
je 0x1010fa4c
mov ecx, ebx
call fcn.1010ec1d
mov edi, eax
test edi, edi
jl 0x1010fae2
push 0xffff
mov ecx, ebx
call fcn.1010e54d
mov edi, eax
test edi, edi
jl 0x1010fae2
mov ecx, ebx
call fcn.1010bf53
mov edi, eax
test edi, edi
jl 0x1010fae2
mov eax, dword [ebx + 0x108]
test eax, eax
je 0x1010fa8b
cmp dword [ebx + 0x38], 0
jne 0x1010fa8b
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
jl 0x1010fae2
cmp dword [ebp + 8], 0
je 0x1010fae0
lea eax, [ebp + 0xc]
push eax
mov eax, dword [ebx + 0xa4]
shl eax, 2
push eax
call fcn.100cace3
mov edi, eax
test edi, edi
jl 0x1010fae2
mov eax, dword [ebx + 0xa4]
mov esi, dword [ebx + 0xa0]
shl eax, 2
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov edi, eax
mov eax, dword [ebp - 0x2c]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
xor edi, edi
push dword [ebp - 0xc]
call fcn.101130f7
push dword [ebp - 0x10]
call fcn.101130f7
push dword [ebp - 0x30]
call fcn.101130f7
push dword [ebp - 0x14]
call fcn.101130f7
push 0
call fcn.101130f7
push dword [ebp - 0x1c]
call fcn.101130f7
push dword [ebp - 0x24]
call fcn.101130f7
push dword [ebp - 0x20]
call fcn.101130f7
lea esi, [ebx + 0xa0]
push dword [esi]
call fcn.101130f7
and dword [esi], 0
lea esi, [ebx + 0xb8]
push dword [esi]
call fcn.101130f7
and dword [esi], 0
add ebx, 0x108
mov eax, dword [ebx]
add esp, 0x28
test eax, eax
je 0x1010fb59
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebx], 0
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 8
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + esi*4]
push str.overlapping_output_semantics
push 0x1198
push dword [eax + 0x4c]
push ebx
call fcn.100e146f
add esp, 0x10
jmp 0x1010f9b3