joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400130e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x840
mov rax, qword [0x1401bc300]
xor rax, rsp
mov qword [rsp + 0x830], rax
mov edi, edx
mov rbx, rcx
mov qword [rsp + 0x28], rcx
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0x800
xor r12d, r12d
call sub.VCRUNTIME140.dll_memset
mov rax, qword [0x1401bce20]
lea r9d, [r12 + 8]
movzx esi, di
lea r8, [rsp + 0x28]
sar edi, 0x10
shl edi, 3
mov rcx, qword [rax]
add rcx, 0x127f3190
mov edx, edi
add rdx, rcx
mov qword [rsp + 0x28], r12
mov rcx, qword [0x1401bce18]
call fcn.14001a210
test al, al
mov word [rsp + 0x24], r12w
mov ecx, r12d
lea r9d, [r12 + 2]
cmovne rcx, qword [rsp + 0x28]
lea r8, [rsp + 0x24]
lea r15, [rcx + rsi*2]
mov rcx, qword [0x1401bce18]
mov rdx, r15
call fcn.14001a210
test al, al
lea r9d, [r12 + 4]
mov rax, qword [0x1401bce20]
lea r8, [rsp + 0x24]
movzx ecx, r12w
lea rdi, [rsp + 0x30]
cmovne cx, word [rsp + 0x24]
mov esi, r12d
movzx r14d, cx
mov rdx, qword [rax]
mov rcx, qword [0x1401bce18]
add rdx, 0x1270893c
shr r14d, 6
mov dword [rsp + 0x24], r12d
call fcn.14001a210
test al, al
mov ebp, r12d
cmovne ebp, dword [rsp + 0x24]
shr ebp, 5
test r14d, r14d
je 0x140013278
mov rcx, qword [0x1401bce18]
lea r9d, [r14 + r14]
lea rdx, [r15 + 2]
lea r8, [rsp + 0x30]
call fcn.14001a210
test al, al
je 0x140013278
nop dword [rax]
movsx ecx, byte [rdi]
lea rdi, [rdi + 1]
mov eax, ecx
add ebp, 0xa0
shr eax, 4
add ebp, esi
xor al, bpl
shl cl, 4
and al, 0xf
inc esi
or al, cl
mov byte [rdi - 1], al
cmp esi, r14d
jl 0x140013210
cmp r14d, 0x800
jae 0x1400132bc
xorps xmm0, xmm0
mov byte [rsp + r14 + 0x30], r12b
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], r12
lea rax, [rsp + 0x30]
mov qword [rbx + 0x18], r12
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], r12b
jne 0x140013260
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.14000b450
jmp 0x14001328d
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], 0xf
mov byte [rbx], sil
mov rax, rbx
mov rcx, qword [rsp + 0x830]
xor rcx, rsp
call fcn.1400f3250
lea r11, [rsp + 0x840]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
call fcn.1400f2f48
int3
Function at 0x14001a730
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 8
mov r9, qword [rcx]
mov r10d, 0x270
mov ecx, dword [r9]
cmp ecx, r10d
jne 0x14001a791
lea r8, [r9 + 8]
nop dword [rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r10, 1
jne 0x14001a750
mov ecx, dword [r9]
jmp 0x14001a87b
cmp ecx, 0x4e0
jb 0x14001a87b
lea r10, [r9 + 0x9c4]
mov qword [rsp], rbx
mov r11d, dword [r10]
mov ebx, 0xe3
mov eax, r11d
mov r8, r10
mov r11d, dword [r10 + 4]
mov edx, eax
xor edx, r11d
add r10, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x634]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub rbx, 1
jne 0x14001a7b0
lea r10, [r9 + 0xd50]
mov ebx, 0x18c
mov r11d, dword [r10]
nop
mov eax, r11d
mov r8, r10
mov r11d, dword [r10 + 4]
mov edx, eax
xor edx, r11d
add r10, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 - 0xd4c]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub rbx, 1
jne 0x14001a800
mov eax, dword [r9 + 0x1380]
mov edx, eax
xor edx, dword [r9 + 4]
mov rbx, qword [rsp]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r9 + 0x634]
xor ecx, edx
mov dword [r9 + 0x9c0], ecx
xor ecx, ecx
mov dword [r9], ecx
mov eax, ecx
mov edx, dword [r9 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r9], eax
mov ecx, edx
mov eax, dword [r9 + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and edx, 0xffffdf8c
shl edx, 0xf
mov ecx, edx
xor rcx, rax
mov rax, rcx
shr rax, 0x12
xor rax, rcx
add rsp, 8
ret
Function at 0x14001a8d0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x30
mov ebp, r9d
mov r15, r8
mov r14, rdx
mov rsi, rcx
call fcn.14001a730
mov rdi, rax
add ebp, 0xffffffff
je 0x14001aaad
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r12
xor r12d, r12d
nop word [rax + rax]
mov r9, qword [rsi]
shl rdi, 0x20
mov ecx, dword [r9]
cmp ecx, 0x270
jne 0x14001a974
lea rax, [r9 + 8]
mov r10d, ecx
nop dword [rax]
mov r8d, dword [rax - 4]
xor r8d, dword [rax]
lea rax, [rax + 4]
btr r8d, 0x1f
xor r8d, dword [rax - 8]
mov ecx, r8d
and cl, 1
neg cl
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [rax + 0x62c]
xor edx, r8d
mov dword [rax + 0x9b8], edx
sub r10, 1
jne 0x14001a930
mov ecx, dword [r9]
jmp 0x14001aa56
cmp ecx, 0x4e0
jb 0x14001aa56
lea r10, [r9 + 0x9c4]
mov r11d, 0xe3
mov ebx, dword [r10]
mov eax, ebx
mov r8, r10
mov ebx, dword [r10 + 4]
mov edx, eax
xor edx, ebx
add r10, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x634]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub r11, 1
jne 0x14001a990
lea r10, [r9 + 0xd50]
mov r11d, 0x18c
mov ebx, dword [r10]
nop dword [rax]
mov eax, ebx
mov r8, r10
mov ebx, dword [r10 + 4]
mov edx, eax
xor edx, ebx
add r10, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 - 0xd4c]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub r11, 1
jne 0x14001a9e0
mov eax, dword [r9 + 0x1380]
mov edx, eax
xor edx, dword [r9 + 4]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r9 + 0x634]
xor ecx, edx
mov dword [r9 + 0x9c0], ecx
mov ecx, r12d
mov dword [r9], r12d
mov eax, ecx
mov edx, dword [r9 + rax*4 + 4]
lea eax, [rcx + 1]
mov ecx, edx
mov dword [r9], eax
mov eax, dword [r9 + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and edx, 0xffffdf8c
shl edx, 0xf
xor rdx, rax
mov rcx, rdx
shr rcx, 0x12
xor rcx, rdx
or rdi, rcx
add ebp, 0xffffffff
jne 0x14001a910
mov r12, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x28]
mov rax, r15
mul rdi
mov qword [r14], rax
mov rax, r14
mov qword [r14 + 8], rdx
add rsp, 0x30
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x14001e840
Capabilities:
Access peb ldr_data
Encode data using xor
Enumerate process modules
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x1048
call fcn.1400f31f0
sub rsp, rax
mov rax, qword [0x1401bc300]
xor rax, rsp
mov qword [rsp + 0x1030], rax
lea r8, [rsp + 0x20]
mov edx, 0x1000
lea rcx, [rsp + 0x30]
call sub.kernel32.dll_K32EnumProcesses
test eax, eax
je 0x14001e9a5
mov eax, dword [rsp + 0x20]
shr eax, 2
test eax, eax
je 0x14001e9a5
mov qword [rsp + 0x1050], rbx
mov qword [rsp + 0x1058], rbp
mov qword [rsp + 0x1060], rsi
lea rsi, [rsp + 0x30]
mov qword [rsp + 0x1040], rdi
mov ebp, eax
mov ecx, dword [rsi]
test ecx, ecx
je 0x14001e977
call fcn.14001e9c0
test al, al
je 0x14001e977
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x14001e957
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x14001e957
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x14001e952
nop
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x14001e930
cmp r8d, 0xcded1a85
je 0x14001e95c
test r9d, r9d
jne 0x14001e910
mov rax, qword [rax]
jmp 0x14001e8e0
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
xor ecx, ecx
add rax, r10
call rax
add rsi, 4
sub rbp, 1
jne 0x14001e8b1
mov rdi, qword [rsp + 0x1040]
mov rsi, qword [rsp + 0x1060]
mov rbp, qword [rsp + 0x1058]
mov rbx, qword [rsp + 0x1050]
mov rcx, qword [rsp + 0x1030]
xor rcx, rsp
call fcn.1400f3250
add rsp, 0x1048
ret
Function at 0x14001f660
Capabilities:
Create thread
Resume thread

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x510
mov rax, qword [0x1401bc300]
xor rax, rsp
mov qword [rsp + 0x500], rax
mov rdi, rdx
mov rbx, rcx
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0x4d0
call sub.VCRUNTIME140.dll_memset
xor r9d, r9d
mov qword [rsp + 0x28], 0
mov r8, rbx
mov dword [rsp + 0x60], 0x10001f
xor edx, edx
mov dword [rsp + 0x20], 4
xor ecx, ecx
call qword [sym.imp.kernel32.dll_CreateThread]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x14001f70b
lea rdx, [rsp + 0x30]
mov rcx, rax
call qword [sym.imp.kernel32.dll_GetThreadContext]
test eax, eax
je 0x14001f70b
lea rdx, [rsp + 0x30]
mov qword [rsp + 0xb0], rdi
mov rcx, rbx
call qword [sym.imp.kernel32.dll_SetThreadContext]
test eax, eax
je 0x14001f70b
mov rcx, rbx
call qword [sym.imp.kernel32.dll_ResumeThread]
mov rcx, rbx
call qword [sym.imp.kernel32.dll_CloseHandle]
mov al, 1
jmp 0x14001f70d
xor al, al
mov rcx, qword [rsp + 0x500]
xor rcx, rsp
call fcn.1400f3250
mov rbx, qword [rsp + 0x530]
add rsp, 0x510
pop rdi
ret
Function at 0x140020f40
Capabilities:
Access peb ldr_data
Encode data using xor
Encrypt data using rc4 prga
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
mov eax, 0x2470
call fcn.1400f31f0
sub rsp, rax
mov rax, qword [0x1401bc300]
xor rax, rsp
mov qword [rsp + 0x2460], rax
lea rax, [rsp + 0x2250]
mov dword [rsp + 0x28], 0x104
mov r8, rcx
mov qword [rsp + 0x20], rax
xor ecx, ecx
mov r9d, 0xffffffff
xor edx, edx
call qword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x140021017
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x140021017
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x140021012
nop
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x140020ff0
cmp r8d, 0xccdb2485
je 0x14002101c
test r9d, r9d
jne 0x140020fd0
mov rax, qword [rax]
jmp 0x140020fa0
mov ecx, dword [rbx + 0x24]
lea r8, [rsp + 0x30]
add rcx, r10
mov qword [rsp + 0x2488], rsi
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
mov edx, 0x2000
add rax, r10
lea rcx, [rsp + 0x40]
call rax
test eax, eax
je 0x1400210c2
mov esi, dword [rsp + 0x30]
cmp esi, 0x2000
jae 0x1400210c2
shr esi, 3
xor ebx, ebx
test esi, esi
je 0x1400210c2
lea rdi, [rsp + 0x40]
nop word [rax + rax]
mov rcx, qword [rdi]
lea rdx, [rsp + 0x2040]
mov r8d, 0x208
call sub.kernel32.dll_K32GetDeviceDriverBaseNameW
test eax, eax
je 0x1400210b8
lea rax, [rsp + 0x2040]
lea r8, [rsp + 0x2250]
sub r8, rax
nop dword [rax]
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x1400210b4
add rax, 2
test ecx, ecx
jne 0x1400210a0
test edx, edx
je 0x1400210ed
inc ebx
add rdi, 8
cmp ebx, esi
jb 0x140021070
xor al, al
mov rsi, qword [rsp + 0x2488]
mov rcx, qword [rsp + 0x2460]
xor rcx, rsp
call fcn.1400f3250
mov rbx, qword [rsp + 0x2490]
add rsp, 0x2470
pop rdi
ret
mov al, 1
jmp 0x1400210c4
Function at 0x14003c060
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov rdi, qword [0x1401bd118]
movzx esi, r9b
mov r12d, dword [rsp + 0x90]
mov r15d, edx
movaps xmmword [rsp + 0x30], xmm6
mov rbx, qword [rdi + 0x3f08]
mov eax, dword [rbx + 0x14]
movss xmm3, dword [rbx + 0x250]
and eax, 4
movss xmm5, dword [rbx + 0x254]
or eax, 0x1000103
or r12d, eax
cmp qword [rbx + 0x1a8], 0
jne 0x14003c0ca
cmp qword [rdi + 0x4b68], 0
je 0x14003c0d2
movss xmm3, dword [rbx + 0x220]
cvttss2si eax, dword [r8]
subss xmm3, dword [rbx + 0x100]
subss xmm5, dword [rbx + 0x104]
xorps xmm4, xmm4
movd xmm1, eax
cvttss2si eax, dword [r8 + 4]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
ucomiss xmm1, xmm4
cvtdq2ps xmm0, xmm0
jp 0x14003c10c
jne 0x14003c10c
mov eax, 1
jmp 0x14003c10e
xor eax, eax
ucomiss xmm0, xmm4
jp 0x14003c11d
jne 0x14003c11d
mov r14d, 2
jmp 0x14003c120
xor r14d, r14d
movss xmm2, dword [0x1400f9208]
or r14d, eax
comiss xmm4, xmm1
jb 0x14003c13c
addss xmm1, xmm3
comiss xmm1, xmm2
jae 0x14003c13c
movaps xmm1, xmm2
comiss xmm4, xmm0
jb 0x14003c14d
addss xmm0, xmm5
comiss xmm0, xmm2
jae 0x14003c14d
movaps xmm0, xmm2
or dword [rdi + 0x47e8], 2
xor edx, edx
movss dword [rdi + 0x4808], xmm1
movss dword [rdi + 0x480c], xmm0
mov dword [rdi + 0x47f0], 1
mov r9, qword [rbx + 8]
test rcx, rcx
je 0x14003c196
mov dword [rsp + 0x28], r15d
lea r8, [0x140162218]
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x70]
call fcn.140042650
jmp 0x14003c1ac
lea r8, [0x140162228]
mov dword [rsp + 0x20], r15d
lea rcx, [rsp + 0x70]
call fcn.140042650
movss xmm6, dword [rdi + 0x37f8]
test sil, sil
jne 0x14003c1c3
mov dword [rdi + 0x37f8], 0
mov rcx, qword [rsp + 0x70]
mov r8d, r12d
xor edx, edx
call fcn.140039ca0
mov rsi, qword [rdi + 0x3f08]
movzx ebp, al
movss dword [rdi + 0x37f8], xmm6
cmp word [rsi + 0xc2], 1
mov dword [rsi + 0x80], r15d
mov byte [rsi + 0xd2], r14b
jne 0x14003c209
movsd xmm0, qword [rsi + 0x20]
movsd qword [rbx + 0x100], xmm0
mov r9d, r15d
lea rdx, [0x140162231]
not r9d
lea r10, [0x1401613c0]
mov ebx, r9d
mov r8b, 0x23
cmp r8b, 0x23
jne 0x14003c236
cmp byte [rdx], r8b
jne 0x14003c236
cmp byte [rdx + 1], r8b
cmove ebx, r9d
movzx ecx, bl
movzx eax, r8b
movzx r8d, byte [rdx]
xor rcx, rax
shr ebx, 8
inc rdx
xor ebx, dword [r10 + rcx*4]
test r8b, r8b
jne 0x14003c223
not ebx
cmp dword [rdi + 0x3f68], ebx
jne 0x14003c266
xor edx, edx
xor ecx, ecx
call fcn.14004e540
cmp dword [rdi + 0x4900], r15d
jne 0x14003c2b3
bt r12d, 0x17
jb 0x14003c2b3
cmp word [rsi + 0x15c], 0
jne 0x14003c289
cmp byte [rsi + 0x162], 0
je 0x14003c2b3
xor edx, edx
mov rcx, rsi
call fcn.140040e10
xor edx, edx
mov rcx, rsi
call fcn.140045300
mov rdx, rsi
mov ecx, ebx
call fcn.14004e540
mov eax, dword [rdi + 0x4924]
mov dword [rdi + 0x3f90], eax
mov rbx, qword [rsp + 0x78]
movzx eax, bpl
mov rbp, qword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
Function at 0x14003c390
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov rbx, qword [0x1401bd118]
xor r14d, r14d
mov ebp, ecx
mov r15d, r14d
mov rsi, qword [rbx + 0x3f08]
test cl, 0x10
jne 0x14003c528
mov edi, dword [rbx + 0x47a8]
test edi, edi
je 0x14003c407
cmp dword [rbx + 0x3f68], edi
jne 0x14003c521
mov eax, dword [rbx + 0x3f94]
cmp eax, 0xffffffff
cmove eax, r14d
movsxd r14, eax
cmp byte [r14 + rbx + 0xe08], r15b
je 0x14003c521
cmp byte [rsi + 0xbb], r15b
jmp 0x14003c4c9
cmp byte [rbx + 0xe08], r14b
je 0x14003c521
cmp byte [rsi + 0xbb], r14b
jne 0x14003c521
test byte [rbx + 0x47b0], 1
jne 0x14003c444
cmp dword [rbx + 0x3f68], r14d
je 0x14003c521
cmp qword [rbx + 0x3f88], rsi
jne 0x14003c521
test bpl, 8
je 0x14003c521
lea rdx, [rbx + 0x47b4]
mov rcx, rsi
call fcn.1400416a0
mov edi, eax
mov dword [rbx + 0x47a8], eax
mov rax, qword [0x1401bd118]
cmp dword [rax + 0x3f68], edi
jne 0x14003c47a
mov dword [rax + 0x3f6c], edi
cmp dword [rax + 0x3f98], edi
jne 0x14003c489
mov byte [rax + 0x3f9c], 1
mov r8d, dword [rbx + 0x47ac]
lea rcx, [rbx + 0x47b4]
mov edx, edi
call fcn.1400446a0
movzx r15d, al
test al, al
je 0x14003c4c3
cmp byte [rbx + 0x3740], r14b
je 0x14003c4c3
mov rdx, rsi
mov ecx, edi
call fcn.14004e540
xor edx, edx
mov rcx, rsi
call fcn.140040e10
cmp dword [rbx + 0x3f68], edi
jne 0x14003c521
mov byte [rbx + 0x3f75], r15b
movsxd rcx, dword [rsi + 0xf0]
mov rax, qword [rsi + 0xf8]
mov r15d, dword [rax + rcx*4 - 4]
mov rax, qword [0x1401bd118]
movsxd rcx, r14d
cmp byte [rcx + rax + 0xe08], 0
jne 0x14003c4fe
xor sil, sil
jmp 0x14003c517
movss xmm1, dword [rax + 0x6c]
movss xmm0, dword [rax + rcx*4 + 0x3798]
mulss xmm1, xmm1
comiss xmm0, xmm1
setae sil
call fcn.14004e6a0
test sil, sil
jne 0x14003c575
xor al, al
jmp 0x14003c615
mov r9d, 0xffffffff
lea rdx, [0x140162d89]
mov edi, r9d
lea r10, [0x1401613c0]
mov r8b, 0x23
cmp r8b, 0x23
jne 0x14003c555
cmp byte [rdx], r8b
jne 0x14003c555
cmp byte [rdx + 1], r8b
cmove edi, r9d
movzx ecx, dil
movzx eax, r8b
movzx r8d, byte [rdx]
xor rcx, rax
shr edi, 8
inc rdx
xor edi, dword [r10 + rcx*4]
test r8b, r8b
jne 0x14003c542
not edi
cmp byte [rbx + 0x4ab0], 0
jne 0x14003c5b3
call fcn.14003dca0
mov dword [rbx + 0x4acc], edi
mov dword [rbx + 0x4ad0], r15d
mov byte [rbx + 0x4ab0], 1
mov dword [rbx + 0x4ab4], ebp
mov dword [rbx + 0x4abc], r14d
cmp edi, dword [rbx + 0x3f68]
jne 0x14003c5b3
mov byte [rbx + 0x3f76], 1
mov eax, dword [rbx + 0x3e60]
mov dword [rbx + 0x4ab8], eax
mov byte [rbx + 0x4ab1], 1
test bpl, 1
jne 0x14003c606
xor edx, edx
xor ecx, ecx
call fcn.14003c9c0
cmp dword [rbx + 0x4b20], 0
je 0x14003c606
test dword [rbx + 0x4b14], 0x1000
je 0x14003c606
mov rax, qword [rbx + 0x3f08]
mov byte [rax + 0xbb], 1
mov byte [rax + 0xbd], 1
mov byte [rax + 0xd8], 1
test bpl, 0x12
jne 0x14003c613
and dword [rbx + 0x47b0], 0xfffffffe
mov al, 1
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
Function at 0x14003c9c0
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
mov rax, qword [0x1401bc300]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rbx, qword [0x1401bd118]
mov edi, edx
mov esi, ecx
cmp byte [rbx + 0x4ab1], 0
jne 0x14003ca28
cmp byte [rbx + 0x4ab2], 0
jne 0x14003ca28
movsx r9d, word [rbx + 0x5be2]
lea r8, [0x1401629b8]
mov edx, 0x10
lea rcx, [rsp + 0x20]
call fcn.1400425d0
test sil, 2
je 0x14003cb60
jmp 0x14003cac1
movss xmm1, dword [rbx + 0x3894]
lea r8, [0x1401629b8]
movaps xmm0, xmm1
lea rcx, [rsp + 0x20]
mulss xmm0, dword [0x1400f921c]
xor eax, eax
mov edx, 0x10
mulss xmm1, dword [0x1400f9210]
addss xmm0, dword [rbx + 0xe00]
addss xmm1, dword [rbx + 0xe04]
or dword [rbx + 0x47e8], 1
mov qword [rbx + 0x4800], rax
movss dword [rbx + 0x47f8], xmm0
mov dword [rbx + 0x47ec], 1
movss dword [rbx + 0x47fc], xmm1
movss xmm0, dword [rbx + 0x38fc]
mov rax, qword [0x1401bd118]
mulss xmm0, dword [0x140162f74]
or dword [rax + 0x47e8], 0x40
movss dword [rax + 0x4848], xmm0
movsx r9d, word [rbx + 0x5be2]
call fcn.1400425d0
movzx r9d, byte [rsp + 0x20]
lea r8, [rsp + 0x21]
mov r10d, 0xffffffff
mov ecx, r10d
test r9b, r9b
je 0x14003cb11
lea r11, [0x1401613c0]
cmp r9b, 0x23
jne 0x14003caf4
cmp byte [r8], r9b
jne 0x14003caf4
cmp byte [r8 + 1], r9b
cmove ecx, r10d
movzx edx, cl
movzx eax, r9b
movzx r9d, byte [r8]
xor rdx, rax
shr ecx, 8
inc r8
xor ecx, dword [r11 + rdx*4]
test r9b, r9b
jne 0x14003cae1
not ecx
call fcn.140040b80
test rax, rax
je 0x14003cb60
cmp byte [rax + 0xb6], 0
je 0x14003cb60
mov byte [rax + 0xbb], 1
lea r8, [0x1401629b8]
mov byte [rax + 0xbd], 1
lea rcx, [rsp + 0x20]
mov byte [rax + 0xd8], 1
mov edx, 0x10
inc word [rbx + 0x5be2]
movsx r9d, word [rbx + 0x5be2]
call fcn.1400425d0
or edi, 0x20c0347
lea rcx, [rsp + 0x20]
mov r8d, edi
xor edx, edx
call fcn.140039ca0
mov al, 1
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1400f3250
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret

Function at 0x140040ad0
Capabilities:
Hash data with crc32

Disassembly:
sub rsp, 8
movzx r9d, byte [rcx]
lea r8, [rcx + 1]
mov r10, qword [0x1401bd118]
mov r11d, 0xffffffff
mov eax, r11d
test r9b, r9b
je 0x140040b33
mov qword [rsp], rbx
lea rbx, [0x1401613c0]
nop dword [rax]
cmp r9b, 0x23
jne 0x140040b13
cmp byte [r8], r9b
jne 0x140040b13
cmp byte [r8 + 1], r9b
cmove eax, r11d
movzx edx, al
movzx ecx, r9b
movzx r9d, byte [r8]
xor rdx, rcx
shr eax, 8
inc r8
xor eax, dword [rbx + rdx*4]
test r9b, r9b
jne 0x140040b00
mov rbx, qword [rsp]
movsxd rcx, dword [r10 + 0x5c40]
xor r8d, r8d
not eax
test ecx, ecx
jle 0x140040b67
mov r10, qword [r10 + 0x5c48]
mov r9, rcx
mov edx, r8d
lea rcx, [r10 + 8]
cmp dword [rcx], eax
je 0x140040b6e
inc r8d
inc rdx
add rcx, 0x48
cmp rdx, r9
jl 0x140040b54
xor eax, eax
add rsp, 8
ret
movsxd rax, r8d
lea rcx, [rax + rax*8]
lea rax, [r10 + rcx*8]
add rsp, 8
ret
Function at 0x140040c00
Capabilities:
Hash data with crc32

Disassembly:
mov rax, rcx
mov r10d, 0xffffffff
mov ecx, r10d
movzx r9d, byte [rax]
lea r8, [rax + 1]
test r9b, r9b
je 0x140040c50
lea r11, [0x1401613c0]
cmp r9b, 0x23
jne 0x140040c33
cmp byte [r8], r9b
jne 0x140040c33
cmp byte [r8 + 1], r9b
cmove ecx, r10d
movzx edx, cl
movzx eax, r9b
movzx r9d, byte [r8]
xor rdx, rax
shr ecx, 8
inc r8
xor ecx, dword [r11 + rdx*4]
test r9b, r9b
jne 0x140040c20
not ecx
jmp fcn.140040b80

Function at 0x140041580
Capabilities:
Hash data with crc32

Disassembly:
push rbx
sub rsp, 0x20
movsxd r8, dword [rcx + 0xf0]
lea r11, [0x1401613c0]
mov rax, qword [rcx + 0xf8]
mov r9, rcx
movsxd r10, edx
mov ebx, dword [rax + r8*4 - 4]
not ebx
movzx eax, r10b
movzx r8d, bl
shr ebx, 8
xor r8, rax
mov eax, r10d
shr eax, 8
movzx edx, al
mov eax, r10d
xor ebx, dword [r11 + r8*4]
movzx ecx, bl
xor rdx, rcx
shr ebx, 8
shr eax, 0x10
xor ebx, dword [r11 + rdx*4]
movzx ecx, bl
shr ebx, 8
movzx edx, al
xor rdx, rcx
xor ebx, dword [r11 + rdx*4]
movzx ecx, bl
shr ebx, 8
mov edx, r10d
shr rdx, 0x18
xor rdx, rcx
mov rcx, qword [r9]
xor ebx, dword [r11 + rdx*4]
not ebx
cmp dword [rcx + 0x3f50], ebx
jne 0x140041618
xor r9d, r9d
mov r8, r10
mov ecx, ebx
lea edx, [r9 + 4]
call fcn.14003e8b0
mov eax, ebx
add rsp, 0x20
pop rbx
ret
Function at 0x1400416a0
Capabilities:
Hash data with crc32

Disassembly:
sub rsp, 0x18
mov rax, qword [rcx + 0xf8]
lea r9, [0x1401613c0]
movss xmm2, dword [rcx + 0x110]
movss xmm3, dword [rcx + 0x114]
movsxd rcx, dword [rcx + 0xf0]
movss xmm0, dword [rdx]
movss xmm1, dword [rdx + 4]
subss xmm0, xmm2
subss xmm1, xmm3
mov r8d, dword [rax + rcx*4 - 4]
not r8d
movzx ecx, r8b
shr r8d, 8
movss dword [rsp], xmm0
movzx eax, byte [rsp]
xor rcx, rax
movss xmm0, dword [rdx + 8]
movzx eax, byte [rsp + 1]
subss xmm0, xmm2
movss dword [rsp + 4], xmm1
movss xmm1, dword [rdx + 0xc]
xor r8d, dword [r9 + rcx*4]
subss xmm1, xmm3
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
movzx eax, byte [rsp + 2]
movss dword [rsp + 8], xmm0
movss dword [rsp + 0xc], xmm1
xor r8d, dword [r9 + rcx*4]
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
movzx eax, byte [rsp + 3]
xor r8d, dword [r9 + rcx*4]
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
movzx eax, byte [rsp + 4]
xor r8d, dword [r9 + rcx*4]
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
movzx eax, byte [rsp + 5]
xor r8d, dword [r9 + rcx*4]
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
movzx eax, byte [rsp + 6]
xor r8d, dword [r9 + rcx*4]
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
movzx eax, byte [rsp + 7]
xor r8d, dword [r9 + rcx*4]
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
movzx eax, byte [rsp + 8]
xor r8d, dword [r9 + rcx*4]
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
movzx eax, byte [rsp + 9]
xor r8d, dword [r9 + rcx*4]
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
movzx eax, byte [rsp + 0xa]
xor r8d, dword [r9 + rcx*4]
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
movzx eax, byte [rsp + 0xb]
xor r8d, dword [r9 + rcx*4]
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
movzx eax, byte [rsp + 0xc]
xor r8d, dword [r9 + rcx*4]
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
movzx eax, byte [rsp + 0xd]
xor r8d, dword [r9 + rcx*4]
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
movzx eax, byte [rsp + 0xe]
xor r8d, dword [r9 + rcx*4]
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
xor r8d, dword [r9 + rcx*4]
movzx ecx, byte [rsp + 0xf]
movzx edx, r8b
shr r8d, 8
xor rdx, rcx
xor r8d, dword [r9 + rdx*4]
not r8d
mov eax, r8d
add rsp, 0x18
ret