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

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x47]
sub rsp, 0xb0
mov rsi, rcx
mov rax, qword [rcx + 0x20]
mov r8, qword [rax + 0x18]
test r8, r8
je 0x14003118f
lea rax, [0x140031940]
mov qword [rbp - 0x49], rax
mov qword [rbp - 0x41], rdx
lea rdx, [rbp - 0x49]
call r8
jmp 0x1400312f6
mov rax, qword [rdx]
mov qword [rbp - 0x29], rax
movups xmm0, xmmword [rdx + 8]
movups xmmword [rbp - 0x21], xmm0
movsd xmm1, qword [rdx + 0x18]
movsd qword [rbp - 0x11], xmm1
mov eax, dword [rdx + 0x20]
mov dword [rbp - 9], eax
movups xmm0, xmmword [rdx + 0x28]
movups xmmword [rbp - 1], xmm0
movups xmm0, xmmword [rdx + 0x38]
movups xmmword [rbp + 0xf], xmm0
mov rax, qword [rdx + 0x48]
mov qword [rbp + 0x1f], rax
mov rax, qword [rdx + 0x50]
mov qword [rbp + 0x27], rax
xor ebx, ebx
mov qword [rdx + 0x48], rbx
mov qword [rdx + 0x50], rbx
movups xmm0, xmmword [rdx + 0x58]
movups xmmword [rbp + 0x2f], xmm0
mov rax, qword [rdx + 0x68]
mov qword [rbp + 0x3f], rax
lea rax, [rbp - 0x29]
mov qword [rbp + 0x7f], rax
lea rax, [rbp + 0x67]
mov qword [rbp - 0x49], rax
mov ecx, dword [0x1406782b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14003120f
mov rdx, qword [rax + 8]
jmp 0x140031212
mov rdx, rbx
mov r8d, 0x80
call fcn.140030d80
mov rdx, rax
mov qword [rbp - 0x39], rbx
mov rcx, qword [rbp - 0x29]
mov qword [rax + 8], rcx
movups xmm0, xmmword [rbp - 0x21]
movups xmmword [rax + 0x10], xmm0
movsd xmm1, qword [rbp - 0x11]
movsd qword [rax + 0x20], xmm1
mov ecx, dword [rbp - 9]
mov dword [rax + 0x28], ecx
movups xmm0, xmmword [rbp - 1]
movups xmmword [rax + 0x30], xmm0
movups xmm0, xmmword [rbp + 0xf]
movups xmmword [rax + 0x40], xmm0
mov qword [rax + 0x50], rbx
mov qword [rax + 0x58], rbx
mov rax, qword [rbp + 0x1f]
mov qword [rdx + 0x50], rax
mov rax, qword [rbp + 0x27]
mov qword [rdx + 0x58], rax
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x1f], xmm0
movups xmm0, xmmword [rbp + 0x2f]
movups xmmword [rdx + 0x60], xmm0
mov rax, qword [rbp + 0x3f]
mov qword [rdx + 0x70], rax
lea rax, [0x140031a20]
mov qword [rdx], rax
mov qword [rbp + 0x77], rdx
mov qword [rbp - 0x41], rbx
lea rcx, [rbp - 0x49]
call fcn.140031700
nop
mov rbx, qword [rbp + 0x27]
test rbx, rbx
je 0x1400312d6
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400312d6
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x1400312d6
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rax, qword [rsi + 0x20]
lea rdx, [rbp + 0x77]
mov rcx, rsi
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rbp + 0x77]
test rax, rax
je 0x1400312f6
xor edx, edx
mov rcx, rax
call qword [rax]
nop
mov rbx, qword [rsp + 0xd8]
add rsp, 0xb0
pop rdi
pop rsi
pop rbp
ret
Function at 0x140031320
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdi, rcx
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x140031347
add rcx, 8
call fcn.14002e010
mov qword [rdi + 0x10], 0
mov rbx, qword [rdi + 8]
test rbx, rbx
je 0x1400313a1
mov ecx, dword [0x1406782b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140031391
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140031391
cmp qword [rcx + 0x10], 0
jne 0x140031391
movzx eax, byte [rbx + 0x88]
mov byte [rbx], al
mov qword [rcx + 0x10], rbx
mov qword [rdi + 8], 0
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov rcx, rbx
call fcn.1402bfe3c
mov qword [rdi + 8], 0
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x1400313c0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x80
mov rbx, rdx
mov rsi, rcx
test byte [rcx + 0xc], 1
jne 0x1400314c3
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x10]
call fcn.1400240d0
test al, al
je 0x1400314c3
movups xmm0, xmmword [rbx]
movups xmmword [rsp + 0x38], xmm0
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x48], rax
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0x50], rax
xor edi, edi
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], rdi
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rsp + 0x58], xmm0
mov rax, qword [rbx + 0x30]
mov qword [rsp + 0x68], rax
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x38]
call fcn.14002fa20
nop
mov rdi, qword [rsp + 0x50]
test rdi, rdi
je 0x140031477
mov ebx, 0xffffffff
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x140031477
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], ebx
cmp ebx, 1
jne 0x140031477
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
jmp 0x140031576
lea rax, [rsi + 8]
mov qword [rsp + 0x20], rax
mov ecx, dword [0x1406782b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor edi, edi
test rax, rax
je 0x1400314e5
mov rdx, qword [rax + 8]
jmp 0x1400314e8
mov rdx, rdi
mov r8d, 0x78
call fcn.14002b730
mov rdx, rax
mov qword [rax + 0x20], rdi
lea rax, [0x140031950]
mov qword [rdx + 0x28], rax
mov qword [rdx], rdi
mov qword [rdx + 8], rdi
mov qword [rdx + 0x10], 0
mov qword [rdx + 0x18], rdi
mov dword [rdx + 0x30], edi
movups xmm0, xmmword [rbx]
movups xmmword [rdx + 0x38], xmm0
mov qword [rdx + 0x48], rdi
mov qword [rdx + 0x50], rdi
mov rax, qword [rbx + 0x10]
mov qword [rdx + 0x48], rax
mov rax, qword [rbx + 0x18]
mov qword [rdx + 0x50], rax
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], rdi
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rdx + 0x58], xmm0
mov rax, qword [rbx + 0x30]
mov qword [rdx + 0x68], rax
mov rax, qword [rsi]
mov rcx, qword [rax + 0x10]
lock inc dword [rcx + 0x30]
call fcn.140024a90
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdi
lea rcx, [rsp + 0x20]
call fcn.140031640
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
Function at 0x140031640
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
mov rbx, qword [rcx + 0x10]
mov rdi, rcx
test rbx, rbx
je 0x14003169d
mov rbx, qword [rbx + 0x50]
test rbx, rbx
je 0x140031695
mov qword [rsp + 0x30], rsi
mov esi, 0xffffffff
mov eax, esi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140031690
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], esi
cmp esi, 1
jne 0x140031690
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov rsi, qword [rsp + 0x30]
mov qword [rdi + 0x10], 0
mov rbx, qword [rdi + 8]
test rbx, rbx
je 0x1400316f2
mov ecx, dword [0x1406782b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1400316e2
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1400316e2
cmp qword [rcx], 0
jne 0x1400316e2
movzx eax, byte [rbx + 0x78]
mov byte [rbx], al
mov qword [rcx], rbx
mov qword [rdi + 8], 0
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov rcx, rbx
call fcn.1402bfe3c
mov qword [rdi + 8], 0
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret

Function at 0x140031700
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
mov rbx, qword [rcx + 0x10]
mov rdi, rcx
test rbx, rbx
je 0x14003175d
mov rbx, qword [rbx + 0x58]
test rbx, rbx
je 0x140031755
mov qword [rsp + 0x30], rsi
mov esi, 0xffffffff
mov eax, esi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140031750
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], esi
cmp esi, 1
jne 0x140031750
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov rsi, qword [rsp + 0x30]
mov qword [rdi + 0x10], 0
mov rbx, qword [rdi + 8]
test rbx, rbx
je 0x1400317b7
mov ecx, dword [0x1406782b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1400317a7
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1400317a7
cmp qword [rcx + 0x10], 0
jne 0x1400317a7
movzx eax, byte [rbx + 0x80]
mov byte [rbx], al
mov qword [rcx + 0x10], rbx
mov qword [rdi + 8], 0
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov rcx, rbx
call fcn.1402bfe3c
mov qword [rdi + 8], 0
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140037ef0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
mov rbx, qword [rcx + 0x10]
mov rdi, rcx
test rbx, rbx
je 0x140037f4d
mov rbx, qword [rbx + 0x18]
test rbx, rbx
je 0x140037f45
mov qword [rsp + 0x30], rsi
mov esi, 0xffffffff
mov eax, esi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140037f40
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], esi
cmp esi, 1
jne 0x140037f40
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov rsi, qword [rsp + 0x30]
mov qword [rdi + 0x10], 0
mov rbx, qword [rdi + 8]
test rbx, rbx
je 0x140037fa4
mov ecx, dword [0x1406782b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140037f94
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140037f94
cmp qword [rcx + 0x10], 0
jne 0x140037f94
movzx eax, byte [rbx + 0x38]
mov byte [rbx], al
mov qword [rcx + 0x10], rbx
mov qword [rdi + 8], 0
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov rcx, rbx
call fcn.1402bfe3c
mov qword [rdi + 8], 0
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140061280
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rbp
push r14
sub rsp, 0x38
cmp byte [rcx + 0x98], 0
mov r14, rcx
mov ebp, edx
jne 0x1400612a0
xor al, al
add rsp, 0x38
pop r14
pop rbp
ret
mov qword [rsp + 0x50], rbx
mov rbx, qword [rcx + 0x48]
mov qword [rsp + 0x60], rdi
mov rdi, qword [rcx + 0x50]
cmp rbx, rdi
je 0x1400613cb
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x30], r12
movabs r12, 0x100000001b3
mov qword [rsp + 0x28], r13
movabs r13, 0x400000006cc
mov qword [rsp + 0x20], r15
xor r15d, r15d
mov rsi, qword [rbx + 0x20]
test rsi, rsi
je 0x140061342
mov rax, rbp
mov rdi, r13
neg rax
mov rcx, rbp
shl rax, 3
add qword [rsi + 0x18], rax
mov rdx, qword [rsi + 0x18]
test ebp, ebp
je 0x140061321
mov rax, rdx
nop
xor rdi, qword [rax]
lea rax, [rax + 8]
imul rdi, r12
sub rcx, 1
jne 0x140061310
lea rax, [rdx + 8]
cmp rax, qword [rsi + 0x20]
jbe 0x140061337
mov rcx, rsi
call fcn.14006df70
mov rdx, qword [rsi + 0x18]
lea rax, [rdx + 8]
mov qword [rsi + 0x18], rax
mov qword [rdx], rdi
cmp qword [rbx + 0x30], r15
je 0x140061374
mov edi, r15d
cmp dword [rbx + 0x38], r15d
jbe 0x140061374
mov rax, qword [rbx + 0x30]
mov ecx, edi
mov rdx, qword [rax + rcx*8]
test rdx, rdx
lea rcx, [rdx - 8]
mov edx, ebp
cmove rcx, r15
call fcn.140061280
inc edi
cmp edi, dword [rbx + 0x38]
jb 0x140061351
cmp qword [rbx + 0x40], r15
je 0x1400613a6
mov edi, r15d
cmp dword [rbx + 0x48], r15d
jbe 0x1400613a6
mov rax, qword [rbx + 0x40]
mov ecx, edi
mov rdx, qword [rax + rcx*8]
test rdx, rdx
lea rcx, [rdx - 8]
mov edx, ebp
cmove rcx, r15
call fcn.140061280
inc edi
cmp edi, dword [rbx + 0x48]
jb 0x140061383
mov rdi, qword [r14 + 0x50]
add rbx, 0x78
cmp rbx, rdi
jne 0x1400612e6
mov r15, qword [rsp + 0x20]
mov r13, qword [rsp + 0x28]
mov r12, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x58]
mov rax, qword [rdi - 0x70]
mov rbx, qword [rsp + 0x50]
mov byte [rdi - 8], 0
cmp ebp, dword [rax + 0xac]
jae 0x1400613e7
call fcn.140065050
jmp 0x1400613f4
cmp ebp, dword [rax + 0xb0]
jbe 0x14006142b
call fcn.140064fb0
mov ecx, 0x1000
test word [rax + 0xe], cx
jne 0x140061410
mov rax, qword [rax + 8]
movabs rcx, 0xffffffffffff
and rax, rcx
mov qword [rdi - 0x60], rax
xor al, al
mov rdi, qword [rsp + 0x60]
mov byte [r14 + 0x98], 0
add rsp, 0x38
pop r14
pop rbp
ret
mov rcx, r14
call fcn.140062ff0
mov rdi, qword [rsp + 0x60]
test al, al
setne al
mov byte [r14 + 0x98], al
add rsp, 0x38
pop r14
pop rbp
ret
Function at 0x140061580
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rsi
push r14
sub rsp, 0x38
cmp byte [rcx + 0x98], 0
mov esi, edx
mov r14, rcx
je 0x1400616ff
mov qword [rsp + 0x50], rbx
mov rbx, qword [rcx + 0x48]
mov rcx, qword [rcx + 0x50]
cmp rbx, rcx
je 0x1400616df
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x30], r12
movabs r12, 0x100000001b3
mov qword [rsp + 0x28], r13
movabs r13, 0x30000000519
mov qword [rsp + 0x20], r15
xor r15d, r15d
mov rdi, qword [rbx + 0x20]
test rdi, rdi
je 0x140061651
lea ecx, [rsi + rsi]
mov rbp, r13
neg rcx
mov r9d, r15d
shl rcx, 3
add qword [rdi + 0x18], rcx
mov r8, qword [rdi + 0x18]
test esi, esi
je 0x140061630
nop word [rax + rax]
lea ecx, [r9 + r9]
inc r9d
mov eax, ecx
lea edx, [rcx + 1]
mov rcx, qword [r8 + rdx*8]
xor rcx, qword [r8 + rax*8]
imul rcx, r12
xor rbp, rcx
cmp r9d, esi
jb 0x140061610
lea rax, [r8 + 8]
cmp rax, qword [rdi + 0x20]
jbe 0x140061646
mov rcx, rdi
call fcn.14006df70
mov r8, qword [rdi + 0x18]
lea rax, [r8 + 8]
mov qword [rdi + 0x18], rax
mov qword [r8], rbp
cmp qword [rbx + 0x30], r15
je 0x140061683
mov edi, r15d
cmp dword [rbx + 0x38], r15d
jbe 0x140061683
mov rax, qword [rbx + 0x30]
mov ecx, edi
mov rdx, qword [rax + rcx*8]
test rdx, rdx
lea rcx, [rdx - 8]
mov edx, esi
cmove rcx, r15
call fcn.140061580
inc edi
cmp edi, dword [rbx + 0x38]
jb 0x140061660
cmp qword [rbx + 0x40], r15
je 0x1400616b5
mov edi, r15d
cmp dword [rbx + 0x48], r15d
jbe 0x1400616b5
mov rax, qword [rbx + 0x40]
mov ecx, edi
mov rdx, qword [rax + rcx*8]
test rdx, rdx
lea rcx, [rdx - 8]
mov edx, esi
cmove rcx, r15
call fcn.140061580
inc edi
cmp edi, dword [rbx + 0x48]
jb 0x140061692
mov rcx, qword [r14 + 0x50]
add rbx, 0x78
cmp rbx, rcx
jne 0x1400615e0
mov r15, qword [rsp + 0x20]
mov r13, qword [rsp + 0x28]
mov r12, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
lea rdx, [rcx - 0x78]
mov r8d, esi
mov rcx, qword [rcx - 0x70]
call fcn.1400638d0
mov rbx, qword [rsp + 0x50]
test al, al
jne 0x140061709
mov byte [r14 + 0x98], al
xor al, al
add rsp, 0x38
pop r14
pop rsi
ret
mov rcx, r14
call fcn.140062ff0
test al, al
setne al
mov byte [r14 + 0x98], al
add rsp, 0x38
pop r14
pop rsi
ret
Function at 0x140061730
Capabilities:
Encode data using xor
Encrypt data using rc4 prga
Hash data using fnv

Disassembly:
push rsi
push r12
push r14
push r15
sub rsp, 0x38
cmp byte [rcx + 0x98], 0
movzx r12d, r9b
mov r15d, r8d
mov r14, rdx
mov rsi, rcx
je 0x14006182b
add rcx, 0x68
lea edx, [r15*2 + 1]
mov r8, qword [rcx + 0x18]
add r8, rdx
cmp r8, qword [rcx + 0x20]
jbe 0x140061774
call fcn.14006b730
mov rcx, qword [rsi + 0x80]
lea rax, [rcx + 1]
mov qword [rsi + 0x80], rax
mov byte [rcx], 0x2f
test r15d, r15d
je 0x14006180a
mov rdx, r14
mov r8, r15
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx]
mov rcx, qword [rsi + 0x80]
cmp al, 0x7e
jne 0x1400617d3
lea rax, [rcx + 1]
mov qword [rsi + 0x80], rax
mov byte [rcx], 0x7e
mov rcx, qword [rsi + 0x80]
lea rax, [rcx + 1]
mov qword [rsi + 0x80], rax
mov byte [rcx], 0x30
jmp 0x140061801
cmp al, 0x2f
lea rax, [rcx + 1]
mov qword [rsi + 0x80], rax
jne 0x1400617fc
mov byte [rcx], 0x7e
mov rcx, qword [rsi + 0x80]
lea rax, [rcx + 1]
mov qword [rsi + 0x80], rax
mov byte [rcx], 0x31
jmp 0x140061801
movzx eax, byte [rdx]
mov byte [rcx], al
inc rdx
sub r8, 1
jne 0x1400617a0
mov rdx, qword [rsi + 0x50]
mov r9d, r15d
mov r8, r14
mov rcx, qword [rdx - 0x70]
add rdx, 0xffffffffffffff88
call fcn.140063a40
test al, al
jne 0x140061839
mov byte [rsi + 0x98], al
xor al, al
add rsp, 0x38
pop r15
pop r14
pop r12
pop rsi
ret
mov qword [rsp + 0x60], rbx
mov rbx, qword [rsi + 0x48]
cmp rbx, qword [rsi + 0x50]
je 0x14006197c
mov qword [rsp + 0x68], rbp
movabs rax, 0x789e9a398d409253
mov qword [rsp + 0x70], rdi
movabs r8, 0x100000001b3
mov qword [rsp + 0x30], r13
xor r13d, r13d
mov rbp, qword [rbx + 0x20]
test rbp, rbp
je 0x1400618c9
mov rdi, rax
mov rcx, r13
test r15d, r15d
je 0x1400618a4
nop word [rax + rax]
movzx eax, byte [rcx + r14]
inc rcx
xor rdi, rax
imul rdi, r8
cmp rcx, r15
jb 0x140061890
mov rcx, qword [rbp + 0x18]
lea rax, [rcx + 8]
cmp rax, qword [rbp + 0x20]
jbe 0x1400618be
mov rcx, rbp
call fcn.14006df70
mov rcx, qword [rbp + 0x18]
lea rax, [rcx + 8]
mov qword [rbp + 0x18], rax
mov qword [rcx], rdi
cmp qword [rbx + 0x30], r13
je 0x14006190b
mov edi, r13d
cmp dword [rbx + 0x38], r13d
jbe 0x14006190b
nop dword [rax + rax]
mov rax, qword [rbx + 0x30]
movzx r9d, r12b
mov ecx, edi
mov r8d, r15d
mov rdx, qword [rax + rcx*8]
test rdx, rdx
lea rcx, [rdx - 8]
mov rdx, r14
cmove rcx, r13
call fcn.140061730
inc edi
cmp edi, dword [rbx + 0x38]
jb 0x1400618e0
cmp qword [rbx + 0x40], r13
je 0x14006194b
mov edi, r13d
cmp dword [rbx + 0x48], r13d
jbe 0x14006194b
nop word [rax + rax]
mov rax, qword [rbx + 0x40]
movzx r9d, r12b
mov ecx, edi
mov r8d, r15d
mov rdx, qword [rax + rcx*8]
test rdx, rdx
lea rcx, [rdx - 8]
mov rdx, r14
cmove rcx, r13
call fcn.140061730
inc edi
cmp edi, dword [rbx + 0x48]
jb 0x140061920
add rbx, 0x78
movabs rax, 0x789e9a398d409253
movabs r8, 0x100000001b3
cmp rbx, qword [rsi + 0x50]
jne 0x140061872
mov r13, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov al, 1
mov byte [rsi + 0x98], 1
add rsp, 0x38
pop r15
pop r14
pop r12
pop rsi
ret
Function at 0x1400620e0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rsi
push r14
sub rsp, 0x68
mov rax, qword [0x14061da68]
xor rax, rsp
mov qword [rsp + 0x30], rax
cmp byte [rcx + 0x98], 0
mov rsi, rdx
mov r14, rcx
jne 0x14006210d
xor al, al
jmp 0x140062306
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x58], rdi
call fcn.140063440
test al, al
je 0x1400622ef
mov rax, qword [r14 + 0x50]
mov r8, rsi
mov rdi, qword [rax - 0x70]
lea rbx, [rax - 0x78]
mov rdx, rbx
mov rcx, rdi
call fcn.140064480
test al, al
je 0x1400622ef
mov rdx, rbx
mov rcx, rdi
call fcn.140064900
test al, al
je 0x1400622ef
mov rbx, qword [r14 + 0x48]
cmp rbx, qword [r14 + 0x50]
je 0x1400622d9
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x50], r12
movabs r12, 0x100000001b3
mov qword [rsp + 0x48], r13
movabs r13, 0x789e9b398d409406
mov qword [rsp + 0x40], r15
xor r15d, r15d
nop word [rax + rax]
mov rbp, qword [rbx + 0x20]
test rbp, rbp
je 0x14006224f
mov qword [rsp + 0x20], rsi
xorps xmm0, xmm0
test rsi, rsi
js 0x1400621c1
cvtsi2sd xmm0, rsi
jmp 0x1400621d9
mov rax, rsi
mov rcx, rsi
shr rcx, 1
and eax, 1
or rcx, rax
cvtsi2sd xmm0, rcx
addsd xmm0, xmm0
movsd qword [rsp + 0x28], xmm0
mov rdi, r13
mov rcx, r15
nop word [rax + rax]
movzx eax, byte [rsp + rcx + 0x20]
xor rdi, rax
movzx eax, byte [rsp + rcx + 0x21]
imul rdi, r12
xor rdi, rax
movzx eax, byte [rsp + rcx + 0x22]
imul rdi, r12
xor rdi, rax
movzx eax, byte [rsp + rcx + 0x23]
imul rdi, r12
add rcx, 4
xor rdi, rax
imul rdi, r12
cmp rcx, 0x10
jb 0x1400621f0
mov rcx, qword [rbp + 0x18]
lea rax, [rcx + 8]
cmp rax, qword [rbp + 0x20]
jbe 0x140062244
mov rcx, rbp
call fcn.14006df70
mov rcx, qword [rbp + 0x18]
lea rax, [rcx + 8]
mov qword [rbp + 0x18], rax
mov qword [rcx], rdi
cmp qword [rbx + 0x30], r15
je 0x140062284
mov edi, r15d
cmp dword [rbx + 0x38], r15d
jbe 0x140062284
nop
mov rax, qword [rbx + 0x30]
mov ecx, edi
mov rdx, qword [rax + rcx*8]
test rdx, rdx
lea rcx, [rdx - 8]
mov rdx, rsi
cmove rcx, r15
call fcn.1400620e0
inc edi
cmp edi, dword [rbx + 0x38]
jb 0x140062260
cmp qword [rbx + 0x40], r15
je 0x1400622b7
mov edi, r15d
cmp dword [rbx + 0x48], r15d
jbe 0x1400622b7
mov rax, qword [rbx + 0x40]
mov ecx, edi
mov rdx, qword [rax + rcx*8]
test rdx, rdx
lea rcx, [rdx - 8]
mov rdx, rsi
cmove rcx, r15
call fcn.1400620e0
inc edi
cmp edi, dword [rbx + 0x48]
jb 0x140062293
add rbx, 0x78
cmp rbx, qword [r14 + 0x50]
jne 0x1400621a0
mov r15, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
mov rcx, r14
call fcn.140062ff0
test al, al
setne al
mov byte [r14 + 0x98], al
jmp 0x1400622f9
mov byte [r14 + 0x98], 0
xor al, al
mov rbx, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1402bf7f0
add rsp, 0x68
pop r14
pop rsi
ret
Function at 0x140062320
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rsi
push r14
sub rsp, 0x68
mov rax, qword [0x14061da68]
xor rax, rsp
mov qword [rsp + 0x30], rax
cmp byte [rcx + 0x98], 0
mov rsi, rdx
mov r14, rcx
jne 0x14006234d
xor al, al
jmp 0x140062526
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x58], rdi
call fcn.140063440
test al, al
je 0x14006250f
mov rax, qword [r14 + 0x50]
mov r8, rsi
mov rdi, qword [rax - 0x70]
lea rbx, [rax - 0x78]
mov rdx, rbx
mov rcx, rdi
call fcn.140064680
test al, al
je 0x14006250f
mov rdx, rbx
mov rcx, rdi
call fcn.140064900
test al, al
je 0x14006250f
mov rbx, qword [r14 + 0x48]
cmp rbx, qword [r14 + 0x50]
je 0x1400624f9
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x50], r12
movabs r12, 0x100000001b3
mov qword [rsp + 0x48], r13
movabs r13, 0x789e9b398d409406
mov qword [rsp + 0x40], r15
xor r15d, r15d
nop word [rax + rax]
mov rbp, qword [rbx + 0x20]
test rbp, rbp
je 0x14006246f
xorps xmm0, xmm0
mov qword [rsp + 0x20], rsi
cvtsi2sd xmm0, rsi
mov rdi, r13
mov rcx, r15
movsd qword [rsp + 0x28], xmm0
nop word [rax + rax]
movzx eax, byte [rsp + rcx + 0x20]
xor rdi, rax
movzx eax, byte [rsp + rcx + 0x21]
imul rdi, r12
xor rdi, rax
movzx eax, byte [rsp + rcx + 0x22]
imul rdi, r12
xor rdi, rax
movzx eax, byte [rsp + rcx + 0x23]
imul rdi, r12
add rcx, 4
xor rdi, rax
imul rdi, r12
cmp rcx, 0x10
jb 0x140062410
mov rcx, qword [rbp + 0x18]
lea rax, [rcx + 8]
cmp rax, qword [rbp + 0x20]
jbe 0x140062464
mov rcx, rbp
call fcn.14006df70
mov rcx, qword [rbp + 0x18]
lea rax, [rcx + 8]
mov qword [rbp + 0x18], rax
mov qword [rcx], rdi
cmp qword [rbx + 0x30], r15
je 0x1400624a4
mov edi, r15d
cmp dword [rbx + 0x38], r15d
jbe 0x1400624a4
nop
mov rax, qword [rbx + 0x30]
mov ecx, edi
mov rdx, qword [rax + rcx*8]
test rdx, rdx
lea rcx, [rdx - 8]
mov rdx, rsi
cmove rcx, r15
call fcn.140062320
inc edi
cmp edi, dword [rbx + 0x38]
jb 0x140062480
cmp qword [rbx + 0x40], r15
je 0x1400624d7
mov edi, r15d
cmp dword [rbx + 0x48], r15d
jbe 0x1400624d7
mov rax, qword [rbx + 0x40]
mov ecx, edi
mov rdx, qword [rax + rcx*8]
test rdx, rdx
lea rcx, [rdx - 8]
mov rdx, rsi
cmove rcx, r15
call fcn.140062320
inc edi
cmp edi, dword [rbx + 0x48]
jb 0x1400624b3
add rbx, 0x78
cmp rbx, qword [r14 + 0x50]
jne 0x1400623e0
mov r15, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
mov rcx, r14
call fcn.140062ff0
test al, al
setne al
mov byte [r14 + 0x98], al
jmp 0x140062519
mov byte [r14 + 0x98], 0
xor al, al
mov rbx, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1402bf7f0
add rsp, 0x68
pop r14
pop rsi
ret