joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400014f4
Capabilities:
Create process on windows
Terminate process

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
push rbp
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov rax, qword [0x140013008]
xor rax, rsp
mov qword [rbp + 0x70], rax
mov rdi, rcx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateJobObjectA]
lea r8, [rbp - 0x20]
mov r9d, 0x90
mov rbx, rax
lea rax, [rsp + 0x50]
mov edx, 9
mov rcx, rbx
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_QueryInformationJobObject]
test eax, eax
je 0x140001560
cmp dword [rsp + 0x50], 0x90
jne 0x140001560
mov ecx, 1
jmp 0x140001562
xor ecx, ecx
lea rdx, str.Job_information_querying_failed
call section..text
or dword [rbp - 0x10], 0x3000
lea r8, [rbp - 0x20]
mov r9d, 0x90
mov edx, 9
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetInformationJobObject]
lea rdx, str.Job_information_setting_failed
mov ecx, eax
call section..text
xor edx, edx
lea rcx, [rsp + 0x70]
lea r8d, [rdx + 0x68]
call fcn.140006220
mov ecx, 0xfffffff6
mov dword [rsp + 0x70], 0x68
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
lea rdx, [rbp - 0x40]
mov rcx, rax
call fcn.140001464
lea rdx, str.stdin_duplication_failed
mov ecx, eax
call section..text
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
lea rdx, [rbp - 0x38]
mov rcx, rax
call fcn.140001464
lea rdx, str.stdout_duplication_failed
mov ecx, eax
call section..text
mov ecx, 0xfffffff4
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
lea rdx, [rbp - 0x30]
mov rcx, rax
call fcn.140001464
lea rdx, str.stderr_duplication_failed
mov ecx, eax
call section..text
lea rcx, [0x1400014d0]
mov edx, 1
mov dword [rbp - 0x54], 0x100
call qword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
lea r11, [rsp + 0x58]
mov qword [rsp + 0x48], r11
lea rax, [rsp + 0x70]
xor r9d, r9d
mov qword [rsp + 0x40], rax
and qword [rsp + 0x38], 0
and qword [rsp + 0x30], 0
and dword [rsp + 0x28], 0
xor r8d, r8d
mov rdx, rdi
xor ecx, ecx
mov dword [rsp + 0x20], 1
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
lea rdx, str.Unable_to_create_process_using__ls
mov r8, rdi
mov ecx, eax
call section..text
mov r11d, dword [rsp + 0x68]
mov rdx, qword [rsp + 0x58]
mov rcx, rbx
mov dword [0x140015e00], r11d
call qword [sym.imp.KERNEL32.dll_AssignProcessToJobObject]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x58]
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rsp + 0x58]
lea rdx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
lea rdx, str.Failed_to_get_exit_code_of_process
mov ecx, eax
call section..text
mov ecx, dword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_ExitProcess]
Function at 0x1400034a3
Capabilities:
Terminate process

Disassembly:
cmp rcx, qword [0x140013008]
jne 0x140001caa
rol rcx, 0x10
test cx, 0xffff
jne 0x140001ca6
repz ret
ror rcx, 0x10
jmp 0x1400033fc
mov qword [rsp + 8], rcx
sub rsp, 0x88
lea rcx, [0x1400144d0]
call qword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov rax, qword [0x1400145c8]
mov qword [rsp + 0x58], rax
xor r8d, r8d
lea rdx, [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
call sub.KERNEL32.dll_RtlLookupFunctionEntry
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0
je 0x140003481
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [0x1400144d0]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
xor ecx, ecx
call sub.KERNEL32.dll_RtlVirtualUnwind
jmp 0x1400034a3
mov rax, qword [rsp + 0x88]
mov qword [0x1400145c8], rax
lea rax, [rsp + 0x88]
add rax, 8
mov qword [0x140014568], rax
mov rax, qword [0x1400145c8]
mov qword [0x140014440], rax
mov rax, qword [rsp + 0x90]
mov qword [0x140014550], rax
mov dword [0x140014430], 0xc0000409
mov dword [0x140014434], 1
mov rax, qword [0x140013008]
mov qword [rsp + 0x68], rax
mov rax, qword [0x140013010]
mov qword [rsp + 0x70], rax
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
mov dword [0x1400144c8], eax
mov ecx, 1
call fcn.140008428
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
lea rcx, [0x14000f378]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
cmp dword [0x1400144c8], 0
jne 0x14000352a
mov ecx, 1
call fcn.140008428
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
add rsp, 0x88
ret
Function at 0x140009458
Capabilities:
Link many functions at runtime

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x50
mov rax, qword [0x140013008]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov ebp, r8d
mov r14, rdx
mov r13, rcx
call fcn.140004638
xor ebx, ebx
cmp qword [0x1400153a0], rbx
mov rdi, rax
jne 0x14000956b
lea rcx, str.USER32.DLL
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x140009642
lea rdx, str.MessageBoxW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140009642
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
lea rdx, str.GetActiveWindow
mov rcx, rsi
mov qword [0x1400153a0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
lea rdx, str.GetLastActivePopup
mov rcx, rsi
mov qword [0x1400153a8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
lea rdx, str.GetUserObjectInformationW
mov rcx, rsi
mov qword [0x1400153b0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
mov r11, rax
mov qword [0x1400153c0], rax
test rax, rax
je 0x140009562
lea rdx, [0x140010bd0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
mov qword [0x1400153b8], rax
jmp 0x140009572
mov rax, qword [0x1400153b8]
jmp 0x140009579
mov rax, qword [0x1400153b8]
mov r11, qword [0x1400153c0]
cmp rax, rdi
je 0x1400095e0
cmp r11, rdi
je 0x1400095e0
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_DecodePointer]
mov rcx, qword [0x1400153c0]
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_DecodePointer]
mov r12, rax
test rsi, rsi
je 0x1400095e0
test rax, rax
je 0x1400095e0
call rsi
test rax, rax
je 0x1400095da
lea rcx, [rsp + 0x30]
mov r9d, 0xc
lea r8, [rsp + 0x38]
mov qword [rsp + 0x20], rcx
lea edx, [r9 - 0xb]
mov rcx, rax
call r12
test eax, eax
je 0x1400095da
test byte [rsp + 0x40], 1
jne 0x1400095e0
bts ebp, 0x15
jmp 0x140009620
mov rcx, qword [0x1400153a8]
cmp rcx, rdi
je 0x140009620
call qword [sym.imp.KERNEL32.dll_DecodePointer]
test rax, rax
je 0x140009620
call rax
mov rbx, rax
test rax, rax
je 0x140009620
mov rcx, qword [0x1400153b0]
cmp rcx, rdi
je 0x140009620
call qword [sym.imp.KERNEL32.dll_DecodePointer]
test rax, rax
je 0x140009620
mov rcx, rbx
call rax
mov rbx, rax
mov rcx, qword [0x1400153a0]
call qword [sym.imp.KERNEL32.dll_DecodePointer]
test rax, rax
je 0x140009642
mov r9d, ebp
mov r8, r14
mov rdx, r13
mov rcx, rbx
call rax
jmp 0x140009644
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140001c90
add rsp, 0x50
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x1400035c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r13
push r14
push r15
mov rsi, qword [rsp + 0x48]
xor r14d, r14d
mov rbx, qword [rsp + 0x60]
mov r12, r9
mov rcx, qword [rsp + 0x50]
mov r13, r8
mov rbp, qword [rsp + 0x58]
mov r15, rdx
mov qword [rsi], r8
mov qword [rbx], rcx
mov rax, qword [rsi]
cmp rax, r9
je 0x140003755
cmp rcx, rbp
je 0x140003755
mov r9d, 1
movzx edx, word [r15]
xor dil, dil
movzx ecx, word [rax]
mov r11d, 0x2800
mov r8d, 0x3ff
mov r10d, 0x2400
cmp r9w, dx
jae 0x14000365c
lea eax, [r10 + rcx]
cmp ax, r8w
ja 0x14000377c
mov eax, edx
sub ecx, 0xdc00
shl eax, 0xa
or eax, ecx
jmp 0x140003673
mov eax, ecx
add cx, r11w
cmp cx, r8w
ja 0x140003673
shl eax, 0xa
mov dil, 1
sub eax, 0x35f0000
cmp eax, 0x80
jae 0x140003686
movzx r8d, al
mov r10d, r14d
mov r11d, r14d
jmp 0x1400036d3
mov r8d, eax
cmp eax, 0x800
jae 0x1400036a0
shr r8d, 6
mov r10d, r9d
or r8b, 0xc0
mov r11d, r9d
jmp 0x1400036d3
cmp eax, 0x10000
jae 0x1400036ba
shr r8d, 0xc
mov r10d, 2
or r8b, 0xe0
mov r11d, r10d
jmp 0x1400036d3
shr r8d, 0x12
mov r10d, 3
movzx r11d, dil
or r8b, 0xf0
xor r11d, 1
add r11d, r11d
lea r9d, [r11 + 1]
mov rdx, rbp
sub rdx, qword [rbx]
mov ecx, r9d
cmp rdx, rcx
jl 0x140003755
add qword [rsi], 2
test dil, dil
jne 0x1400036f4
cmp r10d, 3
jae 0x140003700
mov rcx, qword [rbx]
mov r9d, r11d
mov byte [rcx], r8b
inc qword [rbx]
mov r8, qword [rbx]
test r9d, r9d
jle 0x14000372e
lea ecx, [r10 + r10*2]
add ecx, ecx
nop
sub ecx, 6
mov edx, eax
shr edx, cl
dec r9d
and dl, 0x3f
or dl, 0x80
mov byte [r8], dl
inc qword [rbx]
mov r8, qword [rbx]
test r9d, r9d
jg 0x140003710
shr eax, 0xa
mov r9d, 1
test dil, dil
mov ecx, r9d
cmovne ecx, eax
mov word [r15], cx
mov rax, qword [rsi]
cmp rax, r12
je 0x140003755
cmp qword [rbx], rbp
jne 0x14000361d
cmp r13, qword [rsi]
sete r14b
mov eax, r14d
mov rbx, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
pop r15
pop r14
pop r13
pop r12
ret
mov eax, 2
jmp 0x14000375f

Function at 0x14000648c
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400064d6
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1400064d6
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1400064d6
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1400064d6
cmp dword [rcx + 0x84], 0xe
jbe 0x1400064d6
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x1400064d8
xor al, al
add rsp, 0x28
ret
Function at 0x140005b10
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x40
mov rax, qword [0x1403d3080]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rbx, rdx
mov rsi, rcx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x28], rdx
xor edi, edi
mov rbp, qword [rdx + 0x10]
lea rcx, [rbp + 2]
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
shr rdx, 1
shl rdx, 2
xor r8d, r8d
mov rcx, rsi
call fcn.14000d790
mov rdx, rsi
cmp qword [rsi + 0x18], 0xf
jbe 0x140005b71
mov rdx, qword [rsi]
lea r8, [rbp - 2]
lea r9, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test r8, r8
je 0x140005c3f
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x140005b92
mov rax, qword [rbx]
movzx eax, byte [rax + rdi]
shr rax, 2
movzx eax, byte [rax + r9]
mov byte [rdx], al
cmp qword [rbx + 0x18], 0xf
jbe 0x140005bb1
mov rax, qword [rbx]
lea rcx, [rdi + rax]
jmp 0x140005bb8
lea rcx, [rbx + rdi]
mov rax, rbx
movsx rcx, byte [rcx]
and ecx, 3
shl rcx, 4
movzx eax, byte [rax + rdi + 1]
shr rax, 4
or rcx, rax
movzx eax, byte [rcx + r9]
mov byte [rdx + 1], al
cmp qword [rbx + 0x18], 0xf
jbe 0x140005be7
mov rax, qword [rbx]
lea rcx, [rax + 1]
jmp 0x140005bee
lea rcx, [rbx + 1]
mov rax, rbx
add rcx, rdi
movsx rcx, byte [rcx]
and ecx, 0xf
shl rcx, 2
movzx eax, byte [rax + rdi + 2]
shr rax, 6
or rcx, rax
movzx eax, byte [rcx + r9]
mov byte [rdx + 2], al
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x140005c1d
mov rax, qword [rbx]
movsx rax, byte [rax + rdi + 2]
and eax, 0x3f
movzx eax, byte [rax + r9]
mov byte [rdx + 3], al
add rdx, 4
add rdi, 3
cmp rdi, r8
jb 0x140005b85
cmp rdi, rbp
jae 0x140005cf0
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x140005c55
mov rax, qword [rbx]
movzx eax, byte [rax + rdi]
shr rax, 2
movzx eax, byte [rax + r9]
mov byte [rdx], al
lea rax, [rbp - 1]
cmp rdi, rax
jne 0x140005c95
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x140005c7a
mov rax, qword [rbx]
movsx rax, byte [rax + rdi]
and eax, 3
add rax, rax
movzx eax, byte [r9 + rax*8]
mov byte [rdx + 1], al
mov al, 0x3d
add rdx, 2
jmp 0x140005cea
cmp qword [rbx + 0x18], 0xf
jbe 0x140005ca5
mov rax, qword [rbx]
lea rcx, [rdi + rax]
jmp 0x140005cac
lea rcx, [rdi + rbx]
mov rax, rbx
movsx rcx, byte [rcx]
and ecx, 3
shl rcx, 4
movzx eax, byte [rax + rdi + 1]
shr rax, 4
or rcx, rax
movzx eax, byte [rcx + r9]
mov byte [rdx + 1], al
add rdx, 2
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x140005cdc
mov rax, qword [rbx]
movsx rcx, byte [rax + rdi + 1]
and ecx, 0xf
movzx eax, byte [r9 + rcx*4]
mov byte [rdx], al
mov byte [rdx + 1], 0x3d
mov rcx, rbx
call fcn.140003520
mov rax, rsi
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1401617c0
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret
Function at 0x14001a7b0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
push rbp
lea rbp, [rax - 0xe8]
sub rsp, 0x1e0
movaps xmmword [rax - 0x18], xmm6
mov rax, qword [0x1403d3080]
xor rax, rsp
mov qword [rbp + 0xc0], rax
cmp byte [0x1403de1d0], 0
jne 0x14001a9d4
movabs rsi, 0x7fffffffffffffff
mov r14d, 0xff
mov edi, dword [rsp + 0x48]
movsd xmm6, qword [rsp + 0x40]
nop
mov eax, dword [0x1403de1e0]
inc eax
movsxd rbx, eax
lea rcx, [rsp + 0x50]
call fcn.140001c50
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x30], rax
test rbx, rbx
je 0x14001a865
js 0x14001a865
imul r8, rbx, 0xf4240
mov rdx, rsi
sub rdx, r8
cmp rax, rdx
je 0x14001a860
mov ecx, 1
cmovl ecx, r14d
test cl, cl
jns 0x14001a860
lea rcx, [r8 + rax]
mov qword [rsp + 0x30], rcx
jmp 0x14001a865
mov qword [rsp + 0x30], rsi
lea rcx, [rsp + 0x30]
call fcn.140004c20
cmp byte [0x1403de080], 0
je 0x14001a9c7
cmp qword [0x140416008], 0
je 0x14001a9c7
lea rcx, [rbp + 0x20]
call fcn.14001aa30
mov qword [rbp + 0xb4], 0
movd xmm1, dword [0x1403de094]
cvtdq2ps xmm1, xmm1
lea rax, [rbp + 0x20]
mov qword [rsp + 0x20], rax
movzx r9d, byte [0x1403de088]
mov r8d, dword [0x1403de090]
call fcn.14002a050
test al, al
je 0x14001a9b5
mov ecx, dword [0x1403de084]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14001a9b5
cmp byte [rbp + 0x60], 0
jne 0x14001a9b5
mov ecx, dword [0x1403de08c]
test ecx, ecx
je 0x14001a939
sub ecx, 1
je 0x14001a91f
cmp ecx, 1
jne 0x14001a992
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x58]
call fcn.14001ab20
mov r9d, 0x60f2
lea rdx, [rbp - 8]
jmp 0x14001a951
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x58]
call fcn.14001ab20
mov r9d, 0x9995
lea rdx, [rbp + 4]
jmp 0x14001a951
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x58]
call fcn.14001ab20
mov r9d, 0x796e
lea rdx, [rbp + 0x10]
movsd xmm0, qword [rbp + 0xa8]
movsd qword [rbp - 0x20], xmm0
mov eax, dword [rbp + 0xb0]
movss xmm0, dword [rbp + 0xb4]
movss xmm1, dword [rbp + 0xb8]
mov dword [rbp - 0x18], eax
movss dword [rbp - 0x14], xmm0
movss dword [rbp - 0x10], xmm1
lea r8, [rsp + 0x58]
call fcn.1400296e0
movsd xmm6, qword [rax]
mov edi, dword [rax + 8]
movsd qword [rsp + 0x40], xmm6
mov dword [rsp + 0x48], edi
mov r9d, dword [0x1403de09c]
mov r8d, dword [0x1403de098]
lea rdx, [rsp + 0x40]
call fcn.14002a820
nop
lea rcx, [rbp + 0x68]
call fcn.140005180
lea rcx, [rbp + 0x38]
call fcn.140003520
cmp byte [0x1403de1d0], 0
je 0x14001a810
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.1401617c0
lea r11, [rsp + 0x1e0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop rbp
ret
Function at 0x14001ac20
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r12, r8
mov r14, rdx
mov rsi, rcx
movzx r13d, byte [r8]
movabs rax, 0xcbf29ce484222325
xor r13, rax
movabs rcx, 0x100000001b3
imul r13, rcx
movzx eax, byte [r8 + 1]
xor r13, rax
imul r13, rcx
movzx eax, byte [r8 + 2]
xor r13, rax
imul r13, rcx
movzx eax, byte [r8 + 3]
xor r13, rax
imul r13, rcx
mov rcx, qword [rsi + 0x30]
and rcx, r13
add rcx, rcx
mov rax, qword [rsi + 0x18]
mov rbx, qword [rax + rcx*8 + 8]
lea rdx, [rsi + 8]
mov r15, qword [rdx]
cmp rbx, r15
jne 0x14001aca7
mov rbx, r15
mov rbp, r15
jmp 0x14001acea
mov rcx, qword [rax + rcx*8]
mov eax, dword [r8]
cmp eax, dword [rbx + 0x10]
je 0x14001acc1
cmp rbx, rcx
je 0x14001ace4
mov rbx, qword [rbx + 8]
cmp eax, dword [rbx + 0x10]
jne 0x14001acb3
mov qword [r14], rbx
mov byte [r14 + 8], 0
mov rax, r14
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r15, rbx
mov rbp, rbx
movabs rax, 0xaaaaaaaaaaaaaaa
cmp qword [rsi + 0x10], rax
jne 0x14001ad08
lea rcx, [0x1401bb370]
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x28], 0
mov ecx, Ordinal_26
call fcn.1401617e0
mov rdi, rax
mov qword [rsp + 0x28], rax
mov rax, qword [r12]
mov qword [rdi + 0x10], rax
mov rdx, qword [rsi + 0x10]
add rdx, 1
xorps xmm0, xmm0
js 0x14001ad44
cvtsi2ss xmm0, rdx
jmp 0x14001ad5c
mov rcx, rdx
shr rcx, 1
mov rax, rdx
and eax, 1
or rcx, rax
cvtsi2ss xmm0, rcx
addss xmm0, xmm0
mov rcx, qword [rsi + 0x38]
xorps xmm1, xmm1
test rcx, rcx
js 0x14001ad6f
cvtsi2ss xmm1, rcx
jmp 0x14001ad84
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm0, xmm1
comiss xmm0, dword [rsi]
seta al
test al, al
je 0x14001adf9
mov rcx, rsi
call fcn.14001b020
mov rdx, rax
mov rcx, rsi
call fcn.14001ae70
mov rdx, r13
and rdx, qword [rsi + 0x30]
add rdx, rdx
mov rcx, qword [rsi + 0x18]
mov rax, qword [rcx + rdx*8 + 8]
mov rbx, qword [rsi + 8]
cmp rax, rbx
jne 0x14001adcc
mov qword [rsp + 0x28], 0
jmp 0x14001adec
mov rdx, qword [rcx + rdx*8]
mov ecx, dword [rdi + 0x10]
cmp ecx, dword [rax + 0x10]
je 0x14001ade9
mov rbx, rax
cmp rax, rdx
je 0x14001ae2d
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x14001add8
mov rbx, qword [rax]
mov qword [rsp + 0x20], rbx
mov rbp, rbx
mov r15, qword [rsp + 0x20]
mov rdx, qword [rbx + 8]
inc qword [rsi + 0x10]
mov qword [rdi], r15
mov qword [rdi + 8], rdx
mov qword [rdx], rdi
mov qword [rbx + 8], rdi
mov rcx, qword [rsi + 0x18]
mov rax, qword [rsi + 0x30]
and rax, r13
add rax, rax
mov r8, qword [rcx + rax*8]
cmp r8, qword [rsi + 8]
jne 0x14001ae3d
mov qword [rcx + rax*8], rdi
jmp 0x14001ae4f
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 0
jmp 0x14001adf1
cmp r8, rbp
jne 0x14001ae48
mov qword [rcx + rax*8], rdi
jmp 0x14001ae54
cmp qword [rcx + rax*8 + 8], rdx
jne 0x14001ae54
mov qword [rcx + rax*8 + 8], rdi
mov qword [r14], rdi
mov byte [r14 + 8], 1
jmp 0x14001acc9
Function at 0x14001ae70
Capabilities:
Hash data using fnv

Disassembly:
push rsi
push rdi
sub rsp, 0x28
movabs rax, 0xfffffffffffffff
mov rsi, rcx
bsr rcx, rax
mov edi, 1
mov eax, edi
shl rax, cl
cmp rdx, rax
jbe 0x14001aea5
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea rax, [rdx - 1]
mov qword [rsp + 0x50], rbx
mov rbx, qword [rsi + 8]
or rax, rdi
bsr rcx, rax
mov r8, rbx
mov qword [rsp + 0x20], r14
inc ecx
shl rdi, cl
lea rcx, [rsi + 0x18]
lea rdx, [rdi + rdi]
call fcn.140003730
lea rax, [rdi - 1]
mov qword [rsi + 0x38], rdi
mov qword [rsi + 0x30], rax
mov rax, qword [rsi + 8]
mov rax, qword [rax]
mov rcx, rax
cmp rax, rbx
je 0x14001afe6
mov qword [rsp + 0x58], rbp
movabs rdi, 0x100000001b3
movabs rbp, 0xcbf29ce484222325
nop dword [rax + rax]
movzx edx, byte [rax + 0x11]
movzx r9d, byte [rax + 0x10]
mov r11, qword [rsi + 0x30]
xor r9, rbp
mov rcx, qword [rcx]
imul r9, rdi
xor r9, rdx
movzx edx, byte [rax + 0x12]
imul r9, rdi
xor r9, rdx
movzx edx, byte [rax + 0x13]
imul r9, rdi
xor r9, rdx
imul r9, rdi
and r11, r9
shl r11, 4
add r11, qword [rsi + 0x18]
mov r9, qword [r11]
cmp r9, rbx
jne 0x14001af60
mov qword [r11], rax
mov qword [r11 + 8], rax
jmp 0x14001afd5
mov rdx, qword [r11 + 8]
mov r8d, dword [rax + 0x10]
cmp r8d, dword [rdx + 0x10]
jne 0x14001af9d
mov r10, qword [rdx]
cmp r10, rax
je 0x14001af97
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
mov qword [r11 + 8], rax
jmp 0x14001afd5
cmp r9, rdx
je 0x14001afb1
mov rdx, qword [rdx + 8]
cmp r8d, dword [rdx + 0x10]
je 0x14001aff7
cmp r9, rdx
jne 0x14001afa2
mov r10, qword [rax + 8]
mov qword [r10], rcx
mov r9, qword [rcx + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r9
mov qword [rcx + 8], r10
mov qword [rax + 8], r8
mov qword [r11], rax
mov rax, rcx
cmp rcx, rbx
jne 0x14001af10
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
mov r14, qword [rsp + 0x20]
add rsp, 0x28
pop rdi
pop rsi
ret
mov r10, qword [rdx]
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
jmp 0x14001afd5
Function at 0x14001b0d0
Capabilities:
Hash data using fnv

Disassembly:
push rdi
sub rsp, 0x30
mov rdi, rcx
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x14001b17c
mov rax, qword [rdi + 0x38]
shr rax, 3
cmp rax, rcx
jbe 0x14001b10a
mov rdx, qword [rdi + 8]
mov rcx, rdi
mov r8, rdx
mov rdx, qword [rdx]
add rsp, 0x30
pop rdi
jmp 0x14001b190
mov rcx, qword [rdi + 8]
mov rax, qword [rcx + 8]
mov qword [rax], 0
mov rcx, qword [rcx]
test rcx, rcx
je 0x14001b14a
mov qword [rsp + 0x48], rbx
nop word [rax + rax]
mov rbx, qword [rcx]
mov edx, Ordinal_26
call fcn.140161a64
mov rcx, rbx
test rbx, rbx
jne 0x14001b130
mov rbx, qword [rsp + 0x48]
mov rax, qword [rdi + 8]
lea r8, [rsp + 0x20]
mov qword [rax], rax
mov rax, qword [rdi + 8]
mov qword [rax + 8], rax
mov qword [rdi + 0x10], 0
mov rax, qword [rdi + 8]
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi + 0x18]
mov qword [rsp + 0x20], rax
call fcn.140004620
add rsp, 0x30
pop rdi
ret
mov rax, rsp
push rbp
push rsi
push r14
sub rsp, 0x50
mov rbp, r8
mov r14, rdx
mov rsi, rcx
cmp rdx, r8
je 0x14001b294
mov rdx, qword [rcx + 0x18]
movabs r8, 0x100000001b3
mov qword [rax + 0x10], rbx
mov rbx, r14
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
mov r12, qword [rcx + 8]
movzx ecx, byte [r14 + 0x10]
mov qword [rax - 0x20], r13
mov r13, qword [r14 + 8]
mov qword [rax - 0x28], r15
movabs rax, 0xcbf29ce484222325
mov r15, qword [rsi + 0x30]
xor rcx, rax
movzx eax, byte [r14 + 0x11]
imul rcx, r8
mov qword [rsp + 0x30], rdx
xor rcx, rax
movzx eax, byte [r14 + 0x12]
imul rcx, r8
xor rcx, rax
movzx eax, byte [r14 + 0x13]
imul rcx, r8
xor rcx, rax
imul rcx, r8
and r15, rcx
shl r15, 4
add r15, rdx
mov rax, qword [r15]
mov qword [rsp + 0x20], rax
mov rax, qword [r15 + 8]
mov qword [rsp + 0x28], rax
nop dword [rax + rax]
mov rcx, rbx
mov rdi, rbx
mov rbx, qword [rbx]
mov edx, Ordinal_26
call fcn.140161a64
dec qword [rsi + 0x10]
cmp rdi, qword [rsp + 0x28]
je 0x14001b2a0
cmp rbx, rbp
jne 0x14001b240
cmp qword [rsp + 0x20], r14
jne 0x14001b26d
mov qword [r15], rbx
mov r12, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x80]
mov r15, qword [rsp + 0x40]
mov qword [r13], rbx
mov qword [rbx + 8], r13
mov r13, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x78]
mov rax, rbp
add rsp, 0x50
pop r14
pop rsi
pop rbp
ret
cmp qword [rsp + 0x20], r14
jne 0x14001b2af
mov qword [r15], r12
mov rax, r12
jmp 0x14001b2b2
mov rax, r13
mov qword [r15 + 8], rax
cmp rbx, rbp
je 0x14001b26d
nop dword [rax + rax]
movzx ecx, byte [rbx + 0x10]
movabs rdx, 0x100000001b3
mov r15, qword [rsi + 0x30]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movzx eax, byte [rbx + 0x11]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [rbx + 0x12]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [rbx + 0x13]
imul rcx, rdx
xor rcx, rax
imul rcx, rdx
and r15, rcx
shl r15, 4
add r15, qword [rsp + 0x30]
mov r14, qword [r15 + 8]
nop dword [rax]
nop dword [rax + rax]
mov rcx, rbx
mov rdi, rbx
mov rbx, qword [rbx]
mov edx, Ordinal_26
call fcn.140161a64
dec qword [rsi + 0x10]
cmp rdi, r14
je 0x14001b346
cmp rbx, rbp
jne 0x14001b320
jmp 0x14001b26a
mov qword [r15], r12
mov qword [r15 + 8], r12
cmp rbx, rbp
jne 0x14001b2c0
jmp 0x14001b26d