joyce8/EMBER2024-capa huggingface dataset:
Function at 0x6a0c4960
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x14
mov ebx, dword [ebp + 8]
test byte [0x6a0de018], 8
jne 0x6a0c49c8
mov dword [esp + 8], 0x4c
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebx + 4], eax
sub esp, 0xc
test eax, eax
je 0x6a0c49ee
mov edx, 0x301
mov dword [eax], 2
mov word [eax + 4], dx
mov edx, 4
mov dword [ebx], sym._asmparser_constF
mov ebx, dword [ebp - 4]
leave
jmp sym._gen_oldps_input.constprop.0
mov dword [esp + 0xc], str.ps_1_3_n
mov dword [esp + 8], str.create_ps13_parser
mov dword [esp + 4], 0x6a0de018
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x6a0c4973
test byte [0x6a0de028], 2
jne 0x6a0c4a03
mov dword [ebx + 0xc], 2
mov ebx, dword [ebp - 4]
leave
ret
mov dword [esp + 0xc], str.Failed_to_allocate_memory_for_the_shader_n
mov dword [esp + 8], str.create_ps13_parser
mov dword [esp + 4], 0x6a0de028
mov dword [esp], 1
call sym._wine_dbg_log
jmp 0x6a0c49f7

Function at 0x6a0c4a30
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x14
mov ebx, dword [ebp + 8]
test byte [0x6a0de018], 8
jne 0x6a0c4a98
mov dword [esp + 8], 0x4c
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebx + 4], eax
sub esp, 0xc
test eax, eax
je 0x6a0c4abe
mov edx, 0x401
mov dword [eax], 2
mov word [eax + 4], dx
mov edx, 6
mov dword [ebx], sym._asmparser_constF
mov ebx, dword [ebp - 4]
leave
jmp sym._gen_oldps_input.constprop.0
mov dword [esp + 0xc], str.ps_1_4_n
mov dword [esp + 8], str.create_ps14_parser
mov dword [esp + 4], 0x6a0de018
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x6a0c4a43
test byte [0x6a0de028], 2
jne 0x6a0c4ad3
mov dword [ebx + 0xc], 2
mov ebx, dword [ebp - 4]
leave
ret
mov dword [esp + 0xc], str.Failed_to_allocate_memory_for_the_shader_n
mov dword [esp + 8], str.create_ps14_parser
mov dword [esp + 4], 0x6a0de028
mov dword [esp], 1
call sym._wine_dbg_log
jmp 0x6a0c4ac7
Function at 0x6a0c4b00
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x14
mov ebx, dword [ebp + 8]
test byte [0x6a0de018], 8
jne 0x6a0c4b68
mov dword [esp + 8], 0x4c
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebx + 4], eax
sub esp, 0xc
test eax, eax
je 0x6a0c4b8e
mov edx, 2
mov dword [eax], 2
mov word [eax + 4], dx
mov edx, 8
mov dword [ebx], str.___fj___fj__fj_6_fj
mov ebx, dword [ebp - 4]
leave
jmp sym._gen_oldps_input.constprop.0
mov dword [esp + 0xc], str.ps_2_0_n
mov dword [esp + 8], str.create_ps20_parser
mov dword [esp + 4], 0x6a0de018
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x6a0c4b13
test byte [0x6a0de028], 2
jne 0x6a0c4ba3
mov dword [ebx + 0xc], 2
mov ebx, dword [ebp - 4]
leave
ret
mov dword [esp + 0xc], str.Failed_to_allocate_memory_for_the_shader_n
mov dword [esp + 8], str.create_ps20_parser
mov dword [esp + 4], 0x6a0de028
mov dword [esp], 1
call sym._wine_dbg_log
jmp 0x6a0c4b97

Function at 0x6a0c4bd0
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x14
mov ebx, dword [ebp + 8]
test byte [0x6a0de018], 8
jne 0x6a0c4c38
mov dword [esp + 8], 0x4c
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebx + 4], eax
sub esp, 0xc
test eax, eax
je 0x6a0c4c5e
mov edx, 0x102
mov dword [eax], 2
mov word [eax + 4], dx
mov edx, 8
mov dword [ebx], str.___fj___fj__fjp5_fj0__fj
mov ebx, dword [ebp - 4]
leave
jmp sym._gen_oldps_input.constprop.0
mov dword [esp + 0xc], str.ps_2_x_n
mov dword [esp + 8], str.create_ps2x_parser
mov dword [esp + 4], 0x6a0de018
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x6a0c4be3
test byte [0x6a0de028], 2
jne 0x6a0c4c73
mov dword [ebx + 0xc], 2
mov ebx, dword [ebp - 4]
leave
ret
mov dword [esp + 0xc], str.Failed_to_allocate_memory_for_the_shader_n
mov dword [esp + 8], str.create_ps2x_parser
mov dword [esp + 4], 0x6a0de028
mov dword [esp], 1
call sym._wine_dbg_log
jmp 0x6a0c4c67
Function at 0x6a0c4ca0
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x14
mov ebx, dword [ebp + 8]
test byte [0x6a0de018], 8
jne 0x6a0c4d00
mov dword [esp + 8], 0x4c
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebx + 4], eax
sub esp, 0xc
test eax, eax
je 0x6a0c4d26
mov edx, 3
mov dword [eax], 2
mov word [eax + 4], dx
mov dword [ebx], sym._asmparser_constF
mov ebx, dword [ebp - 4]
leave
ret
mov dword [esp + 0xc], str.ps_3_0_n
mov dword [esp + 8], str.create_ps30_parser
mov dword [esp + 4], 0x6a0de018
mov dword [esp], 3
call sym._wine_dbg_log
jmp 0x6a0c4cb3
test byte [0x6a0de028], 2
jne 0x6a0c4d38
mov dword [ebx + 0xc], 2
jmp 0x6a0c4cf7
mov dword [esp + 0xc], str.Failed_to_allocate_memory_for_the_shader_n
mov dword [esp + 8], str.create_ps30_parser
mov dword [esp + 4], 0x6a0de028
mov dword [esp], 1
call sym._wine_dbg_log
jmp 0x6a0c4d2f

Function at 0x6a0c52c0
Capabilities:
Access peb ldr_data
Get kernel32 base address
Get process heap flags

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, 0xffffffff
push ecx
sub esp, 0x38
mov esi, dword [ecx]
lock xadd dword [esi + 4], ebx
dec ebx
test byte [0x6a0de038], 8
jne 0x6a0c5300
test ebx, ebx
je 0x6a0c5330
lea esp, [ebp - 0x10]
mov eax, ebx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 4
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0x6a0e1278
mov dword [esp + 8], str.d3dcompiler_blob_Release
mov dword [esp + 4], 0x6a0de038
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test ebx, ebx
jne 0x6a0c52ee
mov eax, dword [esi + 0xc]
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x1c], edx
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
mov edx, dword [ebp - 0x1c]
sub esp, 0xc
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
mov eax, ebx
sub esp, 0xc
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 4
Function at 0x6a0c5710
Capabilities:
Get process heap flags
Get process heap force flags

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x38
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
test byte [0x6a0de038], 8
jne 0x6a0c57d8
test esi, esi
je 0x6a0c5848
mov dword [esp + 8], 0x10
mov edx, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 4], 8
mov ecx, dword fs:[0x18]
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edx
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x6a0c58fa
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
mov dword [eax], sym._d3dcompiler_blob_QueryInterface_12
mov dword [eax + 4], 1
mov dword [eax + 8], edi
mov dword [esp + 8], edi
mov dword [esp + 4], 8
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edx
mov dword [ebx + 0xc], eax
sub esp, 0xc
test eax, eax
je 0x6a0c5883
mov dword [esi], ebx
xor edi, edi
test byte [0x6a0de038], 8
jne 0x6a0c5810
lea esp, [ebp - 0x10]
mov eax, edi
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 8
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.data_size__Iu__blob__p._n
mov dword [esp + 8], str.D3DCreateBlob
mov dword [esp + 4], 0x6a0de038
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x6a0c5736
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x6a0e13b5
mov dword [esp + 8], str.D3DCreateBlob
mov dword [esp + 4], 0x6a0de038
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
lea esp, [ebp - 0x10]
mov eax, edi
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 8
mov edi, 0x8876086c
test byte [0x6a0de038], 4
je 0x6a0c57c1
mov dword [esp + 0xc], str.Invalid_blob_specified._n
mov dword [esp + 8], str.D3DCreateBlob
mov dword [esp + 4], 0x6a0de038
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0
jmp 0x6a0c57c1
call sym._d3dcompiler_blob_init.part.0
mov edi, eax
test eax, eax
jns 0x6a0c57b4
test byte [0x6a0de038], 4
jne 0x6a0c58d0
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, edi
sub esp, 0xc
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 8
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Failed_to_initialize_blob__hr__lx._n
mov dword [esp + 8], str.D3DCreateBlob
mov dword [esp + 4], 0x6a0de038
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0
jmp 0x6a0c589b
mov edi, 0x8007000e
jmp 0x6a0c57c1
Function at 0x6a0c698a
Capabilities:
Write file on windows

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x38
mov esi, dword [ecx]
mov ebx, dword [ecx + 4]
mov edi, dword [ecx + 8]
test byte [0x6a0de038], 8
jne 0x6a0c6a68
cmp edi, 1
mov eax, 1
mov dword [esp], ebx
sbb eax, 0xffffffff
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x40000000
call dword [sym.imp.kernel32.dll_CreateFileW]
sub esp, 0x1c
mov ebx, eax
cmp eax, 0xffffffff
je 0x6a0c6aa8
mov eax, dword [esi]
mov dword [esp], esi
call dword [eax + 0x10]
mov edi, eax
mov eax, dword [esi]
sub esp, 4
mov dword [esp], esi
call dword [eax + 0xc]
lea edx, [ebp - 0x1c]
sub esp, 4
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_WriteFile]
sub esp, 0x14
mov esi, eax
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
test esi, esi
je 0x6a0c6ad0
cmp dword [ebp - 0x1c], edi
jne 0x6a0c6ad0
xor ebx, ebx
lea esp, [ebp - 0x10]
mov eax, ebx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0xc
mov eax, ebx
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.blob__p__filename__s__overwrite__x._n
mov dword [esp + 8], str.D3DWriteBlobToFile
mov dword [esp + 4], 0x6a0de038
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x6a0c69a9
mov eax, dword fs:[0x18]
mov ebx, dword [eax + 0x34]
movzx eax, bx
or eax, 0x80070000
test ebx, ebx
cmovg ebx, eax
lea esp, [ebp - 0x10]
pop ecx
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0xc
mov ebx, 0x80004005
test byte [0x6a0de038], 4
je 0x6a0c6a53
mov dword [esp + 0xc], str.Failed_to_write_blob_contents._n
mov dword [esp + 8], str.D3DWriteBlobToFile
mov dword [esp + 4], 0x6a0de038
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0
jmp 0x6a0c6a53
Function at 0x6a0c7ff0
Capabilities:
Access peb ldr_data
Get ntdll base address
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, edx
push ebx
sub esp, 0x1c
mov edx, dword [edx]
cmp edx, ecx
jae 0x6a0c80a8
cmp ecx, 0x3fffffff
ja 0x6a0c8099
mov ebx, eax
cmp edx, 8
mov eax, 8
cmovae eax, edx
cmp edx, 0x1fffffff
jbe 0x6a0c8039
jmp 0x6a0c803d
add eax, eax
cmp eax, 0x1fffffff
ja 0x6a0c803d
cmp ecx, eax
ja 0x6a0c8030
cmp ecx, eax
cmovae eax, ecx
mov edi, eax
lea edx, [eax*4]
mov eax, dword [ebx]
test eax, eax
je 0x6a0c80b8
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov ecx, dword fs:[0x18]
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapReAlloc]
sub esp, 0x10
test eax, eax
je 0x6a0c8090
mov dword [ebx], eax
mov eax, 1
mov dword [esi], edi
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
test byte [0x6a0de048], 2
jne 0x6a0c80de
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
lea esp, [ebp - 0xc]
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], edx
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
jmp 0x6a0c807a
mov dword [esp + 0xc], str.Failed_to_allocate_memory._n
mov dword [esp + 8], str.array_reserve
mov dword [esp + 4], 0x6a0de048
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x6a0c8099
Function at 0x6a0ca220
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov esi, dword fs:[0x18]
sub esp, 0x1c
mov edi, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 8], 0x4c
mov dword [esp + 4], 8
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x6a0ca2aa
mov eax, dword [ebp + 8]
test eax, eax
jne 0x6a0ca270
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 8]
mov dword [esp + 4], 8
lea eax, [eax + eax*4]
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
mov dword [ebx + 0x28], eax
sub esp, 0xc
test eax, eax
je 0x6a0ca2d9
mov eax, dword [ebp + 8]
mov dword [ebx + 0x2c], eax
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
test byte [0x6a0de048], 2
je 0x6a0ca261
mov dword [esp + 0xc], str.Failed_to_allocate_memory_for_an_instruction_structure_n
mov dword [esp + 8], str.alloc_instr
mov dword [esp + 4], 0x6a0de048
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x6a0ca261
test byte [0x6a0de048], 2
jne 0x6a0ca30d
mov dword [esp + 8], ebx
xor ebx, ebx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x6a0ca261
mov dword [esp + 0xc], str.Failed_to_allocate_memory_for_instruction_registers_n
mov dword [esp + 8], str.alloc_instr
mov dword [esp + 4], 0x6a0de048
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x6a0ca2e2
Function at 0x6a0ca390
Capabilities:
Access peb ldr_data
Get ntdll base address
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x10
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x6a0ca468
lea edx, [eax*4 + 4]
mov eax, dword [ebx + 8]
test eax, eax
je 0x6a0ca4b0
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov ecx, dword fs:[0x18]
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapReAlloc]
sub esp, 0x10
test eax, eax
je 0x6a0ca4e0
mov dword [ebx + 8], eax
mov esi, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 8], 0x14
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
test eax, eax
je 0x6a0ca51b
movss xmm0, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebx + 0x14]
movss dword [eax + 4], xmm0
movss xmm0, dword [ebp + 0x14]
mov dword [eax], edx
mov edx, dword [ebx + 8]
movss dword [eax + 8], xmm0
movss xmm0, dword [ebp + 0x18]
movss dword [eax + 0xc], xmm0
movss xmm0, dword [ebp + 0x1c]
movss dword [eax + 0x10], xmm0
mov dword [edx + ecx*4], eax
mov eax, 1
inc dword [ebx + 0x14]
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret
mov dword [esp + 8], 4
mov esi, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov dword [ebx + 8], eax
sub esp, 0xc
test eax, eax
jne 0x6a0ca3f2
test byte [0x6a0de048], 2
je 0x6a0ca4e9
mov dword [esp + 0xc], str.Failed_to_allocate_the_constants_array_n
jmp 0x6a0ca4f8
mov dword [esp + 8], edx
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
jmp 0x6a0ca3e1
test byte [0x6a0de048], 2
jne 0x6a0ca4f0
xor eax, eax
jmp 0x6a0ca45c
mov dword [esp + 0xc], str.Failed_to_grow_the_constants_array_n
mov dword [esp + 8], str.add_constF
mov dword [esp + 4], 0x6a0de048
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
xor eax, eax
jmp 0x6a0ca45c
test byte [0x6a0de048], 2
je 0x6a0ca4e9
mov dword [esp + 0xc], str.Failed_to_allocate_a_new_constant_n
jmp 0x6a0ca4f8
Function at 0x6a0ca530
Capabilities:
Access peb ldr_data
Get ntdll base address
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x10
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x6a0ca5f8
lea edx, [eax*4 + 4]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x6a0ca640
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov ecx, dword fs:[0x18]
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapReAlloc]
sub esp, 0x10
test eax, eax
je 0x6a0ca670
mov dword [ebx + 0xc], eax
mov esi, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 8], 0x14
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
test eax, eax
je 0x6a0ca6ab
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebx + 0x18]
mov dword [eax], edx
mov edx, dword [ebp + 0x10]
mov dword [eax + 4], edx
mov edx, dword [ebp + 0x14]
mov dword [eax + 8], edx
mov edx, dword [ebp + 0x18]
mov dword [eax + 0xc], edx
mov edx, dword [ebp + 0x1c]
mov dword [eax + 0x10], edx
mov edx, dword [ebx + 0xc]
mov dword [edx + ecx*4], eax
mov eax, 1
inc dword [ebx + 0x18]
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret
mov dword [esp + 8], 4
mov esi, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov dword [ebx + 0xc], eax
sub esp, 0xc
test eax, eax
jne 0x6a0ca592
test byte [0x6a0de048], 2
je 0x6a0ca679
mov dword [esp + 0xc], str.Failed_to_allocate_the_constants_array_n
jmp 0x6a0ca688
mov dword [esp + 8], edx
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
jmp 0x6a0ca581
test byte [0x6a0de048], 2
jne 0x6a0ca680
xor eax, eax
jmp 0x6a0ca5ec
mov dword [esp + 0xc], str.Failed_to_grow_the_constants_array_n
mov dword [esp + 8], str.add_constI
mov dword [esp + 4], 0x6a0de048
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
xor eax, eax
jmp 0x6a0ca5ec
test byte [0x6a0de048], 2
je 0x6a0ca679
mov dword [esp + 0xc], str.Failed_to_allocate_a_new_constant_n
jmp 0x6a0ca688
Function at 0x6a0ca6c0
Capabilities:
Access peb ldr_data
Get ntdll base address
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x10
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x6a0ca778
lea edx, [eax*4 + 4]
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x6a0ca7c0
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov ecx, dword fs:[0x18]
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapReAlloc]
sub esp, 0x10
test eax, eax
je 0x6a0ca7f0
mov dword [ebx + 0x10], eax
mov esi, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 8], 0x14
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
test eax, eax
je 0x6a0ca82b
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebx + 0x1c]
mov dword [eax], edx
mov edx, dword [ebp + 0x10]
mov dword [eax + 4], edx
mov edx, dword [ebx + 0x10]
mov dword [edx + ecx*4], eax
mov eax, 1
inc dword [ebx + 0x1c]
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret
mov dword [esp + 8], 4
mov esi, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov dword [ebx + 0x10], eax
sub esp, 0xc
test eax, eax
jne 0x6a0ca722
test byte [0x6a0de048], 2
je 0x6a0ca7f9
mov dword [esp + 0xc], str.Failed_to_allocate_the_constants_array_n
jmp 0x6a0ca808
mov dword [esp + 8], edx
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
jmp 0x6a0ca711
test byte [0x6a0de048], 2
jne 0x6a0ca800
xor eax, eax
jmp 0x6a0ca76a
mov dword [esp + 0xc], str.Failed_to_grow_the_constants_array_n
mov dword [esp + 8], str.add_constB
mov dword [esp + 4], 0x6a0de048
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
xor eax, eax
jmp 0x6a0ca76a
test byte [0x6a0de048], 2
je 0x6a0ca7f9
mov dword [esp + 0xc], str.Failed_to_allocate_a_new_constant_n
jmp 0x6a0ca808
Function at 0x6a0caa90
Capabilities:
Access peb ldr_data
Get ntdll base address
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2c
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0x14]
test esi, esi
je 0x6a0cab9d
mov ebx, dword [esi + 0x34]
test ebx, ebx
je 0x6a0cabb0
mov edx, dword [esi + 0x30]
xor ebx, ebx
jmp 0x6a0caac8
mov eax, dword [esi + 0x34]
inc ebx
cmp eax, ebx
jbe 0x6a0cab10
lea eax, [ebx + ebx*2]
cmp dword [edx + eax*4 + 4], edi
jne 0x6a0caac0
test byte [0x6a0de048], 4
je 0x6a0caac0
mov dword [esp + 0x10], edi
inc ebx
mov dword [esp + 0xc], str.Sampler__u_already_declared_n
mov dword [esp + 8], str.record_sampler
mov dword [esp + 4], 0x6a0de048
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [esi + 0x34]
mov edx, dword [esi + 0x30]
cmp eax, ebx
ja 0x6a0caac8
lea esi, [esi]
lea eax, [eax + eax*2 + 3]
shl eax, 2
test edx, edx
je 0x6a0cac00
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov ecx, dword fs:[0x18]
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapReAlloc]
sub esp, 0x10
test eax, eax
je 0x6a0cab90
mov dword [esi + 0x30], eax
mov edx, dword [esi + 0x34]
mov ecx, dword [ebp + 0xc]
lea edx, [edx + edx*2]
mov dword [eax + edx*4], ecx
mov eax, dword [esi + 0x34]
mov edx, dword [esi + 0x30]
lea eax, [eax + eax*2]
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0x10]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
mov dword [eax + 4], edi
mov eax, 1
inc dword [esi + 0x34]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
test byte [0x6a0de048], 2
jne 0x6a0cac2a
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0xc
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esi + 0x30], eax
sub esp, 0xc
test eax, eax
jne 0x6a0cab4f
test byte [0x6a0de048], 2
je 0x6a0cab9d
mov dword [esp + 0xc], str.Error_allocating_samplers_array_n
jmp 0x6a0cac32
mov dword [esp + 8], eax
mov dword [esp + 4], 8
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
jmp 0x6a0cab48
mov dword [esp + 0xc], str.Error_reallocating_samplers_array_n
mov dword [esp + 8], str.record_sampler
mov dword [esp + 4], 0x6a0de048
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
xor eax, eax
jmp 0x6a0cab9f