joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140024040
Capabilities:
Allocate or change rwx memory

Disassembly:
push rbx
sub rsp, 0xb0
mov rax, qword [0x140112ac0]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov rbx, rcx
test dl, dl
jne 0x140024070
cmp qword [rcx + 0x38], 0
jne 0x1400240cd
mov al, 1
jmp 0x1400241e0
lea rax, [0x14002c9b0]
lea r8, str.NtMapViewOfSection
lea rdx, [0x1400e9c48]
mov r9d, 1
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
call fcn.140023660
lea rax, [0x14002ca20]
lea r8, str.NtUnmapViewOfSection
lea rdx, [0x1400e9c48]
mov r9d, 1
mov rcx, rbx
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], rax
call fcn.140023660
mov rax, qword [rbx]
mov qword [rsp + 0xc8], rbp
mov rbp, qword [rbx + 0x38]
mov qword [rsp + 0xd0], rsi
mov qword [rsp + 0xd8], rdi
mov rdi, qword [rax]
shl rbp, 6
mov r9d, 0x1000
xor edx, edx
add rbp, 0x60
mov rcx, rdi
mov dword [rsp + 0x20], 0x40
mov r8, rbp
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
lea rcx, [0x1401147b0]
xor edx, edx
mov r8d, 0xb0
mov qword [rsp + 0x40], rbp
mov dword [rsp + 0x58], 0
mov rsi, rax
mov qword [rsp + 0x48], 0x20
call fcn.1400ac250
lea r9, [rsp + 0x40]
mov r8, rbp
mov rdx, rsi
mov rcx, rbx
call fcn.140022f30
test al, al
je 0x1400241c6
lea rax, [rsp + 0x30]
lea r8, [rsp + 0x40]
mov r9d, 0x20
mov rdx, rsi
mov rcx, rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x1400241c6
cmp qword [rsp + 0x30], 0x20
jne 0x1400241c6
lea rax, [rsp + 0x38]
mov r9d, 0x20
mov r8, rbp
mov rdx, rsi
mov rcx, rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov rcx, qword [rbx]
lea r8, [0x1401147b0]
lea rdx, str.g_originals
mov r9d, 0xb0
call fcn.140011e70
test eax, eax
sete al
jmp 0x1400241c8
xor al, al
mov rsi, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.1400ac220
add rsp, 0xb0
pop rbx
ret

Function at 0x140026420
Capabilities:
Create pipe

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
mov rax, qword [rsp + 0xa0]
mov r10d, r9d
mov r9d, dword [rsp + 0x80]
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0x98]
mov r11d, r8d
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x90]
mov rbx, rdx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x88]
mov rdi, rcx
mov r8d, r10d
mov edx, r11d
mov rcx, rbx
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1400264bd
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [rsp + 0x30], 3
lea r9, [rsp + 0x40]
mov rcx, rax
xor eax, eax
mov r8, rdi
mov dword [rsp + 0x28], eax
mov rdx, rbx
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
jne 0x1400264cc
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
or rax, 0xffffffffffffffff
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
Function at 0x140026620
Capabilities:
Create process on windows

Disassembly:
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rdi
push r12
sub rsp, 0x50
mov rax, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0xb8]
mov r10, r9
mov r9, qword [rsp + 0x88]
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0xa8]
mov r11, r8
mov r8, qword [rsp + 0x80]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xa0]
mov ebp, edx
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x98]
mov r12, rcx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x90]
mov rdx, r10
mov rcx, r11
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x1400266b6
mov rbp, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x50
pop r12
ret
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rsi
mov esi, 0x100c43
mov ebx, 0x101c01
test ebp, ebp
je 0x1400266d5
mov ebx, 0x1fffff
mov esi, ebx
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rdx, qword [rdi]
mov dword [rsp + 0x30], 1
xor ebp, ebp
mov rcx, rax
mov r9, rdi
mov r8, r12
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], ebx
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
jne 0x140026711
mov rcx, qword [rdi + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x140026743
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rdx, qword [rdi + 8]
mov dword [rsp + 0x30], 1
lea r9, [rdi + 8]
mov rcx, rax
mov r8, r12
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], esi
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
setne bpl
mov eax, ebp
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x50
pop r12
ret

Function at 0x14002c7b0
Capabilities:
Check os version

Disassembly:
push rbx
sub rsp, 0x260
mov rax, qword [0x140112ac0]
xor rax, rsp
mov qword [rsp + 0x250], rax
lea rcx, [rsp + 0x134]
xor ebx, ebx
xor edx, edx
mov r8d, 0x118
mov dword [rsp + 0x20], ebx
call fcn.1400ac250
lea rcx, [rsp + 0x130]
mov dword [rsp + 0x130], 0x11c
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x14002c854
cmp byte [0x1401148b0], bl
je 0x14002c843
call fcn.14003e110
cmp eax, 3
jg 0x14002c843
mov ebx, 1
lea rdx, str.._src_sandbox_utils.cc
lea rcx, [rsp + 0x28]
lea r9d, [rbx + 2]
lea r8d, [rbx + 0x3d]
call fcn.1400403f0
lea rdx, str.Check_failed:_false.
lea rcx, [rax + 8]
call fcn.140005bd0
test bl, 1
je 0x14002c881
lea rcx, [rsp + 0x28]
call fcn.14003feb0
jmp 0x14002c881
mov eax, dword [rsp + 0x134]
cmp eax, 5
jbe 0x14002c864
mov al, 1
jmp 0x14002c883
jne 0x14002c881
mov eax, dword [rsp + 0x138]
cmp eax, 1
ja 0x14002c860
test eax, eax
je 0x14002c881
cmp word [rsp + 0x244], 2
jae 0x14002c860
xor al, al
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.1400ac220
add rsp, 0x260
pop rbx
ret
Function at 0x140033360
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
mov rdi, r9
lea rax, [rsp + 0x30]
mov rbx, r8
mov r9d, 8
mov r8, rdi
mov rsi, rdx
mov qword [rsp + 0x20], rax
mov rbp, rcx
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
je 0x1400333f4
lea rax, [rsp + 0x38]
mov r9, rdi
mov r8, rbx
mov rdx, rsi
mov rcx, rbp
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x1400333c8
cmp rdi, qword [rsp + 0x38]
jne 0x1400333c8
mov bl, 1
jmp 0x1400333ca
xor bl, bl
mov r9d, dword [rsp + 0x30]
lea rax, [rsp + 0x30]
mov r8, rdi
mov rdx, rsi
mov rcx, rbp
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
xor edx, edx
movzx ecx, bl
test eax, eax
cmove ecx, edx
mov al, cl
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
Function at 0x140038010
Capabilities:
Get common file path

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x310
mov rax, qword [0x140112ac0]
xor rax, rsp
mov qword [rsp + 0x300], rax
mov rax, qword [rsp + 0x388]
mov r10, qword [rsp + 0x380]
mov r11, qword [rsp + 0x378]
mov r12, qword [rsp + 0x390]
mov rbp, r9
mov r9, qword [rsp + 0x360]
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0x370]
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], r11
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x368]
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x58], r8
mov r8, rbp
mov rdx, rsi
mov rcx, rdi
mov dword [rsp + 0x20], eax
call rbx
test eax, eax
je 0x1400380b1
mov eax, 1
jmp 0x1400381cd
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.14000a070
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x10]
mov rcx, rax
call fcn.14000a440
test al, al
je 0x1400381cb
mov edx, 0x18
mov rcx, r12
lea r8d, [rdx - 0x17]
call fcn.1400112b0
test al, al
je 0x1400381c3
call fcn.140011160
mov rdi, rax
test rax, rax
je 0x1400381c3
lea rdx, [rsp + 0xf0]
xor ebx, ebx
mov ecx, 0x104
mov qword [rsp + 0x50], rbx
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x140038135
lea rcx, [rsp + 0xf0]
cmp eax, 0x104
cmovae rcx, rbx
mov qword [rsp + 0x50], rcx
lea rcx, [rsp + 0x78]
mov rdx, rdi
call fcn.140010c50
xor edx, edx
lea rcx, [rsp + 0x94]
lea r8d, [rdx + 0x5c]
mov dword [rsp + 0x90], ebx
call fcn.1400ac250
lea rax, [rsp + 0x90]
lea r9, [rsp + 0x58]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x68]
lea r8, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
lea rcx, [rsp + 0x78]
mov edx, 0xd
mov qword [rsp + 0x68], 0x18
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x20], rax
call fcn.140037560
test eax, eax
jne 0x1400381c3
mov ecx, dword [rsp + 0x98]
call qword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [rsp + 0x98], ebx
sete bl
mov eax, ebx
jmp 0x1400381cd
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rcx, qword [rsp + 0x300]
xor rcx, rsp
call fcn.1400ac220
add rsp, 0x310
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x14003b150
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x40
mov rbx, rcx
mov rcx, qword [rcx]
xor edi, edi
test rcx, rcx
je 0x14003b1c6
mov edx, dword [rbx + 8]
test edx, edx
js 0x14003b1c6
lea r10, [rbx + 0x41c]
lea rax, [rbx + 0x214]
lea r9, [rbx + 0x420]
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r9
lea r9, [rsp + 0x50]
lea r8, [rbx + 0xc]
mov dword [rsp + 0x50], 0x104
mov dword [r10], 0x208
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x14003b1c6
mov al, 1
mov rbx, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret
mov word [rbx + 0xc], di
mov word [rbx + 0x214], di
mov dword [rbx + 0x41c], edi
mov rbx, qword [rsp + 0x58]
xor al, al
add rsp, 0x40
pop rdi
ret

Function at 0x14003b290
Capabilities:
Query or enumerate registry key

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
push rdi
sub rsp, 0x40
mov rbx, rcx
mov rcx, qword [rcx]
xor edi, edi
test rcx, rcx
je 0x14003b2eb
mov edx, dword [rbx + 8]
test edx, edx
js 0x14003b2eb
lea rax, [r11 + 0x10]
lea r8, [rbx + 0xc]
lea r9, [r11 + 8]
mov qword [r11 - 0x10], rax
mov qword [r11 - 0x18], rdi
mov qword [r11 - 0x20], rdi
mov qword [r11 - 0x28], rdi
mov dword [rsp + 0x50], 0x104
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x14003b2eb
mov al, 1
mov rbx, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
mov word [rbx + 0xc], di
mov rbx, qword [rsp + 0x60]
xor al, al
add rsp, 0x40
pop rdi
ret

Function at 0x14003b3d0
Capabilities:
Query or enumerate registry value

Disassembly:
sub rsp, 0x38
mov rcx, qword [rcx]
test rcx, rcx
jne 0x14003b3e3
xor al, al
add rsp, 0x38
ret
mov qword [rsp + 0x30], rbx
xor ebx, ebx
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rbx, qword [rsp + 0x30]
test eax, eax
sete al
add rsp, 0x38
ret

Function at 0x14003b450
Capabilities:
Delete registry key

Disassembly:
sub rsp, 0x28
mov rcx, qword [rcx]
test rcx, rcx
jne 0x14003b463
mov al, cl
add rsp, 0x28
ret
call qword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
test eax, eax
sete al
add rsp, 0x28
ret
Function at 0x14003bc40
Capabilities:
Query environment variable
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
mov eax, 0x1150
call fcn.1400e6790
sub rsp, rax
mov rax, qword [0x140112ac0]
xor rax, rsp
mov qword [rsp + 0x1140], rax
xor edi, edi
mov rbx, r8
mov rbp, rdx
mov dword [rsp + 0x30], edi
mov rsi, rcx
cmp byte [0x1401148b0], dil
je 0x14003bcbc
call fcn.14003e110
cmp eax, 3
jg 0x14003bcbc
test rbx, rbx
jne 0x14003bcbc
lea r9d, [rbx + 3]
lea rdx, str.._registry.cc
lea rcx, [rsp + 0x38]
mov r8d, pe_nt_image_headers64
lea edi, [rbx + 1]
call fcn.1400403f0
lea rdx, str.Check_failed:_value.
lea rcx, [rax + 8]
call fcn.140005bd0
test dil, 1
je 0x14003bccc
lea rcx, [rsp + 0x38]
call fcn.14003feb0
mov rcx, qword [rsi]
mov dword [rsp + 0x34], 1
mov dword [rsp + 0x30], 0x800
test rcx, rcx
je 0x14003bd90
lea rax, [rsp + 0x30]
lea r9, [rsp + 0x34]
xor r8d, r8d
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x140]
mov rdx, rbp
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
sete al
test al, al
je 0x14003bd90
mov eax, dword [rsp + 0x34]
cmp eax, 1
jne 0x14003bd34
lea rdi, [rsp + 0x140]
lea rdx, [rsp + 0x140]
jmp 0x14003bd74
cmp eax, 2
jne 0x14003bd90
lea rdx, [rsp + 0x940]
lea rcx, [rsp + 0x140]
mov r8d, 0x400
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov dword [rsp + 0x30], eax
test eax, eax
je 0x14003bd90
cmp eax, 0x400
ja 0x14003bd90
lea rdi, [rsp + 0x940]
lea rdx, [rsp + 0x940]
or rcx, 0xffffffffffffffff
xor eax, eax
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rcx, rbx
call fcn.1400041c0
mov al, 1
jmp 0x14003bd92
xor al, al
mov rcx, qword [rsp + 0x1140]
xor rcx, rsp
call fcn.1400ac220
mov rbx, qword [rsp + 0x1188]
add rsp, 0x1150
pop rdi
pop rsi
pop rbp
ret

Function at 0x14003bdc0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
sub rsp, 0x140
xor edi, edi
mov rbx, r8
mov rbp, rdx
mov dword [rsp + 0x160], edi
mov rsi, rcx
cmp byte [0x1401148b0], dil
je 0x14003be27
call fcn.14003e110
cmp eax, 3
jg 0x14003be27
test rbx, rbx
jne 0x14003be27
lea r9d, [rbx + 3]
lea rdx, str.._registry.cc
lea rcx, [rsp + 0x38]
mov r8d, 0x124
lea edi, [rbx + 1]
call fcn.1400403f0
lea rdx, str.Check_failed:_value.
lea rcx, [rax + 8]
call fcn.140005bd0
test dil, 1
je 0x14003be37
lea rcx, [rsp + 0x38]
call fcn.14003feb0
mov rcx, qword [rsi]
mov dword [rsp + 0x160], 4
mov dword [rsp + 0x178], 4
mov dword [rsp + 0x30], 0
test rcx, rcx
je 0x14003beb6
lea rax, [rsp + 0x178]
lea r9, [rsp + 0x160]
xor r8d, r8d
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov rdx, rbp
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
sete al
test al, al
je 0x14003beb6
mov eax, dword [rsp + 0x160]
cmp eax, 4
je 0x14003bea2
cmp eax, 3
jne 0x14003beb6
cmp dword [rsp + 0x178], 4
jne 0x14003beb6
mov eax, dword [rsp + 0x30]
mov dword [rbx], eax
mov al, 1
jmp 0x14003beb8
xor al, al
mov rbx, qword [rsp + 0x168]
add rsp, 0x140
pop rdi
pop rsi
pop rbp
ret
Function at 0x14003bed0
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
sub rsp, 0x130
xor esi, esi
mov r12d, r9d
mov rdi, r8
mov ebx, esi
mov r13, rdx
mov rbp, rcx
mov dword [rsp + 0x150], ebx
cmp byte [0x1401148b0], bl
je 0x14003bf47
call fcn.14003e110
cmp eax, 3
jg 0x14003bf47
test rdi, rdi
jne 0x14003bf47
lea r9d, [rsi + 3]
lea rdx, str.._registry.cc
lea rcx, [rsp + 0x30]
mov r8d, 0x134
lea ebx, [rsi + 1]
call fcn.1400403f0
lea rdx, str.Check_failed:_data.
lea rcx, [rax + 8]
call fcn.140005bd0
test bl, 1
je 0x14003bf56
lea rcx, [rsp + 0x30]
call fcn.14003feb0
mov rcx, qword [rbp]
test rcx, rcx
jne 0x14003bf63
xor al, al
jmp 0x14003bf86
mov r9d, dword [rsp + 0x170]
xor r8d, r8d
mov rdx, r13
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
sete al
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r13
pop r12
pop rdi
ret

Function at 0x14003c020
Capabilities:
Delete registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x120
xor edi, edi
mov rsi, rdx
mov rbp, rcx
mov ebx, edi
mov dword [rsp + 0x140], ebx
cmp byte [0x1401148b0], bl
je 0x14003c08d
call fcn.14003e110
cmp eax, 3
jg 0x14003c08d
test rsi, rsi
jne 0x14003c08d
lea r9d, [rdi + 3]
lea rdx, str.._registry.cc
lea rcx, [rsp + 0x20]
mov r8d, 0x152
lea ebx, [rdi + 1]
call fcn.1400403f0
lea rdx, str.Check_failed:_value_name.
lea rcx, [rax + 8]
call fcn.140005bd0
test bl, 1
je 0x14003c09c
lea rcx, [rsp + 0x20]
call fcn.14003feb0
mov rcx, qword [rbp]
mov rdx, rsi
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x28]
test eax, eax
sete al
mov rsp, r11
pop rdi
ret
Function at 0x14003dbc0
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r13
push r14
sub rsp, 0x80
or r14, 0xffffffffffffffff
xor r13d, r13d
mov r12, r8
mov rsi, rdx
mov qword [rsp + 0x20], rdx
test rdx, rdx
jne 0x14003dbfa
mov qword [rsp + 0x28], r13
jmp 0x14003dc0f
xor eax, eax
mov rcx, r14
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
dec rcx
mov qword [rsp + 0x28], rcx
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x58]
call fcn.14003cab0
cmp qword [rax + 0x20], 8
jb 0x14003dc2b
mov rcx, qword [rax + 8]
jmp 0x14003dc2f
lea rcx, [rax + 8]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
cmp qword [rsp + 0x78], 8
mov ebp, eax
jb 0x14003dc4e
mov rcx, qword [rsp + 0x60]
call fcn.1400ab7f0
test ebp, ebp
jne 0x14003dc59
xor al, al
jmp 0x14003dd81
test r12, r12
je 0x14003dd7f
mov eax, 2
mov qword [rsp + 0xa0], rbx
mul rbp
cmovo rax, r14
mov rcx, rax
call fcn.1400aa13c
mov qword [rsp + 0x20], rsi
mov rbx, rax
test rsi, rsi
jne 0x14003dc92
mov qword [rsp + 0x28], r13
jmp 0x14003dca7
xor eax, eax
mov rcx, r14
mov rdi, rsi
repne scasb al, byte [rdi]
not rcx
dec rcx
mov qword [rsp + 0x28], rcx
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x58]
call fcn.14003cab0
cmp qword [rax + 0x20], 8
jb 0x14003dcc3
mov rcx, qword [rax + 8]
jmp 0x14003dcc7
lea rcx, [rax + 8]
mov r8d, ebp
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
cmp qword [rsp + 0x78], 8
jb 0x14003dce5
mov rcx, qword [rsp + 0x60]
call fcn.1400ab7f0
xor eax, eax
mov rcx, r14
mov rdi, rbx
repne scasw ax, word [rdi]
mov rdx, rbx
mov qword [rsp + 0x50], 7
not rcx
mov qword [rsp + 0x48], r13
mov word [rsp + 0x38], r13w
lea r8, [rcx - 1]
lea rcx, [rsp + 0x30]
call fcn.1400041c0
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x58]
call fcn.14003ca40
mov r9, r14
xor r8d, r8d
mov rdx, rax
mov rcx, r12
call fcn.140003b80
cmp qword [rsp + 0x78], 0x10
jb 0x14003dd4a
mov rcx, qword [rsp + 0x60]
call fcn.1400ab7f0
cmp qword [rsp + 0x50], 8
mov qword [rsp + 0x78], 0xf
mov qword [rsp + 0x70], r13
mov byte [rsp + 0x60], r13b
jb 0x14003dd6f
mov rcx, qword [rsp + 0x38]
call fcn.1400ab7f0
mov rcx, rbx
call fcn.1400ac33c
mov rbx, qword [rsp + 0xa0]
mov al, 1
lea r11, [rsp + 0x80]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r13
pop r12
ret
Function at 0x14003e690
Capabilities:
Create process on windows

Disassembly:
push rbx
sub rsp, 0x340
mov rax, qword [0x140112ac0]
xor rax, rsp
mov qword [rsp + 0x330], rax
cmp qword [rcx + 0x18], 0
mov rbx, rcx
je 0x14003e856
cmp byte [0x1401148d0], 0
je 0x14003e856
lea rdx, [rsp + 0x120]
mov r8d, 0x104
xor ecx, ecx
mov qword [rsp + 0x358], rdi
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [rsp + 0x120]
mov edx, 0x5c
call fcn.1400ad9e0
xor edi, edi
test rax, rax
je 0x14003e701
mov word [rax + 2], di
lea r8, str.debug_message.exe
lea rcx, [rsp + 0x120]
mov edx, 0x104
call fcn.1400ae67c
cmp qword [rbx + 0x20], 0x10
jb 0x14003e72c
mov rax, qword [rbx + 8]
mov qword [rsp + 0x50], rax
jmp 0x14003e735
lea rax, [rbx + 8]
mov qword [rsp + 0x50], rax
mov rax, qword [rbx + 0x18]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0x58], rax
call fcn.14003cab0
cmp qword [rsp + 0x108], rdi
jne 0x14003e768
cmp qword [rsp + 0x110], 8
jmp 0x14003e83f
xor edx, edx
lea rcx, [rsp + 0x80]
lea r8d, [rdx + 0x68]
call fcn.1400ac250
cmp qword [rsp + 0x110], 8
lea rax, [rsp + 0x60]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x80]
lea rdx, [rsp + 0xf8]
cmovae rdx, qword [rsp + 0xf8]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x120]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x80], 0x68
mov dword [rsp + 0x20], edi
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x14003e807
mov rcx, qword [rsp + 0x60]
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14003e836
cmp qword [rsp + 0x110], 8
lea rdx, [rsp + 0xf8]
lea r8, str.Fatal_error
cmovae rdx, qword [rsp + 0xf8]
mov r9d, 0x40010
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
cmp qword [rsp + 0x110], 8
jb 0x14003e84e
mov rcx, qword [rsp + 0xf8]
call fcn.1400ab7f0
mov rdi, qword [rsp + 0x358]
mov rcx, qword [rsp + 0x330]
xor rcx, rsp
call fcn.1400ac220
add rsp, 0x340
pop rbx
ret
Function at 0x140040cd0
Capabilities:
Get file version info

Disassembly:
push rsi
push rdi
sub rsp, 0x28
cmp qword [rcx + 0x20], 8
jb 0x140040ce4
mov rdi, qword [rcx + 8]
jmp 0x140040ce8
lea rdi, [rcx + 8]
lea rdx, [rsp + 0x40]
mov rcx, rdi
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov esi, eax
test eax, eax
jne 0x140040d04
xor eax, eax
add rsp, 0x28
pop rdi
pop rsi
ret
mov rcx, rsi
mov edx, 1
mov qword [rsp + 0x20], rbx
call fcn.1400af8d4
mov rbx, rax
test rax, rax
je 0x140040da3
mov edx, dword [rsp + 0x40]
mov r9, rax
mov r8d, esi
mov rcx, rdi
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x140040d9b
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x50]
lea rdx, str.VarFileInfoTranslation
xor edi, edi
mov rcx, rbx
mov qword [rsp + 0x50], rdi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x140040d9b
cmp qword [rsp + 0x50], rdi
je 0x140040d9b
lea ecx, [rdi + 0x20]
call fcn.1400abd9c
test rax, rax
je 0x140040d8c
mov rcx, qword [rsp + 0x50]
mov rdx, rbx
movzx r9d, word [rcx + 2]
movzx r8d, word [rcx]
mov rcx, rax
call fcn.140040c60
mov rdi, rax
mov rax, rdi
mov rbx, qword [rsp + 0x20]
add rsp, 0x28
pop rdi
pop rsi
ret
mov rcx, rbx
call fcn.1400ac958
xor eax, eax
mov rbx, qword [rsp + 0x20]
add rsp, 0x28
pop rdi
pop rsi
ret

Function at 0x140040ea0
Capabilities:
Identify system language via api

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x280
mov rax, qword [0x140112ac0]
xor rax, rsp
mov qword [rsp + 0x270], rax
movzx eax, word [rcx + 0x10]
mov r12, r8
mov rbp, rdx
mov word [rsp + 0x50], ax
movzx eax, word [rcx + 0x14]
mov rsi, rcx
mov word [rsp + 0x52], ax
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov edi, 0x4e4
mov word [rsp + 0x54], ax
movzx eax, word [rsi + 0x14]
mov word [rsp + 0x5a], di
mov word [rsp + 0x56], ax
movzx eax, word [rsi + 0x10]
mov word [rsp + 0x58], ax
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
xor r13d, r13d
mov word [rsp + 0x5e], di
lea rbx, [rsp + 0x50]
mov word [rsp + 0x5c], ax
mov edi, r13d
nop word [rax + rax]
movzx eax, word [rbx + 2]
movzx edx, word [rbx]
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], edx
mov edx, 0x104
lea r9, str.StringFileInfo_04x_04x_ls
lea rcx, [rsp + 0x60]
mov r8, rdx
add edi, 2
add rbx, 4
call fcn.1400afa20
mov rcx, qword [rsi + 8]
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x40], r13
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x140040f8f
mov rdx, qword [rsp + 0x40]
test rdx, rdx
jne 0x140040fbd
cmp edi, 8
jb 0x140040f30
xor al, al
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.1400ac220
mov rbx, qword [rsp + 0x2c8]
add rsp, 0x280
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rcx, r12
call fcn.1400041c0
mov al, 1
jmp 0x140040f96