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

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
mov rbx, rcx
mov rdi, rcx
and rbx, 0xffffffffffffc000
cmp qword [rbx + 0x60], 0
je 0x1401025b0
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [rbx + 0x68]
jne 0x1401025b0
mov rax, qword [rbx + 0x60]
mov byte [rax + 0x344], 0
mov eax, 0xffff
add word [rbx + 0x74], ax
jne 0x14010254d
movzx ecx, word [rbx + 0x76]
mov r9, qword [rbx + 0x60]
call fcn.140102cc0
mov r8d, eax
inc r8
lea rax, [r8 + r8*2]
cmp rbx, qword [r9 + rax*8]
je 0x140102521
mov rcx, qword [rbx + 0x48]
test rcx, rcx
je 0x1401024b9
mov rax, qword [rbx + 0x40]
mov qword [rcx + 0x40], rax
mov rcx, qword [rbx + 0x40]
test rcx, rcx
je 0x1401024ca
mov rax, qword [rbx + 0x48]
mov qword [rcx + 0x48], rax
mov rcx, qword [rbx + 0x20]
lea rax, [rbx + 0x4000]
xor r8d, r8d
mov qword [rbx + 0x50], rax
mov qword [rbx + 0x40], r8
mov qword [rbx + 0x48], r8
mov qword [rbx + 0x58], r8
mov dword [rbx + 0x74], r8d
mov byte [rbx + 0x78], r8b
mov qword [rbx + 0x60], r8
mov qword [rbx + 0x10], r8
mov qword [rbx + 0x18], r8
mov ecx, dword [rcx + 0x1f2bc]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, rbx
lea rcx, [rax + 0x300]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp fcn.140103690
movzx eax, word [rbx + 0x76]
mov rcx, rbx
sub rcx, rax
mov edx, 0x4000
add rcx, rdx
xor r8d, r8d
mov qword [rbx + 0x50], rcx
mov qword [rbx + 0x58], r8
mov byte [rbx + 0x78], r8b
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
movzx ecx, word [rbx + 0x76]
mov eax, 0x400
cmp cx, ax
jbe 0x140102591
test dil, 0x7f
jne 0x140102591
movzx eax, bx
movzx r8d, cx
sub ax, di
mov edx, 0x4000
add ax, dx
xor edx, edx
movzx eax, ax
div r8d
test dx, dx
je 0x140102588
movzx eax, dx
sub r8d, eax
jmp 0x14010258b
xor r8d, r8d
movsxd rax, r8d
sub rdi, rax
mov rax, qword [rbx + 0x58]
xor edx, edx
mov qword [rdi], rax
mov rcx, rbx
mov qword [rbx + 0x58], rdi
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp fcn.140101910
movzx ecx, word [rbx + 0x76]
mov eax, 0x400
cmp cx, ax
jbe 0x1401025f4
test dil, 0x7f
jne 0x1401025f4
movzx eax, bx
movzx r8d, cx
sub ax, di
mov edx, 0x4000
add ax, dx
xor edx, edx
movzx eax, ax
div r8d
test dx, dx
je 0x1401025eb
movzx eax, dx
sub r8d, eax
jmp 0x1401025ee
xor r8d, r8d
movsxd rax, r8d
sub rdi, rax
mov rax, qword [rbx + 0x10]
nop dword [rax + rax]
mov qword [rdi], rax
mov rcx, rax
lock cmpxchg qword [rbx + 0x10], rdi
cmp rax, rcx
jne 0x140102600
test rcx, rcx
jne 0x140102643
mov qword [rsp + 0x30], rsi
mov rsi, qword [rbx + 0x18]
cmp rsi, 1
je 0x14010263e
lea rcx, [rsi + 0x10]
call fcn.1401018a0
mov rax, qword [rsi + 8]
mov qword [rbx + 0x18], rax
mov qword [rsi + 8], rbx
mov byte [rsi + 0x10], 0
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140102d40
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0x20
mov rsi, rcx
movzx ebx, dl
mov ecx, dword [rcx + 0x1f2bc]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test bl, bl
je 0x140102e9a
test rax, rax
jne 0x140102e9a
mov qword [rsp + 0x30], rdi
lea rdi, [rsi + 0x1f2c0]
mov rcx, rdi
call fcn.1401018a0
mov rbx, qword [rdi + 0x18]
test rbx, rbx
je 0x140102d93
mov rax, qword [rbx]
mov qword [rdi + 0x18], rax
jmp 0x140102e0e
mov rdx, qword [rdi + 8]
test rdx, rdx
jne 0x140102dc7
mov edx, 0x348
mov rcx, rsi
call fcn.1401027b0
mov qword [rdi + 8], rax
mov rdx, rax
test rax, rax
jne 0x140102dc7
mov byte [rdi], al
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rsi
ret
movzx eax, word [rdx + 0x76]
mov rbx, qword [rdx + 0x50]
mov rcx, rbx
sub rcx, rax
mov qword [rdx + 0x50], rcx
mov rcx, qword [rdi + 8]
lea rax, [rcx + 0x80]
cmp qword [rcx + 0x50], rax
jae 0x140102e0e
mov qword [rcx + 0x50], 0
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 8]
mov qword [rcx + 0x40], rax
mov rax, qword [rdi + 8]
mov qword [rdi + 0x10], rax
mov qword [rdi + 8], 0
xor edx, edx
mov byte [rdi], 0
mov r8d, 0x348
mov rcx, rbx
call sub.VCRUNTIME140.dll_memset
test rbx, rbx
jne 0x140102e38
mov rdi, qword [rsp + 0x30]
xor eax, eax
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rsi
ret
mov qword [rbx + 0x10], rsi
lea rax, [rsi + 0x10]
mov qword [rbx + 0x310], rax
mov rdx, rbx
mov ecx, dword [rsi + 0x1f2bc]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
lea rcx, [rsi + 0x1f090]
mov qword [rbx + 8], 0
call fcn.1401018a0
mov rcx, qword [rsi + 0x1f088]
mov qword [rbx], rcx
mov rax, qword [rsi + 0x1f088]
test rax, rax
je 0x140102e84
mov qword [rax + 8], rbx
mov qword [rsi + 0x1f088], rbx
mov rdi, qword [rsp + 0x30]
mov rax, rbx
mov byte [rsi + 0x1f090], 0
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rsi
ret

Function at 0x140102eb0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdi, qword [0x140165430]
mov rbx, rcx
test rdi, rdi
je 0x140102f03
test rcx, rcx
je 0x140102f03
call fcn.140101840
test al, al
je 0x140102efb
mov ecx, dword [rdi + 0x1f2bc]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r8, rbx
mov rcx, rdi
mov rdx, rax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1401032d0
mov rcx, rbx
call fcn.140102440
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x1401033f0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov rsi, r9
mov rdi, r8
mov rbx, rdx
mov rbp, rcx
test dl, 0x3f
jne 0x1401034a9
mov rcx, qword [rdx - 8]
lea r14, [rdx - 0x10]
mov rax, rcx
shr rax, 0x20
test al, 1
je 0x1401034a9
mov rax, qword [r14]
test rax, rax
je 0x1401034a9
cmp rax, r14
jae 0x1401034a9
call fcn.140105d50
cmp rax, r14
jne 0x1401034a9
mov r15, qword [r14]
mov r14, qword [r15 + 0x48]
sub r14, rbx
add r14, r15
cmp rdi, r14
ja 0x140103490
test rsi, rsi
je 0x140103467
lea rax, [rsi - 1]
test rbx, rax
jne 0x140103490
lea rcx, [rbp + 0x10]
call fcn.140107b20
xor ecx, ecx
mov rdx, r14
shr rdx, 1
cmp r14, rax
cmova rcx, rdx
cmp rdi, rcx
jbe 0x140103490
mov qword [r15 + 0x40], rdi
mov rax, rbx
jmp 0x140103535
mov r14, qword [r15 + 0x40]
mov rdx, rdi
mov rcx, rbp
test rsi, rsi
je 0x1401034d6
mov r8, rsi
call fcn.140101a40
jmp 0x1401034db
mov rcx, rbx
mov rdx, rbx
and rcx, 0xffffffffffffc000
call fcn.1401023c0
mov r14, rax
cmp rdi, rax
ja 0x140103494
test rsi, rsi
je 0x1401034d1
lea rcx, [rsi - 1]
test rbx, rcx
jne 0x140103494
mov rax, rbx
jmp 0x140103535
call fcn.140102f80
mov rsi, rax
test rax, rax
je 0x140103532
cmp r14, rdi
mov rdx, rbx
mov rcx, rax
cmovb rdi, r14
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
test rbp, rbp
je 0x140103532
test rbx, rbx
je 0x140103532
mov rcx, rbx
call fcn.140101840
test al, al
je 0x14010352a
mov ecx, dword [rbp + 0x1f2bc]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r8, rbx
mov rcx, rbp
mov rdx, rax
call fcn.1401032d0
jmp 0x140103532
mov rcx, rbx
call fcn.140102440
mov rax, rsi
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
Function at 0x140103550
Capabilities:
Get thread local storage value

Disassembly:
push r15
sub rsp, 0x40
mov qword [rsp + 0x50], rbx
xor r15b, r15b
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r13
mov r13, rcx
add rcx, 0x1f080
call fcn.1401018a0
mov rbx, qword [r13 + 0x1f078]
test rbx, rbx
je 0x14010363e
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x20], r14
nop dword [rax + rax]
mov rcx, qword [rbx + 0x10]
xor edx, edx
xchg qword [rbx + 0x320], rdx
add rcx, 0x10
test rdx, rdx
je 0x1401035c0
call fcn.140104be0
mov r14b, 1
jmp 0x1401035c3
xor r14b, r14b
xor edi, edi
xor bpl, bpl
xchg qword [rbx + 0x300], rdi
test rdi, rdi
je 0x140103618
mov bpl, 1
nop word [rax + rax]
mov rcx, qword [rbx + 0x310]
mov rsi, qword [rdi + 0x40]
mov rax, qword [rcx]
cmp qword [rax + 0x1f290], 0
jne 0x140103608
mov rcx, qword [rdi + 0x6c]
call fcn.1401060e0
mov rcx, qword [rbx + 0x310]
mov rdx, rdi
call fcn.140107d20
mov rdi, rsi
test rsi, rsi
jne 0x1401035e0
mov rbx, qword [rbx]
or bpl, r14b
or r15b, bpl
test rbx, rbx
jne 0x1401035a0
mov r14, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov byte [r13 + 0x1f080], 0
mov ecx, dword [r13 + 0x1f2ac]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r13, qword [rsp + 0x28]
mov r12, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x50]
test rax, rax
je 0x140103679
mov rcx, rax
call fcn.140101fa0
or al, r15b
add rsp, 0x40
pop r15
ret
movzx eax, r15b
add rsp, 0x40
pop r15
ret

Function at 0x1401037d0
Capabilities:
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
test r8, r8
je 0x14010388f
lea rax, [r8 - 1]
test r8, rax
jne 0x14010388f
test rcx, rcx
jne 0x140103802
mov rcx, qword [0x140165430]
call fcn.140101a40
jmp 0x140103872
test rdx, rdx
jne 0x14010385d
mov qword [rsp + 0x30], rdi
mov rdi, qword [0x140165430]
test rdi, rdi
je 0x140103850
call fcn.140101840
test al, al
je 0x140103848
mov ecx, dword [rdi + 0x1f2bc]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r8, rbx
mov rcx, rdi
mov rdx, rax
call fcn.1401032d0
mov rdi, qword [rsp + 0x30]
xor eax, eax
add rsp, 0x20
pop rbx
ret
mov rcx, rbx
call fcn.140102440
mov rdi, qword [rsp + 0x30]
xor eax, eax
add rsp, 0x20
pop rbx
ret
mov rcx, qword [0x140165430]
mov r9, r8
mov r8, rdx
mov rdx, rbx
call fcn.1401033f0
mov rbx, rax
test rax, rax
jne 0x140103886
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0xc
mov rax, rbx
add rsp, 0x20
pop rbx
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0x16
xor eax, eax
add rsp, 0x20
pop rbx
ret
Function at 0x140104ee0
Capabilities:
Query environment variable

Disassembly:
push rbx
sub rsp, 0x20
cmp qword [rcx], 0
mov rbx, rcx
mov qword [rcx + 0x18f30], rdx
jne 0x140105017
mov qword [rsp + 0x38], rsi
lea rcx, [0x1401416e0]
mov qword [rsp + 0x40], rdi
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
mov rdi, rax
test rax, rax
je 0x140104fa1
xor esi, esi
mov qword [rsp + 0x30], rsi
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
lea r8d, [rsi + 0xa]
mov rcx, rdi
lea rdx, [rsp + 0x30]
mov dword [rax], esi
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
movsxd rsi, eax
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [rax], 0x22
je 0x140104fa1
test esi, esi
js 0x140104fa1
mov rax, qword [rsp + 0x30]
cmp rax, rdi
je 0x140104fa1
movzx ecx, byte [rax]
test cl, cl
je 0x140104f82
movsx ecx, cl
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x140104fa1
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
movzx ecx, byte [rax]
test cl, cl
jne 0x140104f61
cmp esi, 0xffffffff
je 0x140104fa1
mov rdx, rsi
mov rcx, rbx
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
add rsp, 0x20
pop rbx
jmp 0x140105a20
movabs rax, 0x10000000000
mov qword [rbx + 0x2ef0], 0x3ff
bsr rcx, rax
mov r9d, 1
movabs rax, 0xffffffffff
add cl, 0xfd
mov edx, r9d
shl rdx, cl
add rax, rdx
lea r8, [rdx - 1]
not r8
and r8, rax
mov qword [rbx], r8
jne 0x140104feb
lea eax, [r9 - 2]
jmp 0x140104fef
bsr rax, r8
mov rsi, qword [rsp + 0x38]
mov ecx, eax
mov rdi, qword [rsp + 0x40]
shl r9, cl
lea ecx, [rax - 3]
sub r8, r9
lea eax, [rax*8 - 0xb8]
shr r8, cl
add eax, r8d
cdqe
mov qword [rbx + 8], rax
add rsp, 0x20
pop rbx
ret
movabs rax, 0x10000000000
mov r9, rdx
mov r10, rcx
cmp rdx, rax
ja 0x140105a9f
mov r8d, 0x800000
mov r11d, 1
cmp rdx, r8
jb 0x140105a64
bsr rcx, rdx
mov edx, r11d
lea r8, [r9 - 1]
add cl, 0xfd
shl rdx, cl
add r8, rdx
lea rax, [rdx - 1]
not rax
and r8, rax
mov qword [r10], r8
mov qword [r10 + 0x2ef0], 0x3ff
test r8, r8
jne 0x140105a7d
lea eax, [r8 - 1]
jmp 0x140105a81
bsr rax, r8
mov ecx, eax
shl r11, cl
lea ecx, [rax - 3]
sub r8, r11
lea eax, [rax*8 - 0xb8]
shr r8, cl
add eax, r8d
cdqe
mov qword [r10 + 8], rax
ret
Function at 0x14010a6a0
Capabilities:
Encode data using xor

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x30]
lea rcx, [fcn.14010a6a0]
xor rax, rcx
xor rax, rbx
mov r8, rax
shr r8, 0x11
xor r8, rax
and r8d, 0xf
add r8, 1
je 0x14010a71c
movabs r9, 0xbf58476d1ce4e5b9
movabs r10, 0x94d049bb133111eb
nop
mov rcx, rax
shr rcx, 0x1e
xor rcx, rax
imul rcx, r9
mov rdx, rcx
shr rdx, 0x1b
xor rdx, rcx
imul rdx, r10
mov rax, rdx
shr rax, 0x1f
xor rax, rdx
sub r8, 1
jne 0x14010a6f0
add rsp, 0x20
pop rbx
ret

Function at 0x14010bb10
Capabilities:
Get system information on windows

Disassembly:
push rbx
sub rsp, 0x50
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rsp + 0x24]
test eax, eax
je 0x14010bb30
mov qword [0x140166340], rax
mov eax, dword [rsp + 0x48]
test eax, eax
je 0x14010bb3f
mov qword [0x140166348], rax
lea rcx, str.kernelbase.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rbx, rax
test rax, rax
je 0x14010bb90
lea rdx, str.VirtualAlloc2FromApp
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402373f0], rax
test rax, rax
jne 0x14010bb87
lea rdx, str.VirtualAlloc2
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402373f0], rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rbx, rax
test rax, rax
je 0x14010bbc5
lea rdx, str.NtAllocateVirtualMemoryEx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rbx
mov qword [0x1402373f8], rax
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, 5
call fcn.14010d630
test al, al
jne 0x14010bbe1
mov ecx, 6
call fcn.14010d630
test al, al
je 0x14010bbe6
call fcn.14010c520
add rsp, 0x50
pop rbx
ret
Function at 0x14010cd00
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0xc0
xor r15d, r15d
lea rsi, [0x140166350]
mov ebp, r15d
lea r14d, [r15 + 0xe]
lea r12d, [r15 + 0x40]
nop
cmp dword [rsi + 4], r15d
jne 0x14010ce7d
mov r8, r12
mov byte [rsp + 0x20], r15b
lea rdx, str.mimalloc_
lea rcx, [rsp + 0x20]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov rdx, qword [rsi + 0x10]
lea rcx, [rsp + 0x20]
mov r8, r12
mov byte [rsp + 0x60], r15b
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
mov r8d, 0x41
mov byte [rsp + 0x60], r15b
lea rdx, [rsp + 0x70]
mov byte [rsp + 0x70], r15b
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov eax, eax
dec rax
cmp rax, 0x3f
ja 0x14010ce76
lea rax, [rsp + 0x70]
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rax + rbx], r15b
jne 0x14010cda6
cmp rbx, 0x41
mov rdi, r15
cmovae rbx, r12
test rbx, rbx
je 0x14010cdd7
nop
movsx ecx, byte [rsp + rdi + 0x70]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_toupper]
mov byte [rsp + rdi + 0x20], al
inc rdi
cmp rdi, rbx
jb 0x14010cdc0
mov byte [rsp + rbx + 0x20], r15b
cmp byte [rsp + 0x20], r15b
je 0x14010cec3
lea rdx, [rsp + 0x20]
lea rcx, str.1_TRUE_YES_ON
call sub.VCRUNTIME140.dll_strstr
test rax, rax
jne 0x14010cec3
lea rdx, [rsp + 0x20]
lea rcx, str.0_FALSE_NO_OFF
call sub.VCRUNTIME140.dll_strstr
test rax, rax
je 0x14010ce23
mov dword [rsi], r15d
mov dword [rsi + 4], 2
jmp 0x14010ce7d
lea rax, [rsp + 0x20]
mov r8d, 0xa
lea rdx, [rsp + 0xf0]
mov qword [rsp + 0xf0], rax
lea rcx, [rsp + 0x20]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
mov rcx, qword [rsp + 0xf0]
cmp byte [rcx], r15b
jne 0x14010ce61
mov dword [rsi], eax
mov dword [rsi + 4], 2
jmp 0x14010ce7d
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x20]
lea rcx, str.environment_option_mimalloc__s_has_an_invalid_value:__s_n
call fcn.14010d000
mov dword [rsi + 4], 1
cmp rbp, 2
je 0x14010ce96
mov r8d, dword [rsi]
lea rcx, str.option__s:__ld_n
mov rdx, qword [rsi + 0x10]
call fcn.14010cee0
inc rbp
add rsi, 0x18
sub r14, 1
jne 0x14010cd30
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov dword [rsi], 1
mov dword [rsi + 4], 2
jmp 0x14010ce7d
Function at 0x14010d160
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0xc0
mov rsi, rcx
mov byte [rsp + 0x20], 0
mov edi, 0x40
lea rdx, str.mimalloc_
mov r8d, edi
lea rcx, [rsp + 0x20]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov rdx, qword [rsi + 0x10]
lea rcx, [rsp + 0x20]
mov r8d, edi
mov byte [rsp + 0x60], 0
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
lea r8d, [rdi + 1]
mov byte [rsp + 0x60], 0
lea rdx, [rsp + 0x70]
mov byte [rsp + 0x70], 0
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov eax, eax
dec rax
cmp rax, 0x3f
ja 0x14010d2df
mov qword [rsp + 0xd8], rbx
lea rax, [rsp + 0x70]
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rax + rbx], 0
jne 0x14010d1e7
cmp rbx, 0x41
cmovae rbx, rdi
xor edi, edi
test rbx, rbx
je 0x14010d217
nop
movsx ecx, byte [rsp + rdi + 0x70]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_toupper]
mov byte [rsp + rdi + 0x20], al
inc rdi
cmp rdi, rbx
jb 0x14010d200
mov byte [rsp + rbx + 0x20], 0
cmp byte [rsp + 0x20], 0
mov rbx, qword [rsp + 0xd8]
je 0x14010d2f7
lea rdx, [rsp + 0x20]
lea rcx, str.1_TRUE_YES_ON
call sub.VCRUNTIME140.dll_strstr
test rax, rax
jne 0x14010d2f7
lea rdx, [rsp + 0x20]
lea rcx, str.0_FALSE_NO_OFF
call sub.VCRUNTIME140.dll_strstr
test rax, rax
je 0x14010d27d
mov dword [rsi], 0
mov dword [rsi + 4], 2
mov rsi, qword [rsp + 0xe0]
add rsp, 0xc0
pop rdi
ret
lea rax, [rsp + 0x20]
mov r8d, 0xa
lea rdx, [rsp + 0xd0]
mov qword [rsp + 0xd0], rax
lea rcx, [rsp + 0x20]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
mov rcx, qword [rsp + 0xd0]
cmp byte [rcx], 0
jne 0x14010d2ca
mov dword [rsi], eax
mov dword [rsi + 4], 2
mov rsi, qword [rsp + 0xe0]
add rsp, 0xc0
pop rdi
ret
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x20]
lea rcx, str.environment_option_mimalloc__s_has_an_invalid_value:__s_n
call fcn.14010d000
mov dword [rsi + 4], 1
mov rsi, qword [rsp + 0xe0]
add rsp, 0xc0
pop rdi
ret
mov dword [rsi], 1
mov dword [rsi + 4], 2
mov rsi, qword [rsp + 0xe0]
add rsp, 0xc0
pop rdi
ret
Function at 0x14010d450
Capabilities:
Query environment variable

Disassembly:
push rbx
sub rsp, 0xc0
movsxd rax, ecx
lea rcx, [rax + rax*2]
lea rax, [0x140166350]
cmp dword [rax + rcx*8 + 4], 0
lea rbx, [rax + rcx*8]
jne 0x14010d616
mov qword [rsp + 0xd0], rsi
lea rdx, str.mimalloc_
mov esi, 0x40
mov byte [rsp + 0x20], 0
mov r8d, esi
lea rcx, [rsp + 0x20]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov rdx, qword [rbx + 0x10]
lea rcx, [rsp + 0x20]
mov r8d, esi
mov byte [rsp + 0x60], 0
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
lea r8d, [rsi + 1]
mov byte [rsp + 0x60], 0
lea rdx, [rsp + 0x70]
mov byte [rsp + 0x70], 0
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov eax, eax
dec rax
cmp rax, 0x3f
ja 0x14010d5f1
mov qword [rsp + 0xe0], rdi
lea rax, [rsp + 0x70]
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [rax + rdi], 0
jne 0x14010d4f5
cmp rdi, 0x41
cmovae rdi, rsi
xor esi, esi
test rdi, rdi
je 0x14010d527
nop dword [rax]
movsx ecx, byte [rsp + rsi + 0x70]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_toupper]
mov byte [rsp + rsi + 0x20], al
inc rsi
cmp rsi, rdi
jb 0x14010d510
mov byte [rsp + rdi + 0x20], 0
cmp byte [rsp + 0x20], 0
mov rdi, qword [rsp + 0xe0]
je 0x14010d60b
lea rdx, [rsp + 0x20]
lea rcx, str.1_TRUE_YES_ON
call sub.VCRUNTIME140.dll_strstr
test rax, rax
jne 0x14010d60b
lea rdx, [rsp + 0x20]
lea rcx, str.0_FALSE_NO_OFF
call sub.VCRUNTIME140.dll_strstr
test rax, rax
je 0x14010d58f
mov dword [rbx], 0
mov eax, dword [rbx]
mov rsi, qword [rsp + 0xd0]
mov dword [rbx + 4], 2
add rsp, 0xc0
pop rbx
ret
lea rax, [rsp + 0x20]
mov r8d, 0xa
lea rdx, [rsp + 0xd8]
mov qword [rsp + 0xd8], rax
lea rcx, [rsp + 0x20]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
mov rcx, qword [rsp + 0xd8]
cmp byte [rcx], 0
jne 0x14010d5dc
mov rsi, qword [rsp + 0xd0]
mov dword [rbx], eax
mov dword [rbx + 4], 2
add rsp, 0xc0
pop rbx
ret
mov rdx, qword [rbx + 0x10]
lea r8, [rsp + 0x20]
lea rcx, str.environment_option_mimalloc__s_has_an_invalid_value:__s_n
call fcn.14010d000
mov eax, dword [rbx]
mov rsi, qword [rsp + 0xd0]
mov dword [rbx + 4], 1
add rsp, 0xc0
pop rbx
ret
mov dword [rbx], 1
jmp 0x14010d575
mov eax, dword [rbx]
add rsp, 0xc0
pop rbx
ret
Function at 0x14010d6e0
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push rbx
sub rsp, 0x40
movsd xmm0, qword [0x140237440]
movaps xmmword [rsp + 0x30], xmm6
xorps xmm6, xmm6
ucomisd xmm0, xmm6
jp 0x14010d7aa
jne 0x14010d7aa
lea rcx, [rsp + 0x50]
movaps xmmword [rsp + 0x20], xmm7
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movsd xmm0, qword [0x140237448]
comisd xmm6, xmm0
mov rbx, qword [rsp + 0x50]
jb 0x14010d746
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rsp + 0x58]
movsd qword [0x140237448], xmm0
xorps xmm7, xmm7
lea rcx, [rsp + 0x50]
cvtsi2sd xmm7, rbx
divsd xmm7, xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movsd xmm1, qword [0x140237448]
comisd xmm6, xmm1
mov rbx, qword [rsp + 0x50]
jb 0x14010d78d
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rsp + 0x58]
movsd qword [0x140237448], xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, rbx
divsd xmm0, xmm1
subsd xmm0, xmm7
movaps xmm7, xmmword [rsp + 0x20]
movsd qword [0x140237440], xmm0
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movsd xmm1, qword [0x140237448]
mov rbx, qword [rsp + 0x50]
comisd xmm6, xmm1
movaps xmm6, xmmword [rsp + 0x30]
jb 0x14010d7ea
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rsp + 0x58]
movsd qword [0x140237448], xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, rbx
divsd xmm0, xmm1
add rsp, 0x40
pop rbx
ret
Function at 0x14010eac0
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push rbx
sub rsp, 0x50
movaps xmmword [rsp + 0x40], xmm6
call fcn.14010eea0
lea rbx, [0x140231190]
mov rcx, qword [rax]
add rcx, 0x88
cmp rcx, rbx
je 0x14010eaf3
xor edx, edx
mov r8d, 0x240
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov r8d, 0x240
mov rcx, rbx
call sub.VCRUNTIME140.dll_memset
movsd xmm0, qword [0x140237440]
xorps xmm6, xmm6
ucomisd xmm0, xmm6
jp 0x14010ebc2
jne 0x14010ebc2
lea rcx, [rsp + 0x60]
movaps xmmword [rsp + 0x30], xmm7
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movsd xmm0, qword [0x140237448]
comisd xmm6, xmm0
mov rbx, qword [rsp + 0x60]
jb 0x14010eb5e
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rsp + 0x68]
movsd qword [0x140237448], xmm0
xorps xmm7, xmm7
lea rcx, [rsp + 0x70]
cvtsi2sd xmm7, rbx
divsd xmm7, xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movsd xmm1, qword [0x140237448]
comisd xmm6, xmm1
mov rbx, qword [rsp + 0x70]
jb 0x14010eba5
lea rcx, [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rsp + 0x78]
movsd qword [0x140237448], xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, rbx
divsd xmm0, xmm1
subsd xmm0, xmm7
movaps xmm7, xmmword [rsp + 0x30]
movsd qword [0x140237440], xmm0
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movsd xmm1, qword [0x140237448]
mov rbx, qword [rsp + 0x20]
comisd xmm6, xmm1
movaps xmm6, xmmword [rsp + 0x40]
jb 0x14010ec02
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rsp + 0x28]
movsd qword [0x140237448], xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, rbx
divsd xmm0, xmm1
movsd qword [0x140237438], xmm0
add rsp, 0x50
pop rbx
ret