joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140071f70
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
mov rbx, rcx
xor edi, edi
mov rcx, qword [rcx + 8]
mov r8, qword [rcx + 0xb8]
test r8, r8
jne 0x140071fad
lea r9, [0x1400e8548]
lea r8, str.No_such_state_handler__S
lea rdx, [0x1400e20b0]
call fcn.14003bcd0
mov eax, edi
jmp 0x140071fc4
mov rax, qword [r8]
lea rdx, [0x1400e8548]
mov rcx, r8
mov rax, qword [rax + 8]
call qword [case.0x14007fe1f.0]
mov rcx, qword [rbx + 8]
mov qword [rbx + 0x18], rax
mov r8, qword [rcx + 0xb8]
test r8, r8
jne 0x140071ff7
lea r9, str.ScanFileStateFinished
lea r8, str.No_such_state_handler__S
lea rdx, [0x1400e20b0]
call fcn.14003bcd0
mov rax, rdi
jmp 0x14007200e
mov rax, qword [r8]
lea rdx, str.ScanFileStateFinished
mov rcx, r8
mov rax, qword [rax + 8]
call qword [case.0x14007fe1f.0]
mov qword [rbx + 0x20], rax
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 0xb8]
test rcx, rcx
jne 0x140072041
lea r9, [0x1400e8400]
mov rcx, rax
lea r8, str.No_such_state_handler__S
lea rdx, [0x1400e20b0]
call fcn.14003bcd0
jmp 0x140072058
mov rax, qword [rcx]
lea rdx, [0x1400e8400]
mov rax, qword [rax + 8]
call qword [case.0x14007fe1f.0]
mov rdi, rax
mov qword [rbx + 0x28], rdi
cmp word [0x140111a90], 0
jne 0x140072078
mov edx, 0x104
lea rcx, [0x140111a90]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rdx, [0x140111a90]
mov rcx, rbx
call fcn.140071d60
cmp word [0x140111670], 0
lea rdi, [0x140111670]
jne 0x1400720af
xor r9d, r9d
mov qword [rsp + 0x20], rdi
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 0x29]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov rdx, rdi
mov rcx, rbx
call fcn.140071d60
mov rbx, qword [rsp + 0x40]
mov al, 1
add rsp, 0x30
pop rdi
ret

Function at 0x140074560
Capabilities:
Get file size

Disassembly:
sub rsp, 0x38
mov rax, qword [0x140106010]
xor rax, rsp
mov qword [rsp + 0x28], rax
mov rcx, qword [rcx + 8]
lea rdx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov ecx, eax
mov rdx, 0xffffffffffffffff
mov rax, qword [rsp + 0x20]
test ecx, ecx
cmove rax, rdx
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.140091ba0
add rsp, 0x38
ret

Function at 0x1400745b0
Capabilities:
Read file on windows

Disassembly:
push rbx
sub rsp, 0x30
mov rcx, qword [rcx + 8]
mov rax, r9
mov r9, r8
mov qword [rsp + 0x20], 0
mov rbx, r8
mov r8d, edx
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400745e9
cmp dword [rbx], 0
jne 0x1400745e9
xor al, al
add rsp, 0x30
pop rbx
ret
cmp eax, 1
sete al
add rsp, 0x30
pop rbx
ret
Function at 0x140075620
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push rbp
push r12
push r13
push r15
lea rbp, [rsp - 0x3f]
sub rsp, 0x98
mov rax, qword [0x140106010]
xor rax, rsp
mov qword [rbp + 0x1f], rax
xor r13d, r13d
lea rax, [rbp + 0xb]
mov qword [rsp + 0x58], r13
mov r12, rdx
mov qword [rsp + 0x50], r13
xor r9d, r9d
mov qword [rsp + 0x48], rax
xor r8d, r8d
lea rax, [rbp + 7]
xor edx, edx
mov qword [rsp + 0x40], rax
mov r15, rcx
lea rax, [rbp + 0x1b]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r13
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
je 0x140075698
xor eax, eax
jmp 0x1400757e9
mov qword [rsp + 0x80], r14
cmp dword [rbp + 0x1b], r13d
jne 0x1400756b0
mov eax, 1
jmp 0x1400757e1
mov ecx, dword [rbp + 0xb]
inc dword [rbp + 7]
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x88], rdi
call fcn.140091f5c
mov edx, dword [rbp + 7]
mov rsi, rax
inc edx
mov rcx, 0xffffffffffffffff
mov eax, 2
mul rdx
cmovo rax, rcx
mov rcx, rax
call fcn.140091f5c
mov ecx, dword [rbp + 7]
lea r9, [rbp + 0x13]
mov rbx, rax
mov dword [rbp + 0x13], ecx
mov ecx, dword [rbp + 0xb]
lea rax, [rbp + 0xf]
mov qword [rsp + 0x38], rax
mov r8, rbx
lea rax, [rbp + 0x17]
mov dword [rbp + 0xf], ecx
mov qword [rsp + 0x30], rsi
xor edx, edx
mov qword [rsp + 0x28], rax
mov rcx, r15
mov qword [rsp + 0x20], r13
mov r14d, 1
mov edi, r13d
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0x103
je 0x1400757b6
mov eax, dword [rbp + 7]
xor r8d, r8d
mov rdx, rbx
mov rcx, r12
mov word [rbx + rax*2], r13w
mov eax, dword [rbp + 0xf]
mov r9d, dword [rbp + 0x17]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x1400757b3
mov eax, dword [rbp + 7]
lea r9, [rbp + 0x13]
mov dword [rbp + 0x13], eax
inc edi
mov eax, dword [rbp + 0xb]
mov r8, rbx
mov dword [rbp + 0xf], eax
mov edx, edi
lea rax, [rbp + 0xf]
mov rcx, r15
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0x17]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r13
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0x103
jne 0x140075743
jmp 0x1400757b6
mov r14d, r13d
mov rcx, rbx
call fcn.140091bc0
mov rcx, rsi
call fcn.140091bc0
mov rdi, qword [rsp + 0x88]
mov eax, r14d
mov rsi, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xd0]
mov r14, qword [rsp + 0x80]
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.140091ba0
add rsp, 0x98
pop r15
pop r13
pop r12
pop rbp
ret
Function at 0x140078810
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x30
mov rbp, qword [0x14010d110]
test rbp, rbp
je 0x1400789ad
cmp qword [rbp + 0x98], 0
je 0x1400789ad
lea r8, str.Starting_communications_threads...
mov edx, 1
mov ecx, 0x10000
call fcn.14007c5f0
xor r14d, r14d
mov esi, r14d
cmp r14d, dword [rbp + 0x90]
jae 0x140078905
nop
mov rax, qword [rbp + 0x98]
mov ecx, esi
mov rbx, qword [rax + rcx*8]
test rbx, rbx
je 0x1400788ff
mov r15, qword [rbx + 0x38]
test r15, r15
je 0x1400788ff
lea rcx, [rbx + 0x60]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [rbx + 0x88], 1
lea rcx, [rbx + 0x60]
je 0x1400788f9
mov byte [rbx + 0x88], 1
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r9, qword [rbx + 0x40]
lea rax, [r15 + 0x10]
mov r8, qword [rbx + 0x48]
xor edx, edx
mov qword [rsp + 0x28], rax
xor ecx, ecx
mov dword [rsp + 0x20], r14d
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [r15 + 8], rax
test rax, rax
je 0x1400788e4
inc esi
cmp esi, dword [rbp + 0x90]
jb 0x140078870
jmp 0x1400788ff
lea rcx, [rbx + 0x60]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, [rbx + 0x60]
mov byte [rbx + 0x88], r14b
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp esi, dword [rbp + 0x90]
jne 0x14007890e
mov al, 1
jmp 0x1400789af
test esi, esi
je 0x140078955
mov qword [rsp + 0x50], r12
mov r15, r14
mov r12d, esi
nop dword [rax]
mov rax, qword [rbp + 0x98]
mov rbx, qword [r15 + rax]
lea rcx, [rbx + 0x60]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, [rbx + 0x60]
mov byte [rbx + 0x88], r14b
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea r15, [r15 + 8]
sub r12, 1
jne 0x140078920
mov r12, qword [rsp + 0x50]
mov rcx, qword [rbp + 0x30]
test rcx, rcx
je 0x14007896a
mov rax, qword [rbp + 0x28]
xor edx, edx
call qword [case.0x14007fe1f.0]
test esi, esi
je 0x1400789ad
mov edi, esi
mov rax, qword [rbp + 0x98]
mov rbx, qword [r14 + rax]
test rbx, rbx
je 0x1400789a3
mov rbx, qword [rbx + 0x38]
test rbx, rbx
je 0x1400789a3
cmp qword [rbx + 8], 0
je 0x1400789a3
mov rcx, qword [rbx + 8]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x140078990
add r14, 8
sub rdi, 1
jne 0x140078970
xor al, al
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop rdi
ret

Function at 0x14007c850
Capabilities:
Delete file

Disassembly:
push rbx
sub rsp, 0x40
mov rdx, rcx
lea rcx, [rsp + 0x20]
call fcn.140085940
cmp qword [rax + 0x18], 8
jb 0x14007c86d
mov rax, qword [rax]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rdx, qword [rsp + 0x38]
mov ebx, eax
cmp rdx, 8
jb 0x14007c8b6
mov rcx, qword [rsp + 0x20]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14007c8b1
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14007c8c1
call fcn.140091bc0
test ebx, ebx
setne al
add rsp, 0x40
pop rbx
ret
call fcn.14009b188
int3
Function at 0x14007c8d0
Capabilities:
Check if file exists
Encode data using xor
Get file attributes
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0xb0
mov rax, qword [0x140106010]
xor rax, rsp
mov qword [rsp + 0xa0], rax
movzx ebx, dl
mov rsi, rcx
call fcn.140086010
test al, al
jne 0x14007cb61
mov rcx, rsi
call fcn.1400858e0
test al, al
je 0x14007cb61
lea rbp, [0x14010d0b0]
xor r14d, r14d
test bl, bl
je 0x14007c9b7
mov rcx, rbp
call fcn.1400938e0
test eax, eax
jne 0x14007cb91
mov r8, qword [rsi + 0x10]
mov rdx, rsi
cmp qword [rsi + 0x18], 8
jb 0x14007c94d
mov rdx, qword [rsi]
movabs r9, 0xcbf29ce484222325
add r8, r8
mov rcx, r14
je 0x14007c983
movabs r10, 0x100000001b3
nop dword [rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r10
inc rcx
cmp rcx, r8
jb 0x14007c970
mov r8, rsi
lea rdx, [rsp + 0x60]
call fcn.14007d910
mov rcx, qword [rax + 8]
mov rdx, qword [0x14010d078]
test rcx, rcx
cmovne rdx, rcx
mov rcx, rbp
cmp rdx, qword [0x14010d078]
jne 0x14007ca5b
call fcn.1400938e8
mov qword [rsp + 0x80], r14
mov qword [rsp + 0x90], r14
mov qword [rsp + 0x98], 7
mov word [rsp + 0x80], r14w
mov r8d, 4
lea rdx, [0x1400e1620]
lea rcx, [rsp + 0x80]
call fcn.140009140
nop
mov rdx, qword [rsi + 0x10]
mov r9, rsi
cmp qword [rsi + 0x18], 8
jb 0x14007ca08
mov r9, qword [rsi]
mov rcx, qword [rsp + 0x90]
mov r8, qword [rsp + 0x98]
mov rax, r8
sub rax, rcx
cmp rdx, rax
ja 0x14007ca6c
lea rdi, [rcx + rdx]
mov qword [rsp + 0x90], rdi
lea rbx, [rsp + 0x80]
cmp r8, 8
cmovae rbx, qword [rsp + 0x80]
lea rcx, [rbx + rcx*2]
lea r8, [rdx + rdx]
mov rdx, r9
call fcn.140096e20
mov word [rbx + rdi*2], r14w
jmp 0x14007ca81
movzx ebx, byte [rdx + 0x30]
call fcn.1400938e8
movzx eax, bl
jmp 0x14007cb63
lfence
mov qword [rsp + 0x20], rdx
lea rcx, [rsp + 0x80]
call fcn.140010300
lea rcx, [rsp + 0x80]
cmp qword [rsp + 0x98], 8
cmovae rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
cmp eax, 0xffffffff
jne 0x14007caac
xor bl, bl
jmp 0x14007cab4
shr bl, 4
not bl
and bl, 1
mov qword [rsp + 0x30], rbp
mov rcx, rbp
call fcn.1400938e0
test eax, eax
jne 0x14007cb99
mov rdi, qword [0x140111248]
add rdi, qword [rsi + 0x10]
cmp rdi, 0x6400000
ja 0x14007cb0f
mov rdx, rsi
lea rcx, [rsp + 0x38]
call fcn.140008e10
mov byte [rsp + 0x58], bl
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x70]
call fcn.14007d390
nop
lea rcx, [rsp + 0x38]
call fcn.1400090d0
mov qword [0x140111248], rdi
mov rcx, rbp
call fcn.1400938e8
nop
mov rdx, qword [rsp + 0x98]
cmp rdx, 8
jb 0x14007cb5c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14007cb57
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14007cb8b
call fcn.140091bc0
movzx eax, bl
jmp 0x14007cb63
xor al, al
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.140091ba0
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
call fcn.14009b188
int3
mov ecx, eax
call fcn.1400939f4
nop
mov ecx, eax
call fcn.1400939f4
int3
Function at 0x14007d390
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x50
mov rdi, r8
mov r14, rdx
mov r8, qword [r8 + 0x10]
mov rdx, rdi
cmp qword [rdi + 0x18], 8
jb 0x14007d3b9
mov rdx, qword [rdi]
movabs rbx, 0xcbf29ce484222325
xor ecx, ecx
add r8, r8
je 0x14007d3f3
movabs r9, 0x100000001b3
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
xor rbx, rax
imul rbx, r9
inc rcx
cmp rcx, r8
jb 0x14007d3e0
mov r9, rbx
mov r8, rdi
lea rdx, [rsp + 0x20]
call fcn.14007d910
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x14007d41a
mov qword [r14], rax
mov byte [r14 + 8], 0
jmp 0x14007d5d7
movabs rax, 0x492492492492492
cmp qword [0x14010d080], rax
je 0x14007d5f0
lea rax, [0x14010d078]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0
lfence
mov ecx, 0x38
call fcn.140091bc8
mov rsi, rax
mov qword [rsp + 0x38], rax
mov rdx, rdi
lea rcx, [rax + 0x10]
call fcn.140008e10
movzx ecx, byte [rdi + 0x20]
mov byte [rsi + 0x30], cl
mov r9, qword [0x14010d080]
lea rcx, [r9 + 1]
xorps xmm0, xmm0
test rcx, rcx
js 0x14007d488
cvtsi2ss xmm0, rcx
jmp 0x14007d49d
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rdi, qword [0x14010d0a8]
xorps xmm2, xmm2
test rdi, rdi
js 0x14007d4b3
cvtsi2ss xmm2, rdi
jmp 0x14007d4cb
mov rcx, rdi
shr rcx, 1
mov rax, rdi
and eax, 1
or rcx, rax
cvtsi2ss xmm2, rcx
addss xmm2, xmm2
movaps xmm1, xmm0
divss xmm1, xmm2
movss xmm3, dword [0x14010d070]
comiss xmm1, xmm3
seta al
test al, al
je 0x14007d570
divss xmm0, xmm3
call fcn.1400c3908
xor ecx, ecx
movss xmm1, dword [0x1400eb130]
comiss xmm0, xmm1
jb 0x14007d516
subss xmm0, xmm1
comiss xmm0, xmm1
jae 0x14007d516
movabs rax, 0x8000000000000000
mov rcx, rax
cvttss2si rax, xmm0
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rdi, rcx
jae 0x14007d548
cmp rdi, 0x200
jae 0x14007d545
lea rdi, [rdi*8]
cmp rdi, rcx
jae 0x14007d548
mov rdi, rcx
mov rdx, rdi
call fcn.14007d640
mov r9, rbx
lea r8, [rsi + 0x10]
lea rdx, [rsp + 0x40]
call fcn.14007d910
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x20], xmm0
mov r9, qword [0x14010d080]
mov rdx, qword [rsp + 0x20]
mov r8, qword [rdx + 8]
inc r9
mov qword [0x14010d080], r9
mov qword [rsi], rdx
mov qword [rsi + 8], r8
mov qword [r8], rsi
mov qword [rdx + 8], rsi
mov rcx, qword [0x14010d088]
mov rax, qword [0x14010d0a0]
and rax, rbx
add rax, rax
mov r9, qword [rcx + rax*8]
cmp r9, qword [0x14010d078]
jne 0x14007d5b8
mov qword [rcx + rax*8], rsi
jmp 0x14007d5ca
cmp r9, rdx
jne 0x14007d5c3
mov qword [rcx + rax*8], rsi
jmp 0x14007d5cf
cmp qword [rcx + rax*8 + 8], r8
jne 0x14007d5cf
mov qword [rcx + rax*8 + 8], rsi
mov qword [r14], rsi
mov byte [r14 + 8], 1
mov rax, r14
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x88]
add rsp, 0x50
pop r14
pop rdi
pop rsi
ret
lea rcx, str.unordered_map_set_too_long
call fcn.1400935c0
int3
Function at 0x14007ec60
Capabilities:
Delete registry value

Disassembly:
push rbx
sub rsp, 0x40
mov rax, qword [0x140106010]
xor rax, rsp
mov qword [rsp + 0x38], rax
cmp qword [0x1401082e0], 8
lea rax, [rsp + 0x30]
mov rbx, rcx
mov qword [rsp + 0x30], 0
lea rdx, [0x1401082c8]
mov qword [rsp + 0x20], rax
cmovae rdx, qword [0x1401082c8]
mov r9d, 0xf013f
xor r8d, r8d
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14007ecdf
cmp qword [rbx + 0x18], 8
jb 0x14007ecc6
mov rbx, qword [rbx]
mov rcx, qword [rsp + 0x30]
mov rdx, rbx
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140091ba0
add rsp, 0x40
pop rbx
ret

Function at 0x140083f20
Capabilities:
Get common file path

Disassembly:
push rbx
sub rsp, 0x20
cmp word [0x140111460], 0
jne 0x140083f4e
lea rbx, [0x140111460]
mov edx, 0x104
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov rax, rbx
add rsp, 0x20
pop rbx
ret
lea rax, [0x140111460]
add rsp, 0x20
pop rbx
ret

Function at 0x140083f60
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x60
mov rdi, rdx
mov rbx, rcx
mov qword [rsp + 0x50], rcx
lea rsi, [0x140111880]
cmp word [0x140111880], 0
jne 0x140083fa2
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x23]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
xor eax, eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 7
mov word [rsp + 0x30], ax
mov r8, 0xffffffffffffffff
inc r8
cmp word [rsi + r8*2], ax
jne 0x140083fc3
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.140009140
nop
mov r8, rdi
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.1400853e0
nop
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x14008402a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140084025
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14008403f
call fcn.140091bc0
mov rax, rbx
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
call fcn.14009b188
int3
Function at 0x140084050
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x40
mov rax, qword [0x140106010]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rsi, rcx
mov qword [rsp + 0x28], rcx
xor eax, eax
mov dword [rsp + 0x20], eax
mov qword [rcx], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], 7
mov word [rcx], ax
mov rdi, 0xffffffffffffffff
mov r8, rdi
nop dword [rax + rax]
inc r8
cmp word [rdx + r8*2], ax
jne 0x1400840a0
call fcn.140009140
mov dword [rsp + 0x20], 1
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x1400840c4
mov rcx, qword [rsi]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov r14d, eax
test eax, eax
je 0x140084162
lfence
mov eax, 2
mul r14
mov rbx, rax
cmovo rbx, rdi
mov rcx, rbx
call fcn.140091f5c
mov rbp, rax
mov r8, rbx
xor edx, edx
mov rcx, rax
call fcn.140096c20
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x20], 3
test rbp, rbp
je 0x14008415a
lfence
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x140084126
mov rcx, qword [rsi]
mov r8d, r14d
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x14008415a
lfence
nop dword [rax]
inc rdi
cmp word [rbp + rdi*2], 0
jne 0x140084140
mov r8, rdi
mov rdx, rbp
mov rcx, rsi
call fcn.140009140
nop
mov rcx, rbp
call fcn.140091bc0
mov rax, rsi
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140091ba0
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
Function at 0x140086400
Capabilities:
Get file version info

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x100
mov rax, qword [0x140106010]
xor rax, rsp
mov qword [rsp + 0xf0], rax
xor ebp, ebp
mov dword [rsp + 0x50], ebp
lea rdi, [0x140108368]
mov rcx, rdi
cmp qword [0x140108380], 8
cmovae rcx, qword [0x140108368]
lea rdx, [rsp + 0x50]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov esi, eax
test eax, eax
je 0x14008648b
mov ecx, esi
call fcn.140091f5c
mov r15, rax
mov r8d, esi
xor edx, edx
mov rcx, rax
call fcn.140096c20
mov qword [rsp + 0x60], r15
test r15, r15
jne 0x140086492
mov rcx, r15
call fcn.140091bc0
xor al, al
jmp 0x14008661a
xor r12b, r12b
cmp qword [0x140108380], 8
cmovae rdi, qword [0x140108368]
mov r9, r15
mov r8d, esi
xor edx, edx
mov rcx, rdi
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x14008660e
mov edi, 0x409
mov esi, 0x4b0
lea r9, [rsp + 0x54]
lea r8, [rsp + 0x48]
lea rdx, str.VarFileInfoTranslation
mov rcx, r15
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1400864f2
mov rax, qword [rsp + 0x48]
movzx edi, word [rax]
movzx esi, word [rax + 2]
lea rax, [0x1400eaa80]
mov qword [rsp + 0x30], rax
lea rax, [0x1400eaa60]
mov qword [rsp + 0x38], rax
mov r14d, ebp
lea r13, [rsp + 0x30]
mov ebx, ebp
mov rbp, qword [r13]
nop dword [rax + rax]
movzx r9d, si
movzx r8d, di
mov qword [rsp + 0x20], rbp
lea rdx, str.StringFileInfo_04x_04x_ls
lea rcx, [rsp + 0x70]
call fcn.140041fe0
cmp eax, 0x3f
ja 0x140086592
cdqe
add rax, rax
cmp rax, 0x80
jae 0x14008664b
xor ecx, ecx
mov word [rsp + rax + 0x70], cx
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x70]
mov rcx, r15
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
jne 0x14008659b
mov eax, 0x409
cmp di, ax
jne 0x14008658b
mov ecx, 0x4b0
cmp si, cx
je 0x140086592
mov edi, eax
mov esi, 0x4b0
inc ebx
cmp ebx, 2
jge 0x1400865fa
jmp 0x140086520
test r14d, r14d
jne 0x1400865c4
mov rdx, qword [rsp + 0x40]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x1400865b0
lea rcx, [0x140108388]
jmp 0x1400865f2
cmp r14d, 1
jne 0x1400865f7
mov rdx, qword [rsp + 0x40]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x1400865e0
lea rcx, [0x140108348]
call fcn.140009140
mov r12b, 1
inc r14d
add r13, 8
cmp r14d, 2
jae 0x14008660e
xor ebp, ebp
jmp 0x140086512
mov rcx, r15
call fcn.140091bc0
movzx eax, r12b
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.140091ba0
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
call fcn.140092594
nop
int3
Function at 0x140086660
Capabilities:
Create directory

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x2a0
mov rax, qword [0x140106010]
xor rax, rsp
mov qword [rsp + 0x290], rax
mov rsi, rdx
mov rdi, rcx
mov rdx, rcx
lea rcx, [rsp + 0x20]
call fcn.140085940
xor bl, bl
lea rcx, [rsp + 0x20]
cmp qword [rsp + 0x38], 8
cmovae rcx, qword [rsp + 0x20]
lea rdx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
je 0x1400866ce
mov ebx, dword [rsp + 0x40]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindClose]
and ebx, 0x10
setne bl
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x140086710
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14008670b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400867c6
call fcn.140091bc0
test bl, bl
je 0x14008671b
mov al, 1
jmp 0x14008679b
mov rdx, rdi
lea rcx, [rsp + 0x20]
call fcn.140085730
nop
mov rdx, rsi
mov rcx, rax
call fcn.140086660
test al, al
sete bl
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x140086777
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140086772
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400867c0
call fcn.140091bc0
test bl, bl
je 0x14008677f
xor al, al
jmp 0x14008679b
cmp qword [rdi + 0x18], 8
jb 0x140086789
mov rdi, qword [rdi]
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp eax, 1
sete al
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.140091ba0
lea r11, [rsp + 0x2a0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
call fcn.14009b188
int3
call fcn.14009b188
int3
Function at 0x1400891a0
Capabilities:
Get system information on windows

Disassembly:
sub rsp, 0x68
mov rax, qword [0x140106010]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov eax, dword [0x140107588]
cmp eax, 0xffffffff
jne 0x1400891e9
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
movzx eax, word [rsp + 0x20]
cmp ax, 9
je 0x1400891de
cmp ax, 6
je 0x1400891de
xor eax, eax
jmp 0x1400891e3
mov eax, 1
mov dword [0x140107588], eax
test eax, eax
setne al
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140091ba0
add rsp, 0x68
ret

Function at 0x140089200
Capabilities:
Get system information on windows

Disassembly:
sub rsp, 0x78
mov rax, qword [0x140106010]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov eax, dword [0x140107584]
cmp eax, 0xffffffff
jne 0x140089285
lea r8, [rsp + 0x24]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x28]
call fcn.1400892a0
test al, al
je 0x14008923c
mov eax, dword [rsp + 0x20]
jmp 0x14008927f
mov eax, dword [0x140107580]
cmp eax, 0xffffffff
jne 0x14008927a
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x24]
call fcn.1400892a0
test al, al
je 0x140089265
mov eax, dword [rsp + 0x20]
jmp 0x140089274
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov eax, dword [rsp + 0x50]
mov dword [0x140107580], eax
cdq
sub eax, edx
sar eax, 1
mov dword [0x140107584], eax
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.140091ba0
add rsp, 0x78
ret