joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4c8d50
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rsi, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov rax, qword [rsi]
mov qword [rsp + 0x38], rax
xor eax, eax
imul r8, rdx
mov edx, 0x18
mov r12, rcx
cmp r8, 0x18
cmovb r8, rdx
mov qword [rsp + 0x30], r8
test rcx, rcx
je 0x4c8e98
mov ecx, dword [r12 + 0x820]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
test eax, eax
jle 0x4c8e80
sub eax, 1
cdqe
mov r13, qword [r12 + rax*8 + 0x20]
mov ebx, dword [r13]
mov rdi, qword [rsp + 0x30]
cmp rdi, 0x2000
jbe 0x4c8ee0
mov dword [rsp + 0x2c], ebx
movsxd rbx, ebx
mov rbx, qword [r12 + rbx*8 + 0x828]
mov eax, dword [rbx + 0x36c]
test eax, eax
jne 0x4c8e58
mfence
mov eax, 1
xchg dword [rbx + 0x36c], eax
test eax, eax
je 0x4c8f60
mov r9, rdi
lea r8, [rsp + 0x2c]
mov rdx, r13
mov rcx, r12
call fcn.004c4dd0
mov rbx, rax
mov r8, qword [rsp + 0x30]
mov edx, 1
mov rcx, rbx
call fcn.004c7880
mov edx, dword [rbx + 0x370]
mov r9, rax
sub edx, 1
mov dword [rbx + 0x370], edx
je 0x4c8ec8
mov rax, qword [rsp + 0x38]
xor rax, qword [rsi]
jne 0x4c8f7b
mov rax, r9
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov ebp, dword [rbx + 0x374]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebp, eax
jne 0x4c8df6
mov eax, dword [rbx + 0x370]
add eax, 1
mov dword [rbx + 0x370], eax
jmp 0x4c8e0c
je 0x4c8f10
mov rdi, qword [rsp + 0x30]
not ebx
xor r13d, r13d
jmp 0x4c8dc7
mov eax, dword [0x005f2ab8]
lea r12, [0x005f2aa0]
test eax, eax
jne 0x4c8d8f
mov r8d, 0xffffffff
xor edx, edx
mov rcx, r12
call fcn.004c7680
jmp 0x4c8d8f
mov dword [rbx + 0x374], 0
mfence
xchg dword [rbx + 0x36c], edx
jmp 0x4c8e36
lea rdx, [rsp + 0x30]
mov rcx, r13
call fcn.004c4940
test rax, rax
je 0x4c8f4d
mov r8, qword [rsp + 0x30]
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_memset
mov r9, rax
jmp 0x4c8e36
mov rcx, r12
call fcn.004c7910
mov r13, rax
test rax, rax
je 0x4c8f30
mov ebx, dword [rax]
jmp 0x4c8db5
mov ecx, dword [r12 + 0x820]
mov rdx, 0xffffffffffffffff
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x570fc0
mov rdi, qword [rsp + 0x30]
jmp 0x4c8dc7
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [rbx + 0x374], eax
mov dword [rbx + 0x370], 1
jmp 0x4c8e0c
call sub.libssp_0.dll___stack_chk_fail

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

Disassembly:
mov r8, rdx
mov rdx, rcx
xor ecx, ecx
jmp fcn.004c8d50
Function at 0x4c8f90
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r14
push r13
push r12
push rbx
sub rsp, 0x28
mov qword [rsp + 0x60], r8
mov r12, rcx
mov r13, rdx
test rdx, rdx
je 0x4c90c0
cmp r8, 0x17
jbe 0x4c9010
test r12, r12
je 0x4c901e
mov ecx, dword [r12 + 0x820]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
jle 0x4c9048
sub eax, 1
mov r8, qword [rsp + 0x60]
cdqe
mov r14, qword [r12 + rax*8 + 0x20]
test r14, r14
je 0x4c8fec
lea rax, [r8 - 1]
cmp rax, 0x1fff
jbe 0x4c9058
mov rdx, r13
xor ecx, ecx
call fcn.004c7ab0
mov r12, rax
mov rax, r12
add rsp, 0x28
pop rbx
pop r12
pop r13
pop r14
ret
mov qword [rsp + 0x60], 0x18
test r12, r12
jne 0x4c8fba
mov eax, dword [0x005f2ab8]
lea r12, [0x005f2aa0]
test eax, eax
jne 0x4c8fba
mov r8d, 0xffffffff
xor edx, edx
mov rcx, r12
call fcn.004c7680
jmp 0x4c8fba
je 0x4c9090
mov r8, qword [rsp + 0x60]
jmp 0x4c8fec
mov rax, qword [r13 - 8]
mov rbx, rax
and ebx, 2
jne 0x4c90d0
lea rdx, [rsp + 0x60]
mov rcx, r14
call fcn.004c4940
mov r12, rax
test rax, rax
je 0x4c904a
mov r8, rbx
mov rdx, r13
mov rcx, r14
call fcn.004c7550
jmp 0x4c8ff9
mov rcx, r12
call fcn.004c7910
mov r14, rax
test rax, rax
je 0x4c9130
mov r8, qword [rsp + 0x60]
lea rax, [r8 - 1]
cmp rax, 0x1fff
ja 0x4c8fec
jmp 0x4c9058
mov rdx, r8
call fcn.004c8b20
mov r12, rax
jmp 0x4c8ff9
and rax, 0xfffffffffffffff8
lea rdx, [rsp + 0x60]
mov rcx, r14
lea rbx, [rax - 0x10]
call fcn.004c4940
mov r12, rax
test rax, rax
je 0x4c904a
cmp qword [rsp + 0x60], rbx
mov r8, rbx
mov rdx, r13
mov rcx, rax
cmovbe r8, qword [rsp + 0x60]
call sub.msvcrt.dll_memcpy
cmp rbx, 0x2000
jbe 0x4c9079
mov rdx, r13
xor ecx, ecx
call fcn.004c6b90
jmp 0x4c8ff9
mov ecx, dword [r12 + 0x820]
mov rdx, 0xffffffffffffffff
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x570fc6
jmp 0x4c904a
mov r8, rdx
mov rdx, rcx
xor ecx, ecx
jmp 0x4c8f90
Function at 0x4c9160
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r14
push r13
push r12
push rbx
sub rsp, 0x28
mov qword [rsp + 0x60], r8
mov r12, rcx
mov r13, rdx
test rdx, rdx
je 0x4c90c0
cmp r8, 0x17
jbe 0x4c9010
test r12, r12
je 0x4c901e
mov ecx, dword [r12 + 0x820]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
jle 0x4c9048
sub eax, 1
mov r8, qword [rsp + 0x60]
cdqe
mov r14, qword [r12 + rax*8 + 0x20]
test r14, r14
je 0x4c8fec
lea rax, [r8 - 1]
cmp rax, 0x1fff
jbe 0x4c9058
mov rdx, r13
xor ecx, ecx
call fcn.004c7ab0
mov r12, rax
mov rax, r12
add rsp, 0x28
pop rbx
pop r12
pop r13
pop r14
ret
mov qword [rsp + 0x60], 0x18
test r12, r12
jne 0x4c8fba
mov eax, dword [0x005f2ab8]
lea r12, [0x005f2aa0]
test eax, eax
jne 0x4c8fba
mov r8d, 0xffffffff
xor edx, edx
mov rcx, r12
call fcn.004c7680
jmp 0x4c8fba
je 0x4c9090
mov r8, qword [rsp + 0x60]
jmp 0x4c8fec
mov rax, qword [r13 - 8]
mov rbx, rax
and ebx, 2
jne 0x4c90d0
lea rdx, [rsp + 0x60]
mov rcx, r14
call fcn.004c4940
mov r12, rax
test rax, rax
je 0x4c904a
mov r8, rbx
mov rdx, r13
mov rcx, r14
call fcn.004c7550
jmp 0x4c8ff9
mov rcx, r12
call fcn.004c7910
mov r14, rax
test rax, rax
je 0x4c9130
mov r8, qword [rsp + 0x60]
lea rax, [r8 - 1]
cmp rax, 0x1fff
ja 0x4c8fec
jmp 0x4c9058
mov rdx, r8
call fcn.004c8b20
mov r12, rax
jmp 0x4c8ff9
and rax, 0xfffffffffffffff8
lea rdx, [rsp + 0x60]
mov rcx, r14
lea rbx, [rax - 0x10]
call fcn.004c4940
mov r12, rax
test rax, rax
je 0x4c904a
cmp qword [rsp + 0x60], rbx
mov r8, rbx
mov rdx, r13
mov rcx, rax
cmovbe r8, qword [rsp + 0x60]
call sub.msvcrt.dll_memcpy
cmp rbx, 0x2000
jbe 0x4c9079
mov rdx, r13
xor ecx, ecx
call fcn.004c6b90
jmp 0x4c8ff9
mov ecx, dword [r12 + 0x820]
mov rdx, 0xffffffffffffffff
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x570fc6
jmp 0x4c904a
mov r8, rdx
mov rdx, rcx
xor ecx, ecx
jmp 0x4c8f90

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

Disassembly:
push r12
push rbx
sub rsp, 0x28
mov rbx, rcx
mov r12, rdx
test rcx, rcx
je 0x4c9210
mov ecx, dword [rbx + 0x820]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
jle 0x4c91d0
sub eax, 1
cdqe
mov rcx, qword [rbx + rax*8 + 0x20]
test r12, r12
je 0x4c91fd
mov rdx, qword [r12 - 8]
mov r8, rdx
and r8d, 2
jne 0x4c9240
test rcx, rcx
je 0x4c91fd
mov rdx, r12
add rsp, 0x28
pop rbx
pop r12
jmp fcn.004c7550
jne 0x4c91fd
mov rcx, rbx
call fcn.004c7910
mov rcx, rax
test rax, rax
jne 0x4c91a0
mov ecx, dword [rbx + 0x820]
mov rdx, 0xffffffffffffffff
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x570fcc
mov rdx, r12
xor ecx, ecx
add rsp, 0x28
pop rbx
pop r12
jmp fcn.004c6b90
mov eax, dword [0x005f2ab8]
lea rbx, [0x005f2aa0]
test eax, eax
jne 0x4c9186
mov r8d, 0xffffffff
xor edx, edx
mov rcx, rbx
call fcn.004c7680
jmp 0x4c9186
and rdx, 0xfffffffffffffff8
lea r8, [rdx - 0x10]
cmp r8, 0x2010
ja 0x4c91fd
test rcx, rcx
je 0x4c91fd
jmp 0x4c91bc

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

Disassembly:
mov rdx, rcx
xor ecx, ecx
jmp fcn.004c9170
Function at 0x4d90f0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r12
push rbx
sub rsp, 0x28
mov eax, dword [rcx + 8]
mov r12, rcx
test eax, eax
je 0x4d9122
xor ebx, ebx
nop dword [rax + rax]
mov rax, qword [r12 + 0x10]
mov edx, ebx
add ebx, 1
mov rcx, qword [rax + rdx*8]
call fcn.004c9260
cmp ebx, dword [r12 + 8]
jb 0x4d9108
mov rcx, qword [r12 + 0x10]
call fcn.004c9260
mov rcx, r12
add rsp, 0x28
pop rbx
pop r12
jmp fcn.004c9260

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

Disassembly:
push r12
sub rsp, 0x20
mov rax, qword [rcx + 0x18]
mov edx, dword [rdx + 0x48]
mov rcx, qword [rax + 0x70]
mov r12, r8
xor r8d, r8d
call fcn.004d84e0
test rax, rax
je 0x4d92b6
cmp qword [rax], r12
je 0x4d92c8
mov rcx, r12
add rsp, 0x20
pop r12
jmp fcn.004c9260
add rsp, 0x20
pop r12
ret

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

Disassembly:
mov rax, qword [rdx + 0x38]
test rax, rax
je 0x4d9320
ret
test byte [rdx], 1
je 0x4d9319
cmp dword [rdx + 0x40], 0xffffffff
je 0x4d9319
jmp fcn.004dd220

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

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rdi, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov rax, qword [rdi]
mov qword [rsp + 0x28], rax
xor eax, eax
mov rsi, rcx
mov rbx, rdx
call fcn.004dcfc0
test eax, eax
je 0x4dd1d9
mov rax, qword [rsi + 0x10]
mov rdx, qword [rax + 0x58]
mov eax, dword [rbx + 0x40]
cmp eax, 0xffffffff
je 0x4dd1f0
mov dword [rsp + 0x24], eax
jmp 0x4dd194
mov rdx, qword [rdx + 0x58]
mov ecx, dword [rdx + 0x50]
cmp ecx, eax
ja 0x4dd190
mov r8, qword [0x005ab240]
mov esi, eax
mov r9, qword [rdx + 0x70]
sub esi, ecx
mov r8, qword [r8]
mov rcx, rsi
mov r8, qword [r8 + 0xc8]
mov r8, qword [r8 + 0x10]
mov dword [rbx + 0x40], eax
movzx eax, byte [rdx + 0x18]
add r8, 0x10
imul rcx, r8
add rcx, r9
mov eax, dword [rax + rcx + 8]
bswap eax
shr eax, 2
mov dword [rbx + 0x44], eax
mov rax, qword [rsp + 0x28]
xor rax, qword [rdi]
jne 0x4dd20b
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
lea r8, [rsp + 0x24]
mov rcx, rbx
call fcn.004dc1b0
test eax, eax
je 0x4dd1d9
mov eax, dword [rsp + 0x24]
mov rdx, qword [rsi + 0x10]
jmp 0x4dd190
call sub.libssp_0.dll___stack_chk_fail
nop
nop word cs:[rax + rax]
nop dword [rax]
Function at 0x4ddcf0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r12
sub rsp, 0x20
mov r12, rcx
test rcx, rcx
je 0x4ddd48
mov eax, dword [rcx]
test eax, eax
jns 0x4ddd20
mov rcx, qword [r12 + 0x40]
call fcn.004c9260
mov rcx, r12
add rsp, 0x20
pop r12
jmp fcn.004c9260
mov rdx, qword [rcx + 0x10]
mov rcx, qword [rcx + 8]
call fcn.004b8040
mov ecx, dword [r12]
mov qword [r12 + 8], 0
call sub.msvcrt.dll__close
jmp 0x4ddd04
add rsp, 0x20
pop r12
ret

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

Disassembly:
push r12
sub rsp, 0x20
mov r12, rcx
test rcx, rcx
je 0x4ddd78
mov rcx, qword [rcx + 0x58]
call fcn.004ddd50
mov rcx, r12
add rsp, 0x20
pop r12
jmp fcn.004ddcf0
add rsp, 0x20
pop r12
ret
Function at 0x4e1f70
Capabilities:
Read file on windows

Disassembly:
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xd0
mov rsi, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov edx, dword [0x00576a80]
mov rax, qword [rsi]
mov qword [rsp + 0xc8], rax
xor eax, eax
mov ebx, ecx
test edx, edx
je 0x4e2025
lea r13, [rsp + 0x40]
mov ecx, 0x11
lea r12, [rsp + 0x48]
mov rdi, r13
lea rdx, str.stty
rep stosq qword [rdi], rax
mov rax, qword [0x005aaca0]
mov rcx, r12
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x58], rax
call fcn.0040b660
test bl, 2
jne 0x4e2150
lea rdx, str.echo
lea rcx, [0x00576a60]
call fcn.00476f10
lea rdx, str._echo
mov rcx, r12
call fcn.0040b660
test bl, 1
jne 0x4e20d0
mov rcx, r13
call fcn.00460710
test eax, eax
je 0x4e20a7
mov dword [0x00576a80], 0
lea rcx, str.CONIN_
xor r9d, r9d
mov qword [rsp + 0x30], 0
mov r8d, 1
mov dword [rsp + 0x28], pe_nt_image_headers64
mov edx, 0xc0000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [0x00576a58], rax
mov rcx, rax
cmp rax, 0xffffffffffffffff
je 0x4e2177
lea rdx, [0x005f3518]
not ebx
call qword [sym.imp.KERNEL32.dll_GetConsoleMode]
lea rcx, [0x004e2390]
call fcn.004716f0
mov edx, dword [0x005f3518]
mov rcx, qword [0x00576a58]
and edx, ebx
call qword [sym.imp.KERNEL32.dll_SetConsoleMode]
test eax, eax
je 0x4e2181
xor eax, eax
mov rdi, qword [rsp + 0xc8]
xor rdi, qword [rsi]
jne 0x4e21a3
add rsp, 0xd0
pop rbx
pop rsi
pop rdi
pop r12
pop r13
ret
lea rdx, str._ignbrk
lea rcx, [0x00576a60]
call fcn.00476f10
lea rdx, str.intr
lea rcx, [0x00576a60]
call fcn.00476f10
lea rdx, [0x005959a1]
lea rcx, [0x00576a60]
call fcn.00476f10
lea rdx, str.ignbrk
mov rcx, r12
call fcn.0040b660
lea rdx, str.intr
mov rcx, r12
call fcn.0040b660
mov rcx, r12
lea rdx, [0x005959ab]
call fcn.0040b660
mov rcx, r13
call fcn.00460710
test eax, eax
jne 0x4e201b
jmp 0x4e20a7
lea rdx, str.icanon
lea rcx, [0x00576a60]
call fcn.00476f10
lea rdx, str._icanon
mov rcx, r12
call fcn.0040b660
jmp 0x4e1fe0
mov eax, 0xffffffff
jmp 0x4e20a7
mov rcx, qword [0x00576a58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0xffffffff
mov qword [0x00576a58], 0xffffffffffffffff
jmp 0x4e20a7
call sub.libssp_0.dll___stack_chk_fail
nop
nop dword [rax]

Function at 0x4e21b0
Capabilities:
Read file on windows

Disassembly:
push rbx
sub rsp, 0x40
mov rbx, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov ecx, 0xfffffff6
mov rax, qword [rbx]
mov qword [rsp + 0x38], rax
xor eax, eax
mov dword [rsp + 0x34], 0
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
lea rdx, [rsp + 0x33]
lea r9, [rsp + 0x34]
mov qword [rsp + 0x20], 0
mov rcx, rax
mov r8d, 1
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4e2220
mov eax, dword [rsp + 0x34]
test eax, eax
je 0x4e2227
movzx eax, byte [rsp + 0x33]
mov rdx, qword [rsp + 0x38]
xor rdx, qword [rbx]
jne 0x4e223a
add rsp, 0x40
pop rbx
ret
mov eax, 0xffffffff
jmp 0x4e220c
lea rcx, str.Unexpected_0_read
call fcn.00494950
mov eax, 0xffffffff
jmp 0x4e220c
call sub.libssp_0.dll___stack_chk_fail
nop
mov r10, rdx
add r8, 0x10
mov rdx, r9
test r9, r9
cmove rdx, r8
lea rcx, [r10 + 0x10]
jmp sub.msvcrt.dll_strcmp
Function at 0x4e2260
Capabilities:
Write file on windows

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb0
mov rsi, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov ecx, dword [0x00576a80]
mov rax, qword [rsi]
mov qword [rsp + 0xa8], rax
xor eax, eax
test ecx, ecx
je 0x4e22d8
lea rbp, [rsp + 0x20]
mov ecx, 0x11
mov edx, dword [0x00576a68]
mov rdi, rbp
rep stosq qword [rdi], rax
mov rax, qword [0x005aaca0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x38], rax
test edx, edx
jne 0x4e2310
mov rax, qword [rsp + 0xa8]
xor rax, qword [rsi]
jne 0x4e237d
add rsp, 0xb0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rcx, qword [0x00576a58]
cmp rcx, 0xffffffffffffffff
je 0x4e22b6
mov edx, dword [0x005f3518]
call qword [sym.imp.KERNEL32.dll_SetConsoleMode]
mov rcx, qword [0x00576a58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [0x00576a58], 0xffffffffffffffff
jmp 0x4e22b6
lea rdi, [rsp + 0x28]
lea rdx, str.stty
mov rcx, rdi
call fcn.0040b660
mov eax, dword [0x00576a68]
test eax, eax
je 0x4e2362
xor ebx, ebx
lea r12, [0x00576a60]
nop word [rax + rax]
mov rax, rbx
mov rcx, rdi
add rbx, 1
shl rax, 4
add rax, qword [r12]
mov rdx, qword [rax]
call fcn.0040b660
cmp dword [0x00576a68], ebx
ja 0x4e2340
mov rcx, rbp
call fcn.00460710
xor edx, edx
lea rcx, [0x00576a60]
call fcn.00476d60
jmp 0x4e22b6
call sub.libssp_0.dll___stack_chk_fail
nop
nop word cs:[rax + rax]
nop
push r12
sub rsp, 0x20
mov r12d, ecx
call fcn.004e2260
mov ecx, r12d
call fcn.00471670
mov ecx, r12d
add rsp, 0x20
pop r12
jmp fcn.004ad490

Function at 0x4e2390
Capabilities:
Write file on windows

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb0
mov rsi, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov ecx, dword [0x00576a80]
mov rax, qword [rsi]
mov qword [rsp + 0xa8], rax
xor eax, eax
test ecx, ecx
je 0x4e22d8
lea rbp, [rsp + 0x20]
mov ecx, 0x11
mov edx, dword [0x00576a68]
mov rdi, rbp
rep stosq qword [rdi], rax
mov rax, qword [0x005aaca0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x38], rax
test edx, edx
jne 0x4e2310
mov rax, qword [rsp + 0xa8]
xor rax, qword [rsi]
jne 0x4e237d
add rsp, 0xb0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rcx, qword [0x00576a58]
cmp rcx, 0xffffffffffffffff
je 0x4e22b6
mov edx, dword [0x005f3518]
call qword [sym.imp.KERNEL32.dll_SetConsoleMode]
mov rcx, qword [0x00576a58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [0x00576a58], 0xffffffffffffffff
jmp 0x4e22b6
lea rdi, [rsp + 0x28]
lea rdx, str.stty
mov rcx, rdi
call fcn.0040b660
mov eax, dword [0x00576a68]
test eax, eax
je 0x4e2362
xor ebx, ebx
lea r12, [0x00576a60]
nop word [rax + rax]
mov rax, rbx
mov rcx, rdi
add rbx, 1
shl rax, 4
add rax, qword [r12]
mov rdx, qword [rax]
call fcn.0040b660
cmp dword [0x00576a68], ebx
ja 0x4e2340
mov rcx, rbp
call fcn.00460710
xor edx, edx
lea rcx, [0x00576a60]
call fcn.00476d60
jmp 0x4e22b6
call sub.libssp_0.dll___stack_chk_fail
nop
nop word cs:[rax + rax]
nop
push r12
sub rsp, 0x20
mov r12d, ecx
call fcn.004e2260
mov ecx, r12d
call fcn.00471670
mov ecx, r12d
add rsp, 0x20
pop r12
jmp fcn.004ad490
Function at 0x4e3d40
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r13
push r12
push rdi
push rsi
sub rsp, 0x28
lea rdi, [0x00595d17]
mov rax, rcx
mov ecx, 6
mov r12, rdx
mov rsi, rax
repe cmpsb byte [rsi], byte [rdi]
seta dl
sbb dl, 0
test dl, dl
je 0x4e3d98
mov rsi, rax
mov ecx, 6
lea rdi, str.abort
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
movsx eax, al
test r8d, r8d
je 0x4e3da8
test eax, eax
jne 0x4e3da8
not r8d
and dword [r12 + 0xa0], r8d
add rsp, 0x28
pop rsi
pop rdi
pop r12
pop r13
ret
mov r13, qword [r12 + 0x10]
call fcn.00426640
lea rcx, [0x00595c45]
test eax, eax
je 0x4e3df0
mov rdx, r13
call fcn.00494950
mov rdx, r12
lea rcx, [0x005f3540]
call fcn.0053dfb0
mov rcx, r12
add rsp, 0x28
pop rsi
pop rdi
pop r12
pop r13
jmp fcn.004c9260
lea rcx, str.external_filter__s_failed
call fcn.0056e6a8
mov rcx, rax
jmp 0x4e3dbd

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

Disassembly:
push r13
push r12
push rbx
sub rsp, 0x20
mov rbx, qword [0x005aac60]
mov r8d, dword [rbx + 0xc]
mov r13, rcx
test r8d, r8d
je 0x4e7848
movsxd rcx, r8d
mov rax, rcx
shr rax, 0x3c
jne 0x4e7852
shl rcx, 4
call fcn.004996e0
mov r9d, dword [rbx + 0xc]
mov r12, rax
test r9d, r9d
jle 0x4e7840
mov r10, qword [rbx]
mov rcx, rax
lea eax, [r9 - 1]
lea rdx, [r10 + 8]
lea rax, [rdx + rax*8]
jmp 0x4e77d4
add rdx, 8
mov r10, qword [r10]
add rcx, 0x10
mov qword [rcx - 0x10], r10
mov r10, rdx
cmp rdx, rax
jne 0x4e77d0
mov r8, r12
lea rdx, [0x004e7410]
mov rcx, r13
call fcn.004e7420
mov eax, dword [rbx + 0xc]
test eax, eax
jle 0x4e782c
lea r10d, [rax - 1]
mov rcx, qword [rbx]
mov rdx, r12
add r10, 1
shl r10, 4
add r10, r12
nop dword [rax]
mov r9, qword [rdx]
add rdx, 0x10
add rcx, 8
mov qword [rcx - 8], r9
cmp rdx, r10
jne 0x4e7818
mov rcx, r12
add rsp, 0x20
pop rbx
pop r12
pop r13
jmp fcn.004c9260
je 0x4e782c
jmp 0x4e77e7
add rsp, 0x20
pop rbx
pop r12
pop r13
ret
mov r8, rcx
mov edx, 0x10
lea rcx, [0x00596560]
call fcn.00494770
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
Function at 0x4e9910
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rax, qword [rcx + 0x1e0]
mov r12, qword [rcx + 0x188]
mov rbp, qword [rsp + 0xa0]
mov r14d, dword [rsp + 0xa8]
mov r15, qword [rsp + 0xb0]
mov ebx, dword [rsp + 0xb8]
mov rdi, rcx
mov dword [rsp + 0x24], r9d
mov rsi, rdx
mov r13, r8
lea rcx, [0x005966b7]
test rax, rax
je 0x4e9977
mov rcx, rdi
mov rdx, qword [rdi + 0x1e8]
call rax
mov rcx, qword [rax + 0x10]
mov rdx, r12
call sub.msvcrt.dll_fputs
test ebx, ebx
jle 0x4e9ad0
movsxd rax, ebx
movzx eax, byte [r15 + rax - 1]
cmp al, 0xa
je 0x4e9a90
cmp al, 0xd
je 0x4e9b50
mov dword [rsp + 0x2c], 0
mov dword [rsp + 0x28], 0
mov ecx, dword [rsp + 0x24]
test ecx, ecx
jne 0x4e9a50
xor edi, edi
test rsi, rsi
je 0x4e9af8
mov rdx, r12
mov rcx, rsi
call sub.msvcrt.dll_fputs
test r14d, r14d
jne 0x4e9b60
test ebx, ebx
je 0x4e9a17
test r13, r13
je 0x4e9a03
cmp rsi, r13
je 0x4e9b0e
mov rdx, r12
mov rcx, rbp
call sub.msvcrt.dll_fputs
mov rdx, r12
mov rcx, r13
call sub.msvcrt.dll_fputs
movsxd rdx, ebx
mov r9, r12
mov r8d, 1
mov rcx, r15
call sub.msvcrt.dll_fwrite
mov rdx, r12
mov rcx, rbp
call sub.msvcrt.dll_fputs
mov edx, dword [rsp + 0x2c]
test edx, edx
jne 0x4e9ae0
mov eax, dword [rsp + 0x28]
test eax, eax
jne 0x4e9ab3
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, dword [rdi + 0xc4]
mov ecx, 1
call fcn.004d35c0
test eax, eax
je 0x4e99bc
mov r9, r12
mov r8d, 4
mov edx, 1
mov edi, 1
lea rcx, str.e_7m
call sub.msvcrt.dll_fwrite
jmp 0x4e99be
sub ebx, 1
je 0x4e9b90
movsxd rax, ebx
cmp byte [r15 + rax - 1], 0xd
je 0x4e9b30
mov eax, ebx
or eax, r14d
jne 0x4e9b99
mov rdx, r12
mov ecx, 0xa
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sub.msvcrt.dll_fputc
mov eax, ebx
or eax, r14d
jne 0x4e99a0
jmp 0x4e9a36
mov rdx, r12
mov ecx, 0xd
call sub.msvcrt.dll_fputc
jmp 0x4e9a2e
test r14d, r14d
jne 0x4e9b80
test ebx, ebx
je 0x4e9b20
test r13, r13
je 0x4e9a03
mov rdx, r12
mov rcx, r13
call sub.msvcrt.dll_fputs
jmp 0x4e9a03
test edi, edi
je 0x4e9a22
jmp 0x4e9a17
mov dword [rsp + 0x28], 1
sub ebx, 1
mov eax, ebx
or eax, r14d
je 0x4e9ae0
mov dword [rsp + 0x2c], 1
jmp 0x4e99b0
mov dword [rsp + 0x28], 0
jmp 0x4e9b38
mov rdx, r12
mov ecx, r14d
call sub.msvcrt.dll_fputc
test ebx, ebx
jne 0x4e99df
jmp 0x4e9a17
mov rdx, r12
mov ecx, r14d
call sub.msvcrt.dll_fputc
jmp 0x4e9b01
test r14d, r14d
je 0x4e9ab3
mov dword [rsp + 0x2c], 0
mov dword [rsp + 0x28], 1
jmp 0x4e99b0