joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140071930
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r13
push r14
push r15
sub rsp, 0x50
mov rcx, qword [rsp + 0x90]
mov rbx, r8
mov rdi, rdx
xor ebp, ebp
xor r8d, r8d
mov qword [rax - 0x28], rbp
lea rdx, [0x1400d7060]
mov r15, r9
call fcn.1400064bc
mov r14, qword [rsp + 0x98]
mov dword [r14], ebp
cmp qword [rbx + 0x18], 8
jb 0x140071988
mov rbx, qword [rbx]
mov rcx, qword [rdi]
lea rax, [rsp + 0x40]
mov r9d, 0x20119
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, rbx
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
nop dword [rax + rax]
test eax, eax
mov dword [r14], eax
sete sil
test eax, eax
jne 0x140071a9a
movzx edi, byte [rsp + 0xa0]
mov eax, 0x104
xor edi, 1
mov dword [rsp + 0x98], eax
shl edi, 0x1c
or r13, 0xffffffffffffffff
mov ecx, eax
mov eax, 2
mul rcx
cmovo rax, r13
mov rcx, rax
call fcn.1400a1a90
cmp qword [r15 + 0x18], 8
mov rbx, rax
jb 0x140071a01
mov r8, qword [r15]
jmp 0x140071a04
mov r8, r15
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x98]
mov qword [rsp + 0x30], rax
lea r9d, [rdi + 0xffff]
mov qword [rsp + 0x28], rbx
xor edx, edx
mov qword [rsp + 0x20], rbp
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
nop dword [rax + rax]
mov dword [r14], eax
test eax, eax
jne 0x140071a65
cmp word [rbx], bp
jne 0x140071a46
mov r8, rbp
jmp 0x140071a53
mov r8, r13
inc r8
cmp word [rbx + r8*2], bp
jne 0x140071a49
mov rcx, qword [rsp + 0x90]
mov rdx, rbx
call fcn.1400064bc
jmp 0x140071a71
cmp eax, 0xea
movzx esi, sil
cmovne esi, ebp
test rbx, rbx
je 0x140071a85
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_]
nop dword [rax + rax]
cmp dword [r14], 0xea
jne 0x140071a9a
mov eax, dword [rsp + 0x98]
jmp 0x1400719dc
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x140071ab0
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop dword [rax + rax]
lea r11, [rsp + 0x50]
mov al, sil
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
ret
Function at 0x140071ae0
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push r14
sub rsp, 0x60
mov rsi, qword [rsp + 0x98]
mov rdi, r9
and qword [rax - 0x18], 0
mov rbx, r8
mov r14, rdx
and dword [rsi], 0
cmp qword [r8 + 0x18], 8
jb 0x140071b1a
mov rdx, qword [r8]
jmp 0x140071b1d
mov rdx, rbx
mov rcx, qword [r14]
lea rax, [rsp + 0x50]
mov r9d, 0x20106
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
nop dword [rax + rax]
mov dword [rsi], eax
cmp eax, 2
jne 0x140071b96
cmp qword [rbx + 0x18], 8
jb 0x140071b50
mov rbx, qword [rbx]
and qword [rsp + 0x40], 0
lea rax, [rsp + 0x50]
mov rcx, qword [r14]
xor r9d, r9d
mov qword [rsp + 0x38], rax
xor r8d, r8d
and qword [rsp + 0x30], 0
mov rdx, rbx
mov dword [rsp + 0x28], 0x2011b
and dword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
nop dword [rax + rax]
test eax, eax
mov dword [rsi], eax
sete bl
test eax, eax
jne 0x140071be4
mov rcx, qword [rsp + 0x90]
cmp qword [rcx + 0x18], 8
mov rax, qword [rcx + 0x10]
jb 0x140071bac
mov rcx, qword [rcx]
cmp qword [rdi + 0x18], 8
jb 0x140071bb6
mov rdi, qword [rdi]
add eax, eax
mov r9d, 2
mov dword [rsp + 0x28], eax
mov r8, rdi
mov qword [rsp + 0x20], rcx
xor edx, edx
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegSetKeyValueW]
nop dword [rax + rax]
test eax, eax
mov dword [rsi], eax
sete bl
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140071bfa
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop dword [rax + rax]
lea r11, [rsp + 0x60]
mov al, bl
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop r14
ret

Function at 0x140071c20
Capabilities:
Query or enumerate registry value

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rsi
mov qword [r11 + 0x18], rdi
push r14
sub rsp, 0x50
mov rsi, qword [rsp + 0x80]
mov rbx, r9
mov r14, qword [rsp + 0x88]
mov rax, r8
and qword [r11 - 0x18], 0
mov r10, rdx
and dword [rsi], 0
and dword [r14], 0
cmp qword [r8 + 0x18], 8
jb 0x140071c64
mov rax, qword [r8]
lea rcx, [rsp + 0x40]
mov r9d, 0x20119
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, qword [r10]
mov rdx, rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
nop dword [rax + rax]
test eax, eax
mov dword [r14], eax
sete dil
test eax, eax
jne 0x140071cfd
cmp qword [rbx + 0x18], 8
mov dword [rsp + 0x80], 4
jb 0x140071cab
mov rbx, qword [rbx]
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x80]
mov qword [rsp + 0x30], rax
mov r9d, 0x18
lea rax, [rsp + 0x88]
mov r8, rbx
mov qword [rsp + 0x28], rax
xor edx, edx
and qword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
nop dword [rax + rax]
test eax, eax
mov dword [r14], eax
sete dil
test eax, eax
jne 0x140071cfd
mov ecx, dword [rsp + 0x88]
mov dword [rsi], ecx
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x140071d13
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop dword [rax + rax]
mov rbx, qword [rsp + 0x60]
mov al, dil
mov rdi, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x68]
add rsp, 0x50
pop r14
ret
Function at 0x140071d40
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push r14
sub rsp, 0x60
mov rsi, qword [rsp + 0x98]
mov rdi, r9
and qword [rax - 0x18], 0
mov rbx, r8
mov r14, rdx
and dword [rsi], 0
cmp qword [r8 + 0x18], 8
jb 0x140071d7a
mov rdx, qword [r8]
jmp 0x140071d7d
mov rdx, rbx
mov rcx, qword [r14]
lea rax, [rsp + 0x50]
mov r9d, 0x20106
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
nop dword [rax + rax]
mov dword [rsi], eax
cmp eax, 2
jne 0x140071df6
cmp qword [rbx + 0x18], 8
jb 0x140071db0
mov rbx, qword [rbx]
and qword [rsp + 0x40], 0
lea rax, [rsp + 0x50]
mov rcx, qword [r14]
xor r9d, r9d
mov qword [rsp + 0x38], rax
xor r8d, r8d
and qword [rsp + 0x30], 0
mov rdx, rbx
mov dword [rsp + 0x28], 0x2011b
and dword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
nop dword [rax + rax]
test eax, eax
mov dword [rsi], eax
sete bl
test eax, eax
jne 0x140071e35
cmp qword [rdi + 0x18], 8
jb 0x140071e00
mov rdi, qword [rdi]
mov rax, qword [rsp + 0x90]
mov r9d, 4
mov rcx, qword [rsp + 0x50]
mov r8, rdi
mov dword [rsp + 0x28], r9d
xor edx, edx
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetKeyValueW]
nop dword [rax + rax]
test eax, eax
mov dword [rsi], eax
sete bl
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140071e4b
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop dword [rax + rax]
lea r11, [rsp + 0x60]
mov al, bl
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop r14
ret

Function at 0x140071e70
Capabilities:
Delete registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x40
mov rsi, qword [rsp + 0x70]
mov rbx, r9
and qword [rsp + 0x30], 0
mov rax, r8
mov r10, rdx
mov dil, 1
and dword [rsi], 0
cmp qword [r8 + 0x18], 8
jb 0x140071ea3
mov rax, qword [r8]
lea rcx, [rsp + 0x30]
mov r9d, 0x20106
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, qword [r10]
mov rdx, rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
nop dword [rax + rax]
mov dword [rsi], eax
cmp eax, 2
je 0x140071ef8
cmp qword [rbx + 0x18], 8
jb 0x140071ed9
mov rbx, qword [rbx]
mov rcx, qword [rsp + 0x30]
mov rdx, rbx
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
nop dword [rax + rax]
test eax, 0xfffffffd
mov dword [rsi], eax
sete dil
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x140071f0e
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop dword [rax + rax]
mov rbx, qword [rsp + 0x50]
mov al, dil
mov rsi, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret
Function at 0x140071f30
Capabilities:
Query or enumerate registry value

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rsi
mov qword [r11 + 0x18], rdi
push r14
sub rsp, 0x50
mov rsi, qword [rsp + 0x80]
mov rbx, r9
mov r14, qword [rsp + 0x88]
mov rax, r8
and qword [r11 - 0x18], 0
mov r10, rdx
and qword [rsi], 0
and dword [r14], 0
cmp qword [r8 + 0x18], 8
jb 0x140071f75
mov rax, qword [r8]
lea rcx, [rsp + 0x40]
mov r9d, 0x20119
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, qword [r10]
mov rdx, rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
nop dword [rax + rax]
test eax, eax
mov dword [r14], eax
sete dil
test eax, eax
jne 0x140072010
cmp qword [rbx + 0x18], 8
mov dword [rsp + 0x80], 8
jb 0x140071fbc
mov rbx, qword [rbx]
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x80]
mov qword [rsp + 0x30], rax
mov r9d, 0x48
lea rax, [rsp + 0x88]
mov r8, rbx
mov qword [rsp + 0x28], rax
xor edx, edx
and qword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
nop dword [rax + rax]
test eax, eax
mov dword [r14], eax
sete dil
test eax, eax
jne 0x140072010
mov rcx, qword [rsp + 0x88]
mov qword [rsi], rcx
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x140072026
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop dword [rax + rax]
mov rbx, qword [rsp + 0x60]
mov al, dil
mov rdi, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x68]
add rsp, 0x50
pop r14
ret

Function at 0x140072050
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push r14
sub rsp, 0x60
mov rsi, qword [rsp + 0x98]
mov rdi, r9
and qword [rax - 0x18], 0
mov rbx, r8
mov r14, rdx
and dword [rsi], 0
cmp qword [r8 + 0x18], 8
jb 0x14007208a
mov rdx, qword [r8]
jmp 0x14007208d
mov rdx, rbx
mov rcx, qword [r14]
lea rax, [rsp + 0x50]
mov r9d, 0x20106
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
nop dword [rax + rax]
mov dword [rsi], eax
cmp eax, 2
jne 0x140072106
cmp qword [rbx + 0x18], 8
jb 0x1400720c0
mov rbx, qword [rbx]
and qword [rsp + 0x40], 0
lea rax, [rsp + 0x50]
mov rcx, qword [r14]
xor r9d, r9d
mov qword [rsp + 0x38], rax
xor r8d, r8d
and qword [rsp + 0x30], 0
mov rdx, rbx
mov dword [rsp + 0x28], 0x2011b
and dword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
nop dword [rax + rax]
test eax, eax
mov dword [rsi], eax
sete bl
test eax, eax
jne 0x140072148
cmp qword [rdi + 0x18], 8
jb 0x140072110
mov rdi, qword [rdi]
mov rax, qword [rsp + 0x90]
mov r9d, 0xb
mov rcx, qword [rsp + 0x50]
mov r8, rdi
mov dword [rsp + 0x28], 8
xor edx, edx
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetKeyValueW]
nop dword [rax + rax]
test eax, eax
mov dword [rsi], eax
sete bl
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14007215e
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop dword [rax + rax]
lea r11, [rsp + 0x60]
mov al, bl
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop r14
ret
Function at 0x1400778ec
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rdi
push r14
push r15
sub rsp, 0x30
mov qword [rax - 0x28], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], rsi
mov r11, r8
mov r15, rdx
mov r14, rcx
mov r9, qword [r8 + 0x10]
cmp qword [r8 + 0x18], 8
jb 0x140077923
mov r8, qword [r8]
movabs rcx, 0xcbf29ce484222325
xor edx, edx
add r9, r9
je 0x140077952
movzx eax, byte [rdx + r8]
xor rcx, rax
movabs r10, 0x100000001b3
imul rcx, r10
inc rdx
cmp rdx, r9
jb 0x140077934
mov rax, rcx
shr rax, 0x20
xor rcx, rax
mov rdx, qword [r14 + 0x28]
mov rsi, rdx
and rsi, rcx
cmp qword [r14 + 0x30], rsi
ja 0x140077979
shr rdx, 1
or rax, 0xffffffffffffffff
sub rax, rdx
add rsi, rax
mov rbx, qword [r14]
add rsi, rsi
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax + rsi*8]
cmp rbx, rcx
je 0x1400779de
mov rbx, qword [rax + rsi*8 + 8]
mov rbx, qword [rbx]
cmp rbx, rcx
je 0x1400779de
mov rbx, qword [rbx + 8]
lea rdx, [rbx + 0x10]
mov rcx, r11
call fcn.14003b32c
test al, al
jne 0x1400779b9
mov rax, qword [r14 + 0x10]
cmp rbx, qword [rax + rsi*8]
jne 0x140077999
jmp 0x1400779de
mov rdx, r11
lea rcx, [rbx + 0x10]
call fcn.14003b32c
test al, al
jne 0x1400779ce
mov rbx, qword [rbx]
jmp 0x1400779de
mov qword [r15], rbx
mov byte [r15 + 8], 0
mov rax, r15
jmp 0x140077ac3
mov rax, qword [r14]
mov rdi, qword [rax]
mov r9, r11
mov r8, qword [rdi + 8]
mov rdx, rdi
call fcn.140045878
mov rdx, rax
mov rax, qword [r14 + 8]
movabs rcx, 0x555555555555554
sub rcx, rax
cmp rcx, 1
jb 0x140077ad8
inc rax
mov qword [r14 + 8], rax
mov qword [rdi + 8], rdx
mov rax, qword [rdx + 8]
mov qword [rax], rdx
mov rcx, qword [r14]
mov rdi, qword [rcx]
mov qword [rsp + 0x60], rdi
mov rax, qword [rdi]
cmp rbx, rax
je 0x140077a66
mov rcx, qword [rdi + 8]
mov qword [rcx], rax
mov rcx, qword [rax + 8]
mov qword [rcx], rbx
mov rcx, qword [rbx + 8]
mov qword [rcx], rdi
mov rdx, qword [rbx + 8]
mov rcx, qword [rax + 8]
mov qword [rbx + 8], rcx
mov rcx, qword [rdi + 8]
mov qword [rax + 8], rcx
mov qword [rdi + 8], rdx
mov rcx, qword [r14]
mov rdx, qword [r14 + 0x10]
cmp qword [rdx + rsi*8], rcx
jne 0x140077a7f
mov qword [rdx + rsi*8], rdi
mov rax, qword [r14 + 0x10]
mov qword [rax + rsi*8 + 8], rdi
jmp 0x140077aaf
cmp qword [rdx + rsi*8], rbx
jne 0x140077a8b
mov qword [rdx + rsi*8], rdi
jmp 0x140077aaf
mov rax, qword [rdx + rsi*8 + 8]
mov rcx, qword [rax]
mov qword [rdx + rsi*8 + 8], rcx
cmp rcx, rdi
je 0x140077aaf
mov rdx, qword [r14 + 0x10]
mov rax, qword [rdx + rsi*8 + 8]
mov rcx, qword [rax + 8]
mov qword [rdx + rsi*8 + 8], rcx
mov rcx, r14
call fcn.140077aec
nop
mov qword [r15], rdi
mov byte [r15 + 8], 1
mov rax, r15
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop rdi
ret
lea rcx, str.list_T__too_long
call fcn.1400a0c2c
int3
Function at 0x140077bc8
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
lea r9, [r8 + 0x10]
mov rbx, rdx
cmp qword [r9 + 0x18], 8
mov r10, rcx
mov rdx, qword [r9 + 0x10]
jb 0x140077bea
mov r9, qword [r9]
xor ecx, ecx
movabs r11, 0xcbf29ce484222325
add rdx, rdx
je 0x140077c19
movzx eax, byte [r9 + rcx]
movabs rdi, 0x100000001b3
xor r11, rax
inc rcx
imul r11, rdi
cmp rcx, rdx
jb 0x140077bfb
mov rcx, qword [r10 + 0x28]
mov rdx, r11
shr rdx, 0x20
xor rdx, r11
and rdx, rcx
cmp qword [r10 + 0x30], rdx
ja 0x140077c3d
shr rcx, 1
or rax, 0xffffffffffffffff
sub rax, rcx
add rdx, rax
mov rcx, qword [r10 + 0x10]
add rdx, rdx
cmp qword [rcx + rdx*8 + 8], r8
jne 0x140077c6c
cmp qword [rcx + rdx*8], r8
jne 0x140077c61
mov rax, qword [r10]
mov qword [rcx + rdx*8], rax
mov rcx, qword [r10 + 0x10]
mov rax, qword [r10]
jmp 0x140077c65
mov rax, qword [r8 + 8]
mov qword [rcx + rdx*8 + 8], rax
jmp 0x140077c79
cmp qword [rcx + rdx*8], r8
jne 0x140077c79
mov rax, qword [r8]
mov qword [rcx + rdx*8], rax
lea rdx, [rsp + 0x30]
mov rcx, r10
call fcn.140077ca4
mov rcx, qword [rax]
mov rax, rbx
mov qword [rbx], rcx
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140077f10
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 8], rcx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x30
mov qword [rax - 0x38], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov rdi, r9
mov r14, r8
mov r15, rdx
mov rsi, rcx
mov r9, qword [r8 + 0x10]
cmp qword [r8 + 0x18], 8
jb 0x140077f4d
mov r8, qword [r8]
movabs rcx, 0xcbf29ce484222325
xor edx, edx
add r9, r9
je 0x140077f7c
movzx eax, byte [rdx + r8]
xor rcx, rax
movabs r10, 0x100000001b3
imul rcx, r10
inc rdx
cmp rdx, r9
jb 0x140077f5e
mov rax, rcx
shr rax, 0x20
xor rcx, rax
mov rdx, qword [rsi + 0x28]
mov r11, rdx
and r11, rcx
cmp qword [rsi + 0x30], r11
ja 0x140077fa3
shr rdx, 1
or rax, 0xffffffffffffffff
sub rax, rdx
add r11, rax
mov rbx, qword [rsi]
add r11, r11
mov rax, qword [rsi + 0x10]
mov rcx, qword [rax + r11*8]
cmp rbx, rcx
je 0x140078018
mov rbx, qword [rax + r11*8 + 8]
mov rbx, qword [rbx]
cmp rbx, rcx
je 0x140078018
mov rbx, qword [rbx + 8]
lea rdx, [rbx + 0x10]
mov rcx, r14
call fcn.14003b32c
test al, al
jne 0x140077fe3
mov rax, qword [rsi + 0x10]
cmp rbx, qword [rax + r11*8]
jne 0x140077fc3
jmp 0x140078018
mov rdx, r14
lea rcx, [rbx + 0x10]
call fcn.14003b32c
test al, al
jne 0x140077ff8
mov rbx, qword [rbx]
jmp 0x140078018
mov r8, rdi
lea rdx, [rsp + 0x70]
mov rcx, rsi
call fcn.140077ca4
mov qword [r15], rbx
mov byte [r15 + 8], 0
mov rax, r15
jmp 0x1400780ac
mov rax, qword [rdi]
cmp rbx, rax
je 0x14007804d
mov rcx, qword [rdi + 8]
mov qword [rcx], rax
mov rcx, qword [rax + 8]
mov qword [rcx], rbx
mov rcx, qword [rbx + 8]
mov qword [rcx], rdi
mov rdx, qword [rbx + 8]
mov rcx, qword [rax + 8]
mov qword [rbx + 8], rcx
mov rcx, qword [rdi + 8]
mov qword [rax + 8], rcx
mov qword [rdi + 8], rdx
mov rdx, qword [rsi + 0x10]
mov rax, qword [rdx + r11*8]
cmp rax, qword [rsi]
jne 0x140078069
mov qword [rdx + r11*8], rdi
mov rax, qword [rsi + 0x10]
mov qword [rax + r11*8 + 8], rdi
jmp 0x140078098
cmp rax, rbx
jne 0x140078074
mov qword [rdx + r11*8], rdi
jmp 0x140078098
mov rax, qword [rdx + r11*8 + 8]
mov rcx, qword [rax]
mov qword [rdx + r11*8 + 8], rcx
cmp rcx, rdi
je 0x140078098
mov rdx, qword [rsi + 0x10]
mov rax, qword [rdx + r11*8 + 8]
mov rcx, qword [rax + 8]
mov qword [rdx + r11*8 + 8], rcx
mov rcx, rsi
call fcn.140077aec
nop
mov qword [r15], rdi
mov byte [r15 + 8], 1
mov rax, r15
mov rbx, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
Function at 0x140087e98
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rbx
sub rsp, 0x20
cmp qword [rdx + 0x18], 0x10
mov rbx, rcx
mov r9, qword [rdx + 0x10]
jb 0x140087eaf
mov rdx, qword [rdx]
xor r8d, r8d
movabs rcx, 0xcbf29ce484222325
test r9, r9
je 0x140087edf
movzx eax, byte [rdx + r8]
movabs r10, 0x100000001b3
xor rcx, rax
inc r8
imul rcx, r10
cmp r8, r9
jb 0x140087ec1
mov rax, rcx
mov edx, 0x1f31d
shr rax, 0x20
xor ecx, eax
btr ecx, 0x1f
call qword [sym.imp.msvcrt.dll_ldiv]
nop dword [rax + rax]
mov qword [rsp + 0x30], rax
shr rax, 0x20
imul ecx, eax, 0x41a7
imul eax, dword [rsp + 0x30], 0xb14
sub ecx, eax
jns 0x140087f1e
add ecx, 0x7fffffff
mov rdx, qword [rbx + 0x28]
movsxd rax, ecx
and rax, rdx
cmp qword [rbx + 0x30], rax
ja 0x140087f3b
shr rdx, 1
or rcx, 0xffffffffffffffff
sub rcx, rdx
add rax, rcx
add rsp, 0x20
pop rbx
ret

Function at 0x140094ecc
Capabilities:
Create directory

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0xe0
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x140120c80]
xor rax, rsp
mov qword [rsp + 0xd0], rax
mov rbx, rdx
mov rdi, rcx
cmp qword [rcx + 0x18], 8
jb 0x140094f0a
mov rcx, qword [rcx]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
nop dword [rax + rax]
test eax, eax
je 0x140094f31
test rbx, rbx
je 0x140094f2d
and dword [rbx], 0
call fcn.140095f14
mov qword [rbx + 8], rax
mov al, 1
jmp 0x140094f8e
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov esi, eax
and dword [rsp + 0x20], 0
call fcn.140095f14
mov qword [rsp + 0x28], rax
cmp esi, 0xb7
jne 0x140094f7c
lea r8, [rsp + 0x20]
mov rdx, rdi
lea rcx, [rsp + 0x38]
call fcn.140095164
cmp dword [rax], 3
jne 0x140094f7c
test rbx, rbx
je 0x140094f8c
and dword [rbx], 0
call fcn.140095f14
jmp 0x140094f88
test rbx, rbx
je 0x140094fb4
call fcn.140095f14
mov dword [rbx], esi
mov qword [rbx + 8], rax
xor al, al
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.1400be470
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
lea rdx, str.boost::filesystem::create_directory
lea rcx, [rsp + 0x48]
call fcn.140003be4
nop
call fcn.140095f14
mov r8, rax
mov edx, esi
lea rcx, [rsp + 0x38]
call fcn.140027bdc
movups xmm0, xmmword [rax]
movdqu xmmword [rsp + 0x20], xmm0
lea r9, [rsp + 0x20]
mov r8, rdi
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x70]
call fcn.140094254
lea rdx, [0x140117610]
lea rcx, [rsp + 0x70]
call sub.msvcrt.dll__CxxThrowException
int3
Function at 0x140095014
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rsi
push rdi
push r14
sub rsp, 0x60
mov qword [rax - 0x50], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov rax, qword [0x140120c80]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov r14, rcx
mov qword [rsp + 0x20], rcx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
nop dword [rax + rax]
mov edi, eax
mov eax, 1
xor esi, esi
test edi, edi
cmove edi, eax
mov ecx, edi
lea eax, [rsi + 2]
mul rcx
lea rbp, [rsi - 1]
cmovo rax, rbp
mov rcx, rax
call fcn.1400a1a90
mov rbx, rax
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], rsi
mov byte [rsp + 0x30], sil
lea r8d, [rsi + 0x1f]
lea rdx, str.boost::filesystem::current_path
lea rcx, [rsp + 0x30]
call fcn.140003dfc
nop
mov rdx, rbx
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
nop dword [rax + rax]
test eax, eax
jne 0x1400950d0
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
jmp 0x1400950d2
mov eax, esi
lea r8, [rsp + 0x30]
mov ecx, eax
call fcn.14009434c
nop
cmp qword [rsp + 0x48], 0x10
jb 0x1400950f8
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
nop dword [rax + rax]
mov qword [r14 + 0x18], 7
mov qword [r14 + 0x10], rsi
mov word [r14], si
cmp word [rbx], si
je 0x140095119
inc rbp
cmp word [rbx + rbp*2], si
jne 0x14009510d
mov rsi, rbp
mov r8, rsi
mov rdx, rbx
mov rcx, r14
call fcn.1400064bc
nop
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_]
nop dword [rax + rax]
mov rax, r14
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1400be470
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
Function at 0x140095164
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov qword [rbp - 0x38], 0xfffffffffffffffe
mov rax, qword [0x140120c80]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r15, r8
mov rdi, rdx
mov rsi, rcx
cmp qword [rdx + 0x18], 8
jb 0x1400951a4
mov rcx, qword [rdx]
jmp 0x1400951a7
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
nop dword [rax + rax]
mov r14d, eax
cmp eax, 0xffffffff
jne 0x1400951ce
mov r8, r15
mov rdx, rdi
mov rcx, rsi
call fcn.14009484c
jmp 0x1400952f1
xor r12d, r12d
bt r14d, 0xa
jae 0x1400952b7
cmp qword [rdi + 0x18], 8
jb 0x1400951e8
mov rdx, qword [rdi]
jmp 0x1400951eb
mov rdx, rdi
mov qword [rbp - 0x18], 7
mov qword [rbp - 0x20], r12
mov word [rbp - 0x30], r12w
cmp word [rdx], r12w
jne 0x140095207
mov r8, r12
jmp 0x140095215
or r8, 0xffffffffffffffff
inc r8
cmp word [rdx + r8*2], r12w
jne 0x14009520b
lea rcx, [rbp - 0x30]
call fcn.1400064bc
mov dword [rsp + 0x28], 0x2000000
xor edx, edx
lea rcx, [rbp - 0x30]
call fcn.140094730
mov rbx, rax
mov qword [rbp - 0x40], rax
cmp qword [rbp - 0x18], 8
jb 0x14009524f
mov rcx, qword [rbp - 0x30]
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
nop dword [rax + rax]
mov qword [rbp - 0x18], 7
mov qword [rbp - 0x20], r12
mov word [rbp - 0x30], r12w
cmp rbx, 0xffffffffffffffff
jne 0x140095277
mov r8, r15
mov rdx, rdi
mov rcx, rsi
call fcn.14009484c
nop
jmp 0x1400952f1
mov rcx, rdi
call fcn.140094774
test al, al
jne 0x1400952a8
mov edx, r14d
mov rcx, rdi
call fcn.1400943e0
mov dword [rsi], 9
mov dword [rsi + 4], eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop dword [rax + rax]
jmp 0x1400952f1
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop dword [rax + rax]
test r15, r15
je 0x1400952c8
mov dword [r15], r12d
call fcn.140095f14
mov qword [r15 + 8], rax
mov edx, r14d
mov rcx, rdi
test r14b, 0x10
mov dword [rbp - 0x40], 3
jne 0x1400952e2
mov dword [rbp - 0x40], 2
call fcn.1400943e0
mov dword [rbp - 0x3c], eax
mov rax, qword [rbp - 0x40]
mov qword [rsi], rax
mov rax, rsi
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1400be470
add rsp, 0x80
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret