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

Disassembly:
push ss
fcomp qword [esi + 0x31]
sub esp, dword [edx]
xchg ah, dh
xchg byte [ecx], cl
mov dl, 0xe6
scasb al, byte es:[edi]
in eax, 0xef
xchg edi, eax
and al, 0xc3
ret 0xedde
mov al, byte [0x4ea80351]
jle 0x55dfb3
retf
pop eax
mov cl, 0xa3
pop edx
xor ebx, eax
xor edi, ebx
pop edi
jo 0x55df38
sub byte [0xd65b289f], al
ficom word [ebx - 0x47e45d32]
add eax, 0x76eb85ae
test ebx, ebp
jbe 0x55df05
sub dword [esi - 0xa], esi
mov eax, 0xeb85ae05
test ebx, ebp
jbe 0x55df05
sub dword [esi - 0xa], esi
out dx, al
lea edi, [eax - 0x52]
push esp
fcom qword [edi]
jg 0x55dfed
invalid
stosb byte es:[edi], al
jge 0x55df62
fdivr qword [edx - 0x69]
jle 0x55e02d
mov dh, byte [esi]
push cs
ret
cmp ah, byte [ebx + 0x6bda2003]
fdiv st(4)
pop dword [ebp + 0x41ef93b9]
psadbw mm7, qword [ecx + 0x77]
ror dword [ecx + 0x677e358e], 0x96
adc eax, 0x15184abe
cmpsd dword ds:[esi], dword es:[edi]
das
xchg ecx, eax
xlatb
retf
cmp eax, dword [edi]
pop eax
jo 0x55e04c
pop es
pop edx
jno 0x55e02f
and cl, byte [ecx - 0xe]
push ecx
mov ch, 0x45
loopne 0x55dfa7
cmpsb byte [esi], byte es:[edi]
mov eax, dword [0x8c585e29]
adc ebx, dword [esi - 0xfb04dac]
div byte [ebx + 0x3ce7f814]
xchg ebp, eax
lahf
out 0x72, al
dec eax
sahf
pop es
mov ss, eax
sbb eax, 0x94167e0e
imul ebp, dword [edx], 0xffffffd9
mov edi, 0x7957eb00
sub esi, dword [ebx]
invalid
mov edi, 0x61b60eae
push cs
mov dh, 0x61
mov ecx, 0xc92a564f
outsd dx, dword [esi]
xor al, 0xeb
xchg esi, eax
push edx
push edi
jge 0x55e000
je 0x55e0a8
pop ss
invalid
fcomi st(5)
pop eax
xchg dword [ebx], ecx
mov ah, 0x7c
arpl word [ecx + 0x58], si
adc al, 0x9c
mov bl, 0xc1
invalid
mov edi, 0x55d61681
push esi
xchg esp, eax
push 0x82d62d28
loop 0x55e0f1
fbld tbyte [edx - 0x4769e21e]
pop esp
push eax
test al, 0x2d
inc ecx
add byte [edi], ah
jne 0x55e142
cwde
sub dword [esi], ebp
or eax, 0x7d7353f
or dl, bh
pushal
mov bl, 0x5c
retf 0x9402
xchg esp, eax
or ch, byte [ecx]
xor dword [ebp + 0x5f], ecx
int1
push ebx
insd dword es:[edi], dx
mov cl, 0x61
pop ebp
pop ss
adc al, 0x3e
xchg dword [eax - 0x747d9b8], ebp
int1
invalid
push 0xfffffffffffffff8
int1
xchg esi, eax
or ch, bh
std
aad 0xdc
inc edi
jmp 0x15e110f7
mov bl, 0xcc
mov ebx, 0xa73eb53b
dec esi
stosd dword es:[edi], eax
or eax, 0x772d9301
push ecx
mov dh, 0x7f
out dx, al
jg 0x55e132
jne 0x55e0d4
inc esi
mov fs, word [ebx]
jge 0x55e195
into
adc ebx, dword [esi + 0x13a7ee97]
or ebp, dword [edi + 0x6a5b3e92]
clc
leave
cmp byte [edi - 0x150ae434], cl
cmp al, 0x75
cld
push edi
mov byte [0x83377125], al
or eax, edx
and al, 0x54
invalid
adc al, byte [ebx + 0x27b107f8]
clc
pop es
mov cl, 0x27
pop edx
lahf
jge 0x55e193
int3
Function at 0x58fd96
Capabilities:
Encode data using xor

Disassembly:
imul eax, dword [eax + 0x61], 0xde73ac03
dec edx
pop dword [edi]
mov bl, 0x38
xor dword [eax - 0x23e3d11a], 0xc
xchg edi, eax
dec esp
loopne 0x58fd9d
xchg edx, eax
in al, dx
add eax, 0x4cfaad18
cmc
inc ecx
jg 0x58fdc5
pop ebp
and eax, dword [ebx + 0x14]
or al, 0x7f
dec eax
hlt
mov dh, 0xe0
aaa
cwde
mov bh, 0xde
inc esi
call 0xdf96d9ef
and eax, 0x5888b8f4
sub dword [edx - 0x5107f20b], esi
push ss
add al, 0x79
mov ah, 0x8c
in al, 0x8f
add dword [ebx], ebp
fidivr word [edi + 0x5537ca54]
invalid

Function at 0x6107d6
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
cmp eax, 0x50
ja 0x6107f2
movzx ecx, byte [eax + 0x404d54]
jmp dword [ecx*4 + 0x404d44]
jmp 0x6472fe
push ecx
invalid
Function at 0x40e620
Capabilities:
Set console window title

Disassembly:
push ebp
push edi
mov edi, ecx
push esi
mov esi, edx
push ebx
mov ebx, eax
sub esp, 0x4c
mov dword [esp], 0x4bb064
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x4bb1a4]
sub esp, 4
mov dword [esp], 0x4be1c0
mov dword [esp + 0x38], eax
mov eax, dword [0x4bb1a0]
mov dword [esp + 0x3c], eax
call sym._strlen
mov ebp, eax
test ebx, ebx
jle 0x40e7a8
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], str.LSPM_s__d_
mov dword [esp], 0x4be1c0
call sym.sprintf_char__char_const__..._
cmp edi, 2
je 0x40e710
cmp edi, 1
je 0x40e71a
cmp edi, 2
jle 0x40e738
mov dword [esp + 4], 0x2c
mov dword [esp], str.LUMILOOP_TCP_Server_
call sym._strchr
test esi, esi
je 0x40e7c8
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], str.__LSPM__s_SN_d
mov dword [esp], eax
call sym.sprintf_char__char_const__..._
mov dword [esp], str.LUMILOOP_TCP_Server_
call sym._strlen
mov dword [esp], str.LUMILOOP_TCP_Server_
mov byte [eax + str.LUMILOOP_TCP_Server_], 0
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
sub esp, 4
mov dword [esp], 0x4bb064
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 1
sub esp, 4
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [0x25bf634]
test edx, edx
jne 0x40e738
mov dword [0x25bf634], ebx
test esi, esi
je 0x40e820
mov dword [esp + 4], esi
mov dword [esp], 0x25bf62c
call sym._strcpy
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x3c]
mov dword [esp], 2
add ebp, eax
mov eax, dword [0x4bb1a0]
test eax, eax
jle 0x40e7e0
call dword [0x495d44]
mov dword [esp + 0x20], 0x4bc1c0
mov dword [esp + 0x1c], 0x4be1c0
mov dword [esp + 0x18], 0x4bb1c0
mov dword [esp + 0x14], 0x4bc1c0
mov dword [esp + 0x10], 0x4be1c0
mov dword [esp + 0xc], 0x498a72
mov dword [esp + 8], ebp
mov dword [esp + 4], str._r_s_r_s_s_s_r_s_s
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x40e69c
mov dword [esp + 4], str.LSPM__
mov dword [esp], 0x4be1c0
call sym.sprintf_char__char_const__..._
jmp 0x40e681
mov dword [esp + 4], str.__LSPM___SN_
mov dword [esp], eax
call sym.sprintf_char__char_const__..._
jmp 0x40e6d0
call dword [0x495d44]
mov dword [esp + 0x14], 0x4bc1c0
mov dword [esp + 0x10], 0x4be1c0
mov dword [esp + 0xc], 0x498a72
mov dword [esp + 8], ebp
mov dword [esp + 4], str._r_s_r_s_s
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x40e69c
mov byte [0x25bf62c], 0
jmp 0x40e738
Function at 0x4291c0
Capabilities:
Write file on windows

Disassembly:
push edi
push esi
push ebx
sub esp, 0x110
mov dword [esp + 4], 0x49942b
mov dword [esp], 0x4bb0a0
call sym._fopen
test eax, eax
je 0x429257
mov edi, eax
mov eax, dword [0x4bb080]
mov ebx, 0x64
cmp eax, 0x64
cmovge ebx, eax
sub ebx, 0x64
cmp eax, ebx
jle 0x429247
lea esi, [esp + 0x10]
nop
mov eax, dword [0x4bb1ac]
mov eax, dword [eax + ebx*4]
mov dword [esp + 4], 0x49942e
add ebx, 1
mov dword [esp], esi
mov dword [esp + 8], eax
call sym.sprintf_char__char_const__..._
mov dword [esp], esi
call sym._strlen
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], esi
call sym._fwrite
cmp dword [0x4bb080], ebx
jg 0x429200
mov dword [esp], edi
call sym._fflush
mov dword [esp], edi
call sym._fclose
add esp, 0x110
pop ebx
pop esi
pop edi
ret

Function at 0x4292e0
Capabilities:
Set console window title

Disassembly:
sub esp, 0x1c
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
cmp ecx, 0xffffffff
je 0x429320
test ecx, ecx
jne 0x429310
cmp dword [0x25bf634], eax
je 0x429312
mov eax, ecx
add esp, 0x1c
ret
jle 0x429348
add esp, 0x1c
jmp sym._setPromptString.part.0
xor ecx, ecx
cmp dword [0x25bf634], eax
jne 0x429300
mov dword [esp + 4], 0x25bf62c
mov dword [esp], edx
call sym._strcmp
xor ecx, ecx
test eax, eax
sete cl
jmp 0x429300
xor ecx, ecx
jmp 0x429300
Function at 0x4431a0
Capabilities:
Hide graphical window

Disassembly:
sub esp, 0x1c
call dword [sym.imp.KERNEL32.dll_AllocConsole]
mov dword [esp + 4], 0
mov dword [esp], str.ConsoleWindowClass
call dword [sym.imp.USER32.dll_FindWindowA]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.USER32.dll_ShowWindow]
sub esp, 8
add esp, 0x1c
ret

Function at 0x4435a0
Capabilities:
Write file on windows

Disassembly:
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x450
mov esi, dword [eax + 0x73c]
lea edi, [esp + 0x2c]
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_time]
mov dword [esp], edi
lea edi, [esp + 0x30]
call dword [sym.imp.msvcrt.dll_localtime]
mov edx, dword [eax]
mov dword [esp + 0x1c], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x10], edx
mov ecx, dword [eax + 0x10]
lea edx, [ecx + 1]
mov dword [esp + 0xc], edx
mov eax, dword [eax + 0x14]
mov dword [esp], edi
add eax, 0x76c
mov dword [esp + 4], str._d_.2d_.2d__.2d_.2d_.2d
mov dword [esp + 8], eax
call sym.sprintf_char__char_const__..._
mov dword [esp + 8], esi
lea esi, [esp + 0x150]
mov dword [esp + 4], 0x49d840
mov dword [esp], esi
call sym.sprintf_char__char_const__..._
mov eax, dword [ebx + 0x18c]
mov dword [esp + 0x18], edi
lea edi, [esp + 0x250]
mov dword [esp + 0x10], str.extCalLog
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], 0x5c
mov dword [esp + 8], esi
mov dword [esp + 4], str._s_c_s__d__s.csv
mov dword [esp], edi
call sym.sprintf_char__char_const__..._
mov dword [esp], esi
call dbg.opendir
test eax, eax
je 0x443738
mov dword [esp + 4], 0x49d899
mov dword [esp], edi
call sym._fopen
mov dword [ebx + 0x734], eax
test eax, eax
je 0x443760
mov eax, dword [ebx + 0x1cc]
mov eax, dword [eax]
test ah, 8
jne 0x443700
lea esi, [esp + 0x50]
xor eax, eax
mov ecx, 0x40
mov edi, esi
rep stosd dword es:[edi], eax
mov dword [esp + 4], str.RSSI1_tRSSI2_tRSSI3_tT_tf_tP1_tP2_tP3_tSerNo_LSPM_tMode_tFW_LSPM_tFW_Server_tt_tcal:ext_tfLpP_t123a_n
mov dword [esp], esi
call sym.sprintf_char__char_const__..._
mov dword [esp], esi
call sym._strlen
mov edx, dword [ebx + 0x734]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp], esi
call sym._fwrite
mov eax, dword [ebx + 0x734]
mov dword [esp], eax
call sym._fflush
add esp, 0x450
pop ebx
pop esi
pop edi
ret
mov eax, dword [ebx + 0x18c]
mov dword [esp + 8], edi
mov dword [esp], str.DEBUG:_d:_external_calibration_logging_file__s_opened._n
mov dword [esp + 4], eax
call sym._pprintf
mov eax, dword [ebx + 0x734]
test eax, eax
jne 0x44369b
add esp, 0x450
pop ebx
pop esi
pop edi
ret
mov eax, dword [ebx + 0x18c]
mov dword [esp + 8], esi
mov dword [esp], str.ERROR:_d:openExtCalLogFile__:Cannot_open_directory__s_n
mov dword [esp + 4], eax
call sym._pprintf
add esp, 0x450
pop ebx
pop esi
pop edi
ret
mov eax, dword [ebx + 0x18c]
mov dword [esp + 8], edi
mov dword [esp], str.ERROR:_d:openExtCalLogFile__:failed_to_open_external_calibration_logging_file__s._n
mov dword [esp + 4], eax
call sym._pprintf
jmp 0x4436ee
Function at 0x453bf0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x24
mov esi, dword [esp + 0x38]
mov dword [esp + 0x13], 0x33323130
mov dword [esp + 0x17], 0x37363534
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x1b], 0x42413938
mov dword [esp + 0x1f], 0x46454443
mov byte [esp + 0x23], 0
test esi, esi
jne 0x453c60
xor ebx, ebx
test ebp, ebp
je 0x453c4e
mov eax, dword [esp + 0x3c]
mov ebx, 1
mov byte [eax], 0x30
cmp ebx, ebp
jae 0x453c4e
mov eax, dword [esp + 0x3c]
mov byte [eax + ebx], 0
add esp, 0x24
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
cmp al, 8
je 0x453d48
cmp al, 0x10
je 0x453cb0
cmp al, 2
je 0x453d30
test esi, esi
jns 0x453d60
test dl, dl
je 0x453d60
neg esi
test ebp, ebp
je 0x453d7d
mov eax, dword [esp + 0x3c]
mov edi, 0xa
mov ecx, 0x3b9aca00
mov ebx, 1
mov byte [eax], 0x2d
jmp 0x453cbc
mov edi, 0x10
mov ecx, 0x10000000
xor ebx, ebx
mov eax, ecx
cmp esi, ecx
jae 0x453d78
lea esi, [esi]
lea esi, [esi]
xor edx, edx
div edi
cmp eax, esi
ja 0x453cd0
mov dword [esp], edi
mov ecx, eax
jmp 0x453d13
movsx eax, al
mov edi, dword [esp + 0x3c]
add ebx, 1
movzx edx, byte [esp + eax + 0x13]
imul eax, ecx
mov byte [edi + ebx - 1], dl
mov edi, dword [esp]
xor edx, edx
sub esi, eax
mov eax, ecx
div edi
cmp ecx, edi
jb 0x453c42
cmp ebp, ebx
jbe 0x453c42
mov ecx, eax
mov eax, esi
xor edx, edx
div ecx
cmp ebx, ebp
jb 0x453ce0
add esp, 0x24
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, 2
mov ecx, Ordinal_4
xor ebx, ebx
jmp 0x453cbc
mov edi, 8
mov ecx, 0x40000000
xor ebx, ebx
jmp 0x453cbc
mov edi, 0xa
mov ecx, 0x3b9aca00
xor ebx, ebx
jmp 0x453cbc
mov dword [esp], edi
jmp 0x453d13
xor ebx, ebx
mov edi, 0xa
mov ecx, 0x3b9aca00
jmp 0x453cbc
Function at 0x453e10
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x3f], 0x33323130
mov dword [esp + 0x43], 0x37363534
mov ebx, dword [esp + 0x84]
mov edi, eax
mov dword [esp + 0x18], eax
mov ecx, edx
mov eax, dword [esp + 0x80]
or ecx, edi
mov dword [esp + 0x1c], edx
mov ebp, edx
mov byte [esp + 0x20], al
mov dword [esp + 0x47], 0x42413938
mov dword [esp + 0x4b], 0x46454443
mov byte [esp + 0x4f], 0
jne 0x453ea0
mov edx, dword [esp + 0x7c]
xor ebp, ebp
test edx, edx
je 0x453e8e
mov eax, dword [esp + 0x78]
mov ebp, 1
mov byte [eax], 0x30
nop
cmp ebp, dword [esp + 0x7c]
jae 0x453e8e
mov eax, dword [esp + 0x78]
mov byte [eax + ebp], 0
add esp, 0x5c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
cmp al, 8
je 0x454010
cmp al, 0x10
je 0x453f08
cmp al, 2
je 0x454010
mov eax, edi
test edx, edx
jns 0x454020
test bl, bl
je 0x454020
neg eax
adc edx, 0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x7c]
xor ebp, ebp
neg edx
mov dword [esp + 0x1c], edx
test eax, eax
je 0x453eeb
mov eax, dword [esp + 0x78]
mov ebp, 1
mov byte [eax], 0x2d
mov byte [esp + 0x20], 0xa
mov esi, 0xa
xor edi, edi
mov ebx, 0x89e80000
mov ecx, 0x8ac72304
jmp 0x453f30
xor ebx, ebx
mov ecx, 0x10000000
mov eax, edi
cmp eax, ebx
mov eax, edx
sbb eax, ecx
jae 0x454040
movsx esi, byte [esp + 0x20]
xor ebp, ebp
mov edi, esi
sar edi, 0x1f
lea esi, [esi]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
call sym.___udivdi3
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
cmp eax, ebx
mov eax, edx
sbb eax, ecx
jb 0x453f30
movsx eax, byte [esp + 0x20]
mov esi, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], eax
sar eax, 0x1f
mov dword [esp + 0x24], eax
jmp 0x453fd6
movsx ecx, al
mov edi, dword [esp + 0x78]
add ebp, 1
movzx eax, byte [esp + ecx + 0x3f]
mov byte [edi + ebp - 1], al
mov eax, ecx
cdq
mov dword [esp + 4], esi
mov edi, edx
mov edx, esi
mov dword [esp], ebx
imul edx, ecx
imul edi, ebx
add edi, edx
mul ebx
add edx, edi
sub dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
sbb dword [esp + 0x1c], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call sym.___udivdi3
cmp ebx, dword [esp + 0x2c]
sbb esi, dword [esp + 0x24]
jb 0x453e80
cmp dword [esp + 0x7c], ebp
jbe 0x453e80
mov ebx, eax
mov esi, edx
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp], eax
mov dword [esp + 4], edx
call sym.___udivdi3
cmp ebp, dword [esp + 0x7c]
jb 0x453f70
add esp, 0x5c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
xor ebx, ebx
mov ecx, Ordinal_4
mov eax, edi
mov edx, ebp
jmp 0x453f11
mov byte [esp + 0x20], 0xa
mov eax, dword [esp + 0x18]
mov ebx, 0x89e80000
mov ecx, 0x8ac72304
mov edx, dword [esp + 0x1c]
jmp 0x453f11
xor ebp, ebp
jmp 0x453f58
Function at 0x46d930
Capabilities:
Contain obfuscated stackstrings
Print debug messages

Disassembly:
push edi
xor eax, eax
mov ecx, 0x10
sub esp, 0x88
lea edi, [esp + 0x40]
mov dword [esp + 0x15], 0x6f727245
mov dword [esp + 0x19], 0x6c632072
mov dword [esp + 0x1d], 0x696e6165
mov dword [esp + 0x21], 0x7520676e
mov dword [esp + 0x25], 0x70732070
mov dword [esp + 0x29], 0x6b5f6e69
mov dword [esp + 0x2d], 0x20737965
mov dword [esp + 0x31], 0x20726f66
mov dword [esp + 0x35], 0x65726874
mov dword [esp + 0x39], 0x206461
mov dword [esp + 0x3d], 0
mov dword [esp + 0x7c], 0
rep stosd dword es:[edi], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea edx, [esp + 0x3c]
mov dword [esp + 8], 0xa
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__ultoa]
cmp byte [esp + 0x3c], 0
je 0x46da0b
mov eax, 0x27
lea edx, [esp + 0x15]
jmp 0x46d9dd
cmp eax, 0x6a
je 0x46d9fa
mov ecx, eax
add eax, 1
cmp byte [edx + eax], 0
jne 0x46d9d8
cmp eax, 0x6a
je 0x46d9fa
add ecx, 2
mov byte [esp + eax + 0x15], 0xa
mov byte [esp + ecx + 0x15], 0
mov dword [esp], edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
sub esp, 4
call sym._abort
mov ecx, 0x28
mov eax, 0x27
lea edx, [esp + 0x15]
jmp 0x46d9f0

Function at 0x46dd60
Capabilities:
Allocate thread local storage

Disassembly:
push edi
mov eax, 0x25d0514
push esi
push ebx
sub esp, 0x10
call dbg.enterOnceObject
lea esi, [eax + 4]
mov ebx, eax
mov dword [esp], esi
call dbg.pthread_mutex_lock
mov edi, dword [0x25d0514]
test edi, edi
jne 0x46ddc8
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x495c8c], eax
cmp eax, 0xffffffff
je sym.__pthread_once_raw.part.0.constprop.0.cold
mov dword [0x25d0514], 1
mov dword [esp], esi
call dbg.pthread_mutex_unlock
test ebx, ebx
je 0x46ddb8
mov eax, ebx
call sym._leaveOnceObject.part.0
add esp, 0x10
xor eax, eax
pop ebx
pop esi
pop edi
ret
cmp edi, 1
je 0x46dda5
mov dword [esp], 2
call dword [0x495d44]
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x25d0514
mov dword [esp + 4], str._once__p_is__d_n
mov dword [esp], eax
call sym._fprintf_4
jmp 0x46dda5
Function at 0x46de00
Capabilities:
Set thread local storage value

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
call sym._pop_pthread_mem
mov edx, dword [entry3]
test edx, edx
je 0x46df30
mov ebx, eax
test eax, eax
je 0x46df30
mov dword [eax + 0x24], 1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebx + 0x3c], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [ebx + 0x1c], 0xffffffff
mov dword [ebx + 0x18], eax
sub esp, 0x10
lea eax, [ebx + 0x38]
mov dword [esp], eax
call dbg.pthread_spin_destroy
cmp eax, 1
je 0x46df3c
mov ebp, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebx + 0x38], 0xffffffff
mov dword [ebx + 0x64], 0
mov dword [ebx + 0x14], 0
call ebp
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov esi, eax
call ebp
lea edx, [ebx + 0x14]
mov dword [esp + 8], edi
mov dword [esp + 0x18], 2
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
sub esp, 0x1c
test eax, eax
je sym.___pthread_self_lite.part.0.cold
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov dword [ebx + 0x68], 0
mov dword [ebx + 0x6c], eax
movzx eax, byte [ebx + 0x20]
sub esp, 4
and eax, 0xffffffcf
or eax, 0x10
mov byte [ebx + 0x20], al
mov eax, dword [0x495c8c]
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
sub esp, 8
test eax, eax
je 0x46df41
add esp, 0x2c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
add esp, 0x2c
xor ebx, ebx
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
call sym._replace_spin_keys.part.0
jmp sym.___pthread_self_lite.part.0.cold

Function at 0x46df50
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
sub esp, 0x1c
cmp dword [0x25d0514], 1
je 0x46df61
call sym.__pthread_once_raw.part.0.constprop.0
mov eax, dword [0x495c8c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x46df80
add esp, 0x1c
ret
add esp, 0x1c
jmp sym.___pthread_self_lite.part.0
Function at 0x46e0ca
Capabilities:
Set thread local storage value

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, 0x28
mov eax, dword [ecx]
mov esi, eax
mov dword [ebp - 0x1c], eax
call dbg._fpreset
mov dword [esp], 0x495c84
lea ebx, [esi + 0x1c]
call dbg.pthread_mutex_lock
mov dword [esp], ebx
call dbg.pthread_mutex_lock
cmp dword [0x25d0514], 1
je 0x46e105
call sym.__pthread_once_raw.part.0.constprop.0
mov esi, dword [ebp - 0x1c]
mov eax, dword [0x495c8c]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push edi
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esi + 0x3c], eax
mov dword [esp], ebx
call dbg.pthread_mutex_unlock
lea eax, [esi + 0x70]
mov dword [esp + 4], 0
mov dword [esp], eax
call sym.__setjmp3
test eax, eax
je 0x46e1cf
mov dword [esp], 0x495c84
call dbg.pthread_mutex_lock
mov esi, dword [ebp - 0x1c]
lea ebx, [esi + 0x1c]
mov dword [esp], ebx
call dbg.pthread_mutex_lock
mov eax, esi
mov esi, dword [esi + 4]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x46e178
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
je 0x46e222
mov dword [esp], ebx
call dbg.pthread_mutex_unlock
mov dword [esp], ebx
call dbg.pthread_mutex_destroy
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x1c], 0xffffffff
mov dword [eax + 0x68], 1
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp], 0x495c84
call dbg.pthread_mutex_unlock
test eax, eax
jne 0x46e219
mov dword [esp], 0
call ebx
push eax
jmp 0x46e1b3
mov dword [esp], 0x495c84
call dbg.pthread_mutex_unlock
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 8]
test eax, eax
je 0x46e25f
mov edx, dword [edx + 4]
mov dword [esp], edx
call eax
mov ebx, eax
mov dword [esp], 0x495c84
call dbg.pthread_mutex_lock
mov eax, dword [ebp - 0x1c]
mov dword [eax + 4], ebx
mov eax, dword [eax + 0xb4]
test eax, eax
je 0x46e154
call sym.__pthread_cleanup_dest.part.0
jmp 0x46e154
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll__endthreadex]
mov edi, dword [ebp - 0x1c]
mov dword [edi], 0xdeadbeef
mov dword [esp], ebx
call dbg.pthread_mutex_unlock
mov dword [esp], ebx
call dbg.pthread_mutex_destroy
mov eax, edi
call sym._push_pthread_mem
mov eax, dword [0x495c8c]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push edx
push edx
jmp 0x46e1ad
mov ebx, pe_nt_image_headers32
jmp 0x46e1ef