joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10003620
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff8
sub esp, 0x18
lea esi, [esi]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
mov esi, dword [eax]
mov eax, dword [ebp + 0xc]
mov edi, edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp], esi
call sym.___divdi3
mov edi, dword [ebp + 8]
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
lock cmpxchg8b qword [edi]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
xor eax, edi
xor edx, esi
or edx, eax
jne 0x10003630
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x10003690
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff8
sub esp, 0x18
lea esi, [esi]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
mov esi, dword [eax]
mov eax, dword [ebp + 0xc]
mov edi, edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp], esi
call sym.___udivdi3
mov edi, dword [ebp + 8]
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
lock cmpxchg8b qword [edi]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
xor eax, edi
xor edx, esi
or edx, eax
jne 0x100036a0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x10003700
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff8
sub esp, 0x10
lea esi, [esi]
mov eax, dword [ebp + 8]
movzx ecx, byte [ebp + 0xc]
xor edi, edi
mov ebx, dword [eax]
mov esi, dword [eax + 4]
mov eax, ebx
mov edx, esi
mov dword [esp + 8], ebx
shld edx, ebx, cl
shl eax, cl
test cl, 0x20
mov dword [esp + 0xc], esi
cmovne edx, eax
cmovne eax, edi
mov edi, dword [ebp + 8]
mov dword [esp], eax
mov eax, ebx
mov ebx, dword [esp]
mov dword [esp + 4], edx
mov ecx, dword [esp + 4]
mov edx, esi
lock cmpxchg8b qword [edi]
mov ebx, eax
mov esi, edx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
xor eax, esi
xor edx, ebx
or edx, eax
jne 0x10003710
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
Function at 0x10003770
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff8
sub esp, 0x10
lea esi, [esi]
mov eax, dword [ebp + 8]
movzx ecx, byte [ebp + 0xc]
mov esi, dword [eax + 4]
mov ebx, dword [eax]
mov edx, esi
mov eax, ebx
mov dword [esp + 8], ebx
sar edx, cl
shrd eax, esi, cl
mov dword [esp + 0xc], esi
mov edi, edx
sar edi, 0x1f
test cl, 0x20
cmovne eax, edx
cmovne edx, edi
mov edi, dword [ebp + 8]
mov dword [esp], eax
mov eax, ebx
mov ebx, dword [esp]
mov dword [esp + 4], edx
mov ecx, dword [esp + 4]
mov edx, esi
lock cmpxchg8b qword [edi]
mov ebx, eax
mov esi, edx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
xor eax, esi
xor edx, ebx
or edx, eax
jne 0x10003780
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x100037e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff8
sub esp, 0x10
lea esi, [esi]
mov eax, dword [ebp + 8]
movzx ecx, byte [ebp + 0xc]
xor edi, edi
mov esi, dword [eax + 4]
mov ebx, dword [eax]
mov edx, esi
mov eax, ebx
mov dword [esp + 8], ebx
shrd eax, esi, cl
shr edx, cl
test cl, 0x20
mov dword [esp + 0xc], esi
cmovne eax, edx
cmovne edx, edi
mov edi, dword [ebp + 8]
mov dword [esp], eax
mov eax, ebx
mov ebx, dword [esp]
mov dword [esp + 4], edx
mov ecx, dword [esp + 4]
mov edx, esi
lock cmpxchg8b qword [edi]
mov ebx, eax
mov esi, edx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
xor eax, esi
xor edx, ebx
or edx, eax
jne 0x100037f0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x10003850
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff8
sub esp, 0x10
lea esi, [esi]
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov ebx, edx
mov ecx, eax
sub ecx, dword [ebp + 0xc]
sbb ebx, dword [ebp + 0x10]
mov esi, ebx
mov dword [esp], ecx
mov ebx, ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
lock cmpxchg8b qword [edi]
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edi, edx
mov edx, ebx
xor eax, ecx
xor edx, edi
or eax, edx
jne 0x10003860
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x10003980
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
and esp, 0xfffffff8
sub esp, 0x10
mov esi, dword [ebp + 8]
movsd xmm0, qword [ebp + 0xc]
lea esi, cs:[esi]
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
movsd xmm1, qword [esp + 8]
divsd xmm1, xmm0
movsd qword [esp], xmm1
mov ebx, dword [esp]
mov ecx, dword [esp + 4]
lock cmpxchg8b qword [esi]
mov ecx, dword [esp + 0xc]
mov dword [esp + 4], edx
mov edx, dword [esp + 8]
mov dword [esp], eax
mov ebx, dword [esp + 4]
mov eax, dword [esp]
xor ecx, ebx
xor eax, edx
or eax, ecx
jne 0x10003998
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret
Function at 0x100039f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
and esp, 0xfffffff8
sub esp, 0x10
mov esi, dword [ebp + 8]
movsd xmm0, qword [ebp + 0xc]
lea esi, cs:[esi]
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
movsd xmm1, qword [esp + 8]
subsd xmm1, xmm0
movsd qword [esp], xmm1
mov ebx, dword [esp]
mov ecx, dword [esp + 4]
lock cmpxchg8b qword [esi]
mov ecx, dword [esp + 0xc]
mov dword [esp + 4], edx
mov edx, dword [esp + 8]
mov dword [esp], eax
mov ebx, dword [esp + 4]
mov eax, dword [esp]
xor ecx, ebx
xor eax, edx
or eax, ecx
jne 0x10003a08
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret

Function at 0x10003bc0
Capabilities:
Get process heap flags
Get thread local storage value
Set thread local storage value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push ecx
sub esp, 0x10
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x10003c30
mov ebx, dword [ebx]
test byte [0x10008064], 8
jne 0x10003c00
mov eax, 1
test ebx, ebx
je 0x10003bf6
mov eax, dword [ebx + 4]
lea esp, [ebp - 8]
pop ecx
pop ebx
pop ebp
ret
mov dword [esp + 0xc], 0x1000a086
mov dword [esp + 8], str.omp_get_num_threads
mov dword [esp + 4], 0x10008064
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x10003bea
mov dword [esp + 8], 0x60
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_HeapAlloc]
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x10003cb9
movdqu xmm0, xmmword [0x1000a7e0]
mov dword [eax], 0
lea eax, [eax + 0x38]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 0x10], 0
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
movups xmmword [ebx + 0x20], xmm0
mov dword [esp + 4], ebx
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsSetValue]
sub esp, 8
jmp 0x10003bdf
test byte [0x10008064], 2
jne 0x10003ccf
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
mov dword [esp + 0xc], str.could_not_create_thread_data_n
mov dword [esp + 8], str.vcomp_init_thread_data
mov dword [esp + 4], 0x10008064
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1
jmp 0x10003cc2
Function at 0x10003d00
Capabilities:
Get process heap flags
Get thread local storage value
Set thread local storage value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push ecx
sub esp, 0x10
test byte [0x10008064], 8
jne 0x10003d38
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x10003d60
mov eax, dword [ebx + 8]
lea esp, [ebp - 8]
pop ecx
pop ebx
pop ebp
ret
mov dword [esp + 0xc], 0x1000a086
mov dword [esp + 8], str.omp_get_thread_num
mov dword [esp + 4], 0x10008064
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x10003d11
mov dword [esp + 8], 0x60
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_HeapAlloc]
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x10003dee
movdqu xmm0, xmmword [0x1000a7e0]
mov dword [eax], 0
lea eax, [eax + 0x38]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 0x10], 0
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
movups xmmword [ebx + 0x20], xmm0
mov dword [esp + 4], ebx
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsSetValue]
mov eax, dword [ebx + 8]
sub esp, 8
lea esp, [ebp - 8]
pop ecx
pop ebx
pop ebp
ret
test byte [0x10008064], 2
jne 0x10003e04
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
mov dword [esp + 0xc], str.could_not_create_thread_data_n
mov dword [esp + 8], str.vcomp_init_thread_data
mov dword [esp + 4], 0x10008064
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1
jmp 0x10003df7
Function at 0x10003e30
Capabilities:
Get process heap flags
Get thread local storage value
Set thread local storage value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push ecx
sub esp, 0x10
test byte [0x10008064], 8
jne 0x10003e68
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x10003e90
mov eax, dword [ebx + 8]
lea esp, [ebp - 8]
pop ecx
pop ebx
pop ebp
ret
mov dword [esp + 0xc], 0x1000a086
mov dword [esp + 8], str._vcomp_get_thread_num
mov dword [esp + 4], 0x10008064
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x10003e41
mov dword [esp + 8], 0x60
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_HeapAlloc]
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x10003f1e
movdqu xmm0, xmmword [0x1000a7e0]
mov dword [eax], 0
lea eax, [eax + 0x38]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 0x10], 0
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
movups xmmword [ebx + 0x20], xmm0
mov dword [esp + 4], ebx
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsSetValue]
mov eax, dword [ebx + 8]
sub esp, 8
lea esp, [ebp - 8]
pop ecx
pop ebx
pop ebp
ret
test byte [0x10008064], 2
jne 0x10003f34
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
mov dword [esp + 0xc], str.could_not_create_thread_data_n
mov dword [esp + 8], str.vcomp_init_thread_data
mov dword [esp + 4], 0x10008064
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1
jmp 0x10003f27
Function at 0x100041d0
Capabilities:
Get process heap flags
Get thread local storage value
Set thread local storage value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
push ecx
lea ecx, [ebp + 8]
sub esp, 0x14
mov esi, dword [ecx]
test byte [0x10008064], 8
jne 0x10004220
test esi, esi
jg 0x100041f8
lea esp, [ebp - 0xc]
pop ecx
pop ebx
pop esi
pop ebp
ret
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x10004250
mov dword [ebx + 0x10], esi
lea esp, [ebp - 0xc]
pop ecx
pop ebx
pop esi
pop ebp
ret
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.__d__n
mov dword [esp + 8], str._vcomp_set_num_threads
mov dword [esp + 4], 0x10008064
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x100041e7
mov dword [esp + 8], 0x60
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_HeapAlloc]
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x100042d9
movdqu xmm0, xmmword [0x1000a7e0]
mov dword [eax], 0
lea eax, [eax + 0x38]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 0x10], 0
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
movups xmmword [ebx + 0x20], xmm0
mov dword [esp + 4], ebx
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsSetValue]
sub esp, 8
jmp 0x1000420f
test byte [0x10008064], 2
jne 0x100042ef
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
mov dword [esp + 0xc], str.could_not_create_thread_data_n
mov dword [esp + 8], str.vcomp_init_thread_data
mov dword [esp + 4], 0x10008064
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1
jmp 0x100042e2
Function at 0x10004320
Capabilities:
Get process heap flags
Get thread local storage value
Set thread local storage value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push ecx
sub esp, 0x10
test byte [0x10008064], 8
jne 0x10004360
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x10004390
mov edx, dword [ebx + 8]
xor eax, eax
test edx, edx
sete al
lea esp, [ebp - 8]
pop ecx
pop ebx
pop ebp
ret
mov dword [esp + 0xc], 0x1000a086
mov dword [esp + 8], str._vcomp_master_begin
mov dword [esp + 4], 0x10008064
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x10004331
mov dword [esp + 8], 0x60
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_HeapAlloc]
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x10004419
movdqu xmm0, xmmword [0x1000a7e0]
mov dword [eax], 0
lea eax, [eax + 0x38]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 0x10], 0
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
movups xmmword [ebx + 0x20], xmm0
mov dword [esp + 4], ebx
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsSetValue]
sub esp, 8
jmp 0x10004348
test byte [0x10008064], 2
jne 0x1000442f
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
mov dword [esp + 0xc], str.could_not_create_thread_data_n
mov dword [esp + 8], str.vcomp_init_thread_data
mov dword [esp + 4], 0x10008064
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1
jmp 0x10004422
Function at 0x100044a0
Capabilities:
Get process heap flags
Get thread local storage value
Set thread local storage value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
lea ecx, [ebp + 8]
sub esp, 0x14
mov eax, dword [0x10008058]
mov edi, dword [ecx]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x10004550
mov esi, dword [ebx + 4]
test byte [0x10008064], 8
jne 0x10004520
mov dword [esp], 0x10008040
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebx + 0x20]
sub esp, 4
add eax, 1
mov dword [ebx + 0x20], eax
mov edx, eax
sub edx, dword [esi]
xor ebx, ebx
test edx, edx
jle 0x10004500
mov dword [esi], eax
mov ebx, 1
mov dword [esp], 0x10008040
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov eax, ebx
sub esp, 4
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.__x_:_semi_stub_n
mov dword [esp + 8], str._vcomp_single_begin
mov dword [esp + 4], 0x10008064
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x100044d6
mov dword [esp + 8], 0x60
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_HeapAlloc]
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x100045d9
movdqu xmm0, xmmword [0x1000a7e0]
mov dword [eax], 0
lea eax, [eax + 0x38]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 0x10], 0
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
movups xmmword [ebx + 0x20], xmm0
mov dword [esp + 4], ebx
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsSetValue]
sub esp, 8
jmp 0x100044ca
test byte [0x10008064], 2
jne 0x100045ef
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
mov dword [esp + 0xc], str.could_not_create_thread_data_n
mov dword [esp + 8], str.vcomp_init_thread_data
mov dword [esp + 4], 0x10008064
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1
jmp 0x100045e2
Function at 0x10004660
Capabilities:
Get process heap flags
Get thread local storage value
Set thread local storage value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
lea ecx, [ebp + 8]
sub esp, 0x14
mov eax, dword [0x10008058]
mov esi, dword [ecx]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x10004710
mov edi, dword [ebx + 4]
test byte [0x10008064], 8
jne 0x100046e0
mov dword [esp], 0x10008040
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebx + 0x24]
sub esp, 4
add eax, 1
mov dword [ebx + 0x24], eax
mov edx, eax
sub edx, dword [edi + 4]
test edx, edx
jle 0x100046c5
mov dword [edi + 4], eax
mov dword [edi + 8], esi
mov dword [edi + 0xc], 0
mov dword [esp], 0x10008040
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
sub esp, 4
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.__d__n
mov dword [esp + 8], str._vcomp_sections_init
mov dword [esp + 4], 0x10008064
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x10004696
mov dword [esp + 8], 0x60
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_HeapAlloc]
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x10004799
movdqu xmm0, xmmword [0x1000a7e0]
mov dword [eax], 0
lea eax, [eax + 0x38]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 0x10], 0
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
movups xmmword [ebx + 0x20], xmm0
mov dword [esp + 4], ebx
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsSetValue]
sub esp, 8
jmp 0x1000468a
test byte [0x10008064], 2
jne 0x100047af
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
mov dword [esp + 0xc], str.could_not_create_thread_data_n
mov dword [esp + 8], str.vcomp_init_thread_data
mov dword [esp + 4], 0x10008064
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1
jmp 0x100047a2
Function at 0x100047e0
Capabilities:
Get process heap flags
Get thread local storage value
Set thread local storage value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
push ecx
sub esp, 0x10
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x10004890
mov esi, dword [ebx + 4]
test byte [0x10008064], 8
jne 0x10004860
mov dword [esp], 0x10008040
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [esi + 4]
sub esp, 4
cmp dword [ebx + 0x24], eax
jne 0x10004920
mov ebx, dword [esi + 0xc]
cmp ebx, dword [esi + 8]
je 0x10004920
lea eax, [ebx + 1]
mov dword [esi + 0xc], eax
mov dword [esp], 0x10008040
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov eax, ebx
sub esp, 4
lea esp, [ebp - 0xc]
pop ecx
pop ebx
pop esi
pop ebp
ret
mov dword [esp + 0xc], 0x1000a086
mov dword [esp + 8], str._vcomp_sections_next
mov dword [esp + 4], 0x10008064
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x10004810
mov dword [esp + 8], 0x60
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_HeapAlloc]
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x1000492a
movdqu xmm0, xmmword [0x1000a7e0]
mov dword [eax], 0
lea eax, [eax + 0x38]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 0x10], 0
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
movups xmmword [ebx + 0x20], xmm0
mov dword [esp + 4], ebx
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsSetValue]
sub esp, 8
jmp 0x10004804
mov ebx, 0xffffffff
jmp 0x1000483e
test byte [0x10008064], 2
jne 0x10004940
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
mov dword [esp + 0xc], str.could_not_create_thread_data_n
mov dword [esp + 8], str.vcomp_init_thread_data
mov dword [esp + 4], 0x10008064
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1
jmp 0x10004933
Function at 0x10005c60
Capabilities:
Get process heap flags
Get thread local storage value
Set thread local storage value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push ecx
sub esp, 0x10
test byte [0x10008064], 8
jne 0x10005c98
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x10005cc0
mov eax, dword [ebx + 0xc]
lea esp, [ebp - 8]
pop ecx
pop ebx
pop ebp
ret
mov dword [esp + 0xc], 0x1000a086
mov dword [esp + 8], str.omp_in_parallel
mov dword [esp + 4], 0x10008064
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x10005c71
mov dword [esp + 8], 0x60
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_HeapAlloc]
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x10005d4e
movdqu xmm0, xmmword [0x1000a7e0]
mov dword [eax], 0
lea eax, [eax + 0x38]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 0x10], 0
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
movups xmmword [ebx + 0x20], xmm0
mov dword [esp + 4], ebx
mov eax, dword [0x10008058]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsSetValue]
mov eax, dword [ebx + 0xc]
sub esp, 8
lea esp, [ebp - 8]
pop ecx
pop ebx
pop ebp
ret
test byte [0x10008064], 2
jne 0x10005d64
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
mov dword [esp + 0xc], str.could_not_create_thread_data_n
mov dword [esp + 8], str.vcomp_init_thread_data
mov dword [esp + 4], 0x10008064
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1
jmp 0x10005d57