joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400686d0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x48
mov rsi, rcx
mov r8, qword [rcx]
test r8, r8
je 0x14006872b
mov r10, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
cmp rcx, r10
jae 0x14006872b
movzx eax, byte [r8 + rcx]
cmp eax, 0x49
je 0x140068746
cmp eax, 0x42
jne 0x14006872b
lea r11, [rcx + 1]
mov qword [rsi + 0x10], r11
cmp r11, r10
jae 0x1400687f6
cmp byte [r8 + r11], 0x5f
jne 0x1400687f6
lea rax, [rcx + 2]
mov qword [rsi + 0x10], rax
xor eax, eax
jmp 0x14006885e
mov rcx, rsi
xor edx, edx
call fcn.140064060
mov edi, eax
add dil, dil
mov eax, edi
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r14
ret
inc rcx
mov qword [rsi + 0x10], rcx
mov rcx, rsi
xor edx, edx
call fcn.140064060
test al, al
jne 0x1400688f1
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x140068782
lea rdx, [0x14011da23]
mov r8d, 1
call fcn.140031c80
test al, al
jne 0x1400688f1
mov rax, qword [rsi]
mov dil, 1
test rax, rax
je 0x14006873a
xor r14d, r14d
lea rbx, [0x14011dd90]
nop word [rax + rax]
mov rcx, qword [rsi + 0x10]
cmp rcx, qword [rsi + 8]
jae 0x1400687b4
cmp byte [rax + rcx], 0x45
je 0x140068913
sub r14, 1
jb 0x1400687d9
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x1400687d9
mov r8d, 2
mov rdx, rbx
call fcn.140031c80
test al, al
jne 0x1400688f1
mov rcx, rsi
call fcn.1400658c0
test al, al
jne 0x1400688f1
mov rax, qword [rsi]
test rax, rax
jne 0x1400687a0
jmp 0x14006873a
xor eax, eax
mov edi, 0x3e
nop dword [rax]
mov r9b, 1
cmp r11, r10
jae 0x1400688b8
movzx edx, byte [r8 + r11]
cmp dl, 0x5f
je 0x140068852
lea ebx, [rdx - 0x30]
cmp bl, 0xa
jb 0x14006883c
lea ebx, [rdx - 0x61]
cmp bl, 0x1a
jae 0x14006882b
add dl, 0xa9
jmp 0x14006883a
lea ebx, [rdx - 0x41]
cmp bl, 0x1a
jae 0x1400688b8
add dl, 0xe3
mov ebx, edx
inc r11
mov qword [rsi + 0x10], r11
mul rdi
jo 0x1400688b8
movzx edx, bl
add rax, rdx
jae 0x140068800
jmp 0x1400688b8
inc r11
mov qword [rsi + 0x10], r11
inc rax
je 0x1400688b8
cmp rax, rcx
jae 0x1400688b5
mov ecx, dword [rsi + 0x18]
inc ecx
cmp ecx, 0x1f4
ja 0x14006890b
cmp qword [rsi + 0x20], 0
je 0x140068904
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x20], xmm0
mov qword [rsi + 0x10], rax
mov dword [rsi + 0x18], ecx
mov rcx, rsi
call fcn.1400686d0
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movups xmmword [rsi], xmm0
movups xmmword [rsi + 0x10], xmm1
jmp 0x14006873c
mov r9b, 1
xor edi, edi
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x1400688f9
mov eax, r9d
xor al, 1
movzx eax, al
lea r8, [rax + rax*8]
add r8, 0x10
lea rax, str.invalid_syntaxrecursion_limit_reached_for_______::closureshim_as_mut_const___dyn___unsafe_extern__u
lea rdx, [0x14011dd70]
test r9b, r9b
cmovne rdx, rax
call fcn.140031c80
test al, al
je 0x1400688f9
mov dil, 2
jmp 0x14006873a
mov qword [rsi], 0
mov byte [rsi + 8], dil
xor edi, edi
jmp 0x14006873a
mov dil, 1
xor r9d, r9d
jmp 0x1400688ba
inc rcx
mov qword [rsi + 0x10], rcx
jmp 0x14006873a
Function at 0x14006d3b0
Capabilities:
Allocate thread local storage

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x60
mov rsi, rcx
cmp qword [rcx], 0
je 0x14006d435
mov dword [rsp + 0x2c], 0
lea rbx, [rsi + 0x10]
lea r8, [rsp + 0x2c]
mov rcx, rbx
xor edx, edx
xor r9d, r9d
call sub.KERNEL32.dll_InitOnceBeginInitialize
mov dword [rsp + 0x28], eax
cmp eax, 1
jne 0x14006d476
cmp dword [rsp + 0x2c], 0
je 0x14006d45a
call sub.KERNEL32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x14006d49e
mov edi, eax
inc eax
mov dword [rsi + 0x18], eax
mov rax, qword [0x1401323b0]
nop
mov qword [rsi + 8], rax
lock cmpxchg qword [0x1401323b0], rsi
jne 0x14006d410
mov byte [0x1401323a8], 1
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call sub.KERNEL32.dll_InitOnceComplete
jmp 0x14006d46c
call sub.KERNEL32.dll_TlsAlloc
mov dword [rsp + 0x28], eax
cmp eax, 0xffffffff
je 0x14006d4ea
mov ecx, eax
inc ecx
xor eax, eax
lock cmpxchg dword [rsi + 0x18], ecx
jne 0x14006d45f
mov edi, dword [rsp + 0x28]
jmp 0x14006d46c
mov edi, dword [rsi + 0x18]
jmp 0x14006d46a
mov edi, eax
mov ecx, dword [rsp + 0x28]
call sub.KERNEL32.dll_TlsFree
dec edi
mov eax, edi
add rsp, 0x60
pop rbx
pop rdi
pop rsi
ret
mov qword [rsp + 0x30], 0
lea rdx, [0x140121908]
lea r9, str.library_std_src_syswindows_thread_local_key.rs
lea rcx, [rsp + 0x28]
lea r8, [rsp + 0x30]
call fcn.14006dad0
ud2
mov rcx, rbx
mov edx, 4
xor r8d, r8d
call sub.KERNEL32.dll_InitOnceComplete
lea rax, str.out_of_TLS_indexes
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
lea rax, str.combase.dll
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rdx, str.library_std_src_syswindows_thread_local_key.rs
lea rcx, [rsp + 0x30]
call fcn.140031260
ud2
lea rax, str.out_of_TLS_indexes
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
lea rax, str.combase.dll
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x30]
call fcn.14006db10
ud2
Function at 0x14006d9a0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov ecx, dword [0x1400ee4a8]
test ecx, ecx
je 0x14006da80
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 2
jb 0x14006d9d4
mov rdi, rax
cmp qword [rax + 8], 0
je 0x14006d9d4
add rdi, 0x10
jmp 0x14006da76
mov ecx, dword [0x1400ee4a8]
test ecx, ecx
je 0x14006da93
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x14006da74
mov rsi, rax
test rax, rax
jne 0x14006da43
movzx eax, byte [0x140132410]
mov ecx, 0x18
mov edx, 8
call fcn.140007210
test rax, rax
je 0x14006dab6
mov rsi, rax
lea rax, [0x1400ee490]
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [0x1400ee4a8]
test ecx, ecx
je 0x14006daa6
dec ecx
mov rdx, rsi
call sub.KERNEL32.dll_TlsSetValue
lea rdi, [rsi + 0x10]
mov rcx, qword [rsi + 0x10]
cmp qword [rsi + 8], 0
mov qword [rsi + 8], 1
mov qword [rsi + 0x10], 0
je 0x14006da76
test rcx, rcx
je 0x14006da76
lock dec qword [rcx]
jne 0x14006da76
call fcn.14006d350
jmp 0x14006da76
xor edi, edi
mov rax, rdi
add rsp, 0x28
pop rdi
pop rsi
ret
lea rcx, [0x1400ee490]
call fcn.14006d3b0
mov ecx, eax
jmp 0x14006d9b6
lea rcx, [0x1400ee490]
call fcn.14006d3b0
mov ecx, eax
jmp 0x14006d9e4
lea rcx, [0x1400ee490]
call fcn.14006d3b0
mov ecx, eax
jmp 0x14006da3b
mov ecx, 8
mov edx, 0x18
call fcn.1400077f0
ud2

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

Disassembly:
push rsi
sub rsp, 0x20
mov ecx, dword [0x1400ee4c8]
test ecx, ecx
je 0x14006e14f
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 2
jb 0x14006e0d9
mov rsi, rax
cmp byte [rax + 8], 0
jne 0x14006e13e
mov ecx, dword [0x1400ee4c8]
test ecx, ecx
je 0x14006e162
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x14006e144
mov rsi, rax
test rax, rax
jne 0x14006e138
movzx eax, byte [0x140132410]
mov ecx, 0x10
mov edx, 8
call fcn.140007210
test rax, rax
je 0x14006e185
mov rsi, rax
lea rax, [0x1400ee4b0]
mov qword [rsi], rax
mov byte [rsi + 8], 0
mov ecx, dword [0x1400ee4c8]
test ecx, ecx
je 0x14006e175
dec ecx
mov rdx, rsi
call sub.KERNEL32.dll_TlsSetValue
mov word [rsi + 8], 1
add rsi, 9
jmp 0x14006e146
xor esi, esi
mov rax, rsi
add rsp, 0x20
pop rsi
ret
lea rcx, [0x1400ee4b0]
call fcn.14006d3b0
mov ecx, eax
jmp 0x14006e0c5
lea rcx, [0x1400ee4b0]
call fcn.14006d3b0
mov ecx, eax
jmp 0x14006e0e5
lea rcx, [0x1400ee4b0]
call fcn.14006d3b0
mov ecx, eax
jmp 0x14006e130
mov ecx, 8
mov edx, 0x10
call fcn.1400077f0
ud2
Function at 0x14006e6f0
Capabilities:
Write file on windows

Disassembly:
push rsi
push rdi
sub rsp, 0xa8
mov rdi, rdx
mov rsi, rcx
movups xmm0, xmmword [0x140120ee8]
movaps xmmword [rsp + 0x60], xmm0
mov eax, 0xffffffff
cmp r9, rax
cmovb rax, r9
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r8
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rcx, rdx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.ntdll.dll_NtWriteFile
cmp eax, 0x103
jne 0x14006e761
mov rcx, rdi
mov edx, 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
mov eax, dword [rsp + 0x60]
cmp eax, 0x103
je 0x14006e797
test eax, eax
js 0x14006e772
mov rax, qword [rsp + 0x68]
mov qword [rsi + 8], rax
xor eax, eax
jmp 0x14006e78a
mov ecx, eax
call sub.ntdll.dll_RtlNtStatusToDosError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov eax, 1
mov qword [rsi], rax
add rsp, 0xa8
pop rdi
pop rsi
ret
mov dword [rsp + 0x58], 0
mov byte [rsp + 0x5c], 0
lea rax, [0x140120f48]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 1
lea rax, [rsp + 0x50]
mov qword [rsp + 0x88], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x90], xmm0
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x78]
call fcn.14006d7c0
mov qword [rsp + 0x70], rax
lea rcx, [rsp + 0x70]
call fcn.14006cc50
mov ecx, 7
int 0x29
ud2

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

Disassembly:
push rsi
sub rsp, 0x20
mov ecx, dword [0x1400ee488]
test ecx, ecx
je 0x14006ed9d
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 2
jb 0x14006ed10
cmp qword [rax + 8], 0
je 0x14006ed10
add rax, 0x10
jmp 0x14006ed97
mov ecx, dword [0x1400ee488]
test ecx, ecx
je 0x14006edb0
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x14006ed95
mov rsi, rax
test rax, rax
jne 0x14006ed7b
movzx eax, byte [0x140132410]
mov ecx, 0x20
mov edx, 8
call fcn.140007210
test rax, rax
je 0x14006edd3
mov rsi, rax
lea rax, [0x1400ee470]
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [0x1400ee488]
test ecx, ecx
je 0x14006edc3
dec ecx
mov rdx, rsi
call sub.KERNEL32.dll_TlsSetValue
mov qword [rsi + 8], 1
lea rax, [rsi + 0x10]
mov qword [rsi + 0x10], 0
mov byte [rsi + 0x18], 0
jmp 0x14006ed97
xor eax, eax
add rsp, 0x20
pop rsi
ret
lea rcx, [0x1400ee470]
call fcn.14006d3b0
mov ecx, eax
jmp 0x14006ecf5
lea rcx, [0x1400ee470]
call fcn.14006d3b0
mov ecx, eax
jmp 0x14006ed20
lea rcx, [0x1400ee470]
call fcn.14006d3b0
mov ecx, eax
jmp 0x14006ed73
mov ecx, 8
mov edx, 0x20
call fcn.1400077f0
ud2
Function at 0x1400709f0
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x468
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], 2
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rsp + 0x20], rax
xor edi, edi
mov ebx, 0xffffffff
xor esi, esi
xor r14d, r14d
cmp r8, 0x201
jae 0x140070a60
jmp 0x140070a4f
jae 0x140070b05
cmp r8, 0x201
jae 0x140070a60
mov r15d, 0x200
lea r12, [rsp + 0x68]
mov r13, r8
jmp 0x140070aa7
sub r8, r14
sub rsi, r14
cmp rsi, r8
jae 0x140070a87
lea rcx, [rsp + 0x30]
mov rdx, r14
call fcn.14006f7e0
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov rdi, qword [rsp + 0x38]
cmp rdi, rbx
mov r14d, 0xffffffff
cmovb r14, rdi
mov qword [rsp + 0x40], r14
mov rsi, rdi
mov r15, r14
mov r12, qword [rsp + 0x20]
mov r13, r14
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov ecx, r13d
mov rdx, r12
call sub.KERNEL32.dll_GetCurrentDirectoryW
mov ebp, eax
test eax, eax
jne 0x140070acc
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x140070b5e
mov r8d, ebp
cmp r13, r8
jne 0x140070a40
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x140070b7e
add r13, r13
cmp r13, rbx
cmovae r13, rbx
mov r8, r13
cmp r8, 0x201
jb 0x140070a4f
jmp 0x140070a60
cmp r15, r8
jb 0x140070b98
lea rcx, [rsp + 0x48]
mov rdx, r12
call fcn.1400713f0
movups xmm0, xmmword [rsp + 0x48]
movups xmm1, xmmword [rsp + 0x58]
mov rax, qword [rsp + 0x28]
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
test rdi, rdi
je 0x140070b49
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, qword [rsp + 0x20]
call sub.KERNEL32.dll_HeapFree
nop
add rsp, 0x468
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov rcx, qword [rsp + 0x28]
mov qword [rcx], rax
mov byte [rcx + 0x18], 2
test rdi, rdi
jne 0x140070b36
jmp 0x140070b49
lea rcx, str.internal_error:_entered_unreachable_codeassertion_failed:_injected___worker_thread.is_null__assertion_failed:_mid___self.len__
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.140031fa0
jmp 0x140070bad
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, r15
mov r8, rax
call fcn.140031c00
ud2
Function at 0x140074680
Capabilities:
Read file via mapping

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0xc8
mov rax, r8
mov rsi, rcx
mov dword [rsp + 0x38], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x50], 7
mov qword [rsp + 0x54], 0
mov word [rsp + 0x5c], 0
mov byte [rsp + 0x58], 1
lea r8, [rsp + 0x38]
mov rcx, rdx
mov rdx, rax
call fcn.14008d3f0
mov rdi, rdx
test rax, rax
je 0x140074714
mov qword [rsp + 0x80], 1
lea rcx, [rsp + 0x88]
mov qword [rsp + 0x88], rdi
call fcn.14006cb90
mov qword [rsi], 0
add rsp, 0xc8
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea rcx, [rsp + 0x38]
mov rdx, rdi
call fcn.14008d610
cmp dword [rsp + 0x38], 2
jne 0x140074743
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x80], 2
jmp 0x14007478f
movups xmm0, xmmword [rsp + 0x38]
movups xmm1, xmmword [rsp + 0x48]
movups xmm2, xmmword [rsp + 0x58]
movups xmm3, xmmword [rsp + 0x68]
movaps xmmword [rsp + 0x80], xmm0
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xc0], rax
movaps xmmword [rsp + 0xb0], xmm3
movaps xmmword [rsp + 0xa0], xmm2
movaps xmmword [rsp + 0x90], xmm1
cmp qword [rsp + 0x80], 2
jne 0x1400747bb
lea rcx, [rsp + 0x88]
call fcn.14006cb90
mov qword [rsi], 0
mov rcx, rdi
add rsp, 0xc8
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
jmp sub.KERNEL32.dll_CloseHandle
mov r12, qword [rsp + 0xb8]
test rdi, rdi
je 0x140074819
mov qword [rsp + 0x80], 0
call sub.KERNEL32.dll_GetCurrentProcess
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r9, [rsp + 0x80]
mov rcx, rax
mov rdx, rdi
mov r8, rax
call sub.KERNEL32.dll_DuplicateHandle
test eax, eax
je 0x140074895
mov rbx, qword [rsp + 0x80]
jmp 0x14007481b
xor ebx, ebx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rbx
xor edx, edx
mov r8d, 2
xor r9d, r9d
call sub.KERNEL32.dll_CreateFileMappingA
test rax, rax
je 0x140074884
mov r14, rax
mov qword [rsp + 0x20], r12
mov rcx, rax
mov edx, 4
xor r8d, r8d
xor r9d, r9d
call sub.KERNEL32.dll_MapViewOfFile
mov r15, rax
mov rcx, r14
call sub.KERNEL32.dll_CloseHandle
test r15, r15
je 0x140074884
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], r12
mov qword [rsi], 1
jmp 0x1400748c1
mov qword [rsi], 0
mov rcx, rbx
call sub.KERNEL32.dll_CloseHandle
jmp 0x1400748c1
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x38], 1
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x40], rax
call fcn.14006cb90
mov qword [rsi], 0
mov rcx, rdi
call sub.KERNEL32.dll_CloseHandle
jmp 0x140074703
Function at 0x14008e6a0
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x4a8
mov rsi, rcx
lea rcx, [rsp + 0xa8]
call fcn.14006f2e0
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x30], rax
test rax, rax
je 0x14008e80b
mov qword [rsp + 0x38], rsi
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 2
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rsp + 0x28], rax
xor ebx, ebx
mov esi, 0xffffffff
xor r14d, r14d
xor r13d, r13d
cmp r8, 0x201
jae 0x14008e760
jmp 0x14008e73f
jae 0x14008e821
cmp r8, 0x201
jae 0x14008e760
mov edi, 0x200
lea rbp, [rsp + 0xa8]
mov r12, r8
jmp 0x14008e7a7
sub r8, r13
sub r14, r13
cmp r14, r8
jae 0x14008e787
lea rcx, [rsp + 0x48]
mov rdx, r13
call fcn.14006f7e0
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov rbx, qword [rsp + 0x50]
cmp rbx, rsi
mov r13d, 0xffffffff
cmovb r13, rbx
mov qword [rsp + 0x58], r13
mov r14, rbx
mov rdi, r13
mov rbp, qword [rsp + 0x28]
mov r12, r13
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov rcx, qword [rsp + 0x30]
mov rdx, rbp
mov r8d, r12d
call sub.KERNEL32.dll_GetEnvironmentVariableW
mov r15d, eax
test eax, eax
jne 0x14008e7d2
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x14008e856
mov r8d, r15d
cmp r12, r8
jne 0x14008e730
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x14008e8ea
add r12, r12
cmp r12, rsi
cmovae r12, rsi
mov r8, r12
cmp r8, 0x201
jb 0x14008e73f
jmp 0x14008e760
lea rcx, [rsp + 0xb0]
call fcn.14006cb90
mov byte [rsi + 0x18], 2
jmp 0x14008e8ba
cmp rdi, r8
jb 0x14008e904
lea rcx, [rsp + 0x88]
mov rdx, rbp
call fcn.1400713f0
movups xmm0, xmmword [rsp + 0x88]
movups xmm1, xmmword [rsp + 0x98]
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
jmp 0x14008e86d
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x78], 2
mov rsi, qword [rsp + 0x38]
test rbx, rbx
je 0x14008e88a
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, qword [rsp + 0x28]
call sub.KERNEL32.dll_HeapFree
cmp byte [rsp + 0x78], 2
jne 0x14008e8cf
mov byte [rsi + 0x18], 2
lea rcx, [rsp + 0x60]
call fcn.14006cb90
cmp qword [rsp + 0x40], 0
je 0x14008e8ba
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, qword [rsp + 0x30]
call sub.KERNEL32.dll_HeapFree
nop
add rsp, 0x4a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
cmp qword [rsp + 0x40], 0
jne 0x14008e8a7
jmp 0x14008e8ba
lea rcx, str.internal_error:_entered_unreachable_codeassertion_failed:_injected___worker_thread.is_null__assertion_failed:_mid___self.len__
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.140031fa0
jmp 0x14008e919
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, rdi
mov r8, rax
call fcn.140031c00
ud2
Function at 0x140090760
Capabilities:
Read file on windows

Disassembly:
push rsi
push rdi
sub rsp, 0xa8
mov rdi, rdx
mov rsi, rcx
movups xmm0, xmmword [0x140120ee8]
movaps xmmword [rsp + 0x60], xmm0
mov eax, 0xffffffff
cmp r9, rax
cmovb rax, r9
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r8
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rcx, rdx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.ntdll.dll_NtReadFile
cmp eax, 0x103
jne 0x1400907ca
mov rcx, rdi
mov edx, 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
mov eax, dword [rsp + 0x60]
cmp eax, 0xc0000011
jne 0x1400907d9
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
jmp 0x140090810
cmp eax, 0x103
je 0x14009081a
test eax, eax
js 0x1400907f6
mov rax, qword [rsp + 0x68]
mov qword [rsi + 8], rax
mov qword [rsi], 0
jmp 0x140090810
mov ecx, eax
call sub.ntdll.dll_RtlNtStatusToDosError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
add rsp, 0xa8
pop rdi
pop rsi
ret
mov dword [rsp + 0x58], 0
mov byte [rsp + 0x5c], 0
lea rax, [0x140120f48]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 1
lea rax, [rsp + 0x50]
mov qword [rsp + 0x88], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x90], xmm0
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x78]
call fcn.14006d7c0
mov qword [rsp + 0x70], rax
lea rcx, [rsp + 0x70]
call fcn.14006cc50
mov ecx, 7
int 0x29
ud2

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

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov ecx, dword [0x1400ee4e8]
test ecx, ecx
je 0x1400938e0
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 2
jb 0x140093834
mov rdi, rax
cmp qword [rax + 8], 0
je 0x140093834
add rdi, 0x10
jmp 0x1400938d6
mov ecx, dword [0x1400ee4e8]
test ecx, ecx
je 0x1400938f3
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x1400938d4
mov rsi, rax
test rax, rax
jne 0x1400938a3
movzx eax, byte [0x140132410]
mov ecx, 0x18
mov edx, 8
call fcn.140007210
test rax, rax
je 0x140093916
mov rsi, rax
lea rax, [0x1400ee4d0]
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [0x1400ee4e8]
test ecx, ecx
je 0x140093906
dec ecx
mov rdx, rsi
call sub.KERNEL32.dll_TlsSetValue
lea rdi, [rsi + 0x10]
mov rcx, qword [rsi + 0x10]
cmp qword [rsi + 8], 0
mov qword [rsi + 8], 1
mov qword [rsi + 0x10], 0
je 0x1400938d6
test rcx, rcx
je 0x1400938d6
lock dec qword [rcx]
jne 0x1400938d6
call fcn.140093930
jmp 0x1400938d6
xor edi, edi
mov rax, rdi
add rsp, 0x28
pop rdi
pop rsi
ret
lea rcx, [0x1400ee4d0]
call fcn.14006d3b0
mov ecx, eax
jmp 0x140093816
lea rcx, [0x1400ee4d0]
call fcn.14006d3b0
mov ecx, eax
jmp 0x140093844
lea rcx, [0x1400ee4d0]
call fcn.14006d3b0
mov ecx, eax
jmp 0x14009389b
mov ecx, 8
mov edx, 0x18
call fcn.1400077f0
ud2
Function at 0x140093e40
Capabilities:
Resolve dns

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x88
mov ebx, r9d
mov rsi, rcx
lea rcx, [rsp + 0x30]
call fcn.140007aa0
mov r8, qword [rsp + 0x30]
test r8, r8
je 0x140093e9e
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rsi + 8], rax
mov qword [rsi], 1
cmp qword [rsp + 0x38], 0
je 0x140093f2a
mov rcx, qword [0x140132378]
xor edx, edx
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r14
jmp sub.KERNEL32.dll_HeapFree
mov rdi, qword [rsp + 0x38]
mov r14, qword [rsp + 0x40]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
mov dword [rsp + 0x58], 1
mov qword [rsp + 0x28], 0
lea r8, [rsp + 0x50]
lea r9, [rsp + 0x28]
mov rcx, rdi
xor edx, edx
call sub.ws2_32.dll_getaddrinfo
test eax, eax
je 0x140093efb
call sub.ws2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov eax, 1
jmp 0x140093f0e
mov rax, qword [rsp + 0x28]
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rax
mov word [rsi + 0x18], bx
xor eax, eax
mov qword [rsi], rax
mov byte [rdi], 0
test r14, r14
je 0x140093f2a
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
nop
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r14
ret
Function at 0x14009bb30
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rsi
push rdi
sub rsp, 0x88
movdqa xmmword [rsp + 0x70], xmm6
mov rsi, rcx
lea rcx, [rsp + 0x40]
call fcn.14006f2e0
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
test rcx, rcx
je 0x14009bba5
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x58]
call fcn.14009ba60
mov rdi, qword [rsp + 0x28]
test rdi, rdi
je 0x14009bbb3
movdqu xmm6, xmmword [rsp + 0x30]
mov rcx, rdi
call sub.KERNEL32.dll_GetFileAttributesW
cmp eax, 0xffffffff
je 0x14009bbd3
mov qword [rsi], rdi
movdqu xmmword [rsi + 8], xmm6
jmp 0x14009bbc4
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x30]
call fcn.14006cb90
mov qword [rsi], 0
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rdi
pop rsi
ret
mov qword [rsi], 0
movq rax, xmm6
test rax, rax
je 0x14009bbc4
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, rdi
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rdi
pop rsi
jmp sub.KERNEL32.dll_HeapFree