joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180165620
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov dword [rsp + 0x18], r8d
push rdi
sub rsp, 0x30
mov rdi, rdx
test r8d, r8d
je 0x1801657f0
mov rcx, qword [0x18028c748]
mov edx, r8d
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rsi, rax
test rax, rax
je 0x1801657f0
mov rcx, rax
call fcn.1800b6850
cmp byte [rax], 0
jne 0x1801657f0
mov rdx, qword [rsi + 0x10]
lea rcx, [rsi + 0x10]
call qword [rdx + 0x10]
test rax, rax
je 0x180165686
cmp dword [rax + 0x28], 0xf7
je 0x1801656b0
mov rax, qword [rsi + 0x10]
lea rcx, [rsi + 0x10]
call qword [rax + 0x10]
test rax, rax
je 0x1801657f0
mov ecx, dword [rax + 0x28]
sub ecx, 0x56
je 0x1801656b0
sub ecx, 2
je 0x1801656b0
cmp ecx, 1
jne 0x1801657f0
mov rax, qword [rsi + 0x10]
lea rcx, [rsi + 0x10]
call qword [rax + 0x40]
test al, al
jne 0x1801656f7
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x48]
xor esi, esi
mov qword [rdi], rsi
mov dword [rdi + 8], esi
mov ecx, dword [rax]
mov dword [rdi], ecx
mov ecx, dword [rax + 4]
mov dword [rdi + 4], ecx
mov eax, dword [rax + 8]
mov dword [rdi + 8], eax
mov rax, rdi
mov byte [rdi + 0xc], 1
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
mov ecx, dword [rsp + 0x50]
movabs r8, 0x100000001b3
movabs rax, 0xcbf29ce484222325
movzx edx, cl
xor rdx, rax
xor esi, esi
movzx eax, byte [rsp + 0x51]
imul rdx, r8
xor rdx, rax
movzx eax, byte [rsp + 0x52]
imul rdx, r8
xor rdx, rax
movzx eax, byte [rsp + 0x53]
imul rdx, r8
xor rdx, rax
imul rdx, r8
mov r8, qword [0x180285c58]
and rdx, qword [0x180285c70]
add rdx, rdx
mov rax, qword [r8 + rdx*8 + 8]
cmp rax, qword [0x180285c48]
je 0x180165777
mov rdx, qword [r8 + rdx*8]
cmp ecx, dword [rax + 0x10]
je 0x18016577a
cmp rax, rdx
je 0x180165777
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x180165767
jmp 0x18016577a
mov rax, rsi
test rax, rax
je 0x1801657f0
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x20]
call fcn.18016a550
mov rcx, qword [0x18028c760]
mov rbx, qword [rax]
mov rax, qword [rcx]
call qword [rax + 0x70]
subss xmm0, dword [rbx + 0x20]
movss xmm1, dword [0x18029ff14]
comiss xmm1, xmm0
jb 0x1801657f0
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x20]
call fcn.18016a550
mov rcx, qword [rax]
mov qword [rdi], rsi
mov dword [rdi + 8], esi
mov eax, dword [rcx + 0x14]
mov dword [rdi], eax
mov eax, dword [rcx + 0x18]
mov dword [rdi + 4], eax
mov eax, dword [rcx + 0x1c]
mov dword [rdi + 8], eax
mov rax, rdi
mov byte [rdi + 0xc], 1
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
mov rbx, qword [rsp + 0x40]
mov rax, rdi
mov rsi, qword [rsp + 0x48]
mov byte [rdi + 0xc], 0
add rsp, 0x30
pop rdi
ret
Function at 0x18016aab0
Capabilities:
Hash data using fnv

Disassembly:
push rdi
sub rsp, 0x20
movabs rax, 0xfffffffffffffff
mov edi, 1
bsr rcx, rax
mov eax, edi
shl rax, cl
cmp rdx, rax
jbe 0x18016aae1
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 + 0x30], rbx
mov rbx, qword [0x180285c48]
or rax, rdi
bsr rcx, rax
mov r8, rbx
inc ecx
shl rdi, cl
lea rcx, [0x180285c58]
lea rdx, [rdi + rdi]
call fcn.1800a3a00
mov rax, qword [0x180285c48]
lea r9, [rdi - 1]
mov qword [0x180285c70], r9
mov qword [0x180285c78], rdi
mov rax, qword [rax]
mov rcx, rax
cmp rax, rbx
je 0x18016ac54
mov qword [rsp + 0x38], rsi
movabs rdi, 0x100000001b3
movabs rsi, 0xcbf29ce484222325
movzx edx, byte [rax + 0x11]
movzx r11d, byte [rax + 0x10]
mov rcx, qword [rcx]
xor r11, rsi
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x12]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x13]
imul r11, rdi
xor r11, rdx
imul r11, rdi
and r11, r9
shl r11, 4
add r11, qword [0x180285c58]
mov r9, qword [r11]
cmp r9, rbx
jne 0x18016aba0
mov qword [r11], rax
mov qword [r11 + 8], rax
jmp 0x18016ac15
mov rdx, qword [r11 + 8]
mov r8d, dword [rax + 0x10]
cmp r8d, dword [rdx + 0x10]
jne 0x18016abdd
mov r10, qword [rdx]
cmp r10, rax
je 0x18016abd7
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 0x18016ac15
cmp r9, rdx
je 0x18016abf1
mov rdx, qword [rdx + 8]
cmp r8d, dword [rdx + 0x10]
je 0x18016ac29
cmp r9, rdx
jne 0x18016abe2
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
je 0x18016ac4f
mov r9, qword [0x180285c70]
jmp 0x18016ab51
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 0x18016ac15
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x18016ac60
Capabilities:
Hash data using fnv

Disassembly:
push rdi
sub rsp, 0x20
mov rdi, rcx
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x18016ad0c
mov rax, qword [rdi + 0x38]
shr rax, 3
cmp rax, rcx
jbe 0x18016ac9a
mov rdx, qword [rdi + 8]
mov rcx, rdi
mov r8, rdx
mov rdx, qword [rdx]
add rsp, 0x20
pop rdi
jmp 0x18016ad20
mov rcx, qword [rdi + 8]
mov rax, qword [rcx + 8]
mov qword [rax], 0
mov rcx, qword [rcx]
test rcx, rcx
je 0x18016acda
mov qword [rsp + 0x38], rbx
nop word [rax + rax]
mov rbx, qword [rcx]
mov edx, 0x28
call fcn.1801d1c00
mov rcx, rbx
test rbx, rbx
jne 0x18016acc0
mov rbx, qword [rsp + 0x38]
mov rax, qword [rdi + 8]
lea r8, [rsp + 0x30]
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 + 0x30], rax
call fcn.1800a5d20
add rsp, 0x20
pop rdi
ret
push rbp
push rsi
push r14
sub rsp, 0x40
mov rbp, r8
mov r14, rdx
mov rsi, rcx
cmp rdx, r8
je 0x18016ae1e
mov rdx, qword [rcx + 0x18]
movabs r8, 0x100000001b3
mov qword [rsp + 0x60], rbx
movabs rax, 0xcbf29ce484222325
mov qword [rsp + 0x38], rdi
mov rbx, r14
mov qword [rsp + 0x30], r12
mov r12, qword [rcx + 8]
movzx ecx, byte [r14 + 0x10]
xor rcx, rax
mov qword [rsp + 0x28], r13
movzx eax, byte [r14 + 0x11]
mov r13, qword [r14 + 8]
imul rcx, r8
mov qword [rsp + 0x20], r15
mov r15, qword [rsi + 0x30]
xor rcx, rax
movzx eax, byte [r14 + 0x12]
imul rcx, r8
mov qword [rsp + 0x78], rdx
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 + 0x68], rax
mov rax, qword [r15 + 8]
mov qword [rsp + 0x70], rax
nop dword [rax + rax]
mov rcx, rbx
mov rdi, rbx
mov rbx, qword [rbx]
mov edx, 0x28
call fcn.1801d1c00
dec qword [rsi + 0x10]
cmp rdi, qword [rsp + 0x70]
je 0x18016ae2a
cmp rbx, rbp
jne 0x18016add0
cmp qword [rsp + 0x68], r14
jne 0x18016adfd
mov qword [r15], rbx
mov r12, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
mov r15, qword [rsp + 0x20]
mov qword [r13], rbx
mov qword [rbx + 8], r13
mov r13, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x60]
mov rax, rbp
add rsp, 0x40
pop r14
pop rsi
pop rbp
ret
cmp qword [rsp + 0x68], r14
jne 0x18016ae39
mov qword [r15], r12
mov rax, r12
jmp 0x18016ae3c
mov rax, r13
mov qword [r15 + 8], rax
cmp rbx, rbp
je 0x18016adfd
nop word [rax + rax]
movzx r15d, byte [rbx + 0x10]
movabs rdx, 0x100000001b3
movabs rax, 0xcbf29ce484222325
xor r15, rax
movzx eax, byte [rbx + 0x11]
imul r15, rdx
xor r15, rax
movzx eax, byte [rbx + 0x12]
imul r15, rdx
xor r15, rax
movzx eax, byte [rbx + 0x13]
imul r15, rdx
xor r15, rax
imul r15, rdx
and r15, qword [rsi + 0x30]
shl r15, 4
add r15, qword [rsp + 0x78]
mov r14, qword [r15 + 8]
mov rcx, rbx
mov rdi, rbx
mov rbx, qword [rbx]
mov edx, 0x28
call fcn.1801d1c00
dec qword [rsi + 0x10]
cmp rdi, r14
je 0x18016aec8
cmp rbx, rbp
jne 0x18016aea2
jmp 0x18016adfa
mov qword [r15], r12
mov qword [r15 + 8], r12
cmp rbx, rbp
jne 0x18016ae50
jmp 0x18016adfd
Function at 0x18016ad20
Capabilities:
Hash data using fnv

Disassembly:
push rdi
sub rsp, 0x20
mov rdi, rcx
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x18016ad0c
mov rax, qword [rdi + 0x38]
shr rax, 3
cmp rax, rcx
jbe 0x18016ac9a
mov rdx, qword [rdi + 8]
mov rcx, rdi
mov r8, rdx
mov rdx, qword [rdx]
add rsp, 0x20
pop rdi
jmp 0x18016ad20
mov rcx, qword [rdi + 8]
mov rax, qword [rcx + 8]
mov qword [rax], 0
mov rcx, qword [rcx]
test rcx, rcx
je 0x18016acda
mov qword [rsp + 0x38], rbx
nop word [rax + rax]
mov rbx, qword [rcx]
mov edx, 0x28
call fcn.1801d1c00
mov rcx, rbx
test rbx, rbx
jne 0x18016acc0
mov rbx, qword [rsp + 0x38]
mov rax, qword [rdi + 8]
lea r8, [rsp + 0x30]
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 + 0x30], rax
call fcn.1800a5d20
add rsp, 0x20
pop rdi
ret
push rbp
push rsi
push r14
sub rsp, 0x40
mov rbp, r8
mov r14, rdx
mov rsi, rcx
cmp rdx, r8
je 0x18016ae1e
mov rdx, qword [rcx + 0x18]
movabs r8, 0x100000001b3
mov qword [rsp + 0x60], rbx
movabs rax, 0xcbf29ce484222325
mov qword [rsp + 0x38], rdi
mov rbx, r14
mov qword [rsp + 0x30], r12
mov r12, qword [rcx + 8]
movzx ecx, byte [r14 + 0x10]
xor rcx, rax
mov qword [rsp + 0x28], r13
movzx eax, byte [r14 + 0x11]
mov r13, qword [r14 + 8]
imul rcx, r8
mov qword [rsp + 0x20], r15
mov r15, qword [rsi + 0x30]
xor rcx, rax
movzx eax, byte [r14 + 0x12]
imul rcx, r8
mov qword [rsp + 0x78], rdx
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 + 0x68], rax
mov rax, qword [r15 + 8]
mov qword [rsp + 0x70], rax
nop dword [rax + rax]
mov rcx, rbx
mov rdi, rbx
mov rbx, qword [rbx]
mov edx, 0x28
call fcn.1801d1c00
dec qword [rsi + 0x10]
cmp rdi, qword [rsp + 0x70]
je 0x18016ae2a
cmp rbx, rbp
jne 0x18016add0
cmp qword [rsp + 0x68], r14
jne 0x18016adfd
mov qword [r15], rbx
mov r12, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
mov r15, qword [rsp + 0x20]
mov qword [r13], rbx
mov qword [rbx + 8], r13
mov r13, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x60]
mov rax, rbp
add rsp, 0x40
pop r14
pop rsi
pop rbp
ret
cmp qword [rsp + 0x68], r14
jne 0x18016ae39
mov qword [r15], r12
mov rax, r12
jmp 0x18016ae3c
mov rax, r13
mov qword [r15 + 8], rax
cmp rbx, rbp
je 0x18016adfd
nop word [rax + rax]
movzx r15d, byte [rbx + 0x10]
movabs rdx, 0x100000001b3
movabs rax, 0xcbf29ce484222325
xor r15, rax
movzx eax, byte [rbx + 0x11]
imul r15, rdx
xor r15, rax
movzx eax, byte [rbx + 0x12]
imul r15, rdx
xor r15, rax
movzx eax, byte [rbx + 0x13]
imul r15, rdx
xor r15, rax
imul r15, rdx
and r15, qword [rsi + 0x30]
shl r15, 4
add r15, qword [rsp + 0x78]
mov r14, qword [r15 + 8]
mov rcx, rbx
mov rdi, rbx
mov rbx, qword [rbx]
mov edx, 0x28
call fcn.1801d1c00
dec qword [rsi + 0x10]
cmp rdi, r14
je 0x18016aec8
cmp rbx, rbp
jne 0x18016aea2
jmp 0x18016adfa
mov qword [r15], r12
mov qword [r15 + 8], r12
cmp rbx, rbp
jne 0x18016ae50
jmp 0x18016adfd
Function at 0x18016c500
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [rdx]
mov r8, rdx
mov dword [rcx], eax
mov r9, rcx
mov eax, dword [rdx + 4]
xor r10d, r10d
mov dword [rcx + 4], eax
mov eax, dword [rdx + 8]
mov dword [rcx + 8], eax
mov qword [rcx + 0xc], r10
mov dword [rcx + 0x14], r10d
mov eax, dword [rdx + 0xc]
mov dword [rcx + 0xc], eax
mov eax, dword [rdx + 0x10]
mov dword [rcx + 0x10], eax
mov eax, dword [rdx + 0x14]
mov dword [rcx + 0x14], eax
mov qword [rcx + 0x18], r10
mov dword [rcx + 0x20], r10d
mov eax, dword [rdx + 0x18]
mov dword [rcx + 0x18], eax
mov eax, dword [rdx + 0x1c]
mov dword [rcx + 0x1c], eax
mov eax, dword [rdx + 0x20]
mov dword [rcx + 0x20], eax
mov qword [rcx + 0x24], r10
mov dword [rcx + 0x2c], r10d
mov eax, dword [rdx + 0x24]
mov dword [rcx + 0x24], eax
mov eax, dword [rdx + 0x28]
mov dword [rcx + 0x28], eax
mov eax, dword [rdx + 0x2c]
mov dword [rcx + 0x2c], eax
mov eax, dword [rdx + 0x30]
mov dword [rcx + 0x30], eax
mov eax, dword [rdx + 0x34]
mov dword [rcx + 0x34], eax
mov eax, dword [rdx + 0x38]
mov dword [rcx + 0x38], eax
mov eax, dword [rdx + 0x3c]
mov dword [rcx + 0x3c], eax
mov eax, dword [rdx + 0x40]
mov dword [rcx + 0x40], eax
mov eax, dword [rdx + 0x44]
mov dword [rcx + 0x44], eax
mov rdx, qword [rdx + 0x58]
mov rcx, qword [r8 + 0x50]
mov rax, qword [r8 + 0x48]
mov qword [r8 + 0x58], r10
mov qword [r8 + 0x50], r10
mov qword [r8 + 0x48], r10
mov qword [r9 + 0x48], rax
mov qword [r9 + 0x50], rcx
mov qword [r9 + 0x58], rdx
mov rdx, qword [r8 + 0x70]
mov rcx, qword [r8 + 0x68]
mov rax, qword [r8 + 0x60]
mov qword [r8 + 0x70], r10
mov qword [r8 + 0x68], r10
mov qword [r8 + 0x60], r10
mov qword [r9 + 0x60], rax
mov qword [r9 + 0x68], rcx
mov qword [r9 + 0x70], rdx
mov rax, qword [r8 + 0x78]
mov rdx, qword [r8 + 0x88]
mov rcx, qword [r8 + 0x80]
mov qword [r8 + 0x88], r10
mov qword [r8 + 0x80], r10
mov qword [r8 + 0x78], r10
mov qword [r9 + 0x78], rax
mov qword [r9 + 0x80], rcx
mov qword [r9 + 0x88], rdx
mov eax, dword [r8 + 0x90]
mov dword [r9 + 0x90], eax
movzx eax, word [r8 + 0x94]
mov word [r9 + 0x94], ax
mov rax, qword [r8 + 0x98]
mov qword [r9 + 0x98], rax
movups xmm0, xmmword [r8 + 0xa0]
movups xmmword [r9 + 0xa0], xmm0
mov eax, dword [r8 + 0xb0]
mov dword [r9 + 0xb0], eax
mov eax, dword [r8 + 0xb4]
mov dword [r9 + 0xb4], eax
mov rax, qword [r8 + 0xb8]
mov rdx, qword [r8 + 0xc8]
mov rcx, qword [r8 + 0xc0]
mov qword [r8 + 0xc8], r10
mov qword [r8 + 0xc0], r10
mov qword [r8 + 0xb8], r10
mov qword [r9 + 0xb8], rax
mov rax, r9
mov qword [r9 + 0xc0], rcx
mov qword [r9 + 0xc8], rdx
ret
Function at 0x18016ef10
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov edx, dword [0x18028ab2c]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + rdx*8]
mov edx, dword [rcx + rax]
cmp dword [0x18028ccb4], edx
jle 0x18016eff1
lea rcx, [0x18028ccb4]
call fcn.1801d1cb0
cmp dword [0x18028ccb4], 0xffffffff
jne 0x18016eff1
mov rcx, qword [0x18028c720]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
xor r11d, r11d
test rax, rax
je 0x18016efde
mov r8, qword [r10 + 0x10]
mov rax, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rax
cmp byte [r8 + rax], r11b
jne 0x18016ef82
mov rdx, r11
test rax, rax
je 0x18016efc0
nop dword [rax]
nop word [rax + rax]
movsx ecx, byte [r8 + rdx]
xor ecx, r9d
imul r9d, ecx, 0x1000193
inc rdx
cmp rdx, rax
jb 0x18016efa0
cmp r9d, 0x7a1c884e
je 0x18016efcb
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x18016ef71
jmp 0x18016efde
lea r8, str.m_flMaxspeed
mov rdx, qword [r10 + 0x18]
call fcn.1801d1920
mov r11d, eax
mov dword [0x18028ccbc], r11d
lea rcx, [0x18028ccb4]
call fcn.1801d1c44
movsxd rax, dword [0x18028ccbc]
add rax, rbx
add rsp, 0x20
pop rbx
ret

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

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov edx, dword [0x18028ab2c]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + rdx*8]
mov edx, dword [rcx + rax]
cmp dword [0x18028ccfc], edx
jle 0x18016f0f1
lea rcx, [0x18028ccfc]
call fcn.1801d1cb0
cmp dword [0x18028ccfc], 0xffffffff
jne 0x18016f0f1
mov rcx, qword [0x18028c720]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
xor r11d, r11d
test rax, rax
je 0x18016f0de
mov r8, qword [r10 + 0x10]
mov rax, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rax
cmp byte [r8 + rax], r11b
jne 0x18016f082
mov rdx, r11
test rax, rax
je 0x18016f0c0
nop dword [rax]
nop word [rax + rax]
movsx ecx, byte [r8 + rdx]
xor ecx, r9d
imul r9d, ecx, 0x1000193
inc rdx
cmp rdx, rax
jb 0x18016f0a0
cmp r9d, 0x7a1c884e
je 0x18016f0cb
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x18016f071
jmp 0x18016f0de
lea r8, str.m_nWaterLevel
mov rdx, qword [r10 + 0x18]
call fcn.1801d1920
mov r11d, eax
mov dword [0x18028ccd0], r11d
lea rcx, [0x18028ccfc]
call fcn.1801d1c44
movsxd rax, dword [0x18028ccd0]
cmp byte [rax + rbx], 1
seta al
add rsp, 0x20
pop rbx
ret
Function at 0x18016f110
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov edx, dword [0x18028ab2c]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + rdx*8]
mov edx, dword [rcx + rax]
cmp dword [0x18028cd14], edx
jle 0x18016f1f4
lea rcx, [0x18028cd14]
call fcn.1801d1cb0
cmp dword [0x18028cd14], 0xffffffff
jne 0x18016f1f4
mov rcx, qword [0x18028c720]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
xor r11d, r11d
test rax, rax
je 0x18016f1de
mov r8, qword [r10 + 0x10]
mov rax, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rax
cmp byte [r8 + rax], r11b
jne 0x18016f182
mov rdx, r11
test rax, rax
je 0x18016f1c0
nop dword [rax]
nop word [rax + rax]
movsx ecx, byte [r8 + rdx]
xor ecx, r9d
imul r9d, ecx, 0x1000193
inc rdx
cmp rdx, rax
jb 0x18016f1a0
cmp r9d, 0x7c5cc931
je 0x18016f1cb
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x18016f171
jmp 0x18016f1de
lea r8, str.m_nWaterLevel
mov rdx, qword [r10 + 0x18]
call fcn.1801d1920
mov r11d, eax
lea eax, [r11 - 4]
mov dword [0x18028ccd8], eax
lea rcx, [0x18028cd14]
call fcn.1801d1c44
movsxd rax, dword [0x18028ccd8]
add rax, rbx
add rsp, 0x20
pop rbx
ret

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

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov ebx, edx
mov rdi, rcx
mov r8d, dword [0x18028ab2c]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + r8*8]
mov r8d, dword [rcx + rax]
cmp dword [0x18028cd1c], r8d
jle 0x18016f301
lea rcx, [0x18028cd1c]
call fcn.1801d1cb0
cmp dword [0x18028cd1c], 0xffffffff
jne 0x18016f301
mov rcx, qword [0x18028c720]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
xor r11d, r11d
test rax, rax
je 0x18016f2ee
nop word [rax + rax]
mov r8, qword [r10 + 0x10]
mov rax, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rax
cmp byte [r8 + rax], r11b
jne 0x18016f291
mov rdx, r11
test rax, rax
je 0x18016f2d0
nop dword [rax]
nop word [rax + rax]
movsx ecx, byte [r8 + rdx]
xor ecx, r9d
imul r9d, ecx, 0x1000193
inc rdx
cmp rdx, rax
jb 0x18016f2b0
cmp r9d, 0x3369e751
je 0x18016f2db
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x18016f280
jmp 0x18016f2ee
lea r8, str.m_iScore
mov rdx, qword [r10 + 0x18]
call fcn.1801d1920
mov r11d, eax
mov dword [0x18028ccf8], r11d
lea rcx, [0x18028cd1c]
call fcn.1801d1c44
lea eax, [rbx*4]
cdqe
movsxd rdx, dword [0x18028ccf8]
add rax, rdi
mov eax, dword [rdx + rax]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x180172ff0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x20
mov qword [rsp + 0x50], rbp
mov r15, r9
lea rbp, [r8 - 1]
mov qword [rsp + 0x58], r13
sar rbp, 1
mov r14, r8
mov rsi, rdx
mov rdi, rcx
mov r12, rdx
mov r10, rdx
cmp rdx, rbp
jge 0x180173082
nop dword [rax]
lea rbx, [r10 + r10]
lea rax, [rbx + 2]
lea rax, [rax + rax*2]
lea rdx, [rdi + rax*4]
lea r8, [rdx - 0xc]
lea rcx, [rsp + 0x70]
call fcn.180172af0
movzx eax, al
lea rcx, [rsi + rsi*2]
xor rax, 1
lea r10, [rbx + 1]
add r10, rax
mov rsi, r10
lea rdx, [r10 + r10*2]
mov eax, dword [rdi + rdx*4]
mov dword [rdi + rcx*4], eax
mov eax, dword [rdi + rdx*4 + 4]
mov dword [rdi + rcx*4 + 4], eax
mov eax, dword [rdi + rdx*4 + 8]
mov dword [rdi + rcx*4 + 8], eax
cmp r10, rbp
jl 0x180173030
cmp r10, rbp
mov rbp, qword [rsp + 0x50]
jne 0x1801730b5
test r14b, 1
jne 0x1801730b5
lea rcx, [rsi + rsi*2]
lea rdx, [r14 + r14*2]
mov eax, dword [rdi + rdx*4 - 0xc]
lea rsi, [r14 - 1]
mov dword [rdi + rcx*4], eax
mov eax, dword [rdi + rdx*4 - 8]
mov dword [rdi + rcx*4 + 4], eax
mov eax, dword [rdi + rdx*4 - 4]
mov dword [rdi + rcx*4 + 8], eax
mov rax, qword [rsp + 0x70]
mov r13, qword [rsp + 0x58]
mov qword [rsp + 0x70], rax
cmp r12, rsi
jge 0x180173115
nop dword [rax]
lea rbx, [rsi - 1]
mov r8, r15
sar rbx, 1
lea rcx, [rsp + 0x70]
lea rax, [rbx + rbx*2]
lea r14, [rdi + rax*4]
mov rdx, r14
call fcn.180172af0
test al, al
je 0x180173115
mov eax, dword [r14]
lea rcx, [rsi + rsi*2]
mov dword [rdi + rcx*4], eax
mov rsi, rbx
mov eax, dword [r14 + 4]
mov dword [rdi + rcx*4 + 4], eax
mov eax, dword [r14 + 8]
mov dword [rdi + rcx*4 + 8], eax
cmp r12, rbx
jl 0x1801730d0
mov eax, dword [r15]
lea rcx, [rsi + rsi*2]
mov rbx, qword [rsp + 0x60]
mov dword [rdi + rcx*4], eax
mov eax, dword [r15 + 4]
mov dword [rdi + rcx*4 + 4], eax
mov eax, dword [r15 + 8]
mov dword [rdi + rcx*4 + 8], eax
add rsp, 0x20
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
Function at 0x180178640
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov ebx, edx
mov rdi, rcx
mov r8d, dword [0x18028ab2c]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + r8*8]
mov r8d, dword [rcx + rax]
cmp dword [0x18028cd50], r8d
jle 0x180178731
lea rcx, [0x18028cd50]
call fcn.1801d1cb0
cmp dword [0x18028cd50], 0xffffffff
jne 0x180178731
mov rcx, qword [0x18028c720]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
xor r11d, r11d
test rax, rax
je 0x18017871e
nop word [rax + rax]
mov r8, qword [r10 + 0x10]
mov rax, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rax
cmp byte [r8 + rax], r11b
jne 0x1801786c1
mov rdx, r11
test rax, rax
je 0x180178700
nop dword [rax]
nop word [rax + rax]
movsx ecx, byte [r8 + rdx]
xor ecx, r9d
imul r9d, ecx, 0x1000193
inc rdx
cmp rdx, rax
jb 0x1801786e0
cmp r9d, 0x3369e751
je 0x18017870b
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x1801786b0
jmp 0x18017871e
lea r8, str.m_iTeam
mov rdx, qword [r10 + 0x18]
call fcn.1801d1920
mov r11d, eax
mov dword [0x18028cd34], r11d
lea rcx, [0x18028cd50]
call fcn.1801d1c44
lea eax, [rbx*4]
cdqe
movsxd rdx, dword [0x18028cd34]
add rax, rdi
mov eax, dword [rdx + rax]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

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

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
movsxd rbx, edx
mov rdi, rcx
mov r8d, dword [0x18028ab2c]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + r8*8]
mov r8d, dword [rcx + rax]
cmp dword [0x18028cd30], r8d
jle 0x180178851
lea rcx, [0x18028cd30]
call fcn.1801d1cb0
cmp dword [0x18028cd30], 0xffffffff
jne 0x180178851
mov rcx, qword [0x18028c720]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
xor r11d, r11d
test rax, rax
je 0x18017883e
nop dword [rax + rax]
mov r8, qword [r10 + 0x10]
mov rax, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rax
cmp byte [r8 + rax], r11b
jne 0x1801787e1
mov rdx, r11
test rax, rax
je 0x180178820
nop dword [rax]
nop word [rax + rax]
movsx ecx, byte [r8 + rdx]
xor ecx, r9d
imul r9d, ecx, 0x1000193
inc rdx
cmp rdx, rax
jb 0x180178800
cmp r9d, 0x3369e751
je 0x18017882b
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x1801787d0
jmp 0x18017883e
lea r8, str.m_bValid
mov rdx, qword [r10 + 0x18]
call fcn.1801d1920
mov r11d, eax
mov dword [0x18028cd38], r11d
lea rcx, [0x18028cd30]
call fcn.1801d1c44
movsxd rax, dword [0x18028cd38]
add rax, rdi
movzx eax, byte [rbx + rax]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x180178870
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x10], rdx
push rdi
sub rsp, 0x30
mov rsi, r8
mov rbx, rdx
mov rdx, qword [rdx + 0x10]
test rdx, rdx
je 0x180178937
lea rdi, [rcx + 0x90]
mov r10, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x1801788ab
mov r10, qword [rbx]
xor ecx, ecx
movabs r9, 0xcbf29ce484222325
test rdx, rdx
je 0x1801788e4
movabs r8, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [r10 + rcx]
xor r9, rax
imul r9, r8
inc rcx
cmp rcx, rdx
jb 0x1801788d0
mov r8, rbx
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.1800a6fe0
cmp qword [rax + 8], 0
je 0x180178937
mov r8, rbx
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.180145d00
mov rax, qword [rax]
movsd xmm0, qword [rax + 0x30]
movsd qword [rsi], xmm0
mov eax, dword [rax + 0x38]
mov dword [rsi + 8], eax
mov rcx, rbx
call fcn.1800a3670
mov al, 1
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov rcx, rbx
call fcn.1800a3670
xor al, al
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret