joyce8/EMBER2024-capa huggingface dataset:
Function at 0x164e4a594
Capabilities:
Access peb ldr_data
Contain obfuscated stackstrings

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xd8
xor r14d, r14d
mov dword [rsp + 0x38], 0x65006b
mov dword [rbp - 0x7d], 0x6e0072
mov dword [rbp - 0x79], 0x6c0065
mov dword [rbp - 0x75], 0x320033
mov dword [rbp - 0x71], 0x64002e
lea r12d, [r14 + 1]
mov dword [rbp - 0x6d], 0x6c006c
mov word [rbp - 0x69], r14w
mov edx, 0x3d090c
mov eax, r14d
lea rcx, [rbp - 0x59]
mov byte [rcx], al
add eax, r12d
add rcx, r12
cmp eax, 0x6a
jb 0x164e4a5f4
sub rdx, r12
jne 0x164e4a5ed
cmp byte [rbp - 0x29], 0x30
jne 0x164e4a6cd
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rbx, qword [rcx + 0x10]
mov r8, rbx
mov rcx, qword [r8 + 0x60]
mov r9d, r14d
mov rax, rcx
cmp word [rcx], r14w
je 0x164e4a641
lea rax, [rax + 2]
add r9d, r12d
cmp word [rax], r14w
jne 0x164e4a634
lea rax, [rsp + 0x38]
mov edx, r14d
lea rax, [rax + 2]
add edx, r12d
cmp word [rax], r14w
jne 0x164e4a649
cmp r9d, edx
jne 0x164e4a6b6
lea r11, [rsp + 0x38]
mov r10d, r14d
sub r11, rcx
movzx edx, word [rcx]
mov rax, rcx
mov r9d, r14d
test dx, dx
je 0x164e4a6c7
lea rax, [rax + 2]
add r9d, r12d
cmp word [rax], r14w
jne 0x164e4a674
cmp r10d, r9d
jae 0x164e4a6c7
movzx r9d, word [r11 + rcx]
lea eax, [rdx - 0x41]
cmp ax, 0x19
ja 0x164e4a698
add dx, 0x20
lea eax, [r9 - 0x41]
cmp ax, 0x19
ja 0x164e4a6a7
add r9w, 0x20
cmp dx, r9w
jne 0x164e4a6b6
add r10d, r12d
add rcx, 2
jmp 0x164e4a666
mov r8, qword [r8]
cmp r8, rbx
jne 0x164e4a624
mov rbx, r14
jmp 0x164e4a6d1
mov rbx, qword [r8 + 0x30]
jmp 0x164e4a6d1
mov rbx, qword [rbp + 0x67]
mov edx, 0xe3142
mov rcx, rbx
call fcn.164e4aa64
mov edx, 0xd5786
mov rcx, rbx
mov rdi, rax
call fcn.164e4aa64
mov edx, 0x348bfa
mov rcx, rbx
mov qword [rbp + 0x7f], rax
call fcn.164e4aa64
mov esi, 0x3000
mov r13d, 0x662e00
mov r9d, 4
Function at 0x164e4aa64
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
movsxd rax, dword [rcx + 0x3c]
mov esi, edx
xor edx, edx
mov r8d, dword [rax + rcx + 0x88]
mov r9, rcx
add r8, rcx
mov r10d, dword [r8 + 0x20]
mov r11d, dword [r8 + 0x1c]
mov ebx, dword [r8 + 0x24]
mov edi, dword [r8 + 0x18]
add r10, rcx
add r11, rcx
add rbx, rcx
test edi, edi
je 0x164e4aad5
mov ecx, dword [r10]
add rcx, r9
xor r8d, r8d
jmp 0x164e4aac0
movzx eax, al
inc rcx
or eax, 0x60
add r8d, eax
add r8d, r8d
mov al, byte [rcx]
test al, al
jne 0x164e4aab1
cmp r8d, esi
je 0x164e4aae7
inc edx
add r10, 4
cmp edx, edi
jb 0x164e4aaa6
xor eax, eax
mov rbx, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
ret
movzx ecx, word [rbx + rdx*2]
mov eax, dword [r11 + rcx*4]
add rax, r9
jmp 0x164e4aad7
Function at 0x164e4b0f0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rdi
push r14
sub rsp, 0x40
mov rax, qword [0x16514b200]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x60]
lea r8, [0x1650a9250]
mov rcx, qword [0x1651be2c8]
xor r14d, r14d
mov ebx, r14d
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rdi, rax
test rax, rax
je 0x164e4b29d
mov rcx, qword [0x1651be2c8]
mov rdx, rax
mov qword [rsp + 0x70], rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov esi, eax
test eax, eax
je 0x164e4b298
mov rcx, qword [0x1651be2c8]
mov rdx, rdi
mov qword [rsp + 0x68], rbp
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbp, rax
test rax, rax
je 0x164e4b275
mov edx, esi
lea ecx, [r14 + 2]
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rdi, rax
test rax, rax
je 0x164e4b275
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
test rax, rax
je 0x164e4b26c
mov r8d, esi
mov rdx, rbp
mov rcx, rax
call fcn.16503fa90
lea r8, [rsp + 0x20]
mov qword [rsp + 0x20], r14
xor edx, edx
mov rcx, rdi
call qword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
test eax, eax
jne 0x164e4b263
mov rsi, qword [rsp + 0x20]
lea ecx, [rax + 0x18]
call qword [sym.imp.gdiplus.dll_GdipAlloc]
mov rbx, rax
test rax, rax
je 0x164e4b24e
mov qword [rax + 8], r14
lea rdx, [rsp + 0x28]
mov qword [rax + 0x10], r14
mov rcx, rsi
lea rax, vtable.Gdiplus::Bitmap.0
mov qword [rsp + 0x28], r14
mov qword [rbx], rax
call qword [sym.imp.gdiplus.dll_GdipCreateBitmapFromStream]
mov dword [rbx + 0x10], eax
mov rax, qword [rsp + 0x28]
mov qword [rbx + 8], rax
mov rcx, qword [rsp + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x164e9d7b8.0]
mov eax, dword [rbx + 0x10]
mov dword [rbx + 0x10], r14d
test eax, eax
je 0x164e4b263
mov rax, qword [rbx]
lea edx, [r14 + 1]
mov rcx, rbx
mov rax, qword [rax]
call qword [case.0x164e9d7b8.0]
jmp 0x164e4b260
mov rcx, qword [rsp + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x164e9d7b8.0]
mov rbx, r14
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rbp, qword [rsp + 0x68]
mov rax, rbx
mov rsi, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.165001080
add rsp, 0x40
pop r14
pop rdi
pop rbx
ret
mov rax, rbx
jmp 0x164e4b27d
mov rax, rbx
jmp 0x164e4b282
Function at 0x164e4dc70
Capabilities:
Get common file path

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], r9
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
mov rax, qword [0x16514b200]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov rdi, rcx
mov qword [rsp + 0x38], rcx
mov r13, rcx
mov rbx, rdx
mov r12, r8
mov qword [rsp + 0x40], r8
xor sil, sil
mov byte [rsp + 0x30], sil
test r8, r8
jne 0x164e4dd93
xor r14d, r14d
mov qword [r11 - 0x50], r14
lea rcx, [r11 - 0x50]
call qword [sym.imp.SHELL32.dll_SHGetDesktopFolder]
test eax, eax
js 0x164e4de44
mov qword [rsp + 0x90], r14
lea r8, [rsp + 0x90]
mov edx, 0xa
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
js 0x164e4de68
mov rcx, qword [rsp + 0x98]
test rcx, rcx
je 0x164e4de8c
mov rax, qword [rcx]
mov r9, qword [rsp + 0x90]
mov r8, rbx
xor edx, edx
mov rax, qword [rax + 0x38]
call qword [case.0x164e9d7b8.0]
mov ebx, eax
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test ebx, ebx
sete sil
mov rcx, qword [rsp + 0x98]
test rcx, rcx
je 0x164e4dd68
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x164e9d7b8.0]
nop
mov byte [rsp + 0x30], sil
jmp 0x164e4dd84
test sil, sil
jne 0x164e4dd96
mov eax, 0x80070057
jmp 0x164e4de21
xor r14d, r14d
mov byte [rdi + 0xd2], sil
mov rax, qword [rdi + 0x78]
cmp rax, qword [rdi + 0x80]
je 0x164e4ddb1
mov qword [rdi + 0x80], rax
mov rbx, qword [rdi + 0x90]
mov r15, qword [rdi + 0x98]
cmp rbx, r15
je 0x164e4dde4
lea rcx, [rbx + 8]
call fcn.164e54bf0
add rbx, 0x28
cmp rbx, r15
jne 0x164e4ddc4
mov rax, qword [rdi + 0x90]
mov qword [rdi + 0x98], rax
lea rcx, [r13 - 8]
test sil, sil
je 0x164e4ddf4
call fcn.164e50d50
jmp 0x164e4de0c
mov rdx, r12
call fcn.164e506f0
test eax, eax
jns 0x164e4de10
mov rdx, r12
lea rcx, [r13 - 8]
call fcn.164e50a90
test eax, eax
js 0x164e4de21
mov eax, 0x80070057
cmp qword [rdi + 0x20], 0
cmove r14d, eax
mov eax, r14d
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.165001080
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
lea r8, str.RecycleBin::isRecycleBin_SHGetDesktopFolder
mov edx, eax
lea rcx, [rsp + 0x50]
call fcn.164e47d40
lea rdx, [0x165147178]
lea rcx, [rsp + 0x50]
call fcn.165003be0
lea r8, str.RecycleBin::isRecycleBin_SHGetSpecialFolderLocation_CSIDL_BITBUCKET
mov edx, eax
lea rcx, [rsp + 0x70]
call fcn.164e47d40
lea rdx, [0x165147178]
lea rcx, [rsp + 0x70]
call fcn.165003be0
mov ecx, 0x80004003
call fcn.165000ee0
int3
Function at 0x164e515f0
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x80
mov rax, qword [0x16514b200]
xor rax, rsp
mov qword [rsp + 0x70], rax
lea rdi, vtable.std::exception.0
mov qword [rsp + 0x58], rdi
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
lea rsi, [0x1650a39d0]
mov qword [rsp + 0x50], rsi
call fcn.164e52320
mov r9, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0xc8]
xor r8d, r8d
lea rdx, str.avcfg:__Backup_BackupSettings_entitled
mov rcx, r9
call qword [case.0x164e9d7b8.0]
mov ebx, eax
lea rbp, [0x1650a9d10]
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], rdi
lea rcx, [rsp + 0x60]
call fcn.165002ff0
test ebx, ebx
je 0x164e517b7
mov qword [rsp + 0x38], rdi
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x30], rsi
call fcn.164e52320
mov r9, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0xc8]
mov r8d, 1
lea rdx, [0x1650a32f0]
mov rcx, r9
call qword [case.0x164e9d7b8.0]
mov ebx, eax
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], rdi
lea rcx, [rsp + 0x40]
call fcn.165002ff0
test ebx, ebx
je 0x164e517b7
mov rax, qword [rsp + 0x90]
cmp qword [rax + 0x28], 0
je 0x164e517b7
mov rax, qword [rax + 0x20]
mov rdx, qword [rax]
add rdx, 0x10
lea rcx, [rsp + 0x50]
call fcn.164e539c0
lea rcx, [rsp + 0x50]
cmp qword [rsp + 0x68], 7
cmova rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 5
je 0x164e517a6
cmp eax, 2
je 0x164e517a6
lea rcx, [rsp + 0x50]
mov rbx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x68]
cmp rdi, 7
cmova rcx, rbx
mov qword [rsp + 0x20], DosDateTimeToVariantTime
lea r9, str.N360_BACKUP
xor r8d, r8d
mov rsi, qword [rsp + 0x60]
mov rdx, rsi
call fcn.164e57650
cmp rax, 0xffffffffffffffff
jne 0x164e517a6
lea rcx, [rsp + 0x50]
cmp rdi, 7
cmova rcx, rbx
mov qword [rsp + 0x20], 3
lea r9, [0x1650a98e0]
xor r8d, r8d
mov rdx, rsi
call fcn.164e57650
cmp rax, 0xffffffffffffffff
jne 0x164e517a6
mov bl, 1
lea rcx, [rsp + 0x50]
call fcn.164e54bf0
movzx eax, bl
jmp 0x164e517b9
xor bl, bl
lea rcx, [rsp + 0x50]
call fcn.164e54bf0
movzx eax, bl
jmp 0x164e517b9
xor al, al
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.165001080
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x164e51a60
Capabilities:
Get common file path
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
sub rsp, 0x850
mov rax, qword [0x16514b200]
xor rax, rsp
mov qword [rsp + 0x840], rax
cmp dword [rsp + 0x868], 1
jne 0x164e51c81
xor edx, edx
mov dword [rsp + 0x3c], 1
xor ecx, ecx
mov dword [rsp + 0x38], 0x800
call fcn.165010c04
test rax, rax
lea rdx, [0x1650a82ea]
cmovne rdx, rax
xor ecx, ecx
call fcn.165010c04
mov rax, qword [rsp + 0x860]
mov ecx, 0x43
mov qword [0x1651be2c8], rax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
jne 0x164e51c9f
call fcn.164ee1bc0
cmp qword [rax + 0x18], 7
jbe 0x164e51af5
mov rax, qword [rax]
lea rcx, [rsp + 0x30]
mov r9d, 0x20019
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov rdx, rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ebx, eax
test eax, eax
jne 0x164e51b61
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x3c]
lea rax, [rsp + 0x40]
xor r8d, r8d
lea rdx, str.ProgramFolder
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rsp + 0x30]
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
je 0x164e51bec
call fcn.164fb2050
test al, al
jne 0x164e51b73
call fcn.164fb20e0
test al, al
je 0x164e51be4
call fcn.164ee1bc0
cmp qword [rax + 0x18], 7
jbe 0x164e51b82
mov rax, qword [rax]
lea rdx, [rsp + 0x30]
mov r9d, 0x20219
mov qword [rsp + 0x20], rdx
xor r8d, r8d
mov rdx, rax
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x164e51be4
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x3c]
lea rax, [rsp + 0x40]
xor r8d, r8d
lea rdx, str.ProgramFolder
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rsp + 0x30]
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
jne 0x164e51c9f
cmp word [rsp + 0x40], 0
je 0x164e51c33
mov edx, 0x5c
lea rcx, [rsp + 0x40]
call fcn.165003224
test rax, rax
je 0x164e51c0f
cmp word [rax + 2], 0
je 0x164e51c33
lea rcx, [rsp + 0x40]
sub rcx, 2
nop dword [rax + rax]
cmp word [rcx + 2], 0
lea rcx, [rcx + 2]
jne 0x164e51c20
mov eax, dword [0x1650a8258]
mov dword [rcx], eax
xor ecx, ecx
lea rdx, [0x1651bb920]
nop dword [rax]
movzx eax, word [rsp + rcx + 0x40]
mov word [rcx + rdx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x164e51c40
lea rbx, [0x1651bc120]
mov edx, 0x104
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov rax, 0xffffffffffffffff
nop
inc rax
cmp word [rbx + rax*2], 0
jne 0x164e51c70
mov qword [0x1651be2d8], rax
mov eax, 1
mov rcx, qword [rsp + 0x840]
xor rcx, rsp
call fcn.165001080
add rsp, 0x850
pop rbx
ret
xor eax, eax
jmp 0x164e51c86
Function at 0x164e6df60
Capabilities:
Get disk information

Disassembly:
mov r11, rsp
mov dword [r11 + 0x18], r8d
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
sub rsp, 0x248
mov rax, qword [0x16514b200]
xor rax, rsp
mov qword [rsp + 0x230], rax
test rdx, rdx
je 0x164e6dffa
test r8b, 0x10
jne 0x164e6dffa
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x164e6dfa0
cmp r8, 0x104
jae 0x164e6dffa
lea r8, [r8*2 + 2]
lea rcx, [rsp + 0x20]
call fcn.16503fa90
lea rcx, [rsp + 0x20]
call qword [sym.imp.SHLWAPI.dll_PathStripToRootW]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
sete al
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.165001080
add rsp, 0x248
ret
xor al, al
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.165001080
add rsp, 0x248
ret
Function at 0x164ea9300
Capabilities:
Encode data using base64

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], rbx
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rsi
push rdi
push r14
sub rsp, 0x40
mov rax, qword [0x16514b200]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov r14, rcx
mov qword [r11 - 0x30], rcx
xor edi, edi
mov dword [rsp + 0x20], edi
mov rsi, qword [r11 + 0x18]
mov rbx, qword [rsp + 0x68]
sub rsi, rbx
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], rdi
mov qword [rcx + 0x18], 7
mov word [rcx], di
mov dword [rsp + 0x20], 1
xor r8d, r8d
lea rcx, [rsi + 2]
movabs rax, 0x5555555555555556
imul rcx
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov eax, 4
mul rdx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rdx, rax
mov rcx, r14
call fcn.164e53670
mov r10, r14
cmp qword [r14 + 0x18], 7
jbe 0x164ea93a9
mov r10, qword [r14]
lea r11, [0x1650afba0]
cmp rsi, 3
jl 0x164ea9459
movabs rax, 0xaaaaaaaaaaaaaaab
mul rsi
shr rdx, 1
imul rax, rdx, 0xfffffffffffffffd
add rsi, rax
nop dword [rax]
nop word [rax + rax]
movzx r9d, byte [rbx]
lea rcx, [rbx + 1]
lea r8, [rbx + 2]
add rbx, 3
shl r9, 8
movzx eax, byte [rcx]
or r9, rax
shl r9, 8
movzx eax, byte [r8]
or r9, rax
mov rax, r9
shr rax, 0x12
movzx eax, word [r11 + rax*2]
mov word [r10 + rdi*2], ax
mov rax, r9
shr rax, 0xc
and eax, 0x3f
movzx eax, word [r11 + rax*2]
mov word [r10 + rdi*2 + 2], ax
mov rax, r9
shr rax, 6
and eax, 0x3f
movzx eax, word [r11 + rax*2]
mov word [r10 + rdi*2 + 4], ax
and r9d, 0x3f
movzx eax, word [r11 + r9*2]
mov word [r10 + rdi*2 + 6], ax
add rdi, 4
sub rdx, 1
jne 0x164ea93e0
cmp rsi, 2
jne 0x164ea94b3
movzx edx, byte [rbx]
shl rdx, 8
movzx eax, byte [rbx + 1]
or rdx, rax
shl rdx, 8
mov rax, rdx
shr rax, 0x12
movzx eax, word [r11 + rax*2]
mov word [r10 + rdi*2], ax
mov rcx, rdx
shr rcx, 0xc
and ecx, 0x3f
movzx ecx, word [r11 + rcx*2]
mov word [r10 + rdi*2 + 2], cx
shr rdx, 6
and edx, 0x3f
movzx ecx, word [r11 + rdx*2]
mov word [r10 + rdi*2 + 4], cx
mov word [r10 + rdi*2 + 6], 0x3d
jmp 0x164ea94ec
cmp rsi, 1
jne 0x164ea94ec
movzx ecx, byte [rbx]
shl rcx, 0x10
mov rax, rcx
shr rax, 0x12
movzx eax, word [r11 + rax*2]
mov word [r10 + rdi*2], ax
shr rcx, 0xc
and ecx, 0x3f
movzx eax, word [r11 + rcx*2]
mov word [r10 + rdi*2 + 2], ax
mov dword [r10 + rdi*2 + 4], 0x3d003d
mov rax, r14
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.165001080
mov rbx, qword [rsp + 0x78]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret

Function at 0x164eb7230
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 8
mov rcx, qword [rsp + 0x18]
mov rax, rcx
cmp qword [rcx + 0x18], 7
jbe 0x164eb7250
mov rax, qword [rcx]
mov rcx, qword [rcx + 0x10]
movabs r9, 0xcbf29ce484222325
lea r10, [rax + rcx*2]
cmp rax, r10
je 0x164eb72ac
mov qword [rsp], rbx
mov r11, 0xffffffffffffffff
movabs rbx, 0x100000001b3
nop dword [rax]
movzx edx, word [rax]
mov r8, 0xffffffffffffffdf
lea ecx, [rdx - 0x61]
cmp cx, 0x19
cmova r8, r11
add rax, 2
and r8, rdx
xor r9, r8
imul r9, rbx
cmp rax, r10
jne 0x164eb7280
mov rbx, qword [rsp]
mov rax, r9
add rsp, 8
ret
Function at 0x164ebf2c0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rsi
push rdi
push r14
sub rsp, 0x80
mov rsi, rdx
mov r14, rcx
xor ebx, ebx
mov r8, qword [rcx]
cmp dword [r8 + 0x68], ebx
je 0x164ebf301
cmp qword [r8 + 0x38], rbx
je 0x164ebf301
cmp qword [r8 + 0x48], rbx
jne 0x164ebf2fd
cmp qword [r8 + 0x58], rbx
jne 0x164ebf301
mov al, 1
jmp 0x164ebf303
xor al, al
test al, al
je 0x164ebf437
mov rdx, r8
cmp qword [r8 + 0x18], 7
jbe 0x164ebf318
mov rdx, qword [r8]
mov r8, qword [r8 + 0x10]
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x38], xmm1
lea rcx, [rsp + 0x28]
call fcn.164e485e0
nop
lea rcx, [rsp + 0x28]
cmp qword [rsp + 0x40], 7
cmova rcx, qword [rsp + 0x28]
movabs r9, 0xcbf29ce484222325
mov rax, qword [rsp + 0x38]
lea rdx, [rax + rax]
test rdx, rdx
je 0x164ebf383
movabs r8, 0x100000001b3
nop dword [rax + rax]
movzx eax, byte [rbx + rcx]
xor r9, rax
imul r9, r8
inc rbx
cmp rbx, rdx
jb 0x164ebf370
lea r8, [rsp + 0x28]
lea rdx, [rsp + 0x48]
mov rcx, rsi
call fcn.164ebf4e0
mov rdi, qword [rax + 8]
test rdi, rdi
jne 0x164ebf3a2
mov rdi, qword [rsi + 8]
lea rcx, [rsp + 0x28]
call fcn.164e54bf0
cmp rdi, qword [rsi + 8]
jne 0x164ebf3b9
mov eax, 3
jmp 0x164ebf423
mov rax, qword [r14 + 8]
mov rbx, qword [rax]
movzx eax, byte [rbx + 0x30]
cmp byte [rdi + 0x60], 0
je 0x164ebf40b
test al, al
je 0x164ebf3f2
mov qword [rsp + 0x20], rbx
movsx rcx, byte [rdi + 0x50]
inc rcx
lea r8, [rdi + 0x30]
lea rdx, [rsp + 0x20]
call fcn.164e97ea0
movzx eax, byte [rdi + 0x58]
mov byte [rbx + 0x28], al
jmp 0x164ebf41b
lea rdx, [rdi + 0x30]
mov rcx, rbx
call fcn.164ea2fc0
movzx eax, byte [rdi + 0x58]
mov byte [rbx + 0x28], al
mov byte [rbx + 0x30], 1
jmp 0x164ebf41b
test al, al
je 0x164ebf41b
mov rcx, rbx
call fcn.164ea5890
mov byte [rbx + 0x30], 0
mov eax, dword [rdi + 0x68]
mov dword [rbx + 0x38], eax
xor eax, eax
mov rbx, qword [rsp + 0xb0]
add rsp, 0x80
pop r14
pop rdi
pop rsi
ret
lea r8, str.Path_is_not_valid
mov edx, 0x10dd
lea rcx, [rsp + 0x58]
call fcn.164e47cf0
lea rdx, [0x165147450]
lea rcx, [rsp + 0x58]
call fcn.165003be0
int3
Function at 0x164ebfb10
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r13, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
movabs rax, 0xfffffffffffffff
bsr rcx, rax
mov ebx, 1
mov eax, ebx
shl rax, cl
cmp rdx, rax
ja 0x164ebfd03
lea rax, [rdx - 1]
or rax, rbx
bsr rcx, rax
inc ecx
shl rbx, cl
mov rbp, qword [r13 + 8]
lea r14, [r13 + 0x18]
lea rdx, [rbx + rbx]
mov r8, rbp
mov rcx, r14
call fcn.164ead6c0
lea rax, [rbx - 1]
mov qword [r13 + 0x30], rax
mov qword [r13 + 0x38], rbx
mov qword [rsp + 0x20], r13
mov rdi, qword [r13 + 8]
mov rdi, qword [rdi]
mov rsi, rdi
cmp rdi, rbp
je 0x164ebfcc5
movabs rax, 0xcbf29ce484222325
movabs r10, 0x100000001b3
nop dword [rax + rax]
mov rsi, qword [rsi]
mov r9, qword [rdi + 0x20]
lea r8, [rdi + 0x10]
cmp qword [rdi + 0x28], 7
jbe 0x164ebfbd6
mov r8, qword [rdi + 0x10]
xor edx, edx
add r9, r9
je 0x164ebfbf4
nop dword [rax]
movzx ecx, byte [rdx + r8]
xor rax, rcx
imul rax, r10
inc rdx
cmp rdx, r9
jb 0x164ebfbe0
and rax, qword [r13 + 0x30]
shl rax, 4
mov r14, qword [r14]
add r14, rax
cmp qword [r14], rbp
jne 0x164ebfc13
mov qword [r14], rdi
mov qword [r14 + 8], rdi
jmp 0x164ebfcab
mov rbx, qword [r14 + 8]
lea r8, [rbx + 0x10]
lea rdx, [rdi + 0x10]
call fcn.164ebfd40
test al, al
jne 0x164ebfc57
mov r8, qword [rbx]
cmp r8, rdi
je 0x164ebfc51
mov rdx, qword [rdi + 8]
mov qword [rdx], rsi
mov rcx, qword [rsi + 8]
mov qword [rcx], r8
mov rax, qword [r8 + 8]
mov qword [rax], rdi
mov qword [r8 + 8], rcx
mov qword [rsi + 8], rdx
mov qword [rdi + 8], rax
mov qword [r14 + 8], rdi
jmp 0x164ebfca1
mov r15, rbx
cmp qword [r14], rbx
je 0x164ebfc7d
nop
mov rbx, qword [rbx + 8]
mov r15, rbx
lea r8, [rbx + 0x10]
lea rdx, [rdi + 0x10]
call fcn.164ebfd40
test al, al
je 0x164ebfcdd
cmp qword [r14], rbx
jne 0x164ebfc60
mov rdx, qword [rdi + 8]
mov qword [rdx], rsi
mov rcx, qword [rsi + 8]
mov qword [rcx], r15
mov rax, qword [r15 + 8]
mov qword [rax], rdi
mov qword [r15 + 8], rcx
mov qword [rsi + 8], rdx
mov qword [rdi + 8], rax
mov qword [r14], rdi
movabs r10, 0x100000001b3
mov rdi, rsi
cmp rsi, rbp
lea r14, [r13 + 0x18]
movabs rax, 0xcbf29ce484222325
jne 0x164ebfbc0
mov rbx, qword [rsp + 0x80]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r8, qword [rbx]
mov rdx, qword [rdi + 8]
mov qword [rdx], rsi
mov rcx, qword [rsi + 8]
mov qword [rcx], r8
mov rax, qword [r8 + 8]
mov qword [rax], rdi
mov qword [r8 + 8], rcx
mov qword [rsi + 8], rdx
mov qword [rdi + 8], rax
jmp 0x164ebfca1
lea rcx, str.invalid_hash_bucket_count
call fcn.164ffeab4
int3