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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x100
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [esp + 0xc], 0
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], 0
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0xc0]
mov dword [esp + 8], eax
lea eax, [ebp - 0xc8]
mov dword [esp], eax
call sym._vkd3d_shader_parse_dxbc
test eax, eax
js 0x10015c24
mov dword [ebp - 0xd0], 0
mov esi, dword [ebp - 0xa4]
test esi, esi
je 0x10014ed0
mov dword [ebp + 8], ebx
jmp 0x10014921
test al, 1
jne 0x10014a70
add dword [ebp - 0xd0], 1
mov eax, dword [ebp - 0xd0]
cmp dword [ebp - 0xa4], eax
jbe 0x10014ed0
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xa0]
lea eax, [eax + eax*2]
lea ebx, [edx + eax*4]
movzx eax, byte [0x1001fd18]
mov esi, dword [ebx]
mov edi, esi
test al, 8
jne 0x10014990
cmp edi, 0x30315846
jne 0x10014900
mov esi, dword [ebx + 8]
cmp esi, 0x4b
ja 0x10014b10
test al, 4
jne 0x10014ee0
mov edx, 0x80070057
lea eax, [ebp - 0xc0]
mov dword [ebp - 0xd0], edx
mov dword [esp], eax
call sym._vkd3d_shader_free_dxbc
mov edx, dword [ebp - 0xd0]
add esp, 0x100
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebx + 8]
mov ecx, esi
mov edx, esi
mov edi, dword [ebx + 4]
shr ecx, 0x10
shr edx, 0x18
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0xd4], eax
mov eax, esi
shr eax, 8
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xd8], eax
mov eax, 0x1002321b
mov dword [ebp - 0xe0], edx
test esi, esi
je 0x10014a20
mov eax, esi
movsx eax, al
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_isprint]
test eax, eax
je 0x10014a10
movsx eax, byte [ebp - 0xd8]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_isprint]
test eax, eax
je 0x10014a10
movsx eax, byte [ebp - 0xdc]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_isprint]
test eax, eax
jne 0x10015478
lea esi, [esi]
mov dword [esp + 4], esi
mov dword [esp], 0x10023246
call sym._wine_dbg_sprintf
mov dword [esp + 0x14], eax
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xd0]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Section__u:_tag__s__data__p___Ix._n
mov dword [esp + 8], str.d3d10_effect_parse
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov edi, dword [ebx]
movzx eax, byte [0x1001fd18]
jmp 0x10014942
mov eax, edi
mov edx, edi
mov ebx, edi
mov dword [ebp - 0x9c], edi
shr eax, 0x10
shr edx, 0x18
mov dword [ebp - 0xd4], eax
shr ebx, 8
mov eax, 0x1002321b
mov dword [ebp - 0xd8], edx
test edi, edi
je 0x10014ae0
mov eax, edi
mov esi, dword [sym.imp.ucrtbase.dll_isprint]
movsx eax, al
mov dword [esp], eax
call esi
test eax, eax
je 0x10014ad0
movsx ebx, bl
mov dword [esp], ebx
call esi
test eax, eax
je 0x10014ad0
movsx eax, byte [ebp - 0xd4]
mov dword [esp], eax
call esi
test eax, eax
jne 0x100154b0
nop
mov dword [esp + 4], edi
mov dword [esp], 0x10023246
call sym._wine_dbg_sprintf
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Unhandled_chunk__s._n
mov dword [esp + 8], str.d3d10_effect_parse
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
jmp 0x10014908
mov ebx, dword [ebx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ebx]
mov dword [ecx + 0x14], edx
test al, 8
jne 0x10014f10
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x18], eax
mov eax, dword [ebx + 8]
mov edi, dword [ebp + 8]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x24], eax
mov eax, dword [ebx + 0x18]
mov edi, dword [ebp + 8]
mov dword [edi + 0x28], eax
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebp + 8]
mov dword [edx + 0x2c], eax
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x30], eax
mov eax, dword [ebx + 0x28]
mov edi, dword [ebp + 8]
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0x2c]
mov edx, dword [ebp + 8]
mov dword [edx + 0x9c], eax
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x90], eax
mov eax, dword [ebx + 0x34]
mov edi, dword [ebp + 8]
mov dword [edi + 0xa8], eax
mov eax, dword [ebx + 0x38]
mov edx, dword [ebp + 8]
mov dword [edx + 0x6c], eax
mov eax, dword [ebx + 0x3c]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x78], eax
mov eax, dword [ebx + 0x40]
mov edx, dword [ebp + 8]
mov dword [edx + 0x84], eax
mov eax, dword [ebx + 0x44]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x60], eax
mov eax, dword [ebx + 0x48]
mov edx, dword [ebp + 8]
lea ecx, [ebx + 0x4c]
mov dword [ebp - 0xd8], ecx
mov dword [edx + 0x38], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x10014e70
mov eax, dword [ebp - 0xd8]
mov ecx, esi
sub eax, ebx
sub ecx, eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xd4], ecx
mov eax, dword [eax + 0x30]
cmp ecx, eax
jbe 0x10015b6d
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov dword [esp + 4], 0x90
mov dword [ebp - 0xe0], eax
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_calloc]
mov dword [ebp - 0xdc], eax
call eax
mov esi, eax
mov eax, dword [ebp + 8]
mov dword [eax + 0x4c], esi
test esi, esi
je 0x10015cd8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x20]
mov dword [esp + 4], 0x90
mov dword [ebp - 0xe4], eax
mov dword [esp], eax
mov eax, dword [ebp - 0xdc]
call eax
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x50], eax
test eax, eax
je 0x10015d57
mov eax, dword [ebp + 8]
mov dword [esp + 4], 0xe0
mov eax, dword [eax + 0x38]
mov dword [esp], eax
mov eax, dword [ebp - 0xdc]
call eax
mov edx, dword [ebp + 8]
mov dword [edx + 0x54], eax
test eax, eax
je 0x10015d3d
mov eax, dword [ebp + 8]
mov dword [esp + 4], 4
mov eax, dword [eax + 0x60]
mov dword [esp], eax
mov eax, dword [ebp - 0xdc]
call eax
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x58], eax
test eax, eax
je 0x10015d23
mov eax, dword [ebp + 8]
mov dword [esp + 4], 4
mov eax, dword [eax + 0x6c]
mov dword [esp], eax
mov eax, dword [ebp - 0xdc]
call eax
mov edx, dword [ebp + 8]
mov dword [edx + 0x64], eax
test eax, eax
je 0x10015d09
mov eax, dword [ebp + 8]
mov dword [esp + 4], 4
mov eax, dword [eax + 0x90]
mov dword [esp], eax
mov eax, dword [ebp - 0xdc]
call eax
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x88], eax
test eax, eax
je 0x10015caa
mov eax, dword [ebp + 8]
mov dword [esp + 4], 4
mov eax, dword [eax + 0x9c]
mov dword [esp], eax
mov eax, dword [ebp - 0xdc]
call eax
mov edx, dword [ebp + 8]
mov dword [edx + 0x94], eax
test eax, eax
je 0x10015cc1
mov eax, dword [ebp + 8]
mov dword [esp + 4], 4
mov eax, dword [eax + 0xa8]
mov dword [esp], eax
mov eax, dword [ebp - 0xdc]
call eax
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xa0], eax
test eax, eax
je 0x10015cef
mov eax, dword [ebp + 8]
mov dword [esp + 4], 0x1c
mov eax, dword [eax + 0x2c]
mov dword [esp], eax
mov eax, dword [ebp - 0xdc]
call eax
mov edx, dword [ebp + 8]
mov dword [edx + 0xac], eax
test eax, eax
je 0x10015c6f
mov eax, dword [ebp - 0xe0]
xor edi, edi
lea ebx, [ebp - 0xcc]
test eax, eax
je 0x10014e04
mov edx, esi
mov esi, ebx
mov ebx, dword [ebp + 8]
jmp 0x10014db3
add edi, 1
cmp edi, dword [ebx + 0x18]
jae 0x10014df8
mov edx, dword [ebx + 0x4c]
lea eax, [edi + edi*8]
mov ecx, esi
shl eax, 4
add eax, edx
mov edx, dword [ebp - 0xd4]
mov dword [eax], sym._d3d10_effect_constant_buffer_IsValid_4
mov dword [eax + 0x24], ebx
mov dword [eax + 4], 0x1001fba0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], 1
call sym._parse_fx10_buffer
test eax, eax
jns 0x10014da8
mov edx, eax
jmp 0x10014963
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xe4]
mov edi, dword [ebp + 8]
xor esi, esi
lea ebx, [ebp - 0xcc]
test eax, eax
jne 0x10014e2c
jmp 0x100153a8
add esi, 1
cmp esi, dword [edi + 0x20]
jae 0x100153a8
lea eax, [esi + esi*8]
mov edx, dword [ebp - 0xd4]
mov ecx, ebx
shl eax, 4
add eax, dword [edi + 0x50]
mov dword [eax + 0x24], edi
mov dword [eax], sym._d3d10_effect_variable_IsValid_4
mov dword [eax + 4], 0x1001fba0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], 0
call sym._parse_fx10_object_variable
test eax, eax
jns 0x10014e20
jmp 0x10014ded
mov edx, dword [eax + 0x28]
test edx, edx
jne 0x10014e82
mov eax, dword [eax + 0x24]
test eax, eax
je 0x10014bd6
mov edx, 0x80004005
test byte [0x1001fd18], 4
je 0x10014963
mov dword [esp + 0xc], str.Effect_requires_a_pool_to_load._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 2
mov dword [ebp - 0xd0], edx
call sym._wine_dbg_log.constprop.0_1
mov edx, dword [ebp - 0xd0]
jmp 0x10014963
xor edx, edx
jmp 0x10014963
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Invalid_data_size__Ix._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x1001495e
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0x10023ddb
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 4]
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], eax
test byte [0x1001fd18], 8
je 0x10014b2c
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Local_buffer_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 8]
mov edi, dword [ebp + 8]
mov dword [edi + 0x1c], eax
test byte [0x1001fd18], 8
je 0x10014b35
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x10023e02
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x20], eax
test byte [0x1001fd18], 8
je 0x10014b3e
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Object_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp + 8]
mov dword [edx + 0x24], eax
test byte [0x1001fd18], 8
je 0x10014b47
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Pool_buffer_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x14]
test byte [0x1001fd18], 8
je 0x10014b47
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Pool_variable_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x18]
mov edi, dword [ebp + 8]
mov dword [edi + 0x28], eax
test byte [0x1001fd18], 8
je 0x10014b50
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Pool_objects_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x1c]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x2c], eax
test byte [0x1001fd18], 8
je 0x10014b59
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Technique_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x20]
mov edx, dword [ebp + 8]
mov dword [edx + 0x30], eax
test byte [0x1001fd18], 8
je 0x10014b62
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Index_offset:__x._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x24]
test byte [0x1001fd18], 8
je 0x10014b62
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.String_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x28]
mov edi, dword [ebp + 8]
mov dword [edi + 0x34], eax
test byte [0x1001fd18], 8
je 0x10014b6b
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Texture_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x9c], eax
test byte [0x1001fd18], 8
je 0x10014b77
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Depthstencilstate_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x30]
mov edx, dword [ebp + 8]
mov dword [edx + 0x90], eax
test byte [0x1001fd18], 8
je 0x10014b83
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Blendstate_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x34]
mov edi, dword [ebp + 8]
mov dword [edi + 0xa8], eax
test byte [0x1001fd18], 8
je 0x10014b8f
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Rasterizerstate_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x6c], eax
test byte [0x1001fd18], 8
je 0x10014b98
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Samplerstate_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebp + 8]
mov dword [edx + 0x78], eax
test byte [0x1001fd18], 8
je 0x10014ba1
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Rendertargetview_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x40]
mov edi, dword [ebp + 8]
mov dword [edi + 0x84], eax
test byte [0x1001fd18], 8
je 0x10014bad
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Depthstencilview_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x44]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x60], eax
test byte [0x1001fd18], 8
je 0x10014bb6
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Used_shader_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebx + 0x48]
mov edi, dword [ebp + 8]
lea edx, [ebx + 0x4c]
mov dword [ebp - 0xd8], edx
mov dword [edi + 0x38], eax
test byte [0x1001fd18], 8
je 0x10014bc8
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Anonymous_shader_count:__u._n
mov dword [esp + 8], str.parse_fx10
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x10014bc8
lea eax, [ebp - 0x9c]
lea ebx, [ebp - 0xcc]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xe4], eax
mov esi, eax
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x24]
test edi, edi
je 0x100154f0
mov dword [ebp - 0xe8], ebx
mov ebx, dword [ebp + 8]
jmp 0x1001541b
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x94]
call sym._d3d10_effect_validate_shared_variable.isra.0
mov edi, eax
mov eax, esi
call sym._d3d10_effect_variable_destroy
test edi, edi
js 0x100154e0
add dword [ebp - 0xe0], 1
mov eax, dword [ebp - 0xe0]
cmp eax, dword [ebx + 0x24]
jae 0x100154f0
mov edi, dword [ebp - 0xe4]
xor eax, eax
mov ecx, 0x24
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0xe4], esi
rep stosd dword es:[edi], eax
mov dword [esp + 4], esi
mov ecx, dword [ebp - 0xe8]
mov dword [esp], 0
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x78], ebx
call sym._parse_fx10_buffer
test eax, eax
jns 0x100153e0
mov dword [ebp - 0xd0], eax
mov eax, esi
call sym._d3d10_effect_variable_destroy
mov edx, dword [ebp - 0xd0]
jmp 0x10014963
movsx eax, byte [ebp - 0xe0]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_isprint]
test eax, eax
je 0x10014a10
lea eax, [ebp - 0x9c]
mov dword [esp], 0x1002323f
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf
jmp 0x10014a20
movsx eax, byte [ebp - 0xd8]
mov dword [esp], eax
call esi
test eax, eax
je 0x10014ad0
lea eax, [ebp - 0x9c]
mov dword [esp], 0x1002323f
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf
jmp 0x10014ae0
mov edx, edi
jmp 0x10014963
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
test ecx, ecx
je 0x100155ad
lea ebx, [ebp - 0xcc]
lea eax, [ebp - 0x9c]
xor esi, esi
mov dword [ebp - 0xe0], ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xe4], eax
jmp 0x1001554d
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x94]
call sym._d3d10_effect_validate_shared_variable.isra.0
mov edi, eax
lea eax, [ebp - 0x9c]
call sym._d3d10_effect_variable_destroy
test edi, edi
js 0x100154e0
add esi, 1
cmp esi, dword [ebx + 0x28]
jae 0x100155ad
mov edi, dword [ebp - 0xe4]
xor eax, eax
mov ecx, 0x24
mov edx, dword [ebp - 0xd4]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x9c]
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x78], ebx
mov dword [esp + 4], eax
mov dword [esp], 1
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xd8]
call sym._parse_fx10_object_variable
test eax, eax
jns 0x10015520
mov dword [ebp - 0xd0], eax
lea eax, [ebp - 0x9c]
call sym._d3d10_effect_variable_destroy
mov edx, dword [ebp - 0xd0]
jmp 0x10014963
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x2c]
test edx, edx
je 0x10014908
mov dword [ebp - 0xec], 0
mov edi, dword [ebp - 0xd8]
nop
lea esi, [esi]
mov esi, dword [ebp + 8]
imul eax, dword [ebp - 0xec], 0x1c
add eax, dword [esi + 0xac]
mov dword [eax], sym._d3d10_effect_technique_IsValid_4
mov dword [ebp - 0xe8], eax
mov dword [eax + 4], esi
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax]
add eax, 4
mov dword [ebp - 0xcc], eax
test byte [0x1001fd18], 8
jne 0x10015a60
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xd4]
add eax, 8
mov dword [esp], eax
mov eax, edi
call sym._fx10_copy_string
test eax, eax
je 0x10015bed
test byte [0x1001fd18], 8
jne 0x10015aa0
mov eax, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xe8]
mov edx, dword [eax]
add eax, 4
mov dword [ebp - 0xcc], eax
mov dword [esi + 0x14], edx
mov edx, dword [eax]
add eax, 4
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xe8]
mov dword [eax + 0x10], edx
mov esi, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xd4]
lea ecx, [ebp - 0xcc]
lea eax, [esi + 0x10]
mov dword [esp + 8], eax
lea eax, [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi + 4]
mov dword [esp], eax
mov eax, edi
call sym._parse_fx10_annotations.isra.0
mov edx, eax
test eax, eax
js 0x10015a10
mov esi, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xdc]
mov ebx, dword [esi + 0x14]
mov dword [esp + 4], 0x5c
mov dword [esp], ebx
call eax
mov dword [esi + 0x18], eax
test eax, eax
je 0x10015d71
mov dword [ebp - 0xe4], 0
test ebx, ebx
je 0x100159f0
lea esi, [esi]
imul ebx, dword [ebp - 0xe4], 0x5c
add ebx, eax
mov eax, dword [ebp - 0xe8]
mov dword [ebx], sym._d3d10_effect_pass_IsValid_4
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax]
add eax, 4
mov dword [ebp - 0xcc], eax
test byte [0x1001fd18], 8
jne 0x10015890
lea eax, [ebx + 8]
mov edx, dword [ebp - 0xd4]
mov dword [esp], eax
mov eax, edi
call sym._fx10_copy_string
test eax, eax
je 0x10015b80
test byte [0x1001fd18], 8
jne 0x100158d0
mov eax, dword [ebp - 0xcc]
mov esi, dword [eax]
add eax, 4
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xd8], esi
mov edx, dword [eax]
add eax, 4
mov dword [ebp - 0xcc], eax
mov dword [ebx + 0x10], edx
lea eax, [ebx + 0x10]
mov edx, dword [ebp - 0xd4]
lea ecx, [ebp - 0xcc]
mov dword [esp + 8], eax
lea eax, [ebx + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov dword [esp], eax
mov eax, edi
call sym._parse_fx10_annotations.isra.0
mov edx, eax
test eax, eax
js 0x100159a0
mov eax, dword [ebp - 0xd8]
mov dword [ebx + 0x20], 0x1001f6a0
mov dword [ebx + 0x28], 0x1001f6a0
mov dword [ebx + 0x30], 0x1001f6a0
test eax, eax
je 0x10015868
lea eax, [ebx + 0x14]
xor esi, esi
mov dword [ebp - 0xe0], eax
jmp 0x100157df
add esi, 1
cmp dword [ebp - 0xd8], esi
je 0x10015868
mov eax, dword [ebp - 0xe0]
mov dword [esp + 8], ebx
lea ecx, [ebp - 0xcc]
mov edx, dword [ebp - 0xd4]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov dword [esp], 1
mov dword [esp + 4], eax
mov eax, edi
call sym._parse_fx10_property_assignment
test eax, eax
jns 0x100157d0
mov edx, eax
test byte [0x1001fd18], 4
je 0x10014963
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Failed_to_parse_pass_assignment__u__hr__lx._n
mov dword [esp + 8], str.parse_fx10_pass
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 2
mov dword [ebp - 0xd0], eax
call sym._wine_dbg_log.constprop.0_1
mov edx, dword [ebp - 0xd0]
jmp 0x10014963
mov ecx, dword [ebp - 0xe8]
add dword [ebp - 0xe4], 1
mov eax, dword [ebp - 0xe4]
cmp eax, dword [ecx + 0x14]
jae 0x100159f0
mov eax, dword [ecx + 0x18]
jmp 0x100156e0
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], str.Pass_name_at_offset__x._n
mov dword [esp + 8], str.parse_fx10_pass
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
mov dword [ebp - 0xd8], ecx
call sym._wine_dbg_log.constprop.0_1
mov ecx, dword [ebp - 0xd8]
jmp 0x10015716
mov eax, dword [ebx + 8]
call sym._wine_dbgstr_an.constprop.0_1
mov dword [esp + 0xc], str.Pass_name:__s._n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.parse_fx10_pass
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebp - 0xcc]
mov esi, dword [eax]
add eax, 4
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xd8], esi
test byte [0x1001fd18], 8
je 0x10015755
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Pass_has__u_effect_objects._n
mov dword [esp + 8], str.parse_fx10_pass
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebp - 0xcc]
mov edx, dword [eax]
add eax, 4
mov dword [ebp - 0xcc], eax
mov dword [ebx + 0x10], edx
test byte [0x1001fd18], 8
je 0x10015763
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Pass_has__u_annotations._n
mov dword [esp + 8], str.parse_fx10_pass
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x10015763
test byte [0x1001fd18], 2
je 0x10014963
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Failed_to_parse_pass_annotations__hr__lx._n
mov dword [esp + 8], str.parse_fx10_pass
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 1
mov dword [ebp - 0xd0], eax
call sym._wine_dbg_log.constprop.0_1
mov edx, dword [ebp - 0xd0]
jmp 0x10014963
mov esi, dword [ebp + 8]
add dword [ebp - 0xec], 1
mov eax, dword [ebp - 0xec]
cmp eax, dword [esi + 0x2c]
jb 0x100155d0
jmp 0x10014908
test byte [0x1001fd18], 2
je 0x10014963
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Failed_to_parse_technique_annotations__hr__lx._n
mov dword [esp + 8], str.parse_fx10_technique
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 1
mov dword [ebp - 0xd0], eax
call sym._wine_dbg_log.constprop.0_1
mov edx, dword [ebp - 0xd0]
jmp 0x10014963
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], str.Technique_name_at_offset__x._n
mov dword [esp + 8], str.parse_fx10_technique
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
mov dword [ebp - 0xd8], ecx
call sym._wine_dbg_log.constprop.0_1
mov ecx, dword [ebp - 0xd8]
jmp 0x1001560d
mov esi, dword [ebp - 0xe8]
mov eax, dword [esi + 8]
call sym._wine_dbgstr_an.constprop.0_1
mov dword [esp + 0xc], str.Technique_name:__s._n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.parse_fx10_technique
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebp - 0xcc]
mov edx, dword [eax]
add eax, 4
mov dword [ebp - 0xcc], eax
mov dword [esi + 0x14], edx
test byte [0x1001fd18], 8
je 0x10015655
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Technique_has__u_passes._n
mov dword [esp + 8], str.parse_fx10_technique
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebp - 0xcc]
mov edx, dword [eax]
add eax, 4
mov dword [ebp - 0xcc], eax
mov dword [esi + 0x10], edx
test byte [0x1001fd18], 8
je 0x10015669
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Technique_has__u_annotations._n
mov dword [esp + 8], str.parse_fx10_technique
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x10015669
test byte [0x1001fd18], 4
jne 0x10015b93
mov edx, 0x80004005
jmp 0x10014963
test byte [0x1001fd18], 2
jne 0x10015bc7
mov edx, 0x8007000e
jmp 0x10014963
mov esi, dword [ebp - 0xd4]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Invalid_index_offset__x__data_size__Ix_._n
mov dword [esp + 0x14], esi
mov dword [esp + 8], str.parse_fx10_body
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x10015b76
mov dword [esp + 0xc], 0x10022590
mov dword [esp + 8], str.parse_fx10_pass
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x10015b89
test byte [0x1001fd18], 2
je 0x10015b89
mov dword [esp + 0xc], 0x10022590
mov dword [esp + 8], str.parse_fx10_technique
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
mov edx, 0x8007000e
jmp 0x10014963
mov edx, 0x80004005
test byte [0x1001fd18], 4
je 0x1001497d
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Failed_to_parse_DXBC__ret__d._n
mov dword [esp + 8], str.d3d10_effect_parse
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 2
mov dword [ebp - 0xd0], edx
call sym._wine_dbg_log.constprop.0_1
mov edx, dword [ebp - 0xd0]
jmp 0x1001497d
test byte [0x1001fd18], 2
je 0x10015b89
mov dword [esp + 0xc], str.Failed_to_allocate_techniques_memory_n
mov dword [esp + 8], str.parse_fx10_body
mov dword [esp + 4], 0x1001fd18
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
mov edx, 0x8007000e
jmp 0x10014963
test byte [0x1001fd18], 2
je 0x10015b89
mov dword [esp + 0xc], str.Failed_to_allocate_blend_states_array._n
jmp 0x10015c84
test byte [0x1001fd18], 2
je 0x10015b89
mov dword [esp + 0xc], str.Failed_to_allocate_depth_stencil_states_array._n
jmp 0x10015c84
test byte [0x1001fd18], 2
je 0x10015b89
mov dword [esp + 0xc], str.Failed_to_allocate_local_buffer_memory._n
jmp 0x10015c84
test byte [0x1001fd18], 2
je 0x10015b89
mov dword [esp + 0xc], str.Failed_to_allocate_rasterizer_states_array._n
jmp 0x10015c84
test byte [0x1001fd18], 2
je 0x10015b89
mov dword [esp + 0xc], str.Failed_to_allocate_samplers_array._n
jmp 0x10015c84
test byte [0x1001fd18], 2
je 0x10015b89
mov dword [esp + 0xc], str.Failed_to_allocate_used_shaders_memory_n
jmp 0x10015c84
test byte [0x1001fd18], 2
je 0x10015b89
mov dword [esp + 0xc], str.Failed_to_allocate_anonymous_shaders_memory_n
jmp 0x10015c84
test byte [0x1001fd18], 2
je 0x10015b89
mov dword [esp + 0xc], str.Failed_to_allocate_local_variable_memory._n
jmp 0x10015c84
test byte [0x1001fd18], 2
je 0x10015b89
mov dword [esp + 0xc], str.Failed_to_allocate_passes_memory_n
jmp 0x10015bfe