joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180035bc4
Capabilities:
Enumerate gui resources

Disassembly:
push rbp
push rbx
lea rbp, [rsp - 0x4f]
sub rsp, 0xb8
lea rcx, str.GameAssembly.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rcx, str.UnityPlayer.dll
mov qword [0x1801b5960], rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call fcn.180009294
call fcn.180009b38
call fcn.18000aba4
jmp 0x180035c19
lea rdx, [0x1801b59e8]
lea rcx, [0x180035d7c]
call qword [sym.imp.USER32.dll_EnumWindows]
mov rbx, qword [0x1801b59e8]
test rbx, rbx
je 0x180035c05
and qword [rbp + 0x6f], 0
lea rcx, [rbp - 9]
and qword [rbp + 0x7f], 0
xor edx, edx
and qword [rbp + 0x77], 0
mov dword [rbp + 0x67], 0xb000
lea r8d, [rdx + 0x48]
call sub.VCRUNTIME140.dll_memset
and dword [rbp + 0xb], 0
lea rax, [rbp + 0x77]
and dword [rbp + 0xf], 0
mov edx, 1
and dword [rbp + 0x33], 0
xor r9d, r9d
mov qword [rsp + 0x58], rax
xor r8d, r8d
and qword [rsp + 0x50], 0
lea rax, [rbp + 0x7f]
mov qword [rsp + 0x48], rax
xor ecx, ecx
lea rax, [rbp + 0x6f]
mov dword [rbp + 0x1f], edx
mov qword [rsp + 0x40], rax
lea rax, [rbp - 9]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0x67]
mov dword [rsp + 0x30], 7
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rax
mov dword [rbp + 7], 0x1c
mov dword [rbp + 0x1b], 0x20
mov qword [rbp + 0x27], rbx
mov dword [rbp + 0x13], edx
mov dword [rbp + 0x2f], edx
call qword [sym.imp.d3d11.dll_D3D11CreateDeviceAndSwapChain]
test eax, eax
jns 0x180035ce8
mov r9d, 0x10
lea r8, str.Failure
lea rdx, str.Failed_to_create_D3D11_device_and_swap_chain
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x180035d71
mov rax, qword [rbp + 0x6f]
mov rcx, qword [rbp + 0x77]
mov rbx, qword [rax]
mov rax, qword [rbx + 0x40]
mov qword [0x1801b5990], rax
mov rax, qword [rbx + 0x68]
mov qword [0x1801b59b8], rax
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp + 0x7f]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp + 0x6f]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [0x1801b59e8]
lea r8, [0x18003519c]
mov edx, 0xfffffffc
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
mov rcx, qword [rbx + 0x40]
lea r8, [0x180035330]
lea rdx, [0x1801b5990]
mov qword [0x1801b5b20], rax
call fcn.1800274d8
mov rcx, qword [rbx + 0x68]
lea r8, [0x1800352a8]
lea rdx, [0x1801b59b8]
call fcn.1800274d8
add rsp, 0xb8
pop rbx
pop rbp
ret

Function at 0x180035df0
Capabilities:
Create thread

Disassembly:
sub rsp, 0x38
cmp edx, 1
je 0x180035dfd
xor al, al
jmp 0x180035e2c
and qword [rsp + 0x28], 0
lea r8, [0x180035dcc]
and dword [rsp + 0x20], 0
mov r9, rcx
xor ecx, ecx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x180035e2a
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
add rsp, 0x38
ret
Function at 0x180037968
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x20], rsi
mov qword [rax + 0x18], r8
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
xor edi, edi
movaps xmmword [rax - 0x38], xmm6
movaps xmm6, xmm3
mov r13d, edx
mov rbx, rcx
test rcx, rcx
je 0x180037b23
mov rax, qword gs:[0x58]
mov r9d, dword [0x1801b5354]
mov ecx, 4
mov r12, qword [rax + r9*8]
mov eax, dword [r12 + rcx]
cmp dword [0x1801b689c], eax
jg 0x180037b49
jmp 0x1800379d0
mov ecx, 4
mov rax, qword [0x1801b62f0]
mov rbp, qword [rax + rbx]
test rbp, rbp
je 0x180037b23
mov rax, qword [rbp + 0x28]
mov r15d, 1
cmp dword [rax + 0x10], r15d
jle 0x180037b23
lea r14d, [r15 + 0x27]
mov rax, qword [rax + 0x18]
mov rsi, qword [r14 + rax]
test rsi, rsi
je 0x180037b05
mov eax, dword [r12 + rcx]
cmp dword [0x1801b67f0], eax
jg 0x180037b84
mov rax, qword [0x1801b6580]
cmp byte [rax + rsi], dil
jne 0x180037b05
mov r8, qword [rsi]
test r8, r8
jne 0x180037a3a
mov edx, edi
jmp 0x180037a79
mov r8, qword [r8 + 0x10]
or edx, 0xffffffff
or rax, 0xffffffffffffffff
inc rax
cmp byte [r8 + rax], dil
jne 0x180037a45
test eax, eax
je 0x180037a77
mov r9d, eax
movsx ecx, byte [r8]
mov eax, edx
xor rcx, rax
shr edx, 8
movzx eax, cl
inc r8
lea rcx, [0x180158d00]
xor edx, dword [rcx + rax*4]
sub r9, 1
jne 0x180037a55
not edx
cmp edx, r13d
jne 0x180037b05
mov rcx, rsi
call fcn.18000bb9c
lea rdx, [rsp + 0x30]
mov rcx, rax
call fcn.18000b7d0
mov rcx, qword [rsp + 0xa0]
mov rbx, rax
call fcn.18000bb9c
lea rdx, [rsp + 0x3c]
mov rcx, rax
call fcn.18000b7d0
movss xmm1, dword [rbx]
movss xmm2, dword [rbx + 4]
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
movsd qword [rsp + 0x20], xmm0
subss xmm2, dword [rsp + 0x24]
movss xmm0, dword [rbx + 8]
subss xmm1, dword [rsp + 0x20]
mov dword [rsp + 0x28], eax
subss xmm0, dword [rsp + 0x28]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm2
comiss xmm0, xmm6
jbe 0x180037b20
mov rax, qword [rbp + 0x28]
inc r15d
add r14, 8
cmp r15d, dword [rax + 0x10]
jge 0x180037b23
mov ecx, 4
jmp 0x1800379fc
mov rdi, rsi
movaps xmm6, xmmword [rsp + 0x50]
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rax, rdi
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
lea rcx, [0x1801b689c]
call fcn.18006fb50
cmp dword [0x1801b689c], 0xffffffff
jne 0x1800379cb
mov ecx, 0xae00109b
call fcn.1800086cc
lea rcx, [0x1801b689c]
mov qword [0x1801b62f0], rax
call fcn.18006faf0
jmp 0x1800379cb
lea rcx, [0x1801b67f0]
call fcn.18006fb50
cmp dword [0x1801b67f0], 0xffffffff
jne 0x180037a1d
mov ecx, 0x33f7a6a3
call fcn.1800086cc
lea rcx, [0x1801b67f0]
mov qword [0x1801b6580], rax
call fcn.18006faf0
jmp 0x180037a1d
Function at 0x180037bc0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
xor edi, edi
mov r13, r8
mov rbx, rcx
test rcx, rcx
je 0x180037d6a
mov rax, qword gs:[0x58]
mov edx, dword [0x1801b5354]
mov ecx, 4
mov r12, qword [rax + rdx*8]
mov eax, dword [r12 + rcx]
cmp dword [0x1801b689c], eax
jg 0x180037d8b
jmp 0x180037c1c
mov ecx, 4
mov rax, qword [0x1801b62f0]
mov rbp, qword [rax + rbx]
test rbp, rbp
je 0x180037d6a
mov rax, qword [rbp + 0x28]
mov r14d, 1
cmp dword [rax + 0x10], r14d
jle 0x180037d6a
lea r15d, [r14 + 0x27]
mov rax, qword [rax + 0x18]
mov rsi, qword [r15 + rax]
test rsi, rsi
je 0x180037d4c
mov eax, dword [r12 + rcx]
cmp dword [0x1801b67f0], eax
jg 0x180037dc6
mov rax, qword [0x1801b6580]
cmp byte [rax + rsi], dil
jne 0x180037d4c
mov r8, qword [rsi]
test r8, r8
je 0x180037d4c
mov r8, qword [r8 + 0x10]
or edx, 0xffffffff
or rax, 0xffffffffffffffff
inc rax
cmp byte [r8 + rax], dil
jne 0x180037c91
test eax, eax
je 0x180037d4c
mov r9d, eax
movsx ecx, byte [r8]
mov eax, edx
xor rcx, rax
shr edx, 8
movzx eax, cl
inc r8
lea rcx, [0x180158d00]
xor edx, dword [rcx + rax*4]
sub r9, 1
jne 0x180037ca5
not edx
cmp edx, 0x6a7b9164
jne 0x180037d4c
mov rcx, rsi
call fcn.18000bb9c
lea rdx, [rsp + 0x30]
mov rcx, rax
call fcn.18000b7d0
mov rcx, r13
mov rbx, rax
call fcn.18000bb9c
lea rdx, [rsp + 0x3c]
mov rcx, rax
call fcn.18000b7d0
movss xmm1, dword [rbx]
movss xmm2, dword [rbx + 4]
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
movsd qword [rsp + 0x20], xmm0
subss xmm2, dword [rsp + 0x24]
subss xmm1, dword [rsp + 0x20]
movss xmm0, dword [rbx + 8]
mov dword [rsp + 0x28], eax
subss xmm0, dword [rsp + 0x28]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
comiss xmm2, dword [0x1801630c4]
jbe 0x180037d67
mov rax, qword [rbp + 0x28]
inc r14d
add r15, 8
cmp r14d, dword [rax + 0x10]
jge 0x180037d6a
mov ecx, 4
jmp 0x180037c48
mov rdi, rsi
lea r11, [rsp + 0x50]
mov rax, rdi
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
lea rcx, [0x1801b689c]
call fcn.18006fb50
cmp dword [0x1801b689c], 0xffffffff
jne 0x180037c17
mov ecx, 0xae00109b
call fcn.1800086cc
lea rcx, [0x1801b689c]
mov qword [0x1801b62f0], rax
call fcn.18006faf0
jmp 0x180037c17
lea rcx, [0x1801b67f0]
call fcn.18006fb50
cmp dword [0x1801b67f0], 0xffffffff
jne 0x180037c69
mov ecx, 0x33f7a6a3
call fcn.1800086cc
lea rcx, [0x1801b67f0]
mov qword [0x1801b6580], rax
call fcn.18006faf0
jmp 0x180037c69
Function at 0x18003c514
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 0x18003c56e
mov r11b, 0x23
lea rdi, [0x180159390]
movzx ebx, byte [r10]
dec rdx
inc r10
cmp bl, r11b
jne 0x18003c558
cmp rdx, 2
jb 0x18003c558
cmp byte [r10], r11b
jne 0x18003c558
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 0x18003c536
jmp 0x18003c5af
mov dl, byte [rcx]
inc r10
test dl, dl
je 0x18003c5af
mov r11b, 0x23
lea rdi, [0x180159390]
cmp dl, r11b
jne 0x18003c593
cmp byte [r10], r11b
jne 0x18003c593
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 0x18003c581
mov rbx, qword [rsp + 8]
not r9d
mov rdi, qword [rsp + 0x10]
mov eax, r9d
ret

Function at 0x18003c6e4
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push r14
sub rsp, 0x20
mov r14, r8
test r8, r8
je 0x18003c705
and qword [r8], 0
lea rdx, [0x180161c08]
call fcn.18003c5c0
mov rbx, rax
test rax, rax
je 0x18003c7f3
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
mov esi, eax
cmp eax, 0xffffffff
je 0x18003c7ea
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 0x18003c7ea
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
movsxd rdi, eax
cmp edi, 0xffffffff
je 0x18003c7ea
xor r8d, r8d
mov edx, esi
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x18003c7ea
cmp rdi, 0xffffffffffffffff
je 0x18003c7ea
mov rax, qword [0x1801b5b38]
test rax, rax
je 0x18003c787
inc dword [rax + 0xf4]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, rax
test rax, rax
je 0x18003c7ea
mov r9, rbx
mov r8, rdi
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, rdi
je 0x18003c7d7
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rax, qword [0x1801b5b38]
test rax, rax
je 0x18003c7cc
dec dword [rax + 0xf4]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x18003c7f3
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
test r14, r14
je 0x18003c7e5
mov qword [r14], rdi
mov rax, rsi
jmp 0x18003c7f5
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 rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
add rsp, 0x20
pop r14
ret
Function at 0x18003e9a4
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov dword [rsp + 0x10], edx
push rbx
sub rsp, 0x20
movsxd r8, dword [rcx + 0xf0]
mov r11d, 4
mov rax, qword [rcx + 0xf8]
mov r9, rcx
mov r10d, r11d
mov ebx, dword [rax + r8*4 - 4]
lea r8, [rsp + 0x38]
not ebx
movzx eax, byte [r8]
inc r8
movzx ecx, bl
xor rcx, rax
shr ebx, 8
lea rax, [0x180159390]
xor ebx, dword [rax + rcx*4]
sub r10, 1
jne 0x18003e9d3
mov rcx, qword [r9]
not ebx
cmp dword [rcx + 0x3f10], ebx
jne 0x18003ea0d
movsxd r8, edx
mov ecx, ebx
mov edx, r11d
call fcn.18004f0bc
mov eax, ebx
add rsp, 0x20
pop rbx
ret

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

Disassembly:
sub rsp, 0x18
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, [0x180159390]
movzx edx, r8b
inc r9
xor rdx, rcx
shr r8d, 8
xor r8d, dword [rax + rdx*4]
sub r10, 1
jne 0x18003ea86
not r8d
mov eax, r8d
add rsp, 0x18
ret
Function at 0x18004dd4c
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
cmp qword [rcx + 0x5c60], 0
lea rbx, [rcx + 0x5c68]
mov rsi, r8
mov rbp, rdx
mov rdi, rcx
je 0x18004dde5
mov r9d, dword [rbx + 4]
test r9d, r9d
jns 0x18004dd9d
mov eax, r9d
mov rcx, rbx
cdq
sub eax, edx
xor edx, edx
sar eax, 1
add eax, r9d
test eax, eax
cmovg edx, eax
call fcn.18004fddc
and dword [rbx], 0
mov r8, rsi
mov rdx, rbp
mov rcx, rbx
call fcn.18003d094
mov eax, dword [rbx]
mov edx, 1
mov r9, qword [rdi + 0x5c60]
lea ecx, [rax - 1]
neg eax
sbb eax, eax
and eax, ecx
lea rcx, [0x1801b5b12]
movsxd r8, eax
mov rax, qword [rdi + 0x5c70]
test rax, rax
cmovne rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
jmp 0x18004dded
mov rcx, rbx
call fcn.18003d094
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret

Function at 0x18004e4b0
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
mov rax, qword [0x1801b5b38]
mov rbx, rcx
and dword [rax + 0x5bc4], 0
test rcx, rcx
je 0x18004e519
and qword [rsp + 0x30], 0
lea rcx, [rsp + 0x30]
call fcn.18004e524
lea rdx, [0x180161c0c]
mov rcx, rbx
mov rdi, rax
call fcn.18003c5c0
mov rbx, rax
test rax, rax
je 0x18004e519
mov r8, qword [rsp + 0x30]
mov r9, rax
mov edx, 1
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x18006a980
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 r14
sub rsp, 0x30
cmp qword [r8 + 0x18], 0x10
mov rsi, rdx
mov rdx, r8
mov rbx, r8
jb 0x18006a9ac
mov rdx, qword [r8]
xor ecx, ecx
movabs rbp, 0xcbf29ce484222325
cmp qword [r8 + 0x10], rcx
jbe 0x18006a9dc
movzx eax, byte [rcx + rdx]
movabs r8, 0x100000001b3
xor rbp, rax
inc rcx
imul rbp, r8
cmp rcx, qword [rbx + 0x10]
jb 0x18006a9be
mov r9, rbp
lea rdx, [rsp + 0x20]
mov r8, rbx
call fcn.18006b120
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x18006aa02
mov qword [rsi], rax
mov byte [rsi + 8], 0
jmp 0x18006abc7
movabs rax, 0x492492492492492
cmp qword [0x1801b6e10], rax
jne 0x18006aa23
lea rcx, [0x18015d9e0]
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov ecx, 0x38
call fcn.18006f980
mov rdx, rbx
mov rdi, rax
lea rcx, [rax + 0x10]
call fcn.180001ea4
mov ecx, dword [rbx + 0x20]
xorps xmm1, xmm1
mov dword [rdi + 0x30], ecx
mov r9, qword [0x1801b6e10]
lea rcx, [r9 + 1]
test rcx, rcx
js 0x18006aa5c
cvtsi2ss xmm1, rcx
jmp 0x18006aa71
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
mov rdx, qword [0x1801b6e38]
xorps xmm2, xmm2
test rdx, rdx
js 0x18006aa87
cvtsi2ss xmm2, rdx
jmp 0x18006aa9f
mov rax, rdx
mov rcx, rdx
shr rcx, 1
and eax, 1
or rcx, rax
cvtsi2ss xmm2, rcx
addss xmm2, xmm2
movss xmm3, dword [0x1801b6e00]
movaps xmm0, xmm1
divss xmm0, xmm2
comiss xmm3, xmm0
jae 0x18006ab61
divss xmm1, xmm3
cvttss2si ecx, xmm1
cmp ecx, 0x80000000
je 0x18006aae8
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
je 0x18006aae8
unpcklps xmm1, xmm1
movmskps eax, xmm1
and eax, 1
xor eax, 1
add ecx, eax
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movss xmm0, dword [0x180163224]
xor ecx, ecx
comiss xmm1, xmm0
jb 0x18006ab0d
subss xmm1, xmm0
comiss xmm1, xmm0
jae 0x18006ab0d
movabs rax, 0x8000000000000000
mov rcx, rax
cvttss2si rax, xmm1
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rdx, rcx
jae 0x18006ab3b
cmp rdx, 0x200
jae 0x18006ab38
shl rdx, 3
cmp rdx, rcx
jae 0x18006ab3b
mov rdx, rcx
call fcn.18006abe8
mov r9, rbp
lea r8, [rdi + 0x10]
lea rdx, [rsp + 0x20]
call fcn.18006b120
mov r9, qword [0x1801b6e10]
movups xmm0, xmmword [rax]
movdqu xmmword [rsp + 0x20], xmm0
mov rdx, qword [rsp + 0x20]
inc r9
mov r8, qword [rdx + 8]
mov qword [0x1801b6e10], r9
mov qword [rdi], rdx
mov qword [rdi + 8], r8
mov qword [r8], rdi
mov qword [rdx + 8], rdi
mov rax, qword [0x1801b6e30]
mov rcx, qword [0x1801b6e18]
and rax, rbp
add rax, rax
mov r9, qword [rcx + rax*8]
cmp r9, qword [0x1801b6e08]
jne 0x18006aba9
mov qword [rcx + rax*8], rdi
jmp 0x18006abbb
cmp r9, rdx
jne 0x18006abb4
mov qword [rcx + rax*8], rdi
jmp 0x18006abc0
cmp qword [rcx + rax*8 + 8], r8
jne 0x18006abc0
mov qword [rcx + rax*8 + 8], rdi
mov qword [rsi], rdi
mov byte [rsi + 8], 1
mov rbx, qword [rsp + 0x40]
mov rax, rsi
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r14
ret
Function at 0x18006abe8
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, 0x20
movabs rax, 0xfffffffffffffff
bsr rcx, rax
mov eax, 1
shl rax, cl
cmp rdx, rax
jbe 0x18006ac2e
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov rbp, qword [0x1801b6e08]
lea rax, [rdx - 1]
or rax, 1
mov ebx, 1
bsr rcx, rax
mov r8, rbp
inc ecx
shl rbx, cl
lea rcx, [0x1801b6e18]
lea rdx, [rbx + rbx]
call fcn.180004c90
lea r8, [rbx - 1]
mov qword [0x1801b6e38], rbx
mov rbx, qword [0x1801b6e08]
mov qword [0x1801b6e30], r8
mov rbx, qword [rbx]
mov rdi, rbx
cmp rbx, rbp
je 0x18006ade8
mov rdi, qword [rdi]
lea r15, [rbx + 0x10]
cmp qword [r15 + 0x18], 0x10
mov rdx, r15
jb 0x18006ac9a
mov rdx, qword [r15]
xor ecx, ecx
movabs r14, 0xcbf29ce484222325
cmp qword [r15 + 0x10], rcx
jbe 0x18006acca
movzx eax, byte [rcx + rdx]
movabs r9, 0x100000001b3
xor r14, rax
inc rcx
imul r14, r9
cmp rcx, qword [r15 + 0x10]
jb 0x18006acac
mov r12, qword [0x1801b6e18]
and r14, r8
add r14, r14
cmp qword [r12 + r14*8], rbp
jne 0x18006aceb
mov qword [r12 + r14*8], rbx
mov qword [r12 + r14*8 + 8], rbx
jmp 0x18006add4
mov rsi, qword [r12 + r14*8 + 8]
lea rdx, [rsi + 0x10]
cmp qword [rdx + 0x18], 0x10
mov rax, qword [rdx + 0x10]
jb 0x18006ad02
mov rdx, qword [rdx]
cmp qword [r15 + 0x18], 0x10
mov rcx, r15
jb 0x18006ad0f
mov rcx, qword [r15]
cmp qword [r15 + 0x10], rax
jne 0x18006ad4d
mov r8, qword [r15 + 0x10]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x18006ad4d
mov rax, qword [rsi]
cmp rax, rbx
je 0x18006ace1
mov r8, qword [rbx + 8]
mov qword [r8], rdi
mov rdx, qword [rdi + 8]
mov qword [rdx], rax
mov rcx, qword [rax + 8]
mov qword [rcx], rbx
mov qword [rax + 8], rdx
mov qword [rdi + 8], r8
mov qword [rbx + 8], rcx
jmp 0x18006ace1
cmp qword [r12 + r14*8], rsi
je 0x18006adaf
mov rsi, qword [rsi + 8]
lea rdx, [rsi + 0x10]
cmp qword [rdx + 0x18], 0x10
mov rax, qword [rdx + 0x10]
jb 0x18006ad69
mov rdx, qword [rdx]
cmp qword [r15 + 0x18], 0x10
mov rcx, r15
jb 0x18006ad76
mov rcx, qword [r15]
cmp qword [r15 + 0x10], rax
jne 0x18006ad4d
mov r8, qword [r15 + 0x10]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x18006ad4d
mov r8, qword [rsi]
mov rdx, qword [rbx + 8]
mov qword [rdx], rdi
mov rcx, qword [rdi + 8]
mov qword [rcx], r8
mov rax, qword [r8 + 8]
mov qword [rax], rbx
mov qword [r8 + 8], rcx
mov qword [rdi + 8], rdx
mov qword [rbx + 8], rax
jmp 0x18006add4
mov rdx, qword [rbx + 8]
mov qword [rdx], rdi
mov rcx, qword [rdi + 8]
mov qword [rcx], rsi
mov rax, qword [rsi + 8]
mov qword [rax], rbx
mov qword [rsi + 8], rcx
mov qword [rdi + 8], rdx
mov qword [rbx + 8], rax
mov qword [r12 + r14*8], rbx
mov rbx, rdi
cmp rdi, rbp
je 0x18006ade8
mov r8, qword [0x1801b6e30]
jmp 0x18006ac86
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
Function at 0x18006b1d4
Capabilities:
Allocate or change rwx memory
Get system information on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rdi, rcx
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov rsi, qword [rbp - 0x58]
cmp rdi, 0x40000000
jbe 0x18006b21e
lea rax, [rdi - 0x40000000]
cmp rsi, rax
cmovb rsi, rax
mov rbx, qword [0x1801b5b48]
lea r15, [rdi + 0x40000000]
cmp qword [rbp - 0x50], r15
cmovbe r15, qword [rbp - 0x50]
sub r15, 0xfff
test rbx, rbx
je 0x18006b25b
cmp rbx, rsi
jb 0x18006b256
cmp rbx, r15
jae 0x18006b256
cmp qword [rbx + 8], 0
jne 0x18006b3b7
mov rbx, qword [rbx]
jmp 0x18006b23c
mov r14, rdi
cmp rdi, rsi
jb 0x18006b2df
mov r12d, dword [rbp - 0x38]
xor edx, edx
mov rax, r14
div r12
sub r14, rdx
sub r14, r12
cmp r14, rsi
jb 0x18006b2d6
mov r8d, 0x30
lea rdx, [rbp - 0x30]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x18006b2d6
cmp dword [rbp - 0x10], 0x10000
je 0x18006b2a6
mov r14, qword [rbp - 0x28]
cmp r14, r12
jb 0x18006b2d6
jmp 0x18006b272
test r14, r14
je 0x18006b2d6
mov edx, 0x1000
mov r9d, 0x40
mov r8d, 0x3000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
test rax, rax
jne 0x18006b377
cmp r14, rsi
jae 0x18006b263
test rbx, rbx
jne 0x18006b377
cmp rdi, r15
ja 0x18006b3b7
mov r14d, dword [rbp - 0x38]
xor edx, edx
mov rax, rdi
mov esi, r14d
div r14
mov eax, r14d
sub rax, rdx
add rax, rdi
mov rdi, rax
cmp rax, r15
ja 0x18006b3b7
mov r8d, 0x30
lea rdx, [rbp - 0x30]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x18006b3b7
cmp dword [rbp - 0x10], 0x10000
je 0x18006b34d
xor edx, edx
lea edi, [r14 - 1]
add rdi, qword [rbp - 0x18]
add rdi, qword [rbp - 0x30]
mov rax, rdi
div rsi
sub rdi, rdx
cmp rdi, r15
jmp 0x18006b306
test rdi, rdi
je 0x18006b3b7
mov edx, 0x1000
mov r9d, 0x40
mov r8d, 0x3000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
test rax, rax
jmp 0x18006b2d9
and qword [rbx + 8], 0
lea rcx, [rbx + 0x40]
and dword [rbx + 0x10], 0
mov rdx, rcx
sub rdx, rbx
mov rax, qword [rbx + 8]
add rdx, 0x40
mov qword [rcx], rax
mov qword [rbx + 8], rcx
add rcx, 0x40
cmp rdx, 0xfc0
jbe 0x18006b38a
mov rax, qword [0x1801b5b48]
mov qword [rbx], rax
mov qword [0x1801b5b48], rbx
lea r11, [rsp + 0x80]
mov rax, rbx
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret