joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180062500
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x278
mov rax, qword [0x1800f8370]
xor rax, rsp
mov qword [rsp + 0x260], rax
mov dword [rsp + 0x20], 0
mov r8d, 0x104
lea rdx, [rsp + 0x50]
lea rcx, [0x1800cf960]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov dword [rsp + 0x24], eax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.18002dd50
lea rdx, [rsp + 0x28]
mov rcx, qword [rsp + 0x280]
call fcn.1800066e0
mov eax, dword [rsp + 0x20]
or eax, 1
mov dword [rsp + 0x20], eax
lea rcx, [rsp + 0x28]
call fcn.180007220
mov rax, qword [rsp + 0x280]
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.18007e510
add rsp, 0x278
ret

Function at 0x1800628f0
Capabilities:
Get process image filename

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x2b0
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov rax, qword [0x1800f8370]
xor rax, rsp
mov qword [rsp + 0x2a0], rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea rdx, [0x1800cf97b]
lea rcx, [rsp + 0x48]
call fcn.1800067b0
nop
mov r8d, dword [rsp + 0x2c8]
xor edx, edx
mov ecx, 0x410
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x180062966
jmp 0x1800629ed
xor eax, eax
mov word [rsp + 0x90], ax
lea rax, [rsp + 0x92]
mov rdi, rax
xor eax, eax
mov ecx, 0x208
rep stosb byte [rdi], al
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x2c], 0
mov r8d, 0x104
lea rdx, [rsp + 0x90]
mov rcx, qword [rsp + 0x20]
call sub.PSAPI.DLL_GetProcessImageFileNameW
test eax, eax
jne 0x1800629b3
jmp 0x1800629ed
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x68]
call fcn.180063860
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x48]
call fcn.18000e300
lea rcx, [rsp + 0x68]
call fcn.180007220
xor eax, eax
test eax, eax
jne 0x180062959
cmp qword [rsp + 0x20], 0
je 0x180062a09
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0x20], 0
lea rdx, [rsp + 0x48]
mov rcx, qword [rsp + 0x2c0]
call fcn.1800066e0
mov eax, dword [rsp + 0x28]
or eax, 1
mov dword [rsp + 0x28], eax
lea rcx, [rsp + 0x48]
call fcn.180007220
mov rax, qword [rsp + 0x2c0]
mov rcx, qword [rsp + 0x2a0]
xor rcx, rsp
call fcn.18007e510
add rsp, 0x2b0
pop rdi
ret
Function at 0x180063860
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x6e8
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rax, qword [0x1800f8370]
xor rax, rsp
mov qword [rsp + 0x6d0], rax
mov dword [rsp + 0x20], 0
lea rdx, [0x1800cf97a]
lea rcx, [rsp + 0x58]
call fcn.1800067b0
nop
mov eax, 2
imul rax, rax, 0
mov qword [rsp + 0x40], rax
cmp qword [rsp + 0x40], 0x208
jae 0x1800638c3
jmp 0x1800638c8
call fcn.18007ea18
xor eax, eax
mov rcx, qword [rsp + 0x40]
mov word [rsp + rcx + 0xa0], ax
cmp qword [rsp + 0x708], 0
je 0x1800638f9
lea rdx, [rsp + 0xa0]
mov ecx, 0x103
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
jne 0x18006392d
lea rdx, [rsp + 0x58]
mov rcx, qword [rsp + 0x700]
call fcn.1800066e0
mov eax, dword [rsp + 0x20]
or eax, 1
mov dword [rsp + 0x20], eax
lea rcx, [rsp + 0x58]
call fcn.180007220
mov rax, qword [rsp + 0x700]
jmp 0x180063ac3
lea rax, [rsp + 0x98]
lea rcx, [0x1800cf97c]
mov rdi, rax
mov rsi, rcx
mov ecx, 6
rep movsb byte [rdi], byte [rsi]
mov dword [rsp + 0x24], 0
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x30], rax
mov eax, 2
imul rax, rax, 0
mov rcx, qword [rsp + 0x30]
movzx ecx, word [rcx]
mov word [rsp + rax + 0x98], cx
mov r8d, 0x104
lea rdx, [rsp + 0x2b0]
lea rcx, [rsp + 0x98]
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
test eax, eax
je 0x180063a5a
lea rcx, [rsp + 0x2b0]
call fcn.18007e61c
mov dword [rsp + 0x28], eax
cmp dword [rsp + 0x28], 0x104
jae 0x180063a5a
mov eax, dword [rsp + 0x28]
mov r8d, eax
lea rdx, [rsp + 0x2b0]
mov rcx, qword [rsp + 0x708]
call fcn.180080eec
test eax, eax
jne 0x1800639e4
mov dword [rsp + 0x2c], 1
jmp 0x1800639ec
mov dword [rsp + 0x2c], 0
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x180063a5a
mov eax, dword [rsp + 0x28]
mov rcx, qword [rsp + 0x708]
lea rax, [rcx + rax*2]
mov r9, rax
lea r8, [rsp + 0x98]
lea rdx, str._s_s
lea rcx, [rsp + 0x4c0]
call fcn.180063d70
lea rdx, [rsp + 0x4c0]
lea rcx, [rsp + 0x78]
call fcn.18002dd50
mov qword [rsp + 0x48], rax
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x58]
call fcn.18000e300
lea rcx, [rsp + 0x78]
call fcn.180007220
mov rax, qword [rsp + 0x30]
movzx eax, word [rax]
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x30]
add rax, 2
mov qword [rsp + 0x30], rax
cmp dword [rsp + 0x38], 0
je 0x180063a7d
jmp 0x180063a5a
cmp dword [rsp + 0x24], 0
jne 0x180063a94
mov rax, qword [rsp + 0x30]
movzx eax, word [rax]
test eax, eax
jne 0x18006395e
lea rdx, [rsp + 0x58]
mov rcx, qword [rsp + 0x700]
call fcn.1800066e0
mov eax, dword [rsp + 0x20]
or eax, 1
mov dword [rsp + 0x20], eax
lea rcx, [rsp + 0x58]
call fcn.180007220
mov rax, qword [rsp + 0x700]
mov rcx, qword [rsp + 0x6d0]
xor rcx, rsp
call fcn.18007e510
add rsp, 0x6e8
pop rdi
pop rsi
ret
Function at 0x180087a94
Capabilities:
Set thread local storage value

Disassembly:
sub rsp, 0x48
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x180087aa7
add rsp, 0x48
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [rsp + 0x20]
movzx edx, ax
or edx, 0x80070000
test eax, eax
cmovle edx, eax
call fcn.180094bfc
lea rdx, [0x1800f5368]
lea rcx, [rsp + 0x20]
call fcn.18007dca8
int3

Function at 0x180090ce4
Capabilities:
Create directory

Disassembly:
sub rsp, 0x28
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x180090cfc
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x180090cfe
xor eax, eax
test eax, eax
je 0x180090d0e
mov ecx, eax
call fcn.18008414c
or eax, 0xffffffff
jmp 0x180090d10
xor eax, eax
add rsp, 0x28
ret
Function at 0x1800a5f38
Capabilities:
Set thread local storage value

Disassembly:
mov ecx, dword [0x180102214]
xor edx, edx
jmp fcn.180087a94

Function at 0x1800a68e0
Capabilities:
Set thread local storage value

Disassembly:
mov rdx, rcx
mov ecx, dword [0x180102214]
jmp fcn.180087a94

Function at 0x1800a6a30
Capabilities:
Get thread local storage value

Disassembly:
mov rcx, qword [rcx + 0x40]
jmp 0x1800b4f20
mov rax, rsp
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov qword [rax - 0x48], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov r13, r9
mov r12, r8
mov rbx, rcx
mov rcx, qword [rcx + 0x10]
mov qword [rax + 8], rcx
call fcn.180094954
nop
mov edi, dword [rbx + 4]
mov esi, dword [rbx + 4]
dec esi
mov eax, dword [rbx]
cmp esi, eax
jl 0x1800b4efa
lea ebp, [rsi + 1]
movsxd r15, esi
movsxd rcx, dword [rbx + 8]
and rcx, r15
mov rax, qword [rbx + 0x20]
mov r14, qword [rax + rcx*8]
test r14, r14
je 0x1800b4ef0
mov rdx, r12
mov rcx, r14
call qword [rsp + 0x78]
test al, al
je 0x1800b4ef0
mov rdx, r12
mov rcx, r14
call r13
test al, al
je 0x1800b4ef0
cmp ebp, edi
jne 0x1800b4ee0
dec edi
jmp 0x1800b4ef0
movsxd rcx, dword [rbx + 8]
and rcx, r15
mov rax, qword [rbx + 0x20]
and qword [rax + rcx*8], 0
dec esi
dec ebp
mov eax, dword [rbx]
cmp esi, eax
jge 0x1800b4ea6
xchg dword [rbx + 4], edi
mov rcx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x80]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
jmp fcn.18009499c
add rcx, 0xb0
jmp 0x1800b4e5c

Function at 0x1800b4d24
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rcx + 0x98], rdx
mov r9, qword [rdx + 0x1a8]
mov r8, rcx
mov r9, qword [r9 + 8]
lea rdx, [0x1800b4de0]
add rcx, 0x40
jmp fcn.18009c324

Function at 0x1800b4db8
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rcx + 0x98], rdx
mov r9, qword [rdx + 0x1a8]
mov r8, rcx
mov r9, qword [r9 + 8]
lea rdx, [0x1800b4df0]
add rcx, 0x40
jmp fcn.18009c324
Function at 0x140057280
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x20
mov rsi, rcx
movabs rax, 0xfffffffffffffff
bsr rcx, rax
mov edi, 1
mov eax, edi
shl rax, cl
cmp rdx, rax
ja 0x140057442
lea rax, [rdx - 1]
or rax, rdi
bsr rcx, rax
inc ecx
shl rdi, cl
mov rbx, qword [rsi + 8]
lea rcx, [rsi + 0x18]
lea rdx, [rdi + rdi]
mov r8, rbx
call fcn.140056db0
lea rax, [rdi - 1]
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x38], rdi
mov qword [rsp + 0x48], rsi
mov rcx, qword [rsi + 8]
mov rcx, qword [rcx]
mov rdx, rcx
cmp rcx, rbx
je 0x140057400
movabs rbp, 0x100000001b3
movabs r14, 0xcbf29ce484222325
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [rdx]
movzx r8d, byte [rcx + 0x10]
xor r8, r14
imul r8, rbp
movzx eax, byte [rcx + 0x11]
xor r8, rax
imul r8, rbp
movzx eax, byte [rcx + 0x12]
xor r8, rax
imul r8, rbp
movzx eax, byte [rcx + 0x13]
xor r8, rax
imul r8, rbp
and r8, qword [rsi + 0x30]
mov r11, r8
shl r11, 4
add r11, qword [rsi + 0x18]
add r8, r8
mov rax, qword [rsi + 0x18]
lea rdi, [rax + r8*8]
cmp qword [r11], rbx
jne 0x140057378
mov qword [r11], rcx
mov qword [rdi + 8], rcx
jmp 0x1400573f4
mov rax, qword [rdi + 8]
mov r8d, dword [rax + 0x10]
cmp dword [rcx + 0x10], r8d
jne 0x1400573b5
mov r8, qword [rax]
cmp r8, rcx
je 0x1400573af
mov r10, qword [rcx + 8]
mov qword [r10], rdx
mov rax, qword [rdx + 8]
mov qword [rax], r8
mov r9, qword [r8 + 8]
mov qword [r9], rcx
mov qword [r8 + 8], rax
mov qword [rdx + 8], r10
mov qword [rcx + 8], r9
mov qword [rdi + 8], rcx
jmp 0x1400573f4
cmp qword [r11], rax
je 0x1400573d0
mov r9d, dword [rcx + 0x10]
mov r8, qword [r11]
mov rax, qword [rax + 8]
cmp r9d, dword [rax + 0x10]
je 0x14005741c
cmp r8, rax
jne 0x1400573c1
mov r10, qword [rcx + 8]
mov qword [r10], rdx
mov r8, qword [rdx + 8]
mov qword [r8], rax
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov qword [rax + 8], r8
mov qword [rdx + 8], r10
mov qword [rcx + 8], r9
mov qword [r11], rcx
mov rcx, rdx
cmp rdx, rbx
jne 0x140057320
mov qword [rsp + 0x48], 0
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r14
pop rdi
pop rsi
ret
mov rax, qword [rax]
mov r10, qword [rcx + 8]
mov qword [r10], rdx
mov r8, qword [rdx + 8]
mov qword [r8], rax
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov qword [rax + 8], r8
mov qword [rdx + 8], r10
mov qword [rcx + 8], r9
jmp 0x1400573f4
lea rcx, str.invalid_hash_bucket_count
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_
int3
Function at 0x1400575f0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov rbp, r8
mov r14, rdx
mov r10, rcx
cmp rdx, r8
je 0x140057735
mov rax, qword [rcx + 8]
mov qword [rsp + 0xc0], rax
mov r11, qword [rcx + 0x18]
mov qword [rsp + 0x28], r11
lea r12, [rcx + 8]
mov qword [rsp + 0x40], r12
mov rax, qword [rdx + 8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rdx
mov rax, qword [rdx + 8]
mov qword [rsp + 0x20], rax
lea r8, [rdx + 0x10]
mov r9, qword [r8 + 0x10]
cmp qword [r8 + 0x18], 0x10
jb 0x140057663
mov r8, qword [r8]
movabs rdx, 0xcbf29ce484222325
xor ecx, ecx
movabs rbx, 0x100000001b3
test r9, r9
je 0x140057694
nop
movzx eax, byte [rcx + r8]
xor rdx, rax
imul rdx, rbx
inc rcx
cmp rcx, r9
jb 0x140057680
mov rax, qword [r10 + 0x30]
and rax, rdx
mov r15, rax
shl r15, 4
add r15, r11
add rax, rax
inc rax
lea rax, [r11 + rax*8]
mov qword [rsp + 0xb8], rax
cmp qword [r15], r14
sete r13b
mov rax, qword [rax]
mov qword [rsp + 0xc8], rax
nop dword [rax]
cmp r14, rax
sete sil
mov rdi, r14
mov r14, qword [r14]
mov qword [rsp + 0x50], r14
lea rbx, [rdi + 0x10]
mov qword [rsp + 0x38], rbx
lea rcx, [rbx + 0x20]
call fcn.140050330
nop
mov rcx, rbx
call fcn.140050330
mov edx, 0x50
mov rcx, rdi
call fcn.1402f1e30
dec qword [r12 + 8]
test sil, sil
jne 0x140057749
cmp r14, rbp
mov rax, qword [rsp + 0xc8]
jne 0x1400576d0
test r13b, r13b
je 0x140057729
mov qword [r15], r14
mov rax, qword [rsp + 0x30]
mov qword [rax], r14
mov qword [r14 + 8], rax
mov rax, rbp
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rsp + 0xb8]
test r13b, r13b
je 0x140057763
mov rcx, qword [rsp + 0xc0]
mov qword [r15], rcx
jmp 0x140057768
mov rcx, qword [rsp + 0x20]
cmp r14, rbp
mov qword [rax], rcx
je 0x140057729
lea r8, [r14 + 0x10]
mov r9, qword [r8 + 0x10]
cmp qword [r8 + 0x18], 0x10
jb 0x140057782
mov r8, qword [r8]
movabs rdx, 0xcbf29ce484222325
xor eax, eax
test r9, r9
je 0x1400577b9
movabs r12, 0x100000001b3
nop dword [rax]
movzx ecx, byte [rax + r8]
xor rdx, rcx
imul rdx, r12
inc rax
cmp rax, r9
jb 0x1400577a0
mov r12, qword [rsp + 0x40]
mov rax, qword [rsp + 0xb0]
mov rax, qword [rax + 0x30]
and rax, rdx
mov r15, rax
shl r15, 4
mov rcx, qword [rsp + 0x28]
add r15, rcx
add rax, rax
inc rax
lea rax, [rcx + rax*8]
mov qword [rsp + 0xb8], rax
mov r13, qword [rax]
nop dword [rax]
cmp r14, r13
sete sil
mov rdi, r14
mov r14, qword [r14]
mov qword [rsp + 0x50], r14
lea rbx, [rdi + 0x10]
mov qword [rsp + 0xc8], rbx
lea rcx, [rbx + 0x20]
call fcn.140050330
nop
mov rcx, rbx
call fcn.140050330
mov edx, 0x50
mov rcx, rdi
call fcn.1402f1e30
dec qword [r12 + 8]
test sil, sil
jne 0x140057842
cmp r14, rbp
je 0x140057726
jmp 0x1400577f0
mov rcx, qword [rsp + 0xc0]
mov qword [r15], rcx
mov rax, qword [rsp + 0xb8]
jmp 0x140057768
Function at 0x140057860
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov rbx, r8
mov r14, rdx
mov rdx, rcx
cmp r14, r8
je 0x14005798b
mov r13, qword [rcx + 8]
mov r8, qword [rcx + 0x18]
mov qword [rsp + 0x20], r8
lea rbp, [rcx + 8]
mov qword [rsp + 0x38], rbp
mov rax, qword [r14 + 8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], r14
mov rax, qword [r14 + 8]
mov qword [rsp + 0xb8], rax
movzx ecx, byte [r14 + 0x10]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs r9, 0x100000001b3
imul rcx, r9
movzx eax, byte [r14 + 0x11]
xor rcx, rax
imul rcx, r9
movzx eax, byte [r14 + 0x12]
xor rcx, rax
imul rcx, r9
movzx eax, byte [r14 + 0x13]
xor rcx, rax
imul rcx, r9
mov rax, qword [rdx + 0x30]
and rax, rcx
mov r12, rax
shl r12, 4
add r12, r8
add rax, rax
inc rax
lea rax, [r8 + rax*8]
mov qword [rsp + 0xb0], rax
cmp qword [r12], r14
sete byte [rsp + 0xa8]
mov r15, qword [rax]
cmp r14, r15
sete sil
mov rdi, r14
mov r14, qword [r14]
mov qword [rsp + 0x48], r14
lea rcx, [rdi + 0x10]
mov qword [rsp + 0x30], rcx
add rcx, 8
call fcn.140050330
mov edx, gethostname
mov rcx, rdi
call fcn.1402f1e30
dec qword [rbp + 8]
test sil, sil
jne 0x14005799f
cmp r14, rbx
jne 0x140057932
cmp byte [rsp + 0xa8], sil
je 0x14005797f
mov qword [r12], r14
mov rax, qword [rsp + 0x28]
mov qword [rax], r14
mov qword [r14 + 8], rax
mov rax, rbx
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rsp + 0xb0]
cmp byte [rsp + 0xa8], 0
je 0x1400579ba
mov qword [r12], r13
mov qword [rax], r13
jmp 0x1400579c5
mov rcx, qword [rsp + 0xb8]
mov qword [rax], rcx
cmp r14, rbx
je 0x14005797f
movzx ecx, byte [r14 + 0x10]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx eax, byte [r14 + 0x11]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [r14 + 0x12]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [r14 + 0x13]
xor rcx, rax
imul rcx, rdx
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax + 0x30]
and rax, rcx
mov r12, rax
shl r12, 4
mov rcx, qword [rsp + 0x20]
add r12, rcx
add rax, rax
inc rax
lea rax, [rcx + rax*8]
mov qword [rsp + 0xa8], rax
mov r15, qword [rax]
cmp r14, r15
sete sil
mov rdi, r14
mov r14, qword [r14]
mov qword [rsp + 0x48], r14
lea rcx, [rdi + 0x10]
mov qword [rsp + 0xb0], rcx
add rcx, 8
call fcn.140050330
mov edx, gethostname
mov rcx, rdi
call fcn.1402f1e30
dec qword [rbp + 8]
test sil, sil
jne 0x140057a89
cmp r14, rbx
je 0x14005797b
jmp 0x140057a41
mov qword [r12], r13
mov rax, qword [rsp + 0xa8]
mov qword [rax], r13
jmp 0x1400579c5
Function at 0x140070f50
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x30
cmp qword [rdx + 0x18], 0x10
mov esi, r8d
mov r11, qword [rdx + 0x10]
mov rdi, rcx
mov r10, rdx
jb 0x140070f76
mov r10, qword [rdx]
xor ebx, ebx
movabs r9, 0xcbf29ce484222325
mov r8d, ebx
test r11, r11
je 0x140070fb4
movabs rcx, 0x100000001b3
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r8 + r10]
inc r8
xor r9, rax
imul r9, rcx
cmp r8, r11
jb 0x140070fa0
mov r8, rdx
mov rcx, rdi
lea rdx, [rsp + 0x20]
call fcn.1400534f0
mov rax, qword [rax + 8]
test rax, rax
jne 0x140070fd1
mov rax, qword [rdi + 8]
cmp rax, qword [rdi + 8]
je 0x14007104f
cmp qword [rax + 0x48], 0x10
lea r9, [rax + 0x30]
jb 0x140070fe5
mov r9, qword [r9]
mov r11, qword [rax + 0x40]
xor r10b, r10b
add r11, r9
mov rdx, r9
mov ecx, ebx
cmp r9, r11
je 0x140071032
lea rdi, [0x140473f60]
movzx eax, byte [rdx]
movzx r8d, byte [rax + rdi]
cmp r8b, 0xa
jae 0x140071032
cmp ecx, 0x19999999
jb 0x140071023
jne 0x14007101e
cmp r8b, 5
jbe 0x140071023
mov r10b, 1
jmp 0x14007102a
lea ecx, [rcx + rcx*4]
lea ecx, [r8 + rcx*2]
inc rdx
cmp rdx, r11
jne 0x140071000
cmp rdx, r9
je 0x14007103d
test r10b, r10b
cmove ebx, ecx
mov eax, ebx
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
mov rbx, qword [rsp + 0x40]
mov eax, esi
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
Function at 0x14009f060
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
push r14
push r15
sub rsp, 0x30
mov rbx, rcx
mov dword [rsp + 0x20], 1
mov rdi, r9
mov r15, rdx
add rcx, 0x20
lea rdx, [rsp + 0x50]
mov r9d, dword [rbx + 0x18]
mov r8d, dword [rbx + 0x10]
call fcn.1400b5ee0
cmp byte [rsp + 0x50], 0
je 0x14009f1a2
mov r10d, dword [rsp + 0x54]
xor edx, edx
mov rax, rdi
mov qword [rsp + 0x58], rbp
div r10
mov rcx, rbx
mov ebp, r10d
mov r14d, edx
mov edx, r10d
call fcn.1400a3310
xor r10d, r10d
mov rdi, rax
cmp qword [rbx + 0x10], r10
jbe 0x14009f16f
mov qword [rsp + 0x60], rsi
nop dword [rax + rax]
mov rcx, qword [rbx + 8]
mov r9, qword [rcx + r10*8]
test r9, r9
je 0x14009f15d
mov rsi, rbp
mov rcx, qword [r9 + 8]
movsxd r8, dword [r9]
movsxd r11, dword [r9 + 4]
mov eax, 0x811c9dc5
movzx edx, byte [rcx]
inc rcx
test edx, edx
je 0x14009f124
nop word [rax + rax]
imul eax, eax, 0x1000193
lea rcx, [rcx + 1]
xor eax, edx
movzx edx, byte [rcx - 1]
test edx, edx
jne 0x14009f110
mov rcx, qword [rbx + 8]
add rax, rax
xor rax, r11
xor edx, edx
add rax, rax
xor rax, r8
div rsi
mov rax, qword [r9 + 0x18]
mov qword [rcx + r10*8], rax
mov r8d, edx
mov rax, qword [rdi + r8*8]
mov qword [r9 + 0x18], rax
mov qword [rdi + r8*8], r9
mov rax, qword [rbx + 8]
mov r9, qword [rax + r10*8]
test r9, r9
jne 0x14009f0f0
inc r10
cmp r10, qword [rbx + 0x10]
jb 0x14009f0e0
mov rsi, qword [rsp + 0x60]
mov r8, qword [rbx + 0x10]
cmp r8, 1
jbe 0x14009f193
mov rax, qword [rbx + 0x30]
lea r8, [r8*8 + 8]
mov rdx, qword [rbx + 8]
mov rcx, rax
mov r9, qword [rax]
call qword [r9 + 0x18]
mov qword [rbx + 0x10], rbp
mov rbp, qword [rsp + 0x58]
mov qword [rbx + 8], rdi
jmp 0x14009f1a7
mov r14, qword [rsp + 0x70]
mov rax, qword [rbx + 8]
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rax + r14*8]
mov qword [rdx + 0x18], rcx
mov rax, qword [rbx + 8]
mov qword [rax + r14*8], rdx
mov rax, qword [rbx + 8]
inc qword [rbx + 0x18]
mov rbx, qword [rsp + 0x68]
mov qword [r15], rdx
lea rcx, [rax + r14*8]
mov byte [r15 + 0x10], 1
mov qword [r15 + 8], rcx
mov rax, r15
add rsp, 0x30
pop r15
pop r14
pop rdi
ret
Function at 0x1400a3510
Capabilities:
Create directory

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
test rcx, rcx
je 0x1400a3542
cmp word [rcx], 0
je 0x1400a3542
call fcn.1400a44a0
test al, al
je 0x1400a3535
mov al, 1
add rsp, 0x20
pop rbx
ret
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp fcn.1400a2e10
xor al, al
add rsp, 0x20
pop rbx
ret

Function at 0x1400a3b50
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r12, qword [rcx + 0x68]
mov r15, rdx
mov rbp, qword [rcx + 0x88]
mov rdx, rcx
mov r14, qword [rcx + 0x78]
mov rbx, rcx
mov rdi, qword [rcx + 0x80]
mov r13, r8
mov rsi, qword [rcx + 0x60]
mov rcx, r12
call fcn.1400a1a20
mov qword [rbx + 0x70], rax
mov r9, rdi
shr r9, 0x20
mov r8d, ebp
mov rdx, r14
mov rcx, rsi
mov dword [rax + 0x1c], r9d
lea r9, [rsp + 0x70]
mov dword [rax + 0x18], edi
add rax, 8
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400a3bf2
mov rax, qword [r12]
mov rcx, r12
call qword [rax + gethostname]
cmp eax, 1
jne 0x1400a3bdd
xor al, al
jmp 0x1400a3c09
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x70]
mov qword [rcx], rax
mov byte [r15], 0
jmp 0x1400a3c07
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x1400a3bd9
mov dword [r13], eax
mov byte [r15], 1
mov al, 1
mov rbx, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret

Function at 0x1400a3cb0
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r12, qword [rcx + 0x68]
mov r15, rdx
mov rbp, qword [rcx + 0x88]
mov rdx, rcx
mov r14, qword [rcx + 0x78]
mov rbx, rcx
mov rdi, qword [rcx + 0x80]
mov r13, r8
mov rsi, qword [rcx + 0x60]
mov rcx, r12
call fcn.1400a1a20
mov qword [rbx + 0x70], rax
mov r9, rdi
shr r9, 0x20
mov r8d, ebp
mov rdx, r14
mov rcx, rsi
mov dword [rax + 0x1c], r9d
lea r9, [rsp + 0x70]
mov dword [rax + 0x18], edi
add rax, 8
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1400a3d52
mov rax, qword [r12]
mov rcx, r12
call qword [rax + gethostname]
cmp eax, 1
jne 0x1400a3d3d
xor al, al
jmp 0x1400a3d69
mov rcx, qword [rsp + 0x88]
mov eax, dword [rsp + 0x70]
mov qword [rcx], rax
mov byte [r15], 0
jmp 0x1400a3d67
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x1400a3d39
mov dword [r13], eax
mov byte [r15], 1
mov al, 1
mov rbx, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret