joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180003758
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0xd0
mov rax, qword [0x1800e0010]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov rdi, rdx
mov rbp, rcx
mov rcx, r8
mov rax, 0xfffffffffffff000
and rcx, rax
mov rsi, r8
mov qword [rdx], rcx
mov rdx, r8
sub rdx, rcx
lea r9, [rdi + 0x10]
add rdx, 0x1004
mov r8d, 0x40
and rdx, rax
mov qword [rdi + 8], rdx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x1800037e2
mov r9, qword [rdi + 8]
lea rdx, str.__unprotect_memory__p__size_llu______p__size_llu__n
mov r8, qword [rdi]
mov rcx, rbp
mov qword [rsp + 0x28], 5
mov qword [rsp + 0x20], rsi
call fcn.180002db4
xor eax, eax
jmp 0x18000382f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea rdx, [rsp + 0x40]
call fcn.180003464
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9, qword [rdi + 8]
lea rdx, str.Failed_to_unprotect_memory__p__size_llu______p__size_llu__error_lu__s__
mov r8, qword [rdi]
mov rcx, rbp
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], 5
mov qword [rsp + 0x20], rsi
call fcn.180002ddc
mov eax, 9
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.18009bb70
mov rbx, qword [rsp + 0x108]
add rsp, 0xd0
pop rdi
pop rsi
pop rbp
ret

Function at 0x18000808c
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
not r8d
mov r10, rcx
mov r9d, r8d
test rdx, rdx
je 0x1800080e6
mov r11b, 0x23
lea rdi, [0x1800a5130]
movzx ebx, byte [r10]
dec rdx
inc r10
cmp bl, r11b
jne 0x1800080d0
cmp rdx, 2
jb 0x1800080d0
cmp byte [r10], r11b
jne 0x1800080d0
cmp byte [r10 + 1], r11b
cmove r9d, r8d
movzx ecx, r9b
xor rcx, rbx
shr r9d, 8
xor r9d, dword [rdi + rcx*4]
test rdx, rdx
jne 0x1800080ae
jmp 0x180008127
mov dl, byte [rcx]
inc r10
test dl, dl
je 0x180008127
mov r11b, 0x23
lea rdi, [0x1800a5130]
cmp dl, r11b
jne 0x18000810b
cmp byte [r10], r11b
jne 0x18000810b
cmp byte [r10 + 1], r11b
cmove r9d, r8d
movzx ecx, r9b
movzx eax, dl
mov dl, byte [r10]
xor rcx, rax
shr r9d, 8
inc r10
xor r9d, dword [rdi + rcx*4]
test dl, dl
jne 0x1800080f9
mov rbx, qword [rsp + 8]
not r9d
mov rdi, qword [rsp + 0x10]
mov eax, r9d
ret
Function at 0x18000825c
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rsi, r8
test r8, r8
je 0x18000827c
and qword [r8], 0
lea rdx, [0x1800c5928]
call fcn.180008138
mov rbx, rax
test rax, rax
je 0x18000836d
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
mov ebp, eax
cmp eax, 0xffffffff
je 0x180008364
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x180008364
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
movsxd rdi, eax
cmp edi, 0xffffffff
je 0x180008364
xor r8d, r8d
mov edx, ebp
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x180008364
mov rbp, rdi
cmp rdi, 0xffffffffffffffff
je 0x180008364
mov rax, qword [0x1800e3b80]
test rax, rax
je 0x180008301
inc dword [rax + 0xf4]
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
test rax, rax
je 0x180008364
mov r9, rbx
mov r8, rbp
mov edx, 1
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov rcx, rbx
cmp rax, rbp
je 0x180008351
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rax, qword [0x1800e3b80]
test rax, rax
je 0x180008346
dec dword [rax + 0xf4]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x18000836d
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
test rsi, rsi
je 0x18000835f
mov qword [rsi], rbp
mov rax, rdi
jmp 0x18000836f
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret

Function at 0x18000af68
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push rbx
sub rsp, 0x30
mov rax, qword [0x1800e0010]
xor rax, rsp
mov qword [rsp + 0x28], rax
mov rax, qword [rcx + 0xf8]
mov r8, rdx
mov qword [rsp + 0x20], rdx
mov r9, rcx
movsxd rdx, dword [rcx + 0xf0]
mov r10d, 8
mov ebx, dword [rax + rdx*4 - 4]
lea rdx, [rsp + 0x20]
not ebx
movzx eax, byte [rdx]
inc rdx
movzx ecx, bl
xor rcx, rax
shr ebx, 8
lea rax, [0x1800a5130]
xor ebx, dword [rax + rcx*4]
sub r10, 1
jne 0x18000afa7
mov rcx, qword [r9]
not ebx
cmp dword [rcx + 0x1210], ebx
jne 0x18000afde
lea edx, [r10 + 0xc]
mov ecx, ebx
call fcn.18001b50c
mov eax, ebx
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.18009bb70
add rsp, 0x30
pop rbx
ret
Function at 0x18000aff4
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push rbx
sub rsp, 0x30
mov rax, qword [0x1800e0010]
xor rax, rsp
mov qword [rsp + 0x28], rax
movsxd r8, dword [rcx + 0xf0]
mov r11d, 4
mov rax, qword [rcx + 0xf8]
mov r9, rcx
mov dword [rsp + 0x20], edx
mov r10d, r11d
mov ebx, dword [rax + r8*4 - 4]
lea r8, [rsp + 0x20]
not ebx
movzx eax, byte [r8]
inc r8
movzx ecx, bl
xor rcx, rax
shr ebx, 8
lea rax, [0x1800a5130]
xor ebx, dword [rax + rcx*4]
sub r10, 1
jne 0x18000b033
mov rcx, qword [r9]
not ebx
cmp dword [rcx + 0x1210], ebx
jne 0x18000b06d
movsxd r8, edx
mov ecx, ebx
mov edx, r11d
call fcn.18001b50c
mov eax, ebx
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.18009bb70
add rsp, 0x30
pop rbx
ret

Function at 0x18000b084
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
sub rsp, 0x28
mov rax, qword [0x1800e0010]
xor rax, rsp
mov qword [rsp + 0x10], rax
movss xmm2, dword [rcx + 0x110]
lea r9, [rsp]
movss xmm3, dword [rcx + 0x114]
mov r10d, 0x10
movss xmm0, dword [rdx]
movss xmm1, dword [rdx + 4]
subss xmm0, xmm2
mov rax, qword [rcx + 0xf8]
subss xmm1, xmm3
movsxd rcx, dword [rcx + 0xf0]
movss dword [rsp], xmm0
movss xmm0, dword [rdx + 8]
mov r8d, dword [rax + rcx*4 - 4]
subss xmm0, xmm2
movss dword [rsp + 4], xmm1
not r8d
movss xmm1, dword [rdx + 0xc]
subss xmm1, xmm3
movss dword [rsp + 8], xmm0
movss dword [rsp + 0xc], xmm1
movzx ecx, byte [r9]
lea rax, [0x1800a5130]
movzx edx, r8b
inc r9
xor rdx, rcx
shr r8d, 8
xor r8d, dword [rax + rdx*4]
sub r10, 1
jne 0x18000b101
not r8d
mov eax, r8d
mov rcx, qword [rsp + 0x10]
xor rcx, rsp
call fcn.18009bb70
add rsp, 0x28
ret
Function at 0x180036ac8
Capabilities:
Create thread
Set console window title

Disassembly:
push rbx
sub rsp, 0x30
cmp edx, 1
jne 0x180036b4e
call qword [sym.imp.KERNEL32.dll_DisableThreadLibraryCalls]
call qword [sym.imp.KERNEL32.dll_AllocConsole]
lea rcx, str.cs2cheat_debug_console
call qword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov ecx, 1
mov rbx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, rbx
lea r8, [0x1800c6340]
mov rcx, rax
lea rdx, str.CONOUT_
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_freopen_s]
and qword [rsp + 0x28], 0
lea r8, [0x180036720]
and dword [rsp + 0x20], 0
xor r9d, r9d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x180036b76
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x180036b76
test edx, edx
jne 0x180036b76
test r8, r8
jne 0x180036b76
call fcn.1800368b8
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
call qword [sym.imp.KERNEL32.dll_FreeConsole]
mov eax, 1
add rsp, 0x30
pop rbx
ret

Function at 0x1800371c4
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x30
mov rax, qword [0x1800e0010]
xor rax, rsp
mov qword [rsp + 0x28], rax
xor ebx, ebx
mov rdi, rcx
test rcx, rcx
jne 0x1800371f5
lea rcx, str.Tried_getting_virtual_function_from_a_null_class._n
call fcn.180006624
jmp 0x180037212
mov rax, qword [rcx]
test rax, rax
jne 0x180037206
lea rcx, str.Tried_getting_virtual_function_from_a_null_vtable._n
jmp 0x1800371ee
mov rdx, qword [rax + 0x488]
test rdx, rdx
jne 0x180037234
lea rcx, str.Tried_calling_a_null_virtual_function._n
call fcn.180006624
mov rcx, rdi
call fcn.18003f6a4
test al, al
je 0x180037244
mov eax, 2
jmp 0x1800372d4
call rdx
test al, al
je 0x18003721e
mov eax, 1
jmp 0x1800372d4
mov qword [rsp + 0x20], rbx
test rdi, rdi
jne 0x18003725c
lea rcx, str.Tried_getting_virtual_function_from_a_null_class._n
call fcn.180006624
jmp 0x180037279
mov rax, qword [rdi]
test rax, rax
jne 0x18003726d
lea rcx, str.Tried_getting_virtual_function_from_a_null_vtable._n
jmp 0x180037255
mov r8, qword [rax + 0x110]
test r8, r8
jne 0x180037287
lea rcx, str.Tried_calling_a_null_virtual_function._n
call fcn.180006624
jmp 0x180037292
lea rdx, [rsp + 0x20]
mov rcx, rdi
call r8
mov rax, qword [rsp + 0x20]
test rax, rax
je 0x1800372d2
mov rax, qword [rax + 8]
test rax, rax
je 0x1800372d2
cmp byte [rax], bl
je 0x1800372d2
movsx ecx, byte [rax]
xor ecx, 0x811c9dc5
imul edx, ecx, 0x1000193
lea rcx, [rax + 1]
call fcn.18003ba20
cmp eax, 0x94f0c692
mov ecx, 3
cmove ebx, ecx
mov eax, ebx
jmp 0x1800372d4
xor eax, eax
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.18009bb70
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret

Function at 0x18003ba20
Capabilities:
Hash data using fnv

Disassembly:
sub rsp, 0x28
cmp byte [rcx], 0
je 0x18003ba3e
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
call fcn.18003ba20
mov edx, eax
mov eax, edx
add rsp, 0x28
ret
Function at 0x18003d150
Capabilities:
Create thread

Disassembly:
push rbx
sub rsp, 0x30
xor r8d, r8d
xor edx, edx
mov ecx, 0x208
call fcn.180013c38
test al, al
je 0x18003d19a
and qword [rsp + 0x28], 0
lea r9, [0x180000000]
and dword [rsp + 0x20], 0
lea r8, [0x180036600]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x18003d19a
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.180036f38
mov rbx, qword [0x1800e3b80]
xor r8d, r8d
xor edx, edx
mov ecx, 0x209
mov dword [rbx + 8], 0x20
call fcn.180013c38
test al, al
je 0x18003d1cf
cmp byte [0x1800e3b98], 0
sete cl
call fcn.180038f90
cmp byte [0x1800e3b98], 0
je 0x18003d241
and dword [rbx + 8], 0
xor ecx, ecx
call qword [0x1800e3ea0]
call fcn.180039028
movss xmm2, dword [rbx + 0x10]
mov ecx, 0x3f000000
movss xmm1, dword [rbx + 0x14]
mov rax, qword [0x1800e3b80]
mulss xmm2, dword [0x1800d9210]
mulss xmm1, dword [0x1800d9210]
or dword [rax + 0x1aa0], 1
movss dword [rax + 0x1ab0], xmm2
mov dword [rax + 0x1ab8], ecx
movss dword [rax + 0x1ab4], xmm1
mov dword [rax + 0x1abc], ecx
mov dword [rax + 0x1aa4], 2
call fcn.180012c80
add rsp, 0x30
pop rbx
ret

Function at 0x18003f5a8
Capabilities:
Hash data using fnv

Disassembly:
sub rsp, 0x28
mov r9, rcx
xor r8d, r8d
mov rcx, qword [rcx + 0x80]
mov r10b, dl
cmp byte [rcx], r8b
je 0x18003f5fe
movsx eax, byte [rcx]
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
inc rcx
call fcn.18003ba20
cmp eax, 0xf102793d
jne 0x18003f5fe
test r10b, r10b
je 0x18003f5f3
mov eax, 0x1f4
cmp word [r9 + 0x10], ax
setae r8b
jmp 0x18003f5f9
mov r8d, 1
mov al, r8b
jmp 0x18003f600
xor al, al
add rsp, 0x28
ret

Function at 0x18003f608
Capabilities:
Hash data using fnv

Disassembly:
sub rsp, 0x28
mov r8, rcx
mov r9b, dl
mov rcx, qword [rcx + 0x80]
cmp byte [rcx], 0
je 0x18003f65e
movsx eax, byte [rcx]
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
inc rcx
call fcn.18003ba20
cmp eax, 0x1c826fb7
jne 0x18003f65e
movzx ecx, word [r8 + 0x10]
mov eax, 0x13a4
sub cx, ax
mov eax, 1
cmp cx, ax
seta cl
test r9b, r9b
movzx edx, cl
cmovne eax, edx
jmp 0x18003f660
xor al, al
add rsp, 0x28
ret
Function at 0x180040764
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r14
sub rsp, 0x30
movabs rax, 0xfffffffffffffff
mov rsi, rcx
bsr rcx, rax
mov eax, 1
shl rax, cl
cmp rdx, rax
jbe 0x18004079d
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov rbx, qword [rsi + 8]
lea rax, [rdx - 1]
or rax, 1
mov edi, 1
bsr rcx, rax
mov r8, rbx
inc ecx
shl rdi, cl
lea rcx, [rsi + 0x18]
lea rdx, [rdi + rdi]
call fcn.180040630
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 0x1800408af
mov rcx, qword [rcx]
movabs r8, 0xcbf29ce484222325
xor r9d, r9d
movzx edx, byte [r9 + rax + 0x10]
movabs r10, 0x100000001b3
xor r8, rdx
inc r9
imul r8, r10
cmp r9, 4
jb 0x1800407f6
mov r11, qword [rsi + 0x30]
mov rdi, qword [rsi + 0x18]
and r11, r8
add r11, r11
cmp qword [rdi + r11*8], rbx
jne 0x180040835
mov qword [rdi + r11*8], rax
mov qword [rdi + r11*8 + 8], rax
jmp 0x1800408a3
mov r10, qword [rdi + r11*8 + 8]
mov edx, dword [rax + 0x10]
cmp edx, dword [r10 + 0x10]
jne 0x180040878
mov r10, qword [r10]
cmp r10, rax
je 0x18004082e
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 0x18004082e
mov r10, qword [r10 + 8]
cmp edx, dword [r10 + 0x10]
je 0x1800408cd
cmp qword [rdi + r11*8], r10
jne 0x18004086e
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 [rdi + r11*8], rax
mov rax, rcx
cmp rcx, rbx
jne 0x1800407e6
and qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call fcn.1800408f4
mov rbx, qword [rsp + 0x60]
add rsp, 0x30
pop r14
pop rdi
pop rsi
ret
mov r10, qword [r10]
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 0x1800408a3
Function at 0x1800409b0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rsi, r8
mov r13, rdx
mov r12, rcx
cmp rdx, r8
je 0x180040a71
mov rax, qword [rcx + 8]
mov rdi, rdx
mov rbp, qword [rcx + 0x18]
movabs r15, 0xcbf29ce484222325
mov r14, qword [rdx + 8]
xor ecx, ecx
mov qword [rsp + 0x20], rax
movabs rdx, 0x100000001b3
movzx eax, byte [rcx + r13 + 0x10]
inc rcx
xor r15, rax
imul r15, rdx
cmp rcx, 4
jb 0x180040a08
and r15, qword [r12 + 0x30]
add r15, r15
mov rax, qword [rbp + r15*8]
mov qword [rsp + 0x30], rax
mov rax, qword [rbp + r15*8 + 8]
mov qword [rsp + 0x28], rax
mov rcx, rdi
mov rbx, rdi
mov rdi, qword [rdi]
mov edx, 0x18
call fcn.18009befc
dec qword [r12 + 0x10]
cmp rbx, qword [rsp + 0x28]
je 0x180040a92
cmp rdi, rsi
jne 0x180040a3a
cmp qword [rsp + 0x30], r13
jne 0x180040a6a
mov qword [rbp + r15*8], rdi
mov qword [r14], rdi
mov qword [rdi + 8], r14
lea r11, [rsp + 0x40]
mov rax, rsi
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
cmp qword [rsp + 0x30], r13
jne 0x180040aa8
mov r13, qword [rsp + 0x20]
mov qword [rbp + r15*8], r13
mov rax, r13
jmp 0x180040aab
mov rax, r14
mov qword [rbp + r15*8 + 8], rax
cmp rdi, rsi
je 0x180040a6a
movabs rcx, 0xcbf29ce484222325
xor edx, edx
movabs r13, 0x100000001b3
movzx eax, byte [rdi + rdx + 0x10]
inc rdx
xor rcx, rax
imul rcx, r13
cmp rdx, 4
jb 0x180040acb
mov r15, qword [r12 + 0x30]
mov r13, qword [rsp + 0x20]
and r15, rcx
add r15, r15
mov rax, qword [rbp + r15*8 + 8]
mov qword [rsp + 0x28], rax
mov rcx, rdi
mov rbx, rdi
mov rdi, qword [rdi]
mov edx, 0x18
call fcn.18009befc
dec qword [r12 + 0x10]
cmp rbx, qword [rsp + 0x28]
je 0x180040b24
cmp rdi, rsi
je 0x180040a65
jmp 0x180040afa
mov qword [rbp + r15*8], r13
mov qword [rbp + r15*8 + 8], r13
jmp 0x180040ab0
Function at 0x180040b30
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x40
mov rsi, rdx
xor ecx, ecx
movabs r14, 0xcbf29ce484222325
movzx eax, byte [r8 + rcx]
xor r14, rax
movabs rdx, 0x100000001b3
imul r14, rdx
inc rcx
cmp rcx, 4
jb 0x180040b4a
mov rax, qword [0x1800e4270]
and rax, r14
add rax, rax
mov rcx, qword [0x1800e4258]
mov rbx, qword [rcx + rax*8 + 8]
mov rbp, qword [0x1800e4248]
cmp rbx, rbp
jne 0x180040bb5
mov rbx, rbp
mov rdi, rbp
movabs rax, 0x2e8ba2e8ba2e8ba
cmp qword [0x1800e4250], rax
jne 0x180040bf3
lea rcx, str.unordered_map_set_too_long
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov rdx, qword [rcx + rax*8]
mov eax, dword [r8]
jmp 0x180040bc7
cmp rbx, rdx
je 0x180040be9
mov rbx, qword [rbx + 8]
cmp eax, dword [rbx + 0x10]
jne 0x180040bbe
mov rbp, qword [rbx]
mov rdi, rbp
mov rax, rbx
mov rbx, rbp
test rax, rax
je 0x180040b94
mov qword [rsi], rax
mov byte [rsi + 8], 0
jmp 0x180040d6d
mov rbp, rbx
xor eax, eax
mov rdi, rbx
jmp 0x180040bd8
lea rdx, [0x1800e4248]
lea rcx, [rsp + 0x30]
call fcn.1800417bc
nop
mov rdx, qword [0x1800e4250]
lea rcx, [rdx + 1]
xorps xmm0, xmm0
test rcx, rcx
js 0x180040c1f
cvtsi2ss xmm0, rcx
jmp 0x180040c34
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rcx, qword [0x1800e4278]
xorps xmm1, xmm1
test rcx, rcx
js 0x180040c4a
cvtsi2ss xmm1, rcx
jmp 0x180040c5f
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm0, xmm1
comiss xmm0, dword [0x1800e4240]
seta al
test al, al
je 0x180040cda
call fcn.1800412f8
mov rcx, qword [rsp + 0x38]
mov rdx, qword [0x1800e4270]
and rdx, r14
add rdx, rdx
mov r8, qword [0x1800e4258]
mov rax, qword [r8 + rdx*8 + 8]
mov rbx, qword [0x1800e4248]
cmp rax, rbx
je 0x180040cbd
mov r9, qword [r8 + rdx*8]
mov edx, dword [rcx + 0x10]
jmp 0x180040cb5
mov rbx, rax
cmp rax, r9
je 0x180040cd3
mov rax, qword [rax + 8]
cmp edx, dword [rax + 0x10]
jne 0x180040ca9
mov rbx, qword [rax]
mov qword [rsp + 0x20], rbx
mov rdi, rbx
mov rbp, qword [rsp + 0x20]
mov rdx, qword [0x1800e4250]
jmp 0x180040cdf
mov qword [rsp + 0x20], rax
jmp 0x180040cc2
mov rcx, qword [rsp + 0x38]
and qword [rsp + 0x38], 0
mov r8, qword [rbx + 8]
inc rdx
mov qword [0x1800e4250], rdx
mov qword [rcx], rbp
mov qword [rcx + 8], r8
mov qword [r8], rcx
mov qword [rbx + 8], rcx
mov rax, qword [0x1800e4270]
and rax, r14
add rax, rax
mov rdx, qword [0x1800e4258]
mov r9, qword [rdx + rax*8]
cmp r9, qword [0x1800e4248]
jne 0x180040d28
mov qword [rdx + rax*8], rcx
jmp 0x180040d3a
cmp r9, rdi
jne 0x180040d33
mov qword [rdx + rax*8], rcx
jmp 0x180040d3f
cmp qword [rdx + rax*8 + 8], r8
jne 0x180040d3f
mov qword [rdx + rax*8 + 8], rcx
mov qword [rsi], rcx
mov byte [rsi + 8], 1
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x180040d6d
add rcx, 0x18
call fcn.18004017c
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x180040d6d
mov edx, 0x58
call fcn.18009befc
mov rax, rsi
add rsp, 0x40
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x1800412f8
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
mov rcx, qword [0x1800e4250]
xorps xmm0, xmm0
add rcx, 1
js 0x180041319
cvtsi2ss xmm0, rcx
jmp 0x18004132e
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm0, dword [0x1800e4240]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceilf
movss xmm1, dword [0x1800d9314]
xor ecx, ecx
comiss xmm0, xmm1
jb 0x180041360
subss xmm0, xmm1
comiss xmm0, xmm1
jae 0x180041360
movabs rax, 0x8000000000000000
mov rcx, rax
mov rdx, qword [0x1800e4278]
cvttss2si rax, xmm0
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rdx, rcx
jae 0x180041395
cmp rdx, 0x200
jae 0x180041392
shl rdx, 3
cmp rdx, rcx
jae 0x180041395
mov rdx, rcx
movabs rax, 0xfffffffffffffff
bsr rcx, rax
mov eax, 1
shl rax, cl
cmp rdx, rax
jbe 0x1800413be
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov rbx, qword [0x1800e4248]
lea rax, [rdx - 1]
or rax, 1
mov edi, 1
bsr rcx, rax
mov r8, rbx
inc ecx
shl rdi, cl
lea rcx, [0x1800e4258]
lea rdx, [rdi + rdi]
call fcn.180040630
mov rax, qword [0x1800e4248]
lea r9, [rdi - 1]
mov qword [0x1800e4270], r9
mov qword [0x1800e4278], rdi
mov rax, qword [rax]
mov rcx, rax
cmp rax, rbx
je 0x18004150c
mov rcx, qword [rcx]
movabs r11, 0xcbf29ce484222325
xor r8d, r8d
movzx edx, byte [r8 + rax + 0x10]
movabs r10, 0x100000001b3
xor r11, rdx
inc r8
imul r11, r10
cmp r8, 4
jb 0x180041426
mov rdi, qword [0x1800e4258]
and r11, r9
add r11, r11
cmp qword [rdi + r11*8], rbx
jne 0x180041464
mov qword [rdi + r11*8], rax
mov qword [rdi + r11*8 + 8], rax
jmp 0x1800414d2
mov r10, qword [rdi + r11*8 + 8]
mov edx, dword [rax + 0x10]
cmp edx, dword [r10 + 0x10]
jne 0x1800414a7
mov r10, qword [r10]
cmp r10, rax
je 0x18004145d
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 0x18004145d
mov r10, qword [r10 + 8]
cmp edx, dword [r10 + 0x10]
je 0x1800414e6
cmp qword [rdi + r11*8], r10
jne 0x18004149d
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 [rdi + r11*8], rax
mov rax, rcx
cmp rcx, rbx
je 0x18004150c
mov r9, qword [0x1800e4270]
jmp 0x180041416
mov r10, qword [r10]
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 0x1800414d2
and qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call fcn.180041544
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
Function at 0x180041618
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x38], rcx
mov rbp, r8
mov r13, rdx
cmp rdx, r8
je 0x1800416e8
mov rax, qword [rcx + 8]
mov rsi, rdx
mov r14, qword [rdx + 8]
movabs r15, 0xcbf29ce484222325
mov r12, qword [rcx + 0x18]
xor edx, edx
mov qword [rsp + 0x20], rax
movabs r8, 0x100000001b3
movzx eax, byte [rdx + r13 + 0x10]
inc rdx
xor r15, rax
imul r15, r8
cmp rdx, 4
jb 0x180041672
and r15, qword [rcx + 0x30]
add r15, r15
mov rax, qword [r12 + r15*8]
mov qword [rsp + 0x30], rax
mov rax, qword [r12 + r15*8 + 8]
mov qword [rsp + 0x28], rax
mov rbx, rsi
mov rdi, rsi
mov rsi, qword [rsi]
lea rcx, [rbx + 0x18]
call fcn.18004017c
mov edx, 0x58
mov rcx, rbx
call fcn.18009befc
mov rdx, qword [rsp + 0x38]
dec qword [rdx + 0x10]
cmp rbx, qword [rsp + 0x28]
je 0x180041709
cmp rsi, rbp
jne 0x1800416a2
cmp qword [rsp + 0x30], r13
jne 0x1800416e1
mov qword [r12 + r15*8], rsi
mov qword [r14], rsi
mov qword [rsi + 8], r14
lea r11, [rsp + 0x40]
mov rax, rbp
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
cmp qword [rsp + 0x30], r13
jne 0x18004171e
mov r13, qword [rsp + 0x20]
mov qword [r12 + r15*8], r13
mov rax, r13
jmp 0x180041721
mov rax, r14
mov qword [r12 + r15*8 + 8], rax
cmp rsi, rbp
je 0x1800416e1
movabs rcx, 0xcbf29ce484222325
xor r8d, r8d
movabs r13, 0x100000001b3
movzx eax, byte [rsi + r8 + 0x10]
inc r8
xor rcx, rax
imul rcx, r13
cmp r8, 4
jb 0x180041742
mov r15, qword [rdx + 0x30]
mov r13, qword [rsp + 0x20]
and r15, rcx
add r15, r15
mov rax, qword [r12 + r15*8 + 8]
mov qword [rsp + 0x28], rax
mov rbx, rsi
mov rdi, rsi
mov rsi, qword [rsi]
lea rcx, [rbx + 0x18]
call fcn.18004017c
mov edx, 0x58
mov rcx, rbx
call fcn.18009befc
mov rdx, qword [rsp + 0x38]
dec qword [rdx + 0x10]
cmp rbx, qword [rsp + 0x28]
je 0x1800417ab
cmp rsi, rbp
je 0x1800416dd
jmp 0x180041771
mov qword [r12 + r15*8], r13
mov qword [r12 + r15*8 + 8], r13
jmp 0x180041726