joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14001d600
Capabilities:
Write file on windows

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x30
cmp byte [0x1400ba010], 0
jne 0x14001d706
mov byte [0x1400ba010], 1
call sym.__cxa_current_exception_type
test rax, rax
je 0x14001d6dc
mov rbx, qword [rax + 8]
lea r9, [rsp + 0x2c]
xor eax, eax
cmp byte [rbx], 0x2a
mov dword [rsp + 0x2c], 0xffffffff
sete al
xor r8d, r8d
xor edx, edx
add rbx, rax
mov rcx, rbx
call sym.__cxa_demangle
mov ecx, 2
mov rsi, qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rdi, rax
call rsi
mov edx, 1
mov r8d, 0x30
lea rcx, str.terminate_called_after_throwing_an_instance_of_
mov r9, rax
call sym.fwrite
mov edx, dword [rsp + 0x2c]
mov ecx, 2
test edx, edx
je 0x14001d6cd
call rsi
mov rcx, rbx
mov rdx, rax
call sym.fputs
mov ecx, 2
call rsi
mov r8d, 2
mov edx, 1
lea rcx, [0x1400bcc71]
mov r9, rax
call sym.fwrite
mov eax, dword [rsp + 0x2c]
test eax, eax
jne 0x14001d6c8
mov rcx, rdi
call sym.free
call sym.__cxa_rethrow
call rsi
mov rcx, rdi
mov rdx, rax
call sym.fputs
jmp 0x14001d697
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8d, 0x2d
mov edx, 1
lea rcx, str.terminate_called_without_an_active_exception_n
mov r9, rax
call sym.fwrite
call sym.abort
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8d, 0x1d
mov edx, 1
lea rcx, str.terminate_called_recursively_n
mov r9, rax
call sym.fwrite
call sym.abort
sub rdx, 1
mov rcx, rax
jne 0x14001d79b
call sym.__cxa_begin_catch
mov rcx, rax
mov rax, qword [rax]
call qword [rax + 0x10]
mov ecx, 2
mov rbx, rax
call rsi
mov r9, rax
mov r8d, 0xb
mov edx, 1
lea rcx, str.__what__:
call sym.fwrite
mov ecx, 2
call rsi
mov rdx, rax
mov rcx, rbx
call sym.fputs
mov ecx, 2
call rsi
mov rdx, rax
mov ecx, 0xa
call sym.fputc
call sym.__cxa_end_catch
jmp 0x14001d701
call sym.__cxa_begin_catch
call sym.__cxa_end_catch
jmp 0x14001d701

Function at 0x14007c430
Capabilities:
Read file on windows

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov r12, qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov rdi, rcx
mov rsi, rdx
mov ebx, r8d
mov rcx, qword [rdi]
call sym.fileno
mov ecx, eax
mov r8d, ebx
mov rdx, rsi
call sym.read
cmp eax, 0xffffffff
movsxd rbp, eax
je 0x14007c478
mov rax, rbp
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
call r12
cmp dword [rax], 4
je 0x14007c44a
mov rax, rbp
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
Function at 0x14008ee60
Capabilities:
Read file on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rax, qword [rcx + 8]
test rax, rax
mov rdi, rcx
je 0x14008ee88
mov rcx, qword [rcx]
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
jmp rax
mov rbp, qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
lea rsi, [rsp + 0x2c]
mov ebx, 4
nop dword [rax]
mov ecx, dword [rdi + 0x10]
mov r8d, ebx
mov rdx, rsi
call sym.read
test eax, eax
jle 0x14008eed0
cdqe
add rsi, rax
sub rbx, rax
jne 0x14008eea0
mov eax, dword [rsp + 0x2c]
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
cmp eax, 0xffffffff
jne 0x14008eedc
call rbp
cmp dword [rax], 4
je 0x14008eea0
lea rcx, str.random_device_could_not_be_read
call method.std.__throw_runtime_error_char_const_
nop
nop
nop
nop
nop
nop
nop
nop

Function at 0x1400b5b30
Capabilities:
Query environment variable

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
lea rcx, [0x1400b7800]
xor edx, edx
movabs rdi, 0x2e78786362696c67
movabs r12, 0x6c6f6f705f68652e
call sym.pthread_mutex_init
lea rcx, str.GLIBCXX_TUNABLES
pxor xmm0, xmm0
mov qword [0x1400b7818], 0
movups xmmword [0x1400b7808], xmm0
call sym.getenv
mov dword [rsp + 0x40], 0
mov rbx, rax
mov dword [rsp + 0x58], 0x100
lea rax, str.obj_size
test rbx, rbx
mov qword [rsp + 0x30], 8
mov qword [rsp + 0x38], rax
lea rax, str.obj_count
mov qword [rsp + 0x48], 9
mov qword [rsp + 0x50], rax
jne 0x1400b5be5
jmp 0x1400b5c92
mov rcx, rbx
mov edx, 0x3a
call sym.strchr
test rax, rax
mov rbx, rax
je 0x1400b5c40
xor eax, eax
cmp byte [rbx], 0x3a
sete al
add rbx, rax
cmp qword [rbx], rdi
jne 0x1400b5bd0
cmp qword [rbx + 7], r12
jne 0x1400b5bd0
cmp byte [rbx + 0xf], 0x2e
jne 0x1400b5bd0
lea rbp, [rsp + 0x30]
add rbx, 0x10
lea r13, [rsp + 0x60]
mov rsi, qword [rbp]
mov rcx, qword [rbp + 8]
test rsi, rsi
je 0x1400b5c2b
mov r8, rsi
mov rdx, rbx
call sym.memcmp
test eax, eax
jne 0x1400b5c35
cmp byte [rbx + rsi], 0x3d
je 0x1400b5cc8
add rbp, 0x18
cmp rbp, r13
jne 0x1400b5c0f
jmp 0x1400b5bd0
mov eax, dword [rsp + 0x58]
mov edx, 0x1000
mov ecx, 6
cmp eax, edx
cmovle edx, eax
mov eax, dword [rsp + 0x40]
test eax, eax
cmove eax, ecx
movsxd rbx, eax
movsxd rax, edx
add rbx, 0x26
imul rbx, rax
shl rbx, 3
test rbx, rbx
mov qword [0x1400b7818], rbx
jne 0x1400b5ca2
lea rcx, [sym.__tcf_0_3]
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
jmp sym.atexit
mov qword [0x1400b7818], 0x16000
mov ebx, 0x16000
mov rcx, rbx
call sym.malloc
test rax, rax
mov qword [0x1400b7810], rax
je 0x1400b5cff
xor edx, edx
mov qword [0x1400b7808], rax
mov qword [rax], rbx
mov qword [rax + 8], rdx
jmp 0x1400b5c7a
lea rdx, [rsp + 0x28]
xor r8d, r8d
lea rcx, [rbx + rsi + 1]
call sym.strtoul
mov rbx, qword [rsp + 0x28]
movzx edx, byte [rbx]
cmp dl, 0x3a
je 0x1400b5cef
test dl, dl
jne 0x1400b5bd0
test eax, eax
js 0x1400b5bd0
mov dword [rbp + 0x10], eax
jmp 0x1400b5bd0
xor ecx, ecx
mov qword [0x1400b7818], rcx
jmp 0x1400b5c7a
Function at 0x140034dd0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
push rbx
push rsi
push rdi
sub rsp, 0x20
mov rdi, rcx
mov ecx, dword [0x1403caaa8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
lea rbx, [rdi + 3]
xor esi, esi
shr rbx, 2
test rax, rax
je 0x140034e33
mov rax, qword [rax + 8]
test rax, rax
je 0x140034e33
mov rcx, qword [rax]
test rcx, rcx
je 0x140034e33
mov qword [rax], rsi
movzx eax, byte [rcx]
cmp rax, rbx
jb 0x140034e2e
mov byte [rcx + rdi], al
mov rax, rcx
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
call fcn.1400e9a90
lea rcx, [rbx*4 + 1]
call fcn.140250dd4
cmp rbx, 0xff
movzx ecx, bl
cmova ecx, esi
mov byte [rax + rdi], cl
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret

Function at 0x140034e60
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
push rbx
push rdi
sub rsp, 0x28
mov rbx, rcx
mov rdi, rdx
mov ecx, dword [0x1403caaa8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140034e8d
mov r8, qword [rax + 8]
jmp 0x140034e90
xor r8d, r8d
cmp rdi, 0x3fc
ja 0x140034eb4
test r8, r8
je 0x140034eb4
cmp qword [r8], 0
jne 0x140034eb4
movzx eax, byte [rbx + rdi]
mov byte [rbx], al
mov qword [r8], rbx
add rsp, 0x28
pop rdi
pop rbx
ret
mov rcx, rbx
add rsp, 0x28
pop rdi
pop rbx
jmp fcn.1400e9a90

Function at 0x140035160
Capabilities:
Terminate thread

Disassembly:
push rbx
sub rsp, 0x30
mov rax, qword [rcx + 0x10]
lea rdx, [rsp + 0x20]
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rax, qword [rcx + 8]
mov rbx, rcx
mov r9d, 0xffffffff
mov qword [rsp + 0x28], rax
lea ecx, [r8 + 2]
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
lock xadd dword [0x1403ca900], eax
mov rcx, qword [rbx + 8]
test eax, eax
je 0x1400351bd
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TerminateThread]
add rsp, 0x30
pop rbx
ret
mov rdx, rcx
xor r8d, r8d
lea rcx, [sym.ethaanar.exe_public_virtual:_void___cdecl_Json::CharReader::destructor_void____ptr64]
call qword [sym.imp.KERNEL32.dll_QueueUserAPC]
mov rcx, qword [rbx + 8]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
add rsp, 0x30
pop rbx
ret
Function at 0x140061e50
Capabilities:
Get thread local storage value

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
push rdi
sub rsp, 0x100
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
mov rax, qword [0x1403b8550]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov rbx, rdx
lea rdx, [rsp + 0x30]
call fcn.140062a80
mov rdi, rax
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0xa0], rcx
mov rcx, qword [rax + 0x20]
mov qword [rsp + 0xb0], rcx
lea rax, method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_8
mov qword [rdi + 0x10], rax
lea rax, [0x14035ce80]
mov qword [rdi + 0x20], rax
mov rdx, rdi
lea rcx, [rsp + 0x90]
mov rax, qword [rsp + 0xa0]
call qword [rax + reloc.WS2_32.dll_recv]
mov qword [rdi + 0x18], 0
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0xb8], rax
lea rax, [0x14035c800]
mov qword [rdi + 0x28], rax
mov rax, qword [rdi + 0x10]
mov rdx, qword [rax]
lea rax, [sym.ethaanar.exe_public_virtual:_void___cdecl_Json::CharReader::destructor_void____ptr64]
cmp rdx, rax
je 0x140061f0a
mov rcx, rdi
call rdx
nop
mov rax, qword [rsp + 0xb0]
mov r8, qword [rax + 0x18]
test r8, r8
je 0x140061f4c
lea rax, [0x140062c30]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rbx
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x90]
call r8
jmp 0x140061fed
movups xmm6, xmmword [rbx]
movups xmm7, xmmword [rbx + 0x10]
movups xmm8, xmmword [rbx + 0x20]
mov ecx, dword [0x1403caaa8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140061f98
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140061f98
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x140061f98
mov qword [rcx + 0x10], 0
movzx ecx, byte [rax]
cmp cl, 0x10
jb 0x140061f90
mov byte [rax + 0x40], cl
jmp 0x140061fa6
mov rcx, rax
call fcn.1400e9a90
mov ecx, 0x41
call fcn.140250dd4
mov byte [rax + 0x40], reloc.WS2_32.dll_recv
movups xmmword [rax + 8], xmm6
movups xmmword [rax + 0x18], xmm7
movups xmmword [rax + 0x28], xmm8
lea rcx, [0x140062d40]
mov qword [rax], rcx
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x90]
mov rax, qword [rsp + 0xb0]
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rsp + 0x20]
test rax, rax
je 0x140061fed
xor edx, edx
mov rcx, rax
call qword [rax]
nop
lea rcx, [rsp + 0x90]
mov rax, qword [rsp + 0xa0]
call qword [rax]
nop
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.140250db0
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x18]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop rdi
ret
Function at 0x1400697c0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x2a0
mov rax, qword [0x1403b8550]
xor rax, rsp
mov qword [rsp + 0x298], rax
mov rdi, rdx
mov rbx, rcx
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0x40], rax
mov rax, qword [rdx + 0x18]
mov qword [rsp + 0x48], rax
add rdx, 0x20
lea rcx, [rsp + 0x50]
call fcn.140066d30
movups xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x160], xmm0
lea rdx, [rbx + 0x10]
lea rcx, [rsp + 0x170]
call fcn.140068b50
nop
lea rsi, [rdi + 8]
mov rdi, qword [rdi]
mov rbx, qword [rsi]
mov ecx, dword [0x1403caaf0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140069854
cmp qword [rax], rbx
je 0x14006993b
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x140069842
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x170]
mov ecx, 0x290
call fcn.140034dd0
mov r9, rax
xor r10d, r10d
mov qword [rax + 0x20], r10
lea rax, [0x14006a670]
mov qword [r9 + 0x28], rax
mov qword [r9], r10
mov qword [r9 + 8], r10
mov qword [r9 + 0x10], r10
mov qword [r9 + 0x18], r10
mov dword [r9 + 0x30], r10d
lea rcx, [r9 + 0x38]
lea rdx, [rsp + 0x40]
call fcn.140068b50
movaps xmm2, xmmword [rsp + 0x160]
movups xmmword [rcx + 0x120], xmm2
add rcx, 0x130
lea rdx, [rsp + 0x170]
call fcn.140068b50
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], r10
mov r8, r9
mov rdx, rsi
mov rcx, rdi
call fcn.140037050
nop
lea rcx, [rsp + 0x260]
call sym.ethaanar.exe_public:_void___cdecl_Json::PathArgument::destructor_void____ptr64
lea rcx, [rsp + 0x1b0]
call sym.ethaanar.exe_public:_void___cdecl_Json::PathArgument::destructor_void____ptr64
lea rcx, [rsp + 0x130]
call sym.ethaanar.exe_public:_void___cdecl_Json::PathArgument::destructor_void____ptr64
lea rcx, [rsp + 0x80]
call sym.ethaanar.exe_public:_void___cdecl_Json::PathArgument::destructor_void____ptr64
mov rcx, qword [rsp + 0x298]
xor rcx, rsp
call fcn.140250db0
lea r11, [rsp + 0x2a0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
cmp qword [rax + 8], 0
je 0x140069854
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x40]
call fcn.14006a940
nop
jmp 0x1400698e2
Function at 0x1400730f0
Capabilities:
Resolve dns

Disassembly:
push rbx
push rsi
sub rsp, 0x4f8
mov rax, qword [0x1403b8550]
xor rax, rsp
mov qword [rsp + 0x4e0], rax
mov rbx, r8
mov dword [rsp + 0x40], 0x80
mov rsi, rdx
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x50]
call qword [sym.imp.WS2_32.dll_getpeername]
test eax, eax
jne 0x14006e4ea
movzx eax, word [rsp + 0x50]
mov qword [rsp + 0x4f0], rdi
mov edi, dword [rsp + 0x40]
cmp ax, 2
je 0x14006e45f
cmp ax, 0x17
jne 0x14006e46f
movzx ecx, word [rsp + 0x52]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
mov dword [rbx], eax
xor edx, edx
lea rcx, [rsp + 0xd0]
mov r8d, 0x401
call fcn.14026fa90
xor eax, eax
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], eax
lea r8, [rsp + 0xd0]
mov r9d, 0x401
mov qword [rsp + 0x20], rax
mov edx, edi
lea rcx, [rsp + 0x50]
call qword [sym.imp.WS2_32.dll_getnameinfo]
mov rdi, qword [rsp + 0x4f0]
test eax, eax
jne 0x14006e4ea
lea rax, [rsp + 0xd0]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x14006e4d0
lea rdx, [rsp + 0xd0]
mov rcx, rsi
call fcn.140011a50
mov rcx, qword [rsp + 0x4e0]
xor rcx, rsp
call fcn.140250db0
add rsp, 0x4f8
pop rsi
pop rbx
ret
mov rcx, qword [rcx + 8]
jmp 0x14006e400
Function at 0x14008b270
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
movabs rax, 0xcbf29ce484222325
mov r9d, 0
sub r8, rdx
je 0x14008b2a4
movabs r10, 0x100000001b3
nop
movzx ecx, byte [r9 + rdx]
inc r9
xor rax, rcx
imul rax, r10
cmp r9, r8
jb 0x14008b290
ret
Function at 0x1400b74c0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0x47]
sub rsp, 0xd0
mov rdi, rdx
mov rbx, rcx
mov rax, qword [rdx + 0x10]
mov qword [rbp - 0x51], rax
mov rax, qword [rdx + 0x18]
mov qword [rbp - 0x49], rax
add rdx, 0x20
lea rcx, [rbp - 0x41]
call sym.ethaanar.exe_public:_void___cdecl_Json::Value::constructor_class_Json::Value_const____ptr64____ptr64
nop
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x19], xmm0
mov rax, qword [rbx + 0x10]
mov qword [rbp - 9], rax
mov rax, qword [rbx + 0x18]
mov qword [rbp - 1], rax
lea rdx, [rbx + 0x20]
lea rcx, [rbp + 7]
call sym.ethaanar.exe_public:_void___cdecl_Json::Value::constructor_class_Json::Value____ptr64____ptr64
nop
lea rsi, [rdi + 8]
mov rdi, qword [rdi]
mov rbx, qword [rsi]
mov ecx, dword [0x1403caaf0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1400b7552
nop
cmp qword [rax], rbx
je 0x1400b75f3
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x1400b7540
lea rax, [rbp - 0x51]
mov qword [rbp - 0x69], rax
lea rdx, [rbp - 9]
mov ecx, 0xc0
call fcn.140034dd0
mov rbx, rax
mov qword [rbp - 0x61], rax
xor r14d, r14d
mov qword [rbp - 0x59], r14
mov rcx, qword [rdi + 0x28]
mov qword [rbp + 0x2f], rcx
mov dword [rbp + 0x3b], r14d
mov qword [rax + 0x20], r14
lea rax, [0x1400ba9a0]
mov qword [rbx + 0x28], rax
mov qword [rbx], r14
mov qword [rbx + 8], r14
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], r14
mov dword [rbx + 0x30], r14d
lea rcx, [rbx + 0x38]
lea rdx, [rbp - 0x51]
call fcn.1400baad0
nop
mov qword [rbp - 0x59], r14
mov qword [rbp - 0x61], r14
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
call fcn.140037050
nop
lea rcx, [rbp + 7]
call sym.ethaanar.exe_public:_void___cdecl_Json::Value::destructor_void____ptr64
lea rcx, [rbp - 0x41]
call sym.ethaanar.exe_public:_void___cdecl_Json::Value::destructor_void____ptr64
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
cmp qword [rax + 8], 0
je 0x1400b7552
lea rdx, [rbp - 0x51]
lea rcx, [rbp - 0x51]
call fcn.1400bcea0
nop
jmp 0x1400b75c9
Function at 0x1400b9e40
Capabilities:
Get thread local storage value

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x130
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
mov rax, qword [0x1403b8550]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov rbx, rdx
lea rdx, [rsp + 0x30]
call fcn.140062a80
mov rdi, rax
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0xd0], rcx
mov rcx, qword [rax + 0x20]
mov qword [rsp + 0xe0], rcx
lea rax, method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_8
mov qword [rdi + 0x10], rax
lea rax, [0x14035ce80]
mov qword [rdi + 0x20], rax
mov rdx, rdi
lea rcx, [rsp + 0xc0]
mov rax, qword [rsp + 0xd0]
call qword [rax + reloc.WS2_32.dll_recv]
mov qword [rdi + 0x18], 0
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0xe8], rax
lea rax, [0x14035c800]
mov qword [rdi + 0x28], rax
mov rax, qword [rdi + 0x10]
mov rdx, qword [rax]
lea rax, [sym.ethaanar.exe_public_virtual:_void___cdecl_Json::CharReader::destructor_void____ptr64]
cmp rdx, rax
je 0x1400b9f06
mov rcx, rdi
call rdx
nop
mov rax, qword [rsp + 0xe0]
mov r8, qword [rax + 0x18]
test r8, r8
je 0x1400b9f48
lea rax, [0x1400bc970]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rbx
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0xc0]
call r8
jmp 0x1400ba019
mov rdi, qword [rbx]
mov rsi, qword [rbx + 8]
mov rbp, qword [rbx + 0x10]
mov r14d, dword [rbx + 0x18]
mov r15, qword [rbx + 0x20]
movups xmm6, xmmword [rbx + 0x28]
movups xmm7, xmmword [rbx + 0x38]
movups xmm8, xmmword [rbx + 0x48]
mov rbx, qword [rbx + 0x58]
mov ecx, dword [0x1403caaa8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1400b9fac
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1400b9fac
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x1400b9fac
mov qword [rcx + 0x10], 0
movzx ecx, byte [rax]
cmp cl, 0x1c
jb 0x1400b9fa4
mov byte [rax + 0x70], cl
jmp 0x1400b9fba
mov rcx, rax
call fcn.1400e9a90
mov ecx, WSAStartup
call fcn.140250dd4
mov byte [rax + 0x70], 0x1c
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rbp
mov dword [rax + 0x20], r14d
mov qword [rax + 0x28], r15
movups xmmword [rax + 0x30], xmm6
movups xmmword [rax + 0x40], xmm7
movups xmmword [rax + 0x50], xmm8
mov qword [rax + 0x60], rbx
lea rcx, [0x1400bcfc0]
mov qword [rax], rcx
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0xc0]
mov rax, qword [rsp + 0xe0]
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rsp + 0x20]
test rax, rax
je 0x1400ba019
xor edx, edx
mov rcx, rax
call qword [rax]
nop
lea rcx, [rsp + 0xc0]
mov rax, qword [rsp + 0xd0]
call qword [rax]
nop
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.140250db0
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
Function at 0x1400ba330
Capabilities:
Get thread local storage value

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x140
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
mov rax, qword [0x1403b8550]
xor rax, rsp
mov qword [rsp + 0xf8], rax
mov rbx, rdx
lea rdx, [rsp + 0x30]
call fcn.140062a80
mov rdi, rax
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0xd8], rcx
mov rcx, qword [rax + 0x20]
mov qword [rsp + 0xe8], rcx
lea rax, method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_8
mov qword [rdi + 0x10], rax
lea rax, [0x14035ce80]
mov qword [rdi + 0x20], rax
mov rdx, rdi
lea rcx, [rsp + 0xc8]
mov rax, qword [rsp + 0xd8]
call qword [rax + reloc.WS2_32.dll_recv]
mov qword [rdi + 0x18], 0
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0xf0], rax
lea rax, [0x14035c800]
mov qword [rdi + 0x28], rax
mov rax, qword [rdi + 0x10]
mov rdx, qword [rax]
lea rax, [sym.ethaanar.exe_public_virtual:_void___cdecl_Json::CharReader::destructor_void____ptr64]
cmp rdx, rax
je 0x1400ba3fb
mov rcx, rdi
call rdx
nop
mov rax, qword [rsp + 0xe8]
mov r8, qword [rax + 0x18]
test r8, r8
je 0x1400ba43d
lea rax, [0x1400bd0f0]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rbx
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0xc8]
call r8
jmp 0x1400ba50e
mov rdi, qword [rbx]
mov rsi, qword [rbx + 8]
mov ebp, dword [rbx + 0x14]
mov r14d, dword [rbx + 0x18]
movups xmm6, xmmword [rbx + 0x20]
mov r15, qword [rbx + 0x30]
movups xmm7, xmmword [rbx + 0x38]
movups xmm8, xmmword [rbx + 0x48]
movups xmm9, xmmword [rbx + 0x58]
mov ecx, dword [0x1403caaa8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1400ba4a1
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1400ba4a1
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x1400ba4a1
mov qword [rcx + 0x10], 0
movzx ecx, byte [rax]
cmp cl, 0x1e
jb 0x1400ba499
mov byte [rax + 0x78], cl
jmp 0x1400ba4af
mov rcx, rax
call fcn.1400e9a90
mov ecx, 0x79
call fcn.140250dd4
mov byte [rax + 0x78], 0x1e
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rsi
mov dword [rax + 0x1c], ebp
mov dword [rax + 0x20], r14d
movups xmmword [rax + 0x28], xmm6
mov qword [rax + 0x38], r15
movups xmmword [rax + 0x40], xmm7
movups xmmword [rax + 0x50], xmm8
movups xmmword [rax + 0x60], xmm9
lea rcx, [0x1400bda70]
mov qword [rax], rcx
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0xc8]
mov rax, qword [rsp + 0xe8]
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rsp + 0x20]
test rax, rax
je 0x1400ba50e
xor edx, edx
mov rcx, rax
call qword [rax]
nop
lea rcx, [rsp + 0xc8]
mov rax, qword [rsp + 0xd8]
call qword [rax]
nop
mov rcx, qword [rsp + 0xf8]
xor rcx, rsp
call fcn.140250db0
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
Function at 0x1400bcea0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x60
lea rdi, [rcx + 0x48]
lea rsi, [rcx + 0x40]
mov rbp, qword [rcx + 0x38]
mov rbx, qword [rsi]
mov ecx, dword [0x1403caaf0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1400bcef2
nop dword [rax]
cmp qword [rax], rbx
je 0x1400bcf9a
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x1400bcee0
mov qword [rsp + 0x38], rdi
mov rdx, rdi
mov ecx, 0x78
call fcn.140034dd0
mov rbx, rax
mov qword [rsp + 0x40], rax
xor r14d, r14d
mov qword [rsp + 0x48], r14
mov rcx, qword [rbp + 0x28]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x34], r14d
mov qword [rax + 0x20], r14
lea rax, [0x1400c0230]
mov qword [rbx + 0x28], rax
mov qword [rbx], r14
mov qword [rbx + 8], r14
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], r14
mov dword [rbx + 0x30], r14d
lea rcx, [rbx + 0x38]
mov qword [rsp + 0x20], rcx
mov rax, qword [rdi]
mov qword [rcx], rax
add rcx, 8
mov qword [rsp + 0x20], rcx
mov rax, qword [rdi + 8]
mov qword [rcx], rax
add rcx, 8
mov qword [rsp + 0x20], rcx
lea rdx, [rdi + 0x10]
call sym.ethaanar.exe_public:_void___cdecl_Json::Value::constructor_class_Json::Value____ptr64____ptr64
nop
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r14
mov r8, rbx
mov rdx, rsi
mov rcx, rbp
call fcn.140037050
nop
add rsp, 0x60
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp qword [rax + 8], 0
je 0x1400bcef2
mov rdx, rdi
mov rcx, rdi
call fcn.140063010
nop
add rsp, 0x60
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret