joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1000afa0
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x10058014]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebx + 4]
add eax, 0x18
lock inc dword [eax]
cmp byte [ebp + 0x18], 0
je 0x1000b034
mov esi, dword [ebx + 4]
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
push edi
push 2
push 0
mov dword [edi + 0x1c], 1
mov dword [edi], 0x10058068
push dword [esi + 0x14]
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x1000b0ef
lea ebx, [esi + 0x38]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [edi + 0x14], 0
mov eax, dword [esi + 0x58]
test eax, eax
je 0x1000b01e
mov dword [eax + 0x14], edi
jmp 0x1000b021
mov dword [esi + 0x54], edi
mov dword [esi + 0x58], edi
lea eax, [esi + 0x34]
mov ecx, 1
xchg dword [eax], ecx
push ebx
jmp 0x1000b0e9
mov eax, dword [ecx]
cmp eax, 0xffffffff
jne 0x1000b047
mov esi, dword [ebx + 4]
mov dword [edi + 8], 0x2719
jmp 0x1000afd7
push 0
push edi
push dword [ebp + 0x14]
lea ecx, [ebp - 8]
mov dword [ebp - 8], 0
push ecx
push dword [ebp + 0x10]
push edx
push eax
call dword [sym.imp.WS2_32.dll_WSASend]
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x4d2
mov ecx, 0x274d
cmove eax, ecx
test esi, esi
je 0x1000b094
cmp eax, 0x3e5
je 0x1000b094
mov esi, dword [ebx + 4]
mov dword [edi + 8], eax
mov eax, dword [ebp - 8]
mov dword [edi + 0xc], eax
jmp 0x1000afde
mov esi, dword [ebx + 4]
lea ecx, [edi + 0x1c]
mov ebx, 1
xor eax, eax
mov edx, ebx
lock cmpxchg dword [ecx], edx
cmp eax, ebx
jne 0x1000b0ef
push edi
push 2
push 0
push dword [esi + 0x14]
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x1000b0ef
lea eax, [esi + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [edi + 0x14], 0
mov eax, dword [esi + 0x58]
test eax, eax
je 0x1000b0da
mov dword [eax + 0x14], edi
jmp 0x1000b0dd
mov dword [esi + 0x54], edi
mov dword [esi + 0x58], edi
lea eax, [esi + 0x34]
xchg dword [eax], ebx
lea eax, [esi + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10041f5c
mov esp, ebp
pop ebp
ret 0x18
Function at 0x1000b110
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x10058014]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 0x1c]
push edi
mov edi, ecx
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 4]
add eax, 0x18
lock inc dword [eax]
cmp byte [ebp + 0x18], 0
je 0x1000b1a4
mov edi, dword [edi + 4]
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
push esi
push 2
push 0
mov dword [esi + 0x1c], 1
mov dword [esi], 0x10058068
push dword [edi + 0x14]
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x1000b272
lea ebx, [edi + 0x38]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [esi + 0x14], 0
mov eax, dword [edi + 0x58]
test eax, eax
je 0x1000b18e
mov dword [eax + 0x14], esi
jmp 0x1000b191
mov dword [edi + 0x54], esi
mov dword [edi + 0x58], esi
lea eax, [edi + 0x34]
mov ecx, 1
xchg dword [eax], ecx
push ebx
jmp 0x1000b26c
mov ecx, dword [ecx]
cmp ecx, 0xffffffff
jne 0x1000b1b7
mov edi, dword [edi + 4]
mov dword [esi + 8], 0x2719
jmp 0x1000b147
mov eax, dword [ebp + 0x14]
push 0
push esi
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push dword [ebp + 0x10]
push edx
push ecx
call dword [sym.imp.WS2_32.dll_WSARecv]
mov ebx, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x40
jne 0x1000b1ee
mov eax, 0x2746
jmp 0x1000b1fb
cmp eax, 0x4d2
mov ecx, 0x274d
cmove eax, ecx
test ebx, ebx
je 0x1000b217
cmp eax, 0x3e5
je 0x1000b217
mov edi, dword [edi + 4]
mov dword [esi + 8], eax
mov eax, dword [ebp - 8]
mov dword [esi + 0xc], eax
jmp 0x1000b14e
mov edi, dword [edi + 4]
lea ecx, [esi + 0x1c]
mov ebx, 1
xor eax, eax
mov edx, ebx
lock cmpxchg dword [ecx], edx
cmp eax, ebx
jne 0x1000b272
push esi
push 2
push 0
push dword [edi + 0x14]
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x1000b272
lea eax, [edi + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [esi + 0x14], 0
mov eax, dword [edi + 0x58]
test eax, eax
je 0x1000b25d
mov dword [eax + 0x14], esi
jmp 0x1000b260
mov dword [edi + 0x54], esi
mov dword [edi + 0x58], esi
lea eax, [edi + 0x34]
xchg dword [eax], ebx
lea eax, [edi + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10041f5c
mov esp, ebp
pop ebp
ret 0x18
Function at 0x1000d8d0
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x164
mov eax, dword [0x10058014]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov ebx, edx
mov dword [ebp - 0x164], eax
push edi
mov edx, ecx
mov dword [ebp - 0x160], ebx
xor edi, edi
mov dword [ebp - 0x15c], edx
mov dword [ebp - 0x18], 0x67452301
mov dword [ebp - 0x14], 0xefcdab89
mov dword [ebp - 0x10], 0x98badcfe
mov dword [ebp - 0xc], 0x10325476
mov dword [ebp - 8], 0xc3d2e1f0
cmp ebx, 0x40
jb 0x1000d99e
nop dword [eax]
lea eax, [edi + 0x40]
cmp edi, eax
jae 0x1000d983
lea eax, [edx + 2]
mov ebx, 0x10
add eax, edi
lea esi, [ebp - 0x158]
add edi, 0x40
nop word [eax + eax]
movzx edx, byte [eax - 2]
lea esi, [esi + 4]
movzx ecx, byte [eax - 1]
lea eax, [eax + 4]
shl edx, 8
or edx, ecx
movzx ecx, byte [eax - 4]
shl edx, 8
or edx, ecx
movzx ecx, byte [eax - 3]
shl edx, 8
or edx, ecx
mov dword [esi - 4], edx
sub ebx, 1
jne 0x1000d950
mov ebx, dword [ebp - 0x160]
lea edx, [ebp - 0x158]
lea ecx, [ebp - 0x18]
call fcn.1000d6a0
mov edx, dword [ebp - 0x15c]
lea eax, [ebx - 0x40]
cmp edi, eax
jbe 0x1000d930
sub ebx, edi
mov eax, 0xf
nop word [eax + eax]
mov dword [ebp + eax*4 - 0x158], 0
sub eax, 1
jns 0x1000d9b0
xor esi, esi
lea ecx, [esi + 3]
test ebx, ebx
je 0x1000d9fa
add edi, edx
nop dword [eax + eax]
mov eax, esi
lea edx, [ebp - 0x158]
shr eax, 2
lea edx, [edx + eax*4]
mov eax, esi
and eax, 3
sub ecx, eax
movzx eax, byte [edi + esi]
shl ecx, 3
inc esi
shl eax, cl
mov ecx, 3
or dword [edx], eax
cmp esi, ebx
jb 0x1000d9d0
mov eax, esi
lea edx, [ebp - 0x158]
shr eax, 2
and esi, 3
lea edx, [edx + eax*4]
sub ecx, esi
shl ecx, 3
mov eax, 0x80
shl eax, cl
or dword [edx], eax
cmp ebx, 0x38
jb 0x1000da50
lea edx, [ebp - 0x158]
lea ecx, [ebp - 0x18]
call fcn.1000d6a0
mov eax, 0xf
nop dword [eax]
nop word [eax + eax]
mov dword [ebp + eax*4 - 0x158], 0
sub eax, 1
jns 0x1000da40
mov eax, dword [ebp - 0x160]
lea edx, [ebp - 0x158]
shl eax, 3
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x11c], eax
call fcn.1000d6a0
mov esi, dword [ebp - 0x164]
mov edx, 0x13
mov eax, edx
mov ecx, edx
and eax, 0xfffffffc
not ecx
and ecx, 3
shl ecx, 3
mov eax, dword [ebp + eax - 0x18]
shr eax, cl
mov byte [esi + edx], al
sub edx, 1
jns 0x1000da78
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10041f5c
mov esp, ebp
pop ebp
ret
Function at 0x100253b0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1004654d
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x10058014]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], eax
sub esp, 0x28
mov dword [ebp - 4], 0
mov esi, esp
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x24], 0
mov byte [ebp - 4], 1
mov ecx, dword [ebp + 0x30]
test ecx, ecx
je 0x1002540c
mov eax, dword [ecx]
push esi
call dword [eax]
mov dword [esi + 0x24], eax
mov ecx, dword [edi + 0x80]
lea eax, [ebp - 0x4c]
push eax
call fcn.100297c0
mov esi, eax
mov byte [ebp - 4], 2
push dword [0x1005c574]
mov edi, dword [edi + 0x7c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea eax, [esi + 8]
push eax
push 0x58
call fcn.10008120
mov ebx, eax
add esp, 8
push esi
lea ecx, [ebx + 0x20]
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0x100333f0
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x1c], 0
call fcn.10033520
mov esi, dword [edi + 8]
lock inc dword [esi + 0x18]
push ebx
push 0
push 0
mov dword [ebx + 0x1c], 1
push dword [esi + 0x14]
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x100254d4
lea edi, [esi + 0x38]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebx + 0x14], 0
mov eax, dword [esi + 0x58]
test eax, eax
je 0x100254bd
mov dword [eax + 0x14], ebx
jmp 0x100254c0
mov dword [esi + 0x54], ebx
mov dword [esi + 0x58], ebx
lea eax, [esi + 0x34]
mov ecx, 1
xchg dword [eax], ecx
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x100254ec
mov edx, dword [ecx]
lea eax, [ebp - 0x44]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x30]
mov dword [ebx], 0
mov dword [ebx + 4], 0x10058030
test ecx, ecx
je 0x10025514
mov esi, dword [ecx]
lea eax, [ebp + 0xc]
cmp ecx, eax
setne dl
movzx edx, dl
push edx
call dword [esi + 0x10]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10041f5c
mov esp, ebp
pop ebp
ret 0x2c
Function at 0x100266a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x10058014]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
mov dword [ebp - 0x18], eax
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x10], esi
cmp byte [esi + 0xd], 0
mov dword [ebp - 0x14], edi
jge 0x10026703
mov eax, dword [esi + 0x48]
xor ecx, ecx
mov edx, dword [eax + 8]
mov dword [ebp - 8], edx
test edi, edi
je 0x100266f4
nop dword [eax]
mov eax, ecx
and eax, 3
mov al, byte [ebp + eax - 8]
xor byte [ebx + ecx], al
inc ecx
cmp ecx, edi
jb 0x100266e0
mov eax, dword [esi + 0x48]
mov ecx, edi
and ecx, 3
je 0x10026700
shl ecx, 3
ror edx, cl
mov dword [eax + 8], edx
mov eax, dword [esi + 0x48]
mov esi, dword [eax]
add esi, 0x38
mov edx, dword [esi + 0x14]
mov eax, edx
mov ecx, dword [esi + 0x10]
sub eax, ecx
mov dword [ebp - 8], ecx
cmp edi, eax
ja 0x1002674c
mov dword [ebp - 0xc], esi
lea eax, [edi + ecx]
mov dword [esi + 0x10], eax
mov eax, esi
cmp edx, 0x10
jb 0x10026731
mov eax, dword [esi]
mov dword [ebp - 0xc], eax
push edi
add eax, ecx
push ebx
push eax
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0xc]
add esp, 0xc
mov ecx, dword [ebp - 8]
add eax, edi
mov byte [eax + ecx], 0
jmp 0x1002675d
push edi
push ebx
mov byte [ebp - 0xc], 0
mov ecx, esi
push dword [ebp - 0xc]
push edi
call fcn.10014790
mov ebx, dword [ebp - 0x10]
mov ebx, dword [ebx + 0x48]
mov eax, dword [ebx]
cmp dword [eax + 0x50], 1
jne 0x100267da
cmp dword [esi + 0x14], 0x10
mov ecx, esi
jb 0x10026775
mov ecx, dword [esi]
mov edx, dword [esi + 0x10]
add edx, ecx
cmp dword [esi + 0x14], 0x10
jb 0x10026782
mov esi, dword [esi]
mov eax, dword [ebp - 8]
add eax, esi
cmp eax, edx
je 0x100267da
mov esi, dword [ebx + 0xc]
nop
movzx edi, byte [eax]
movzx ecx, byte [edi + 0x1004a828]
mov dword [ebp - 8], ecx
test esi, esi
je 0x100267ae
mov ecx, dword [ebx + 0x10]
and edi, 0x3f
shl ecx, 6
or edi, ecx
jmp 0x100267b7
mov esi, 0xff
sar esi, cl
and edi, esi
mov esi, dword [ebp - 8]
mov dword [ebx + 0x10], edi
mov ecx, dword [ebx + 0xc]
add ecx, ecx
movzx esi, byte [esi + ecx*8 + 0x1004a928]
mov dword [ebx + 0xc], esi
cmp esi, 1
je 0x100267f5
inc eax
cmp eax, edx
jne 0x10026790
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
sub dword [eax + 0x18], edi
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10041f5c
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1005bd5c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1005bdbc]
cmp eax, dword [ecx + 4]
jle 0x10026852
push 0x1005bdbc
call fcn.1004207b
add esp, 4
cmp dword [0x1005bdbc], 0xffffffff
jne 0x10026852
push 0x10048ff0
mov dword [0x1005bdb0], 0x1005bdac
mov dword [0x1005bdac], 0x1004df4c
call fcn.10042798
push 0x1005bdbc
call fcn.10042031
add esp, 8
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov dword [eax], 0x10
xor ecx, ebp
mov dword [eax + 4], 0x1005bdac
xor eax, eax
pop ebx
call fcn.10041f5c
mov esp, ebp
pop ebp
ret 0xc
Function at 0x10031f50
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1004771d
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
push ebx
push esi
push edi
mov eax, dword [0x10058014]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
lea eax, [esi + 8]
push eax
lea ecx, [ebp - 0x70]
call fcn.10035fe0
mov eax, dword [ebp + 8]
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0xc]
movq qword [ebp - 0x30], xmm0
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0
lea ebx, [esi + 4]
mov eax, dword [esi]
push dword [0x1005c574]
mov esi, dword [ebx]
mov dword [ebp - 0x10], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x10031fd0
cmp dword [eax], esi
je 0x100320e2
mov eax, dword [eax + 8]
test eax, eax
jne 0x10031fc1
lea eax, [ebp - 0x70]
push eax
push 0x78
mov dword [ebp - 0x1c], eax
call fcn.10008120
add esp, 8
mov edi, eax
mov byte [ebp - 4], 2
lea ecx, [edi + 0x28]
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 0x10037660
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x1c], 0
mov eax, dword [ebp - 0x70]
mov dword [edi + 0x20], eax
lea eax, [ebp - 0x68]
push eax
call fcn.10016c90
mov ecx, dword [ebp - 0x10]
mov dword [edi + 0x58], 0
mov dword [edi + 0x5c], 0
mov eax, dword [ebp - 0x38]
mov dword [edi + 0x58], eax
mov eax, dword [ebp - 0x34]
mov dword [edi + 0x5c], eax
movq xmm0, qword [ebp - 0x30]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
movq qword [edi + 0x60], xmm0
mov eax, dword [ebp - 0x28]
push edi
mov dword [edi + 0x68], eax
mov eax, dword [ebp - 0x24]
push ebx
mov dword [edi + 0x6c], eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
call fcn.1000baa0
lea ecx, [ebp - 0x1c]
call fcn.10036f50
mov esi, dword [ebp - 0x34]
test esi, esi
je 0x100320b6
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x100320b6
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x100320b6
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x100320ce
mov edx, dword [ecx]
lea eax, [ebp - 0x60]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [eax + 4], 0
je 0x10031fd0
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 1
push eax
push eax
call fcn.10034ba0
add esp, 8
jmp 0x1003208e
Function at 0x10034cc0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10047bab
mov eax, dword fs:[0]
push eax
sub esp, 0xac
push ebx
push esi
push edi
mov eax, dword [0x10058014]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov ebx, ecx
mov eax, dword [edi + 8]
mov dword [ebp - 0xb4], eax
mov al, byte [edi + 0x10]
mov byte [ebp - 0xac], al
lea eax, [ebp - 0xa4]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x80], 0
mov dword [ebp - 4], 0
mov ecx, dword [edi + 0x3c]
test ecx, ecx
je 0x10034d2d
mov eax, dword [ecx]
lea edx, [ebp - 0xa4]
push edx
call dword [eax]
mov dword [ebp - 0x80], eax
mov eax, dword [edi + 0x40]
lea esi, [ebx + 0x10]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebx]
mov dword [ebp - 0x74], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x70], ecx
lea ecx, [ebp - 0x64]
push esi
mov dword [ebp - 0x6c], eax
call fcn.10016c90
mov eax, dword [esi + 0x30]
movq xmm0, qword [ebx + 0x48]
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 0x50]
movq qword [ebp - 0x2c], xmm0
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 1
lea ebx, [edi + 4]
push dword [0x1005c574]
mov edi, dword [edi]
mov esi, dword [ebx]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x10034d93
cmp dword [eax], esi
je 0x10034e64
mov eax, dword [eax + 8]
test eax, eax
jne 0x10034d84
lea eax, [ebp - 0xb4]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x6c]
push eax
push 0xc0
call fcn.10008120
add esp, 8
mov esi, eax
mov byte [ebp - 4], 3
lea eax, [ebp - 0xb4]
push eax
lea ecx, [esi + 0x20]
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0x10038710
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 0
call fcn.10038820
push esi
push ebx
mov ecx, edi
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
call fcn.1000baa0
lea ecx, [ebp - 0x1c]
call fcn.10038690
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x10034e37
mov edx, dword [ecx]
lea eax, [ebp - 0x5c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov dword [ebp - 0x38], 0
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x10034e52
mov edx, dword [ecx]
lea eax, [ebp - 0xa4]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [eax + 4], 0
je 0x10034d93
lea eax, [ebp - 0xb4]
mov byte [ebp - 4], 2
push eax
push eax
call fcn.10039610
add esp, 8
jmp 0x10034e18
Function at 0x10034e90
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10047bf3
mov eax, dword fs:[0]
push eax
sub esp, 0xc4
push ebx
push esi
push edi
mov eax, dword [0x10058014]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov esi, ecx
mov eax, dword [edi + 8]
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0xc8], eax
lea eax, [edi + 0x10]
push eax
call fcn.1002f7f0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x80], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x78], eax
lea eax, [esi + 0x10]
mov dword [ebp - 0x7c], ecx
lea ecx, [ebp - 0x70]
push eax
call fcn.1001cc60
movq xmm0, qword [esi + 0x50]
mov eax, dword [esi + 0x58]
movq qword [ebp - 0x30], xmm0
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], 0
lea ebx, [edi + 4]
push dword [0x1005c574]
mov edi, dword [edi]
mov esi, dword [ebx]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x10034f31
cmp dword [eax], esi
je 0x10035010
mov eax, dword [eax + 8]
test eax, eax
jne 0x10034f22
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x78]
push eax
push 0xd0
call fcn.10008120
add esp, 8
mov esi, eax
mov byte [ebp - 4], 2
lea ecx, [esi + 0x28]
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0x10038a60
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 0
mov eax, dword [ebp - 0xc8]
mov dword [esi + 0x20], eax
lea eax, [ebp - 0xc0]
push eax
call fcn.1001cc60
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x7c]
mov dword [esi + 0x68], eax
mov dword [esi + 0x6c], ecx
lea ecx, [esi + 0x78]
mov eax, dword [ebp - 0x78]
mov dword [esi + 0x70], eax
lea eax, [ebp - 0x70]
push eax
call fcn.1001cc60
movq xmm0, qword [ebp - 0x30]
mov ecx, edi
movq qword [esi + 0xb8], xmm0
mov eax, dword [ebp - 0x28]
push esi
push ebx
mov dword [esi + 0xc0], eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
call fcn.1000baa0
lea ecx, [ebp - 0x70]
call fcn.10016d90
lea ecx, [ebp - 0xc0]
call fcn.10016d90
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [eax + 4], 0
je 0x10034f31
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 1
push eax
push eax
call fcn.10039b50
add esp, 8
jmp 0x10034feb
Function at 0x10035870
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10047cbd
mov eax, dword fs:[0]
push eax
sub esp, 0x74
push ebx
push esi
push edi
mov eax, dword [0x10058014]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 8]
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x78], eax
lea eax, [esi + 0x10]
push eax
call fcn.10029da0
mov eax, dword [ebp + 8]
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0xc]
movq qword [ebp - 0x30], xmm0
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0
lea edi, [esi + 4]
mov ebx, dword [esi]
push dword [0x1005c574]
mov esi, dword [edi]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x100358ef
cmp dword [eax], esi
je 0x1003590a
mov eax, dword [eax + 8]
test eax, eax
jne 0x100358e4
mov esi, dword [ebp - 0x78]
lea eax, [ebp - 0x78]
mov dword [ebp - 0x18], eax
cmp byte [esi + 0x400], 0
jne 0x10035926
mov byte [esi + 0x400], 1
jmp 0x10035935
cmp dword [eax + 4], 0
je 0x100358ef
lea eax, [ebp - 0x78]
mov byte [ebp - 4], 1
push eax
push eax
call fcn.10039ac0
add esp, 8
jmp 0x100359b7
push 0x80
call fcn.1004234e
add esp, 4
mov esi, eax
mov byte [ebp - 4], 2
lea ecx, [esi + 0x28]
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0x10038d50
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 0
mov eax, dword [ebp - 0x78]
mov dword [esi + 0x20], eax
lea eax, [ebp - 0x70]
push eax
call fcn.1001cbd0
movq xmm0, qword [ebp - 0x30]
mov ecx, ebx
movq qword [esi + 0x68], xmm0
mov eax, dword [ebp - 0x28]
push esi
mov dword [esi + 0x70], eax
mov eax, dword [ebp - 0x24]
push edi
mov dword [esi + 0x74], eax
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
call fcn.1000baa0
lea ecx, [ebp - 0x18]
call fcn.10038bd0
mov esi, dword [ebp - 0x34]
test esi, esi
je 0x100359df
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x100359df
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x100359df
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x100359f7
mov edx, dword [ecx]
lea eax, [ebp - 0x60]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8