joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400781a0
Capabilities:
Read file via mapping

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
movaps xmmword [rsp + 0x80], xmm6
mov rax, r8
mov rsi, rcx
mov dword [rsp + 0x40], 0
xorps xmm6, xmm6
movups xmmword [rsp + 0x48], xmm6
mov dword [rsp + 0x58], 7
mov qword [rsp + 0x5c], 0
mov word [rsp + 0x64], 0
mov byte [rsp + 0x60], 1
lea r8, [rsp + 0x40]
mov rcx, rdx
mov rdx, rax
call fcn.140090680
mov rdi, rdx
test rax, rax
je 0x140078217
mov rcx, rdi
call fcn.1400761d0
mov qword [rsi], 0
jmp 0x1400783aa
movaps xmmword [rsp + 0x60], xmm6
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm6
mov dword [rsp + 0x70], 0
lea rdx, [rsp + 0x40]
mov rcx, rdi
call sub.kernel32.dll_GetFileInformationByHandle
test eax, eax
je 0x1400782ca
test byte [rsp + 0x41], 4
je 0x14007826f
mov qword [rsp + 0x78], 0
lea r8, [rsp + 0x78]
mov rcx, rdi
mov edx, 9
mov r9d, 8
call sub.kernel32.dll_GetFileInformationByHandleEx
test eax, eax
je 0x1400782ca
mov r12d, dword [rsp + 0x60]
mov r15d, dword [rsp + 0x64]
test rdi, rdi
je 0x140078306
mov qword [rsp + 0x40], 0
call sub.kernel32.dll_GetCurrentProcess
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
mov rcx, rax
mov rdx, rdi
mov r8, rax
call sub.kernel32.dll_DuplicateHandle
test eax, eax
je 0x140078389
mov rbx, qword [rsp + 0x40]
jmp 0x140078308
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov rcx, rax
call fcn.1400761d0
mov qword [rsi], 0
mov rcx, rdi
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
jmp sub.kernel32.dll_CloseHandle
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 0x140078378
mov r14, rax
shl r12, 0x20
or r12, r15
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 0x140078378
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], r12
mov qword [rsi], 1
jmp 0x1400783a2
mov qword [rsi], 0
mov rcx, rbx
call sub.kernel32.dll_CloseHandle
jmp 0x1400783a2
call sub.kernel32.dll_GetLastError
shl rax, 0x20
lea rcx, [rax + 2]
call fcn.1400761d0
mov qword [rsi], 0
mov rcx, rdi
call sub.kernel32.dll_CloseHandle
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
Function at 0x14008c560
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.14009bd80
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
test rax, rax
je 0x14008c5da
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], rdx
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x58]
call fcn.140088550
mov rdi, qword [rsp + 0x28]
test rdi, rdi
je 0x14008c5d5
movdqu xmm6, xmmword [rsp + 0x30]
mov rcx, rdi
call sub.kernel32.dll_GetFileAttributesW
cmp eax, 0xffffffff
je 0x14008c5f5
mov qword [rsi], rdi
movdqu xmmword [rsi + 8], xmm6
jmp 0x14008c5e6
mov rcx, qword [rsp + 0x30]
call fcn.1400761d0
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 0x14008c5e6
mov edx, 2
mov rcx, rdi
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rdi
pop rsi
jmp fcn.14000d8b0

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

Disassembly:
push rsi
sub rsp, 0x20
mov ecx, dword [0x1400ff2a8]
test ecx, ecx
je 0x14008da3d
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jb 0x14008d9b0
cmp qword [rax + 8], 0
je 0x14008d9b0
add rax, 0x10
jmp 0x14008da37
mov ecx, dword [0x1400ff2a8]
test ecx, ecx
je 0x14008da50
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
je 0x14008da35
mov rsi, rax
test rax, rax
jne 0x14008da1b
movzx eax, byte [0x1401e52e0]
mov ecx, 0x20
mov edx, 8
call fcn.14000d820
test rax, rax
je 0x14008da73
mov rsi, rax
lea rax, [0x1400ff290]
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [0x1400ff2a8]
test ecx, ecx
je 0x14008da63
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 0x14008da37
xor eax, eax
add rsp, 0x20
pop rsi
ret
lea rcx, [0x1400ff290]
call fcn.140091f10
mov ecx, eax
jmp 0x14008d995
lea rcx, [0x1400ff290]
call fcn.140091f10
mov ecx, eax
jmp 0x14008d9c0
lea rcx, [0x1400ff290]
call fcn.140091f10
mov ecx, eax
jmp 0x14008da13
mov ecx, 8
mov edx, 0x20
call fcn.14000fe80
ud2
Function at 0x14008de40
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov ecx, dword [0x1400ff230]
test ecx, ecx
je 0x14008df20
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jb 0x14008de74
mov rdi, rax
cmp qword [rax + 8], 0
je 0x14008de74
add rdi, 0x10
jmp 0x14008df16
mov ecx, dword [0x1400ff230]
test ecx, ecx
je 0x14008df33
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
je 0x14008df14
mov rsi, rax
test rax, rax
jne 0x14008dee3
movzx eax, byte [0x1401e52e0]
mov ecx, 0x18
mov edx, 8
call fcn.14000d820
test rax, rax
je 0x14008df56
mov rsi, rax
lea rax, [0x1400ff218]
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [0x1400ff230]
test ecx, ecx
je 0x14008df46
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 0x14008df16
test rcx, rcx
je 0x14008df16
lock dec qword [rcx]
jne 0x14008df16
call fcn.14008d930
jmp 0x14008df16
xor edi, edi
mov rax, rdi
add rsp, 0x28
pop rdi
pop rsi
ret
lea rcx, [0x1400ff218]
call fcn.140091f10
mov ecx, eax
jmp 0x14008de56
lea rcx, [0x1400ff218]
call fcn.140091f10
mov ecx, eax
jmp 0x14008de84
lea rcx, [0x1400ff218]
call fcn.140091f10
mov ecx, eax
jmp 0x14008dedb
mov ecx, 8
mov edx, 0x18
call fcn.14000fe80
ud2

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

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov ecx, dword [0x1400ff250]
test ecx, ecx
je 0x14008e300
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jb 0x14008e254
mov rdi, rax
cmp qword [rax + 8], 0
je 0x14008e254
add rdi, 0x10
jmp 0x14008e2f6
mov ecx, dword [0x1400ff250]
test ecx, ecx
je 0x14008e313
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
je 0x14008e2f4
mov rsi, rax
test rax, rax
jne 0x14008e2c3
movzx eax, byte [0x1401e52e0]
mov ecx, 0x18
mov edx, 8
call fcn.14000d820
test rax, rax
je 0x14008e336
mov rsi, rax
lea rax, [0x1400ff238]
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [0x1400ff250]
test ecx, ecx
je 0x14008e326
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 0x14008e2f6
test rcx, rcx
je 0x14008e2f6
lock dec qword [rcx]
jne 0x14008e2f6
call fcn.14008db20
jmp 0x14008e2f6
xor edi, edi
mov rax, rdi
add rsp, 0x28
pop rdi
pop rsi
ret
lea rcx, [0x1400ff238]
call fcn.140091f10
mov ecx, eax
jmp 0x14008e236
lea rcx, [0x1400ff238]
call fcn.140091f10
mov ecx, eax
jmp 0x14008e264
lea rcx, [0x1400ff238]
call fcn.140091f10
mov ecx, eax
jmp 0x14008e2bb
mov ecx, 8
mov edx, 0x18
call fcn.14000fe80
ud2
Function at 0x14008fd30
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rdx
mov rdi, rcx
mov ecx, dword [rcx + 0x18]
test ecx, ecx
je 0x14008fde4
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jb 0x14008fd61
cmp byte [rax + 8], 0
je 0x14008fd61
add rax, 9
jmp 0x14008fddc
mov ecx, dword [rdi + 0x18]
test ecx, ecx
je 0x14008fdf3
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
je 0x14008fdda
mov rbx, rax
test rax, rax
jne 0x14008fdb7
movzx eax, byte [0x1401e52e0]
mov ecx, 0x10
mov edx, 8
call fcn.14000d820
test rax, rax
je 0x14008fe0e
mov rbx, rax
mov qword [rax], rdi
mov byte [rax + 8], 0
mov ecx, dword [rdi + 0x18]
test ecx, ecx
je 0x14008fe02
dec ecx
mov rdx, rbx
call sub.kernel32.dll_TlsSetValue
xor ecx, ecx
test rsi, rsi
je 0x14008fdcd
cmp byte [rsi], 0
mov byte [rsi], 0
movzx eax, byte [rsi + 1]
cmove eax, ecx
mov ecx, eax
lea rax, [rbx + 9]
mov byte [rbx + 8], 1
mov byte [rbx + 9], cl
jmp 0x14008fddc
xor eax, eax
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov rcx, rdi
call fcn.140091f10
mov ecx, eax
jmp 0x14008fd4a
mov rcx, rdi
call fcn.140091f10
mov ecx, eax
jmp 0x14008fd6e
mov rcx, rdi
call fcn.140091f10
mov ecx, eax
jmp 0x14008fdaf
mov ecx, 8
mov edx, 0x10
call fcn.14000fe80
ud2
Function at 0x140091f10
Capabilities:
Allocate thread local storage

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x60
mov rsi, rcx
cmp qword [rcx], 0
je 0x140091f95
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 0x140091fd6
cmp dword [rsp + 0x2c], 0
je 0x140091fba
call sub.kernel32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x140091ffe
mov edi, eax
inc eax
mov dword [rsi + 0x18], eax
mov rax, qword [0x1401e5240]
nop
mov qword [rsi + 8], rax
lock cmpxchg qword [0x1401e5240], rsi
jne 0x140091f70
mov byte [0x1401e5239], 1
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call sub.kernel32.dll_InitOnceComplete
jmp 0x140091fcc
call sub.kernel32.dll_TlsAlloc
mov dword [rsp + 0x28], eax
cmp eax, 0xffffffff
je 0x14009204a
mov ecx, eax
inc ecx
xor eax, eax
lock cmpxchg dword [rsi + 0x18], ecx
jne 0x140091fbf
mov edi, dword [rsp + 0x28]
jmp 0x140091fcc
mov edi, dword [rsi + 0x18]
jmp 0x140091fca
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, [0x140194840]
lea r9, str.library_std_src_syswindows_thread_local_key.rs
lea rcx, [rsp + 0x28]
lea r8, [rsp + 0x30]
call fcn.14006eaf0
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.E:code_rustgithubollvm_rustlibrarycore_src_fmtmod.rs
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.1400174a0
ud2
lea rax, str.out_of_TLS_indexes
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
lea rax, str.E:code_rustgithubollvm_rustlibrarycore_src_fmtmod.rs
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x30]
call fcn.14006eb30
ud2
Function at 0x140092090
Capabilities:
Generate random numbers via winapi
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x38
mov rsi, rcx
mov ecx, dword [0x1400ff270]
test ecx, ecx
je 0x1400921ae
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jb 0x1400920c7
mov rcx, rax
cmp qword [rax + 8], 0
je 0x1400920c7
add rcx, 0x10
jmp 0x1400921a4
mov ecx, dword [0x1400ff270]
test ecx, ecx
je 0x1400921c1
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
je 0x140092187
mov rdi, rax
test rax, rax
jne 0x14009213a
movzx eax, byte [0x1401e52e0]
mov ecx, 0x20
mov edx, 8
call fcn.14000d820
test rax, rax
je 0x1400921e7
mov rdi, rax
lea rax, [0x1400ff258]
mov qword [rdi], rax
mov qword [rdi + 8], 0
mov ecx, dword [0x1400ff270]
test ecx, ecx
je 0x1400921d4
dec ecx
mov rdx, rdi
call sub.kernel32.dll_TlsSetValue
test rsi, rsi
je 0x140092157
mov rcx, qword [rsi]
mov rax, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
mov qword [rsi], 0
cmp rcx, 1
je 0x140092190
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x20]
xor ecx, ecx
mov r8d, 0x10
mov r9d, 2
call sub.bcrypt.dll_BCryptGenRandom
test eax, eax
js 0x14009218b
mov rax, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
jmp 0x140092190
xor ecx, ecx
jmp 0x1400921a4
call fcn.14009df20
mov qword [rdi + 8], 1
lea rcx, [rdi + 0x10]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rdx
mov rax, rcx
add rsp, 0x38
pop rdi
pop rsi
ret
lea rcx, [0x1400ff258]
call fcn.140091f10
mov ecx, eax
jmp 0x1400920a9
lea rcx, [0x1400ff258]
call fcn.140091f10
mov ecx, eax
jmp 0x1400920d7
lea rcx, [0x1400ff258]
call fcn.140091f10
mov ecx, eax
jmp 0x140092132
mov ecx, 8
mov edx, 0x20
call fcn.14000fe80
ud2

Function at 0x14009ac50
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.14000e560
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14009acaa
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 0x14009ad32
mov edx, 1
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r14
jmp fcn.14000d8b0
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 0x14009ad07
call sub.ws2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov eax, 1
jmp 0x14009ad1a
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 0x14009ad32
mov edx, 1
mov rcx, rdi
call fcn.14000d8b0
nop
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r14
ret

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

Disassembly:
mov rdx, rcx
lea rcx, [0x1400ff2b0]
jmp fcn.14008fd30
Function at 0x14009b190
Capabilities:
Create tcp socket
Create udp socket

Disassembly:
push rsi
push rdi
sub rsp, 0x38
mov rsi, rcx
test dx, dx
mov eax, 2
mov edi, 0x17
cmove edi, eax
mov dword [rsp + 0x28], 0x81
mov dword [rsp + 0x20], 0
mov ecx, edi
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call sub.ws2_32.dll_WSASocketW
cmp rax, 0xffffffffffffffff
je 0x14009b1de
mov qword [rsi + 8], rax
mov qword [rsi], 0
jmp 0x14009b24e
call sub.ws2_32.dll_WSAGetLastError
cmp eax, 0x2726
je 0x14009b1f1
cmp eax, 0x2739
jne 0x14009b23b
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0
mov ecx, edi
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call sub.ws2_32.dll_WSASocketW
cmp rax, 0xffffffffffffffff
je 0x14009b236
mov rdi, rax
mov rcx, rax
mov edx, 1
xor r8d, r8d
call sub.kernel32.dll_SetHandleInformation
test eax, eax
je 0x14009b255
mov qword [rsi + 8], rdi
jmp 0x14009b1d5
call sub.ws2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
add rsp, 0x38
pop rdi
pop rsi
ret
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
mov rcx, rdi
add rsp, 0x38
pop rdi
pop rsi
jmp fcn.1400c2984
Function at 0x14009baa0
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x498
mov rsi, rcx
lea rcx, [rsp + 0x98]
call fcn.14009bd80
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x30], rax
test rax, rax
je 0x14009bc0b
mov qword [rsp + 0x38], rsi
mov rax, qword [rsp + 0xa0]
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 0x14009bb60
jmp 0x14009bb3f
jae 0x14009bc1e
cmp r8, 0x201
jae 0x14009bb60
mov edi, 0x200
lea rbp, [rsp + 0x98]
mov r12, r8
jmp 0x14009bba7
sub r8, r13
sub r14, r13
cmp r14, r8
jae 0x14009bb87
lea rcx, [rsp + 0x48]
mov rdx, r13
call fcn.140081f00
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 0x14009bbd2
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x14009bce2
mov r8d, r15d
cmp r12, r8
jne 0x14009bb30
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x14009bd02
add r12, r12
cmp r12, rsi
cmovae r12, rsi
mov r8, r12
cmp r8, 0x201
jb 0x14009bb3f
jmp 0x14009bb60
mov rcx, qword [rsp + 0xa0]
call fcn.1400761d0
mov byte [rsi + 0x18], 2
jmp 0x14009bc9d
cmp rdi, r8
jb 0x14009bd1c
lea rcx, [rsp + 0x60]
mov rdx, rbp
call fcn.140087ba0
mov rdi, qword [rsp + 0x60]
movups xmm0, xmmword [rsp + 0x68]
movaps xmmword [rsp + 0x80], xmm0
movzx esi, byte [rsp + 0x78]
mov eax, dword [rsp + 0x79]
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x23], eax
test rbx, rbx
je 0x14009bc6f
mov edx, 2
mov rcx, qword [rsp + 0x28]
call fcn.14000d8b0
cmp sil, 2
jne 0x14009bcb2
mov rax, qword [rsp + 0x38]
mov byte [rax + 0x18], 2
mov rcx, rdi
call fcn.1400761d0
cmp qword [rsp + 0x40], 0
je 0x14009bc9d
mov edx, 2
mov rcx, qword [rsp + 0x30]
call fcn.14000d8b0
nop
add rsp, 0x498
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rsp + 0x38]
mov qword [rdx], rdi
movaps xmm0, xmmword [rsp + 0x80]
movups xmmword [rdx + 8], xmm0
mov byte [rdx + 0x18], sil
mov eax, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x23]
mov dword [rdx + 0x19], eax
mov dword [rdx + 0x1c], ecx
cmp qword [rsp + 0x40], 0
jne 0x14009bc8e
jmp 0x14009bc9d
call sub.kernel32.dll_GetLastError
mov edi, eax
shl rdi, 0x20
or rdi, 2
mov sil, 2
test rbx, rbx
jne 0x14009bc60
jmp 0x14009bc6f
lea rcx, str.internal_error:_entered_unreachable_codeE:code_rustgithubollvm_rustlibrary_std_srcioerror_repr_bitpacked.rs
lea r8, str.library_std_src_syswindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov edx, 0x28
call fcn.1400175a0
jmp 0x14009bd31
lea rax, str.library_std_src_syswindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, r8
mov rdx, rdi
mov r8, rax
call fcn.1400184e0
ud2
Function at 0x14009c8a0
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x4a8
mov qword [rsp + 0x78], r8
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], 2
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rsp + 0x28], rax
xor edi, edi
mov r15d, 0xffffffff
xor esi, esi
xor r13d, r13d
cmp r8, 0x201
jae 0x14009c930
jmp 0x14009c90f
jae 0x14009c9d6
cmp r8, 0x201
jae 0x14009c930
mov ebx, 0x200
lea rbp, [rsp + 0xa8]
mov r12, r8
jmp 0x14009c977
sub r8, r13
sub rsi, r13
cmp rsi, r8
jae 0x14009c957
lea rcx, [rsp + 0x38]
mov rdx, r13
call fcn.140081f00
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x28], rax
mov rdi, qword [rsp + 0x40]
cmp rdi, r15
mov r13d, 0xffffffff
cmovb r13, rdi
mov qword [rsp + 0x48], r13
mov rsi, rdi
mov rbx, r13
mov rbp, qword [rsp + 0x28]
mov r12, r13
xor ecx, ecx
call sub.kernel32.dll_SetLastError
mov rcx, rbp
mov edx, r12d
call sub.kernel32.dll_GetSystemDirectoryW
mov r14d, eax
test eax, eax
jne 0x14009c99d
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x14009cabf
mov r8d, r14d
cmp r12, r8
jne 0x14009c900
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x14009cae3
add r12, r12
cmp r12, r15
cmovae r12, r15
mov r8, r12
cmp r8, 0x201
jb 0x14009c90f
jmp 0x14009c930
cmp rbx, r8
jb 0x14009cafd
lea rcx, [rsp + 0x88]
mov rdx, rbp
call fcn.140087ba0
movups xmm0, xmmword [rsp + 0x88]
movups xmm1, xmmword [rsp + 0x98]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
mov rax, qword [rsp + 0x80]
mov rdx, qword [rax]
mov r8, qword [rax + 8]
lea rcx, [rsp + 0x50]
call fcn.140085ab0
mov rax, qword [rsp + 0x78]
cmp byte [rax], 0
jne 0x14009ca43
lea rdx, [0x1401952a0]
lea rcx, [rsp + 0x50]
mov r8d, 3
call fcn.1400866d0
mov rbx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x60]
lea rcx, [rsp + 0x88]
mov rdx, rbx
call fcn.14008c560
cmp qword [rsp + 0x58], 0
je 0x14009ca72
mov edx, 1
mov rcx, rbx
call fcn.14000d8b0
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x30]
mov qword [rcx + 0x18], rax
movups xmm0, xmmword [rsp + 0x88]
movups xmmword [rcx + 8], xmm0
mov qword [rcx], 0
test rdi, rdi
je 0x14009caaa
mov edx, 2
mov rcx, qword [rsp + 0x28]
call fcn.14000d8b0
nop
add rsp, 0x4a8
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 + 0x30]
mov qword [rcx + 8], rax
mov qword [rcx], 1
test rdi, rdi
jne 0x14009ca9b
jmp 0x14009caaa
lea rcx, str.internal_error:_entered_unreachable_codeE:code_rustgithubollvm_rustlibrary_std_srcioerror_repr_bitpacked.rs
lea r8, str.library_std_src_syswindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov edx, 0x28
call fcn.1400175a0
jmp 0x14009cb12
lea rax, str.library_std_src_syswindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, r8
mov rdx, rbx
mov r8, rax
call fcn.1400184e0
ud2
Function at 0x14009cb60
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x448
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], 2
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov r15d, 0x200
mov eax, 2
mov qword [rsp + 0x20], rax
xor edi, edi
xor ebx, ebx
xor r14d, r14d
cmp r15, 0x201
jae 0x14009cbd0
jmp 0x14009cbbf
jae 0x14009cc7d
cmp r15, 0x201
jae 0x14009cbd0
mov r13d, 0x200
lea r12, [rsp + 0x48]
mov rbp, r15
jmp 0x14009cc1f
sub r15, r14
sub rbx, r14
cmp rbx, r15
jae 0x14009cbfa
lea rcx, [rsp + 0x30]
mov rdx, r14
mov r8, r15
call fcn.140081f00
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov rdi, qword [rsp + 0x38]
mov eax, 0xffffffff
cmp rdi, rax
mov r14d, 0xffffffff
cmovb r14, rdi
mov qword [rsp + 0x40], r14
mov rbx, rdi
mov r13, r14
mov r12, qword [rsp + 0x20]
mov rbp, r14
xor ecx, ecx
call sub.kernel32.dll_SetLastError
mov rcx, r12
mov edx, ebp
call sub.kernel32.dll_GetSystemDirectoryW
mov esi, eax
test eax, eax
jne 0x14009cc3f
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x14009ccb0
mov r15d, esi
cmp rbp, r15
jne 0x14009cbb0
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x14009cd23
add rbp, rbp
mov eax, 0xffffffff
cmp rbp, rax
cmovae rbp, rax
mov r15, rbp
cmp r15, 0x201
jb 0x14009cbbf
jmp 0x14009cbd0
cmp r13, r15
jb 0x14009cd3d
test esi, esi
je 0x14009ccd4
lea r14, [r15 + r15]
movzx eax, byte [0x1401e52e0]
mov edx, 2
mov rcx, r14
call fcn.14000d820
test rax, rax
je 0x14009cd51
mov rsi, rax
jmp 0x14009ccdc
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov rcx, qword [rsp + 0x28]
mov qword [rcx + 8], rax
mov qword [rcx], 0
test rdi, rdi
jne 0x14009ccff
jmp 0x14009cd0e
mov esi, 2
xor r14d, r14d
mov rcx, rsi
mov rdx, r12
mov r8, r14
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x28]
mov qword [rax], rsi
mov qword [rax + 8], r15
mov qword [rax + 0x10], r15
test rdi, rdi
je 0x14009cd0e
mov edx, 2
mov rcx, qword [rsp + 0x20]
call fcn.14000d8b0
nop
add rsp, 0x448
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.internal_error:_entered_unreachable_codeE:code_rustgithubollvm_rustlibrary_std_srcioerror_repr_bitpacked.rs
lea r8, str.library_std_src_syswindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov edx, 0x28
call fcn.1400175a0
jmp 0x14009cd5e
lea r8, str.library_std_src_syswindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, r15
mov rdx, r13
call fcn.1400184e0
jmp 0x14009cd5e
mov ecx, 2
mov rdx, r14
call fcn.14000fe80
ud2