joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400022c0
Capabilities:
Get thread local storage value

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
lea r12, [0x14000c100]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [0x14000c0e0]
test rbx, rbx
je 0x14000231c
mov rbp, qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax]
mov ecx, dword [rbx]
call rbp
mov rsi, rax
call rdi
test eax, eax
jne 0x140002313
test rsi, rsi
je 0x140002313
mov rax, qword [rbx + 8]
mov rcx, rsi
call rax
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x1400022f8
mov rcx, r12
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]

Function at 0x140002530
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
mov rax, qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
call qword [rax]
nop
nop
sub rsp, 0x28
mov rax, qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__exit]
call qword [rax]
nop
nop
nop
xor eax, eax
cmp word [rcx], 0x5a4d
jne 0x140002568
movsxd rdx, dword [rcx + 0x3c]
add rcx, rdx
cmp dword [rcx], 0x4550
je 0x140002570
ret
xor eax, eax
cmp word [rcx + 0x18], 0x20b
sete al
ret

Function at 0x140002540
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
mov rax, qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
call qword [rax]
nop
nop
sub rsp, 0x28
mov rax, qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__exit]
call qword [rax]
nop
nop
nop
xor eax, eax
cmp word [rcx], 0x5a4d
jne 0x140002568
movsxd rdx, dword [rcx + 0x3c]
add rcx, rdx
cmp dword [rcx], 0x4550
je 0x140002570
ret
xor eax, eax
cmp word [rcx + 0x18], 0x20b
sete al
ret

Function at 0x140002550
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
mov rax, qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
call qword [rax]
nop
nop
sub rsp, 0x28
mov rax, qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__exit]
call qword [rax]
nop
nop
nop
xor eax, eax
cmp word [rcx], 0x5a4d
jne 0x140002568
movsxd rdx, dword [rcx + 0x3c]
add rcx, rdx
cmp dword [rcx], 0x4550
je 0x140002570
ret
xor eax, eax
cmp word [rcx + 0x18], 0x20b
sete al
ret

Function at 0x140002670
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov rdx, qword [0x1400097e0]
xor eax, eax
cmp word [rdx], 0x5a4d
jne 0x140002690
movsxd r8, dword [rdx + 0x3c]
add r8, rdx
cmp dword [r8], 0x4550
je 0x140002698
ret
cmp word [r8 + 0x18], 0x20b
jne 0x140002690
movzx eax, word [r8 + 0x14]
sub rcx, rdx
lea rax, [r8 + rax + 0x18]
movzx r8d, word [r8 + 6]
test r8w, r8w
je 0x1400026ed
lea edx, [r8 - 1]
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
nop word cs:[rax + rax]
mov r8d, dword [rax + 0xc]
cmp rcx, r8
mov rdx, r8
jb 0x1400026e4
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x140002690
add rax, 0x28
cmp rax, r9
jne 0x1400026d0
xor eax, eax
ret

Function at 0x1400026f0
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x1400097e0]
xor ecx, ecx
cmp word [rax], 0x5a4d
jne 0x14000270f
movsxd rdx, dword [rax + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
je 0x140002718
mov eax, ecx
ret
cmp word [rax + 0x18], 0x20b
jne 0x14000270f
movzx ecx, word [rax + 6]
mov eax, ecx
ret
Function at 0x1400027b0
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x1400097e0]
xor edx, edx
cmp word [rax], 0x5a4d
jne 0x1400027cf
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
je 0x1400027d8
mov rax, rdx
ret
cmp word [rcx + 0x18], 0x20b
cmove rdx, rax
mov rax, rdx
ret

Function at 0x144f37d50
Capabilities:
Terminate process

Disassembly:
cld
pop r11
jmp 0x144f37d5d
inc rsi
mov byte [rdi], dl
inc rdi
mov dl, byte [rsi]
add ebx, ebx
jne 0x144f37d6d
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jb 0x144f37d55
lea eax, [rcx + 1]
jmp 0x144f37d7b
dec eax
call r11
adc eax, eax
call r11
adc eax, eax
add ebx, ebx
jne 0x144f37d8e
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jae 0x144f37d74
sub eax, 3
jb 0x144f37dae
shl eax, 8
movzx edx, dl
or eax, edx
inc rsi
xor eax, 0xffffffff
je 0x144f37dfd
sar eax, 1
movsxd rbp, eax
jb 0x144f37de4
jmp 0x144f37dbc
add ebx, ebx
jne 0x144f37dba
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x144f37de4
inc ecx
add ebx, ebx
jne 0x144f37dca
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x144f37de4
call r11
adc ecx, ecx
add ebx, ebx
jne 0x144f37ddd
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jae 0x144f37dcc
add ecx, 2
jmp 0x144f37de9
call r11
adc ecx, ecx
cmp rbp, 0xfffffffffffffb00
adc ecx, 2
call fcn.144f37d12
jmp 0x144f37d5d
pop rsi
pop rdi
pop rax
mov dword [rdi], eax
sub rsp, 0x28
lea rdi, [rsi + 0x4f33000]
mov eax, dword [rdi]
or eax, eax
je 0x144f37e5d
mov ebx, dword [rdi + 4]
lea rcx, [rax + rsi + 0x4f3749c]
add rbx, rsi
add rdi, 8
call qword [sym.imp.KERNEL32.DLL_LoadLibraryA]
xchg rbp, rax
mov al, byte [rdi]
inc rdi
or al, al
je 0x144f37e0d
mov rcx, rdi
mov rdx, rdi
dec eax
repne scasb al, byte [rdi]
mov rcx, rbp
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
or rax, rax
je 0x144f37e57
mov qword [rbx], rax
add rbx, 8
jmp 0x144f37e2d
jmp qword [sym.imp.KERNEL32.DLL_ExitProcess]
add rsp, 0x28
add rdi, 4
lea rbx, [rsi - 4]
xor eax, eax
mov al, byte [rdi]
inc rdi
or eax, eax
je 0x144f37ea1
cmp al, 0xef
ja 0x144f37e89
add rbx, rax
mov rax, qword [rbx]
bswap rax
add rax, rsi
mov qword [rbx], rax
jmp 0x144f37e69
and al, 0xf
shl eax, 0x10
mov ax, word [rdi]
add rdi, 2
or eax, eax
jne 0x144f37e78
mov eax, dword [rdi]
add rdi, 4
jmp 0x144f37e78
mov rbp, qword [sym.imp.KERNEL32.DLL_VirtualProtect]
lea rdi, [rsi - 0x1000]
mov ebx, 0x1000
push rax
mov r9, rsp
mov r8d, 4
mov rdx, rbx
mov rcx, rdi
sub rsp, 0x20
call rbp
lea rax, [rdi + 0x1af]
and byte [rax], 0x7f
and byte [rax + 0x28], 0x7f
lea r9, [rsp + 0x20]
mov r8, qword [r9]
mov rdx, rbx
mov rcx, rdi
call rbp
add rsp, 0x28
mov byte [fcn.144f37f20], 0xfc
lea rcx, [rsi - 0x1000]
push 1
pop rdx
xor r8, r8
push rax
call fcn.144f37f20
pop rax
pop rbp
pop rdi
pop rsi
pop rbx
lea rax, [rsp - 0x80]
push 0
cmp rsp, rax
jne 0x144f37f10
sub rsp, 0xffffffffffffff80
jmp 0x140001125
Function at 0x180002a20
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax + 8], rcx
push r14
sub rsp, 0x60
and dword [rax - 0x48], 0
mov rdi, rcx
mov r8d, dword [0x180484a68]
mov sil, dl
movaps xmmword [rax - 0x18], xmm6
movss xmm6, dword [0x1802ce528]
mov dword [rax - 0x40], 0xff
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + r8*8]
mov eax, dword [rcx + rax]
cmp dword [0x1804ba760], eax
jg 0x180002bf1
movabs rbx, 0xcbf29ce484222325
xor edx, edx
mov rcx, rbx
movabs r14, 0x100000001b3
movzx eax, byte [rsp + rdx + 0x70]
inc rdx
xor rcx, rax
imul rcx, r14
cmp rdx, 8
jb 0x180002a97
mov rax, qword [0x1804ba750]
mov rdx, qword [0x1804ba738]
and rax, rcx
mov r9, qword [0x1804ba728]
add rax, rax
mov rcx, qword [rdx + rax*8 + 8]
cmp rcx, r9
je 0x180002ae8
mov r8, qword [rdx + rax*8]
jmp 0x180002ae0
cmp rcx, r8
je 0x180002ae8
mov rcx, qword [rcx + 8]
cmp rdi, qword [rcx + 0x10]
jne 0x180002ad7
jmp 0x180002aea
xor ecx, ecx
test rcx, rcx
mov rax, r9
cmovne rax, rcx
cmp rax, r9
jne 0x180002b6b
and dword [rsp + 0x38], 0
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x30], rdi
call fcn.180003370
xor ecx, ecx
movzx eax, byte [rsp + rcx + 0x70]
inc rcx
xor rbx, rax
imul rbx, r14
cmp rcx, 8
jb 0x180002b14
and rbx, qword [0x1804ba750]
mov rdx, qword [0x1804ba738]
add rbx, rbx
mov rax, qword [0x1804ba728]
mov rcx, qword [rdx + rbx*8 + 8]
cmp rcx, rax
je 0x180002b62
mov r8, qword [rdx + rbx*8]
jmp 0x180002b5a
cmp rcx, r8
je 0x180002b62
mov rcx, qword [rcx + 8]
cmp rdi, qword [rcx + 0x10]
jne 0x180002b51
jmp 0x180002b64
xor ecx, ecx
test rcx, rcx
cmovne rax, rcx
mov rcx, qword [0x180484e28]
lea r8, [rax + 0x18]
mov edx, dword [r8]
subss xmm6, dword [rcx + 0x18]
mulss xmm6, dword [0x1802ce60c]
test sil, sil
je 0x180002ba0
cmp edx, 0xff
jge 0x180002bb6
movd xmm0, edx
cvtdq2ps xmm0, xmm0
addss xmm0, xmm6
jmp 0x180002baf
test edx, edx
jle 0x180002bb6
movd xmm0, edx
cvtdq2ps xmm0, xmm0
subss xmm0, xmm6
cvttss2si edx, xmm0
mov dword [r8], edx
movaps xmm6, xmmword [rsp + 0x50]
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x18]
lea rcx, [rsp + 0x20]
mov rsi, qword [r11 + 0x20]
lea rax, [rsp + 0x28]
mov rdi, qword [r11 + 0x28]
test edx, edx
cmovns rcx, r8
cmp edx, 0xff
cmovle rax, rcx
mov eax, dword [rax]
mov dword [r8], eax
mov rsp, r11
pop r14
ret
lea rcx, [0x1804ba760]
call fcn.1800de584
cmp dword [0x1804ba760], 0xffffffff
jne 0x180002a7e
mov ecx, 0x20
call fcn.1800de498
xorps xmm0, xmm0
lea rcx, [0x1804ba738]
mov r8, rax
mov edx, 0x10
mov qword [rax], rax
mov qword [rax + 8], rax
and qword [0x1804ba738], 0
mov qword [0x1804ba728], rax
movdqa xmmword [0x1804ba740], xmm0
mov qword [0x1804ba750], 7
mov qword [0x1804ba758], 8
mov dword [0x1804ba720], 0x3f800000
call fcn.180003000
lea rcx, [0x1800e0c84]
call fcn.1800de954
lea rcx, [0x1804ba760]
call fcn.1800de518
jmp 0x180002a7e
Function at 0x180002d28
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
movss dword [rax + 0x20], xmm3
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
sub rsp, 0x70
and dword [rax - 0x68], 0
mov rdi, rcx
mov r8d, dword [0x180484a68]
mov sil, dl
movaps xmmword [rax - 0x28], xmm6
movss xmm6, dword [0x1802ce528]
movaps xmmword [rax - 0x38], xmm7
movaps xmm7, xmm3
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + r8*8]
mov eax, dword [rcx + rax]
cmp dword [0x1804ba764], eax
jg 0x180002ef6
movabs rbx, 0xcbf29ce484222325
xor edx, edx
mov rcx, rbx
movabs rbp, 0x100000001b3
movzx eax, byte [rsp + rdx + 0x90]
inc rdx
xor rcx, rax
imul rcx, rbp
cmp rdx, 8
jb 0x180002d9d
mov rax, qword [0x1804ba710]
mov rdx, qword [0x1804ba6f8]
and rax, rcx
mov r9, qword [0x1804ba6e8]
add rax, rax
mov rcx, qword [rdx + rax*8 + 8]
cmp rcx, r9
je 0x180002df1
mov r8, qword [rdx + rax*8]
jmp 0x180002de9
cmp rcx, r8
je 0x180002df1
mov rcx, qword [rcx + 8]
cmp rdi, qword [rcx + 0x10]
jne 0x180002de0
jmp 0x180002df3
xor ecx, ecx
test rcx, rcx
mov rax, r9
cmovne rax, rcx
cmp rax, r9
jne 0x180002e77
and dword [rsp + 0x30], 0
lea r8, [rsp + 0x28]
lea rdx, [rsp + 0x38]
mov qword [rsp + 0x28], rdi
call fcn.180003140
xor ecx, ecx
movzx eax, byte [rsp + rcx + 0x90]
inc rcx
xor rbx, rax
imul rbx, rbp
cmp rcx, 8
jb 0x180002e1d
and rbx, qword [0x1804ba710]
mov rdx, qword [0x1804ba6f8]
add rbx, rbx
mov rax, qword [0x1804ba6e8]
mov rcx, qword [rdx + rbx*8 + 8]
cmp rcx, rax
je 0x180002e6e
mov r8, qword [rdx + rbx*8]
jmp 0x180002e66
cmp rcx, r8
je 0x180002e6e
mov rcx, qword [rcx + 8]
cmp rdi, qword [rcx + 0x10]
jne 0x180002e5d
jmp 0x180002e70
xor ecx, ecx
test rcx, rcx
cmovne rax, rcx
mov rcx, qword [0x180484e28]
lea rdx, [rax + 0x18]
movss xmm0, dword [rdx]
subss xmm6, dword [rcx + 0x18]
mulss xmm6, dword [rsp + 0xb0]
test sil, sil
je 0x180002ea4
comiss xmm0, xmm7
jae 0x180002eb5
addss xmm0, xmm6
jmp 0x180002eb1
comiss xmm0, dword [0x1802ce3ec]
jbe 0x180002eb5
subss xmm0, xmm6
movss dword [rdx], xmm0
comiss xmm0, dword [0x1802ce3ec]
mov rbx, qword [rsp + 0x98]
lea rcx, [rsp + 0x20]
lea rax, [rsp + 0xa8]
movaps xmm6, xmmword [rsp + 0x60]
cmovae rcx, rdx
comiss xmm7, xmm0
movaps xmm7, xmmword [rsp + 0x50]
cmovae rax, rcx
movss xmm0, dword [rax]
movss dword [rdx], xmm0
add rsp, 0x70
pop rdi
pop rsi
pop rbp
ret
lea rcx, [0x1804ba764]
call fcn.1800de584
cmp dword [0x1804ba764], 0xffffffff
jne 0x180002d84
mov ecx, 0x20
call fcn.1800de498
xorps xmm0, xmm0
lea rcx, [0x1804ba6f8]
mov r8, rax
mov edx, 0x10
mov qword [rax], rax
mov qword [rax + 8], rax
and qword [0x1804ba6f8], 0
mov qword [0x1804ba6e8], rax
movdqa xmmword [0x1804ba700], xmm0
mov qword [0x1804ba710], 7
mov qword [0x1804ba718], 8
mov dword [0x1804ba6e0], 0x3f800000
call fcn.180003000
lea rcx, [0x1800e0c90]
call fcn.1800de954
lea rcx, [0x1804ba764]
call fcn.1800de518
jmp 0x180002d84
Function at 0x180003140
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x30
mov r12, r8
mov rsi, rdx
xor ecx, ecx
movabs r15, 0xcbf29ce484222325
movzx eax, byte [r8 + rcx]
movabs rdx, 0x100000001b3
xor r15, rax
inc rcx
imul r15, rdx
cmp rcx, 8
jb 0x18000316f
mov rax, qword [0x1804ba710]
mov rcx, qword [0x1804ba6f8]
and rax, r15
mov r14, qword [0x1804ba6e8]
add rax, rax
mov rbx, qword [rcx + rax*8 + 8]
cmp rbx, r14
jne 0x1800031bb
mov rbx, r14
mov rbp, r14
jmp 0x180003202
mov rdx, qword [rcx + rax*8]
mov rax, qword [r8]
jmp 0x1800031cd
cmp rbx, rdx
je 0x1800031fc
mov rbx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jne 0x1800031c4
mov qword [rsi], rbx
mov byte [rsi + 8], 0
mov rbx, qword [rsp + 0x50]
mov rax, rsi
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
ret
mov r14, rbx
mov rbp, rbx
movabs rax, 0x7ffffffffffffff
cmp qword [0x1804ba6f0], rax
jne 0x180003223
lea rcx, str.unordered_map_set_too_long
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov ecx, 0x20
call fcn.1800de498
movups xmm0, xmmword [r12]
mov rdi, rax
xorps xmm1, xmm1
movdqu xmmword [rax + 0x10], xmm0
mov r8, qword [0x1804ba6f0]
lea rcx, [r8 + 1]
test rcx, rcx
js 0x180003254
cvtsi2ss xmm1, rcx
jmp 0x180003269
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
mov rcx, qword [0x1804ba718]
xorps xmm0, xmm0
test rcx, rcx
js 0x18000327f
cvtsi2ss xmm0, rcx
jmp 0x180003294
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm1, xmm0
movss xmm0, dword [0x1804ba6e0]
comiss xmm0, xmm1
jae 0x180003302
call fcn.1800035a0
mov rcx, qword [0x1804ba710]
mov rdx, qword [0x1804ba6f8]
and rcx, r15
mov rbx, qword [0x1804ba6e8]
add rcx, rcx
mov rax, qword [rdx + rcx*8 + 8]
cmp rax, rbx
je 0x1800032ee
mov r8, qword [rdx + rcx*8]
mov rcx, qword [rdi + 0x10]
jmp 0x1800032e5
mov rbx, rax
cmp rax, r8
je 0x180003345
mov rax, qword [rax + 8]
cmp rcx, qword [rax + 0x10]
jne 0x1800032d9
mov rbx, qword [rax]
mov qword [rsp + 0x20], rbx
mov r14, qword [rsp + 0x20]
mov rbp, rbx
mov r8, qword [0x1804ba6f0]
mov rdx, qword [rbx + 8]
inc r8
mov qword [0x1804ba6f0], r8
mov qword [rdi], r14
mov qword [rdi + 8], rdx
mov qword [rdx], rdi
mov qword [rbx + 8], rdi
mov rax, qword [0x1804ba710]
mov rcx, qword [0x1804ba6f8]
and rax, r15
add rax, rax
mov r8, qword [rcx + rax*8]
cmp r8, qword [0x1804ba6e8]
jne 0x18000334c
mov qword [rcx + rax*8], rdi
jmp 0x18000335e
mov qword [rsp + 0x20], rax
jmp 0x1800032f3
cmp r8, rbp
jne 0x180003357
mov qword [rcx + rax*8], rdi
jmp 0x180003363
cmp qword [rcx + rax*8 + 8], rdx
jne 0x180003363
mov qword [rcx + rax*8 + 8], rdi
mov qword [rsi], rdi
mov byte [rsi + 8], 1
jmp 0x1800031da
Function at 0x180003370
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x30
mov r12, r8
mov rsi, rdx
xor ecx, ecx
movabs r15, 0xcbf29ce484222325
movzx eax, byte [r8 + rcx]
movabs rdx, 0x100000001b3
xor r15, rax
inc rcx
imul r15, rdx
cmp rcx, 8
jb 0x18000339f
mov rax, qword [0x1804ba750]
mov rcx, qword [0x1804ba738]
and rax, r15
mov r14, qword [0x1804ba728]
add rax, rax
mov rbx, qword [rcx + rax*8 + 8]
cmp rbx, r14
jne 0x1800033eb
mov rbx, r14
mov rbp, r14
jmp 0x180003432
mov rdx, qword [rcx + rax*8]
mov rax, qword [r8]
jmp 0x1800033fd
cmp rbx, rdx
je 0x18000342c
mov rbx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jne 0x1800033f4
mov qword [rsi], rbx
mov byte [rsi + 8], 0
mov rbx, qword [rsp + 0x50]
mov rax, rsi
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
ret
mov r14, rbx
mov rbp, rbx
movabs rax, 0x7ffffffffffffff
cmp qword [0x1804ba730], rax
jne 0x180003453
lea rcx, str.unordered_map_set_too_long
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov ecx, 0x20
call fcn.1800de498
movups xmm0, xmmword [r12]
mov rdi, rax
xorps xmm1, xmm1
movdqu xmmword [rax + 0x10], xmm0
mov r8, qword [0x1804ba730]
lea rcx, [r8 + 1]
test rcx, rcx
js 0x180003484
cvtsi2ss xmm1, rcx
jmp 0x180003499
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
mov rcx, qword [0x1804ba758]
xorps xmm0, xmm0
test rcx, rcx
js 0x1800034af
cvtsi2ss xmm0, rcx
jmp 0x1800034c4
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm1, xmm0
movss xmm0, dword [0x1804ba720]
comiss xmm0, xmm1
jae 0x180003532
call fcn.1800037f0
mov rcx, qword [0x1804ba750]
mov rdx, qword [0x1804ba738]
and rcx, r15
mov rbx, qword [0x1804ba728]
add rcx, rcx
mov rax, qword [rdx + rcx*8 + 8]
cmp rax, rbx
je 0x18000351e
mov r8, qword [rdx + rcx*8]
mov rcx, qword [rdi + 0x10]
jmp 0x180003515
mov rbx, rax
cmp rax, r8
je 0x180003575
mov rax, qword [rax + 8]
cmp rcx, qword [rax + 0x10]
jne 0x180003509
mov rbx, qword [rax]
mov qword [rsp + 0x20], rbx
mov r14, qword [rsp + 0x20]
mov rbp, rbx
mov r8, qword [0x1804ba730]
mov rdx, qword [rbx + 8]
inc r8
mov qword [0x1804ba730], r8
mov qword [rdi], r14
mov qword [rdi + 8], rdx
mov qword [rdx], rdi
mov qword [rbx + 8], rdi
mov rax, qword [0x1804ba750]
mov rcx, qword [0x1804ba738]
and rax, r15
add rax, rax
mov r8, qword [rcx + rax*8]
cmp r8, qword [0x1804ba728]
jne 0x18000357c
mov qword [rcx + rax*8], rdi
jmp 0x18000358e
mov qword [rsp + 0x20], rax
jmp 0x180003523
cmp r8, rbp
jne 0x180003587
mov qword [rcx + rax*8], rdi
jmp 0x180003593
cmp qword [rcx + rax*8 + 8], rdx
jne 0x180003593
mov qword [rcx + rax*8 + 8], rdi
mov qword [rsi], rdi
mov byte [rsi + 8], 1
jmp 0x18000340a
Function at 0x1800035a0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rcx, qword [0x1804ba6f0]
mov esi, 1
add rcx, rsi
xorps xmm1, xmm1
js 0x1800035ca
cvtsi2ss xmm1, rcx
jmp 0x1800035df
mov rax, rcx
and rcx, rsi
shr rax, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm1, dword [0x1804ba6e0]
cvttss2si ecx, xmm1
cmp ecx, 0x80000000
je 0x180003612
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
je 0x180003612
unpcklps xmm1, xmm1
movmskps eax, xmm1
and eax, esi
xor eax, esi
add ecx, eax
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movss xmm0, dword [0x1802ce76c]
xor ecx, ecx
comiss xmm1, xmm0
jb 0x180003637
subss xmm1, xmm0
comiss xmm1, xmm0
jae 0x180003637
movabs rax, 0x8000000000000000
mov rcx, rax
mov rdx, qword [0x1804ba718]
cvttss2si rax, xmm1
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rdx, rcx
jae 0x18000366c
cmp rdx, 0x200
jae 0x180003669
shl rdx, 3
cmp rdx, rcx
jae 0x18000366c
mov rdx, rcx
movabs rax, 0xfffffffffffffff
bsr rcx, rax
mov rax, rsi
shl rax, cl
cmp rdx, rax
jbe 0x180003693
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 [0x1804ba6e8]
lea rax, [rdx - 1]
or rax, rsi
mov rdi, rsi
bsr rcx, rax
mov r8, rbx
inc ecx
shl rdi, cl
lea rcx, [0x1804ba6f8]
lea rdx, [rdi + rdi]
call fcn.180003000
mov rax, qword [0x1804ba6e8]
lea r9, [rdi - 1]
mov qword [0x1804ba710], r9
mov qword [0x1804ba718], rdi
mov rax, qword [rax]
mov rcx, rax
cmp rax, rbx
je 0x1800037df
mov rcx, qword [rcx]
movabs r11, 0xcbf29ce484222325
xor r8d, r8d
movzx edx, byte [rax + r8 + 0x10]
movabs r10, 0x100000001b3
xor r11, rdx
add r8, rsi
imul r11, r10
cmp r8, 8
jb 0x1800036f8
mov rdi, qword [0x1804ba6f8]
and r11, r9
add r11, r11
cmp qword [rdi + r11*8], rbx
jne 0x180003736
mov qword [rdi + r11*8], rax
mov qword [rdi + r11*8 + 8], rax
jmp 0x1800037a5
mov r10, qword [rdi + r11*8 + 8]
mov rdx, qword [rax + 0x10]
cmp rdx, qword [r10 + 0x10]
jne 0x18000377a
mov r10, qword [r10]
cmp r10, rax
je 0x18000372f
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 0x18000372f
mov r10, qword [r10 + 8]
cmp rdx, qword [r10 + 0x10]
je 0x1800037b9
cmp qword [rdi + r11*8], r10
jne 0x180003770
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 0x1800037df
mov r9, qword [0x1804ba710]
jmp 0x1800036e8
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 0x1800037a5
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x1800037f0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rcx, qword [0x1804ba730]
mov esi, 1
add rcx, rsi
xorps xmm1, xmm1
js 0x18000381a
cvtsi2ss xmm1, rcx
jmp 0x18000382f
mov rax, rcx
and rcx, rsi
shr rax, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm1, dword [0x1804ba720]
cvttss2si ecx, xmm1
cmp ecx, 0x80000000
je 0x180003862
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
je 0x180003862
unpcklps xmm1, xmm1
movmskps eax, xmm1
and eax, esi
xor eax, esi
add ecx, eax
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movss xmm0, dword [0x1802ce76c]
xor ecx, ecx
comiss xmm1, xmm0
jb 0x180003887
subss xmm1, xmm0
comiss xmm1, xmm0
jae 0x180003887
movabs rax, 0x8000000000000000
mov rcx, rax
mov rdx, qword [0x1804ba758]
cvttss2si rax, xmm1
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rdx, rcx
jae 0x1800038bc
cmp rdx, 0x200
jae 0x1800038b9
shl rdx, 3
cmp rdx, rcx
jae 0x1800038bc
mov rdx, rcx
movabs rax, 0xfffffffffffffff
bsr rcx, rax
mov rax, rsi
shl rax, cl
cmp rdx, rax
jbe 0x1800038e3
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 [0x1804ba728]
lea rax, [rdx - 1]
or rax, rsi
mov rdi, rsi
bsr rcx, rax
mov r8, rbx
inc ecx
shl rdi, cl
lea rcx, [0x1804ba738]
lea rdx, [rdi + rdi]
call fcn.180003000
mov rax, qword [0x1804ba728]
lea r9, [rdi - 1]
mov qword [0x1804ba750], r9
mov qword [0x1804ba758], rdi
mov rax, qword [rax]
mov rcx, rax
cmp rax, rbx
je 0x180003a2f
mov rcx, qword [rcx]
movabs r11, 0xcbf29ce484222325
xor r8d, r8d
movzx edx, byte [rax + r8 + 0x10]
movabs r10, 0x100000001b3
xor r11, rdx
add r8, rsi
imul r11, r10
cmp r8, 8
jb 0x180003948
mov rdi, qword [0x1804ba738]
and r11, r9
add r11, r11
cmp qword [rdi + r11*8], rbx
jne 0x180003986
mov qword [rdi + r11*8], rax
mov qword [rdi + r11*8 + 8], rax
jmp 0x1800039f5
mov r10, qword [rdi + r11*8 + 8]
mov rdx, qword [rax + 0x10]
cmp rdx, qword [r10 + 0x10]
jne 0x1800039ca
mov r10, qword [r10]
cmp r10, rax
je 0x18000397f
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 0x18000397f
mov r10, qword [r10 + 8]
cmp rdx, qword [r10 + 0x10]
je 0x180003a09
cmp qword [rdi + r11*8], r10
jne 0x1800039c0
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 0x180003a2f
mov r9, qword [0x1804ba750]
jmp 0x180003938
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 0x1800039f5
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret