joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14010f2e0
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 0x14010f450
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [rbx + 0x68]
jne 0x14010f450
mov rax, qword [rbx + 0x60]
mov byte [rax + 0x344], 0
mov eax, 0xffff
add word [rbx + 0x74], ax
jne 0x14010f3ed
movzx ecx, word [rbx + 0x76]
mov r9, qword [rbx + 0x60]
call fcn.14010fb60
mov r8d, eax
inc r8
lea rax, [r8 + r8*2]
cmp rbx, qword [r9 + rax*8]
je 0x14010f3c1
mov rcx, qword [rbx + 0x48]
test rcx, rcx
je 0x14010f359
mov rax, qword [rbx + 0x40]
mov qword [rcx + 0x40], rax
mov rcx, qword [rbx + 0x40]
test rcx, rcx
je 0x14010f36a
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.140110530
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 0x14010f431
test dil, 0x7f
jne 0x14010f431
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 0x14010f428
movzx eax, dx
sub r8d, eax
jmp 0x14010f42b
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.14010e7b0
movzx ecx, word [rbx + 0x76]
mov eax, 0x400
cmp cx, ax
jbe 0x14010f494
test dil, 0x7f
jne 0x14010f494
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 0x14010f48b
movzx eax, dx
sub r8d, eax
jmp 0x14010f48e
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 0x14010f4a0
test rcx, rcx
jne 0x14010f4e3
mov qword [rsp + 0x30], rsi
mov rsi, qword [rbx + 0x18]
cmp rsi, 1
je 0x14010f4de
lea rcx, [rsi + 0x10]
call fcn.14010e740
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 0x14010fbe0
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 0x14010fd3a
test rax, rax
jne 0x14010fd3a
mov qword [rsp + 0x30], rdi
lea rdi, [rsi + 0x1f2c0]
mov rcx, rdi
call fcn.14010e740
mov rbx, qword [rdi + 0x18]
test rbx, rbx
je 0x14010fc33
mov rax, qword [rbx]
mov qword [rdi + 0x18], rax
jmp 0x14010fcae
mov rdx, qword [rdi + 8]
test rdx, rdx
jne 0x14010fc67
mov edx, 0x348
mov rcx, rsi
call fcn.14010f650
mov qword [rdi + 8], rax
mov rdx, rax
test rax, rax
jne 0x14010fc67
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 0x14010fcae
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 0x14010fcd8
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.14010e740
mov rcx, qword [rsi + 0x1f088]
mov qword [rbx], rcx
mov rax, qword [rsi + 0x1f088]
test rax, rax
je 0x14010fd24
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 0x14010fd50
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdi, qword [0x140359390]
mov rbx, rcx
test rdi, rdi
je 0x14010fda3
test rcx, rcx
je 0x14010fda3
call fcn.14010e6e0
test al, al
je 0x14010fd9b
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.140110170
mov rcx, rbx
call fcn.14010f2e0
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x140110290
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 0x140110349
mov rcx, qword [rdx - 8]
lea r14, [rdx - 0x10]
mov rax, rcx
shr rax, 0x20
test al, 1
je 0x140110349
mov rax, qword [r14]
test rax, rax
je 0x140110349
cmp rax, r14
jae 0x140110349
call fcn.140112bf0
cmp rax, r14
jne 0x140110349
mov r15, qword [r14]
mov r14, qword [r15 + 0x48]
sub r14, rbx
add r14, r15
cmp rdi, r14
ja 0x140110330
test rsi, rsi
je 0x140110307
lea rax, [rsi - 1]
test rbx, rax
jne 0x140110330
lea rcx, [rbp + 0x10]
call fcn.1401149c0
xor ecx, ecx
mov rdx, r14
shr rdx, 1
cmp r14, rax
cmova rcx, rdx
cmp rdi, rcx
jbe 0x140110330
mov qword [r15 + 0x40], rdi
mov rax, rbx
jmp 0x1401103d5
mov r14, qword [r15 + 0x40]
mov rdx, rdi
mov rcx, rbp
test rsi, rsi
je 0x140110376
mov r8, rsi
call fcn.14010e8e0
jmp 0x14011037b
mov rcx, rbx
mov rdx, rbx
and rcx, 0xffffffffffffc000
call fcn.14010f260
mov r14, rax
cmp rdi, rax
ja 0x140110334
test rsi, rsi
je 0x140110371
lea rcx, [rsi - 1]
test rbx, rcx
jne 0x140110334
mov rax, rbx
jmp 0x1401103d5
call fcn.14010fe20
mov rsi, rax
test rax, rax
je 0x1401103d2
cmp r14, rdi
mov rdx, rbx
mov rcx, rax
cmovb rdi, r14
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
test rbp, rbp
je 0x1401103d2
test rbx, rbx
je 0x1401103d2
mov rcx, rbx
call fcn.14010e6e0
test al, al
je 0x1401103ca
mov ecx, dword [rbp + 0x1f2bc]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r8, rbx
mov rcx, rbp
mov rdx, rax
call fcn.140110170
jmp 0x1401103d2
mov rcx, rbx
call fcn.14010f2e0
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 0x1401103f0
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.14010e740
mov rbx, qword [r13 + 0x1f078]
test rbx, rbx
je 0x1401104de
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 0x140110460
call fcn.140111a80
mov r14b, 1
jmp 0x140110463
xor r14b, r14b
xor edi, edi
xor bpl, bpl
xchg qword [rbx + 0x300], rdi
test rdi, rdi
je 0x1401104b8
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 0x1401104a8
mov rcx, qword [rdi + 0x6c]
call fcn.140112f80
mov rcx, qword [rbx + 0x310]
mov rdx, rdi
call fcn.140114bc0
mov rdi, rsi
test rsi, rsi
jne 0x140110480
mov rbx, qword [rbx]
or bpl, r14b
or r15b, bpl
test rbx, rbx
jne 0x140110440
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 0x140110519
mov rcx, rax
call fcn.14010ee40
or al, r15b
add rsp, 0x40
pop r15
ret
movzx eax, r15b
add rsp, 0x40
pop r15
ret

Function at 0x140110670
Capabilities:
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
test r8, r8
je 0x14011072f
lea rax, [r8 - 1]
test r8, rax
jne 0x14011072f
test rcx, rcx
jne 0x1401106a2
mov rcx, qword [0x140359390]
call fcn.14010e8e0
jmp 0x140110712
test rdx, rdx
jne 0x1401106fd
mov qword [rsp + 0x30], rdi
mov rdi, qword [0x140359390]
test rdi, rdi
je 0x1401106f0
call fcn.14010e6e0
test al, al
je 0x1401106e8
mov ecx, dword [rdi + 0x1f2bc]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r8, rbx
mov rcx, rdi
mov rdx, rax
call fcn.140110170
mov rdi, qword [rsp + 0x30]
xor eax, eax
add rsp, 0x20
pop rbx
ret
mov rcx, rbx
call fcn.14010f2e0
mov rdi, qword [rsp + 0x30]
xor eax, eax
add rsp, 0x20
pop rbx
ret
mov rcx, qword [0x140359390]
mov r9, r8
mov r8, rdx
mov rdx, rbx
call fcn.140110290
mov rbx, rax
test rax, rax
jne 0x140110726
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 0x140111d80
Capabilities:
Query environment variable

Disassembly:
push rbx
sub rsp, 0x20
cmp qword [rcx], 0
mov rbx, rcx
mov qword [rcx + 0x18f30], rdx
jne 0x140111eb7
mov qword [rsp + 0x38], rsi
lea rcx, [0x14028d320]
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 0x140111e41
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 0x140111e41
test esi, esi
js 0x140111e41
mov rax, qword [rsp + 0x30]
cmp rax, rdi
je 0x140111e41
movzx ecx, byte [rax]
test cl, cl
je 0x140111e22
movsx ecx, cl
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x140111e41
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
movzx ecx, byte [rax]
test cl, cl
jne 0x140111e01
cmp esi, 0xffffffff
je 0x140111e41
mov rdx, rsi
mov rcx, rbx
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
add rsp, 0x20
pop rbx
jmp 0x1401128c0
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 0x140111e8b
lea eax, [r9 - 2]
jmp 0x140111e8f
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 0x14011293f
mov r8d, 0x800000
mov r11d, 1
cmp rdx, r8
jb 0x140112904
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 0x14011291d
lea eax, [r8 - 1]
jmp 0x140112921
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 0x140117540
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.140117540]
xor rax, rcx
xor rax, rbx
mov r8, rax
shr r8, 0x11
xor r8, rax
and r8d, 0xf
add r8, 1
je 0x1401175bc
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 0x140117590
add rsp, 0x20
pop rbx
ret

Function at 0x1401189b0
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 0x1401189d0
mov qword [0x14035a2a0], rax
mov eax, dword [rsp + 0x48]
test eax, eax
je 0x1401189df
mov qword [0x14035a2a8], rax
lea rcx, str.kernelbase.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rbx, rax
test rax, rax
je 0x140118a30
lea rdx, str.VirtualAlloc2FromApp
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14043f380], rax
test rax, rax
jne 0x140118a27
lea rdx, str.VirtualAlloc2
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14043f380], 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 0x140118a65
lea rdx, str.NtAllocateVirtualMemoryEx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rbx
mov qword [0x14043f388], rax
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, 5
call fcn.14011a4d0
test al, al
jne 0x140118a81
mov ecx, 6
call fcn.14011a4d0
test al, al
je 0x140118a86
call fcn.1401193c0
add rsp, 0x50
pop rbx
ret
Function at 0x140119ba0
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, [0x14035a2b0]
mov ebp, r15d
lea r14d, [r15 + 0xe]
lea r12d, [r15 + 0x40]
nop
cmp dword [rsi + 4], r15d
jne 0x140119d1d
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 0x140119d16
lea rax, [rsp + 0x70]
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rax + rbx], r15b
jne 0x140119c46
cmp rbx, 0x41
mov rdi, r15
cmovae rbx, r12
test rbx, rbx
je 0x140119c77
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 0x140119c60
mov byte [rsp + rbx + 0x20], r15b
cmp byte [rsp + 0x20], r15b
je 0x140119d63
lea rdx, [rsp + 0x20]
lea rcx, str.1_TRUE_YES_ON
call sub.VCRUNTIME140.dll_strstr
test rax, rax
jne 0x140119d63
lea rdx, [rsp + 0x20]
lea rcx, str.0_FALSE_NO_OFF
call sub.VCRUNTIME140.dll_strstr
test rax, rax
je 0x140119cc3
mov dword [rsi], r15d
mov dword [rsi + 4], 2
jmp 0x140119d1d
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 0x140119d01
mov dword [rsi], eax
mov dword [rsi + 4], 2
jmp 0x140119d1d
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x20]
lea rcx, str.environment_option_mimalloc__s_has_an_invalid_value:__s_n
call fcn.140119ea0
mov dword [rsi + 4], 1
cmp rbp, 2
je 0x140119d36
mov r8d, dword [rsi]
lea rcx, str.option__s:__ld_n
mov rdx, qword [rsi + 0x10]
call fcn.140119d80
inc rbp
add rsi, 0x18
sub r14, 1
jne 0x140119bd0
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 0x140119d1d
Function at 0x14011a000
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 0x14011a17f
mov qword [rsp + 0xd8], rbx
lea rax, [rsp + 0x70]
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rax + rbx], 0
jne 0x14011a087
cmp rbx, 0x41
cmovae rbx, rdi
xor edi, edi
test rbx, rbx
je 0x14011a0b7
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 0x14011a0a0
mov byte [rsp + rbx + 0x20], 0
cmp byte [rsp + 0x20], 0
mov rbx, qword [rsp + 0xd8]
je 0x14011a197
lea rdx, [rsp + 0x20]
lea rcx, str.1_TRUE_YES_ON
call sub.VCRUNTIME140.dll_strstr
test rax, rax
jne 0x14011a197
lea rdx, [rsp + 0x20]
lea rcx, str.0_FALSE_NO_OFF
call sub.VCRUNTIME140.dll_strstr
test rax, rax
je 0x14011a11d
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 0x14011a16a
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.140119ea0
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 0x14011a2f0
Capabilities:
Query environment variable

Disassembly:
push rbx
sub rsp, 0xc0
movsxd rax, ecx
lea rcx, [rax + rax*2]
lea rax, [0x14035a2b0]
cmp dword [rax + rcx*8 + 4], 0
lea rbx, [rax + rcx*8]
jne 0x14011a4b6
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 0x14011a491
mov qword [rsp + 0xe0], rdi
lea rax, [rsp + 0x70]
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [rax + rdi], 0
jne 0x14011a395
cmp rdi, 0x41
cmovae rdi, rsi
xor esi, esi
test rdi, rdi
je 0x14011a3c7
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 0x14011a3b0
mov byte [rsp + rdi + 0x20], 0
cmp byte [rsp + 0x20], 0
mov rdi, qword [rsp + 0xe0]
je 0x14011a4ab
lea rdx, [rsp + 0x20]
lea rcx, str.1_TRUE_YES_ON
call sub.VCRUNTIME140.dll_strstr
test rax, rax
jne 0x14011a4ab
lea rdx, [rsp + 0x20]
lea rcx, str.0_FALSE_NO_OFF
call sub.VCRUNTIME140.dll_strstr
test rax, rax
je 0x14011a42f
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 0x14011a47c
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.140119ea0
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 0x14011a415
mov eax, dword [rbx]
add rsp, 0xc0
pop rbx
ret
Function at 0x14011a580
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push rbx
sub rsp, 0x40
movsd xmm0, qword [0x14043f3d0]
movaps xmmword [rsp + 0x30], xmm6
xorps xmm6, xmm6
ucomisd xmm0, xmm6
jp 0x14011a64a
jne 0x14011a64a
lea rcx, [rsp + 0x50]
movaps xmmword [rsp + 0x20], xmm7
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movsd xmm0, qword [0x14043f3d8]
comisd xmm6, xmm0
mov rbx, qword [rsp + 0x50]
jb 0x14011a5e6
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rsp + 0x58]
movsd qword [0x14043f3d8], xmm0
xorps xmm7, xmm7
lea rcx, [rsp + 0x50]
cvtsi2sd xmm7, rbx
divsd xmm7, xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movsd xmm1, qword [0x14043f3d8]
comisd xmm6, xmm1
mov rbx, qword [rsp + 0x50]
jb 0x14011a62d
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rsp + 0x58]
movsd qword [0x14043f3d8], xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, rbx
divsd xmm0, xmm1
subsd xmm0, xmm7
movaps xmm7, xmmword [rsp + 0x20]
movsd qword [0x14043f3d0], xmm0
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movsd xmm1, qword [0x14043f3d8]
mov rbx, qword [rsp + 0x50]
comisd xmm6, xmm1
movaps xmm6, xmmword [rsp + 0x30]
jb 0x14011a68a
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rsp + 0x58]
movsd qword [0x14043f3d8], xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, rbx
divsd xmm0, xmm1
add rsp, 0x40
pop rbx
ret
Function at 0x14011b960
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push rbx
sub rsp, 0x50
movaps xmmword [rsp + 0x40], xmm6
call fcn.14011bd40
lea rbx, [0x140439120]
mov rcx, qword [rax]
add rcx, 0x88
cmp rcx, rbx
je 0x14011b993
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 [0x14043f3d0]
xorps xmm6, xmm6
ucomisd xmm0, xmm6
jp 0x14011ba62
jne 0x14011ba62
lea rcx, [rsp + 0x60]
movaps xmmword [rsp + 0x30], xmm7
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movsd xmm0, qword [0x14043f3d8]
comisd xmm6, xmm0
mov rbx, qword [rsp + 0x60]
jb 0x14011b9fe
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rsp + 0x68]
movsd qword [0x14043f3d8], xmm0
xorps xmm7, xmm7
lea rcx, [rsp + 0x70]
cvtsi2sd xmm7, rbx
divsd xmm7, xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movsd xmm1, qword [0x14043f3d8]
comisd xmm6, xmm1
mov rbx, qword [rsp + 0x70]
jb 0x14011ba45
lea rcx, [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rsp + 0x78]
movsd qword [0x14043f3d8], xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, rbx
divsd xmm0, xmm1
subsd xmm0, xmm7
movaps xmm7, xmmword [rsp + 0x30]
movsd qword [0x14043f3d0], xmm0
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movsd xmm1, qword [0x14043f3d8]
mov rbx, qword [rsp + 0x20]
comisd xmm6, xmm1
movaps xmm6, xmmword [rsp + 0x40]
jb 0x14011baa2
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rsp + 0x28]
movsd qword [0x14043f3d8], xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, rbx
divsd xmm0, xmm1
movsd qword [0x14043f3c8], xmm0
add rsp, 0x50
pop rbx
ret