joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14006d5e0
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
mov rax, qword gs:[0x30]
mov r14d, ecx
mov rdx, qword [rax + 0x60]
mov rax, qword [rdx + 0x18]
mov rdx, qword [rax + 0x20]
mov rsi, qword [rdx]
lea rbx, [rsi - 0x10]
mov rbp, rbx
cmp qword [rbx], rsi
je 0x14006d640
mov rdi, qword [rbx + 8]
mov rcx, qword [rdi + 0x60]
call fcn.14006d760
cmp eax, r14d
je 0x14006d65d
mov rbx, qword [rbx]
cmp rbx, rbp
je 0x14006d640
cmp qword [rbx], rsi
jne 0x14006d621
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
mov rax, qword [rdi + 0x30]
jmp 0x14006d642

Function at 0x14006d670
Capabilities:
Resolve function by parsing pe exports

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, 0x20
movsxd rax, dword [rcx + 0x3c]
xor ebx, ebx
mov r15d, edx
mov rbp, rcx
mov esi, dword [rax + rcx + 0x88]
add rsi, rcx
mov r12d, dword [rsi + 0x1c]
mov r14d, dword [rsi + 0x20]
add r12, rcx
mov r13d, dword [rsi + 0x24]
and al, 0x4c
add esi, ecx
add r13, rcx
cmp dword [rsi + 0x18], ebx
jbe 0x14006d6df
nop dword [rax]
movzx edi, bx
mov ecx, dword [r14 + rdi*4]
add rcx, rbp
call fcn.14006d710
cmp eax, r15d
je 0x14006d6fe
inc bx
movzx eax, bx
cmp eax, dword [rsi + 0x18]
jb 0x14006d6c0
xor eax, eax
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
movzx eax, word [r13 + rdi*2]
mov eax, dword [r12 + rax*4]
add rax, rbp
jmp 0x14006d6e1

Function at 0x14006d710
Capabilities:
Hash data using djb2

Disassembly:
movsx r9d, byte [rcx]
lea r10, [rcx + 1]
mov eax, 0x1505
test r9d, r9d
je 0x14006d753
nop dword [rax]
nop word [rax + rax]
lea edx, [r9 - 0x41]
cmp edx, 0x19
lea r8d, [r9 + 0x20]
lea r10, [r10 + 1]
cmova r8d, r9d
movsx r9d, byte [r10 - 1]
imul eax, eax, 0x21
add eax, r8d
test r9d, r9d
jne 0x14006d730
ret

Function at 0x14006d760
Capabilities:
Hash data using djb2

Disassembly:
movzx r9d, word [rcx]
lea r10, [rcx + 2]
mov eax, 0x1505
test r9d, r9d

Function at 0x140070900
Capabilities:
Resolve function by parsing pe exports

Disassembly:
add rcx, 0x570
jmp fcn.14006d670

Function at 0x140070ed0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x20
xor ebx, ebx
lea ecx, [rbx + 0x11]
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 8
test ax, ax
cmovs ebx, ecx
mov ecx, 2
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x140070eff
or ebx, 2
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x140070f12
or ebx, 1
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x140070f25
or ebx, 4
mov ecx, reloc.WS2_32.dll_select
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x140070f38
or ebx, 0x20
mov eax, ebx
add rsp, 0x20
pop rbx
ret
Function at 0x1406ff058
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.1406ff1df
push r10
mov r10, rsp
push r10
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x20]
cld
mov dl, 0x80
mov al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
mov ebx, 2
add dl, dl
jne 0x1406ff089
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1406ff06f
add dl, dl
jne 0x1406ff096
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1406ff0f6
xor eax, eax
add dl, dl
jne 0x1406ff0a5
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1406ff1ad
add dl, dl
jne 0x1406ff0b6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1406ff0c3
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1406ff0d0
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1406ff0dd
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x1406ff0ea
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x1406ff07e
mov eax, 1
add dl, dl
jne 0x1406ff106
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1406ff113
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1406ff0fb
sub eax, ebx
mov ebx, 1
jne 0x1406ff14c
mov ecx, 1
add dl, dl
jne 0x1406ff12e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x1406ff13b
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1406ff123
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1406ff07e
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x1406ff168
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x1406ff175
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1406ff15d
cmp eax, 0x7d00
jae 0x1406ff19b
cmp eax, 0x500
jb 0x1406ff196
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1406ff07e
cmp eax, 0x7f
ja 0x1406ff19e
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1406ff07e
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x1406ff1d2
adc ecx, 2
mov ebp, eax
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
mov ebx, 1
jmp 0x1406ff07e
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x14000b350
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x148]
sub rsp, 0x208
movsxd r14, dword [rdx + 0x3c]
mov rbx, rdx
mov eax, dword [r14 + rdx + 0x88]
test eax, eax
je 0x14000b427
lea rdi, [rdx + rax]
mov esi, dword [rdi + 0x18]
test esi, esi
je 0x14000b427
mov r8d, dword [rdi + 0xc]
xor ecx, ecx
mov eax, dword [rdi + 0x20]
add r8, rdx
mov r12d, dword [rdi + 0x1c]
add rax, rdx
mov r13d, dword [rdi + 0x24]
add r12, rdx
mov qword [rbp + 0x158], rax
add r13, rdx
mov al, byte [r8]
test al, al
je 0x14000b3de
xor edx, edx
inc ecx
or al, 0x20
mov byte [rbp + rdx - 0x10], al
mov edx, ecx
mov al, byte [rcx + r8]
test al, al
jne 0x14000b3cc
mov byte [rbp + rcx - 0x10], 0
mov rdx, r9
lea rcx, [rbp - 0x10]
call fcn.14000d8b8
mov qword [rsp + 0x20], rax
mov rax, qword [rbp + 0x158]
lea ecx, [rsi - 1]
mov rdx, qword [rbp + 0x168]
mov esi, ecx
mov r15d, ecx
mov ecx, dword [rax + rcx*4]
add rcx, rbx
call fcn.14000d8b8
xor rax, qword [rsp + 0x20]
cmp rax, qword [rbp + 0x160]
je 0x14000b43d
test esi, esi
jne 0x14000b3f4
xor eax, eax
add rsp, 0x208
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
movzx eax, word [r13 + r15*2]
mov r8d, dword [r12 + rax*4]
add r8, rbx
cmp r8, rdi
jb 0x14000b4fd
mov eax, dword [r14 + rbx + 0x8c]
add rax, rdi
cmp r8, rax
jae 0x14000b4fd
xor r10d, r10d
mov r9d, r10d
cmp byte [r8], r10b
je 0x14000b491
cmp r9d, 0x3c
jae 0x14000b491
mov eax, r9d
mov cl, byte [rax + r8]
mov byte [rsp + rax + 0x30], cl
cmp cl, 0x2e
je 0x14000b491
inc r9d
cmp byte [r9 + r8], r10b
jne 0x14000b472
lea eax, [r9 + 1]
mov edx, eax
mov byte [rsp + rax + 0x30], 0x64
lea eax, [r9 + 2]
mov byte [rsp + rax + 0x30], 0x6c
lea eax, [r9 + 3]
mov byte [rsp + rax + 0x30], 0x6c
lea eax, [r9 + 4]
lea r9, [rdx + r8]
mov byte [rsp + rax + 0x30], r10b
mov edx, r10d
cmp byte [r9], r10b
je 0x14000b4da
cmp edx, 0x7f
jae 0x14000b4da
mov ecx, edx
inc edx
mov al, byte [rcx + r9]
mov byte [rsp + rcx + 0x70], al
cmp byte [rdx + r9], r10b
jne 0x14000b4c3
mov rcx, qword [rbp + 0x150]
lea r9, [rsp + 0x70]
mov eax, edx
lea r8, [rsp + 0x30]
mov rdx, rbx
mov byte [rsp + rax + 0x70], r10b
call fcn.14000b508
mov r8, rax
mov rax, r8
jmp 0x14000b429
Function at 0x14000b508
Capabilities:
Access peb ldr_data
Get ntdll base address

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, 0x20
mov rax, qword gs:[0x30]
xor r11d, r11d
mov rsi, r9
mov r14, r8
mov rbp, rdx
mov rdi, rcx
mov r10, qword [rax + 0x60]
mov rax, qword [r10 + 0x18]
mov rbx, qword [rax + 0x10]
cmp qword [rbx + 0x30], r11
je 0x14000b579
test r11, r11
jne 0x14000b59a
mov rdx, qword [rbx + 0x30]
cmp rdx, rbp
je 0x14000b56a
xor r9d, r9d
mov r8, rsi
mov rcx, rdi
call fcn.14000d69c
mov r11, rax
mov rbx, qword [rbx]
cmp qword [rbx + 0x30], 0
jne 0x14000b54b
test r11, r11
jne 0x14000b59a
mov rdx, r14
mov rcx, rdi
call fcn.14000d5b4
test rax, rax
je 0x14000b597
mov rdx, rsi
mov rcx, rax
call qword [rdi + 0x38]
mov r11, rax
jmp 0x14000b59a
xor r11d, r11d
mov rbx, qword [rsp + 0x30]
mov rax, r11
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
Function at 0x14000d358
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
mov rax, qword gs:[0x30]
mov rsi, rcx
add rcx, 0x348
mov rbp, rdx
mov r15, qword [rax + 0x60]
call qword [rsi + 0x40]
xor ecx, ecx
movsxd r9, dword [rax + 0x3c]
add r9, rax
movzx r10d, word [r9 + 0x14]
movzx r8d, word [r9 + 6]
add r10, r9
test r8d, r8d
je 0x14000d3c8
mov r9d, dword [rsi + 0x340]
lea rdx, [rcx + rcx*4]
cmp dword [r10 + rdx*8 + 0x18], r9d
je 0x14000d3fd
inc ecx
cmp ecx, r8d
jb 0x14000d3b6
mov ebx, dword [rsp + 0xe0]
mov rdi, qword [rsp + 0xe0]
call qword [rsi + 0xc0]
xor edx, edx
test ebx, ebx
je 0x14000d41d
mov r8, rdi
lea rcx, [r8 + 8]
mov r14, r8
mov r8, rcx
cmp qword [rcx], rax
je 0x14000d40f
inc edx
cmp edx, ebx
jb 0x14000d3e6
jmp 0x14000d425
mov edi, dword [r10 + rdx*8 + 0x24]
mov ebx, dword [r10 + rdx*8 + 0x20]
add rdi, rax
shr ebx, 3
jmp 0x14000d3d7
mov rdx, rbp
mov rcx, r14
call qword [rsi + 0x1f0]
jmp 0x14000d425
mov r14, qword [rsp + 0xe0]
call qword [rsi + 0xb8]
xor ebp, ebp
lea r9d, [rbp + 1]
test ebx, ebx
je 0x14000d476
lea rcx, [rdi + 8]
cmp qword [rcx], rax
je 0x14000d44b
add ebp, r9d
add rcx, 8
cmp ebp, ebx
jb 0x14000d439
jmp 0x14000d476
mov r8b, r9b
lea rcx, [rsp + 0x20]
mov rdx, r14
call qword [rsi + 0x1d0]
lea rcx, [rdi + rbp*8]
mov r8d, 0x10
lea rdx, [rsp + 0x20]
call fcn.14000ddc4
mov r9d, 1
mov rax, qword [r15 + 0x18]
mov rdi, qword [rax + 0x10]
jmp 0x14000d585
lea r12, [rsi + 0x370]
mov cl, byte [r12]
xor ebp, ebp
xor edx, edx
mov r15d, r9d
test cl, cl
je 0x14000d582
xor r8d, r8d
cmp cl, 0x3b
je 0x14000d4d3
cmp edx, 0x80
jae 0x14000d4d3
xor eax, eax
mov byte [rsp + r8 + 0x30], cl
cmp cl, 0x77
cmovne eax, r15d
cmp cl, 0x70
mov r15d, eax
cmove ebp, r9d
add edx, r9d
mov r8d, edx
mov cl, byte [rdx + r12]
test cl, cl
jne 0x14000d4a0
test edx, edx
je 0x14000d582
lea ecx, [rdx + 1]
mov byte [rsp + rdx + 0x30], 0
mov rdx, qword [rdi + 0x30]
lea r8, [rsp + 0x30]
add r12, rcx
xor r9d, r9d
mov rcx, rsi
call fcn.14000d69c
mov rbx, rax
mov r9d, 1
test rax, rax
je 0x14000d48a
test r15d, r15d
je 0x14000d545
test ebp, ebp
je 0x14000d525
call rbx
mov rbx, rax
mov r9d, 1
test rax, rax
je 0x14000d48a
mov rdx, qword [rbx]
mov rcx, rsi
call fcn.14000bad4
mov r9d, 1
test eax, eax
je 0x14000d48a
mov rax, qword [rsp + 0x28]
jmp 0x14000d57a
test ebp, ebp
je 0x14000d55d
call rbx
mov rbx, rax
mov r9d, 1
test rax, rax
je 0x14000d48a
mov rdx, qword [rbx]
mov rcx, rsi
call fcn.14000bad4
mov r9d, 1
test eax, eax
je 0x14000d48a
mov rax, qword [r14 + 8]
mov qword [rbx], rax
jmp 0x14000d48a
mov rdi, qword [rdi]
cmp qword [rdi + 0x30], 0
jne 0x14000d483
lea r11, [rsp + 0xb0]
mov eax, r9d
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
Function at 0x14000d5b4
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x60
or r10d, 0xffffffff
xor r8d, r8d
mov rsi, rcx
cmp byte [rdx], r8b
je 0x14000d5eb
cmp r8d, 0x40
jae 0x14000d5eb
mov al, byte [r8 + rdx]
mov byte [rsp + r8 + 0x20], al
inc r8d
cmp byte [r8 + rdx], 0
jne 0x14000d5d2
lea eax, [r8 - 4]
mov byte [rsp + r8 + 0x20], 0
cmp byte [rsp + rax + 0x20], 0x2e
je 0x14000d626
mov byte [rsp + r8 + 0x20], 0x2e
inc r8d
mov byte [rsp + r8 + 0x20], 0x64
inc r8d
mov byte [rsp + r8 + 0x20], 0x6c
inc r8d
lea eax, [r8 + 1]
mov byte [rsp + r8 + 0x20], 0x6c
mov byte [rsp + rax + 0x20], 0
mov rax, qword gs:[0x30]
mov rcx, qword [rax + 0x60]
mov rax, qword [rcx + 0x18]
mov rdi, qword [rax + 0x10]
mov rbx, qword [rdi + 0x30]
test rbx, rbx
je 0x14000d67d
movsxd rax, dword [rbx + 0x3c]
mov ecx, dword [rax + rbx + 0x88]
xor eax, eax
test ecx, ecx
je 0x14000d670
mov edx, dword [rcx + rbx + 0xc]
lea rcx, [rsp + 0x20]
add rdx, rbx
call fcn.14000de20
mov r10d, eax
xor eax, eax
test r10d, r10d
je 0x14000d695
mov rdi, qword [rdi]
test r10d, r10d
jne 0x14000d63b
test rax, rax
jne 0x14000d685
lea rcx, [rsp + 0x20]
call qword [rsi + 0x30]
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x60
pop rdi
ret
mov rax, rbx
jmp 0x14000d685
Function at 0x14000d69c
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
xor r11d, r11d
mov rdi, rdx
mov r10, rcx
mov ebx, r11d
test rdx, rdx
je 0x14000d824
movsxd r15, dword [rdx + 0x3c]
mov eax, dword [r15 + rdx + 0x88]
test eax, eax
je 0x14000d824
lea rsi, [rdx + rax]
mov r14d, dword [rsi + 0x1c]
mov r13d, dword [rsi + 0x20]
add r14, rdx
mov r12d, dword [rsi + 0x24]
add r13, rdx
add r12, rdx
test r8, r8
je 0x14000d814
mov ebp, dword [rsi + 0x18]
test ebp, ebp
je 0x14000d824
lea eax, [rbp - 1]
mov rdx, r8
mov ecx, dword [r13 + rax*4]
mov ebp, eax
add rcx, rdi
mov qword [rsp + 0xe8], rax
call fcn.14000de00
xor r11d, r11d
test eax, eax
jne 0x14000d74b
mov rax, qword [rsp + 0xe8]
movzx eax, word [r12 + rax*2]
mov ebx, dword [r14 + rax*4]
add rbx, rdi
test ebp, ebp
je 0x14000d75c
mov r8, qword [rsp + 0xf0]
test rbx, rbx
je 0x14000d713
mov r10, qword [rsp + 0xe0]
cmp rbx, rsi
jb 0x14000d80f
mov eax, dword [r15 + rdi + 0x8c]
add rax, rsi
cmp rbx, rax
jae 0x14000d80f
mov r8d, r11d
cmp byte [rbx], r11b
je 0x14000d7a7
cmp r8d, 0x3c
jae 0x14000d7a7
mov eax, r8d
mov cl, byte [rax + rbx]
mov byte [rsp + rax + 0x20], cl
cmp cl, 0x2e
je 0x14000d7a7
inc r8d
cmp byte [r8 + rbx], r11b
jne 0x14000d789
lea eax, [r8 + 1]
mov edx, eax
mov byte [rsp + rax + 0x20], 0x64
lea eax, [r8 + 2]
mov byte [rsp + rax + 0x20], 0x6c
lea eax, [r8 + 3]
mov byte [rsp + rax + 0x20], 0x6c
lea eax, [r8 + 4]
lea r8, [rdx + rbx]
mov byte [rsp + rax + 0x20], r11b
mov edx, r11d
cmp byte [r8], r11b
je 0x14000d7f0
cmp edx, 0x3f
jae 0x14000d7f0
mov ecx, edx
inc edx
mov al, byte [rcx + r8]
mov byte [rsp + rcx + 0x60], al
cmp byte [rdx + r8], r11b
jne 0x14000d7d9
mov eax, edx
lea r9, [rsp + 0x60]
lea r8, [rsp + 0x20]
mov rdx, rdi
mov rcx, r10
mov byte [rsp + rax + 0x60], r11b
call fcn.14000b508
mov rbx, rax
mov rax, rbx
jmp 0x14000d826
sub r9d, dword [rsi + 0x10]
mov ebx, dword [r14 + r9*4]
add rbx, rdi
jmp 0x14000d764
xor eax, eax
mov rbx, qword [rsp + 0xf8]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret

Function at 0x14000d844
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rax, qword gs:[0x30]
mov rdi, r8
mov rsi, rdx
mov rbp, rcx
xor r10d, r10d
mov r9, qword [rax + 0x60]
mov rax, qword [r9 + 0x18]
mov rbx, qword [rax + 0x10]
jmp 0x14000d897
test r10, r10
jne 0x14000d8a0
mov r9, rdi
mov r8, rsi
mov rdx, rax
mov rcx, rbp
call fcn.14000b350
mov rbx, qword [rbx]
mov r10, rax
mov rax, qword [rbx + 0x30]
test rax, rax
jne 0x14000d87b
mov rbx, qword [rsp + 0x30]
mov rax, r10
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x14000d984
Capabilities:
Encode data using xor

Disassembly:
push rbx
sub rsp, 0x10
movups xmm0, xmmword [rcx]
mov qword [rsp + 0x28], rdx
mov ecx, edx
mov r8d, dword [rsp + 0x2c]
xor r10d, r10d
movups xmmword [rsp], xmm0
mov edx, dword [rsp + 0xc]
mov r11d, dword [rsp + 8]
mov ebx, dword [rsp + 4]
mov r9d, dword [rsp]
mov eax, edx
ror ecx, 8
add ecx, r8d
mov edx, ebx
xor ecx, r9d
ror edx, 8
add edx, r9d
rol r8d, 3
xor edx, r10d
rol r9d, 3
xor r9d, edx
xor r8d, ecx
inc r10d
mov ebx, r11d
mov r11d, eax
cmp r10d, 0x1b
jb 0x14000d9b1
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x2c], r8d
mov rax, qword [rsp + 0x28]
add rsp, 0x10
pop rbx
ret

Function at 0x14000d9f8
Capabilities:
Encode data using xor
Encrypt data using chaskey

Disassembly:
test r9d, r9d
je 0x14000db46
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r14
mov rbp, rsp
sub rsp, 0x10
mov r11, rcx
lea rax, [rbp - 0x10]
sub r11, rax
lea r14, [rdx + 0xf]
mov rdi, r8
mov r12d, 0x10
lea rax, [rbp - 0x10]
cmp rax, r14
ja 0x14000da4f
lea rax, [rbp - 1]
cmp rax, rdx
jb 0x14000da4f
movups xmm0, xmmword [rdx]
movdqu xmmword [rbp - 0x10], xmm0
jmp 0x14000da57
movups xmm0, xmmword [rdx]
movdqu xmmword [rbp - 0x10], xmm0
lea rcx, [rbp - 0x10]
mov r8d, 4
mov eax, dword [r11 + rcx]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub r8, 1
jne 0x14000da61
mov r8d, dword [rbp - 4]
mov rbx, r12
mov eax, dword [rbp - 8]
mov r10d, dword [rbp - 0xc]
mov ecx, dword [rbp - 0x10]
add ecx, r10d
add eax, r8d
rol r10d, 5
xor r10d, ecx
rol r8d, 8
xor r8d, eax
rol ecx, 0x10
add eax, r10d
add ecx, r8d
rol r10d, 7
rol r8d, 0xd
xor r10d, eax
xor r8d, ecx
rol eax, 0x10
sub rbx, 1
jne 0x14000da82
mov dword [rbp - 4], r8d
lea r8d, [rbx + 4]
mov dword [rbp - 0x10], ecx
lea rcx, [rbp - 0x10]
mov dword [rbp - 0xc], r10d
mov dword [rbp - 8], eax
mov eax, dword [rcx + r11]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub r8, 1
jne 0x14000dacc
cmp r9d, r12d
mov ecx, r9d
cmova ecx, r12d
mov r10d, ecx
test ecx, ecx
je 0x14000db0a
lea rbx, [rbp - 0x10]
mov r8, rdi
sub rbx, rdi
mov esi, r10d
mov al, byte [rbx + r8]
xor byte [r8], al
inc r8
sub rsi, 1
jne 0x14000dafa
sub r9d, ecx
mov r8d, r12d
add rdi, r10
lea eax, [r8 - 1]
add byte [rax + rdx], 1
jne 0x14000db25
dec r8d
test r8d, r8d
jg 0x14000db13
test r9d, r9d
jne 0x14000da33
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
add rsp, 0x10
pop r14
pop r12
pop rbp
ret
Function at 0x14000db48
Capabilities:
Decompress data using aplib

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
push rbp
mov rbp, rsp
sub rsp, 0x40
mov al, byte [rcx]
or r14d, 0xffffffff
and dword [rbp - 0xc], 0
xor r9d, r9d
mov byte [rdx], al
xor edi, edi
lea rax, [rdx + 1]
mov rbx, rdx
mov qword [rbp - 0x18], rax
mov r11d, r14d
lea rax, [rcx + 1]
mov qword [rbp - 0x20], rax
lea esi, [rdi + 1]
lea rcx, [rbp - 0x20]
call fcn.14000dd8c
test eax, eax
je 0x14000dd48
lea rcx, [rbp - 0x20]
call fcn.14000dd8c
test eax, eax
je 0x14000dc4e
lea rcx, [rbp - 0x20]
call fcn.14000dd8c
test eax, eax
je 0x14000dc0a
xor r9d, r9d
lea r10d, [r9 + 4]
lea rcx, [rbp - 0x20]
call fcn.14000dd8c
lea r9d, [rax + r9*2]
sub r10d, esi
jne 0x14000dbc3
test r9d, r9d
je 0x14000dbf7
mov rdx, qword [rbp - 0x18]
mov rax, rdx
mov ecx, r9d
sub rax, rcx
mov al, byte [rax]
mov byte [rdx], al
add rdx, rsi
mov qword [rbp - 0x18], rdx
jmp 0x14000dd62
mov rax, qword [rbp - 0x18]
mov byte [rax], 0
add rax, rsi
mov qword [rbp - 0x18], rax
jmp 0x14000dd62
mov rax, qword [rbp - 0x20]
movzx r11d, byte [rax]
add rax, rsi
mov ecx, r11d
mov qword [rbp - 0x20], rax
and ecx, esi
add ecx, 2
shr r11d, 1
je 0x14000dc47
mov rdx, qword [rbp - 0x18]
mov r8d, r11d
neg r8
mov al, byte [r8 + rdx]
mov byte [rdx], al
add rdx, rsi
add ecx, r14d
jne 0x14000dc30
mov qword [rbp - 0x18], rdx
jmp 0x14000dd43
mov edi, esi
jmp 0x14000dd43
mov r10d, esi
lea rcx, [rbp - 0x20]
call fcn.14000dd8c
lea rcx, [rbp - 0x20]
lea r10d, [rax + r10*2]
call fcn.14000dd8c
test eax, eax
jne 0x14000dc51
test r9d, r9d
jne 0x14000dcb8
cmp r10d, 2
jne 0x14000dcb8
mov r9d, esi
lea rcx, [rbp - 0x20]
call fcn.14000dd8c
lea rcx, [rbp - 0x20]
lea r9d, [rax + r9*2]
call fcn.14000dd8c
test eax, eax
jne 0x14000dc79
test r9d, r9d
je 0x14000dd43
mov rcx, qword [rbp - 0x18]
mov edx, r11d
neg rdx
mov al, byte [rdx + rcx]
mov byte [rcx], al
add rcx, rsi
add r9d, r14d
jne 0x14000dca6
jmp 0x14000dd3f
mov rcx, qword [rbp - 0x20]
xor r9d, esi
sub r10d, r9d
mov r9d, esi
shl r10d, 8
movzx r11d, byte [rcx]
add r11d, 0xfffffe00
add r11d, r10d
add rcx, rsi
mov qword [rbp - 0x20], rcx
lea rcx, [rbp - 0x20]
call fcn.14000dd8c
lea rcx, [rbp - 0x20]
lea r9d, [rax + r9*2]
call fcn.14000dd8c
test eax, eax
jne 0x14000dcde
cmp r11d, 0x7d00
lea eax, [r9 + 1]
cmovb eax, r9d
cmp r11d, 0x500
lea ecx, [rax + 1]
cmovb ecx, eax
cmp r11d, 0x80
lea r8d, [rcx + 2]
cmovae r8d, ecx
test r8d, r8d
je 0x14000dd43
mov rcx, qword [rbp - 0x18]
mov edx, r11d
neg rdx
mov al, byte [rdx + rcx]
mov byte [rcx], al
add rcx, rsi
add r8d, r14d
jne 0x14000dd32
mov qword [rbp - 0x18], rcx
mov r9d, esi
jmp 0x14000dd65
mov rdx, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x18]
mov al, byte [rdx]
mov byte [rcx], al
add rcx, rsi
add rdx, rsi
mov qword [rbp - 0x18], rcx
mov qword [rbp - 0x20], rdx
xor r9d, r9d
test edi, edi
je 0x14000db8d
mov eax, dword [rbp - 0x18]
mov rsi, qword [rsp + 0x58]
sub eax, ebx
mov rbx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
add rsp, 0x40
pop rbp
ret
Function at 0x1400107d5
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
mov eax, dword [rsp + 0x18]
mov edx, dword [rsp + 0x1c]
push rbx
push rbp
push rsi
mov esi, dword [rsp + 0x20]
xor ebx, ebx
push rdi
lea edi, [rsp + 0x10]
movsd dword [rdi], dword [rsi]
movsd dword [rdi], dword [rsi]
movsd dword [rdi], dword [rsi]
movsd dword [rdi], dword [rsi]
mov ecx, dword [rsp + 0x14]
mov esi, dword [rsp + 0x1c]
mov ebp, dword [rsp + 0x18]
mov edi, dword [rsp + 0x10]
mov dword [rsp + 0x28], ecx
mov ecx, esi
ror eax, 8
mov esi, dword [rsp + 0x28]
add eax, edx
ror esi, 8
xor eax, edi
add esi, edi
rol edx, 3
xor esi, ebx
rol edi, 3
xor edx, eax
mov dword [rsp + 0x28], ebp
xor edi, esi
mov ebp, ecx
cmp r11d, 0x1b
jb 0x140010806
pop rdi
pop rsi
pop rbp
pop rbx
add esp, 0x10
ret

Function at 0x140010838
Capabilities:
Encode data using xor
Encrypt data using chaskey

Disassembly:
mov edx, dword [rsp + 0x10]
sub esp, 0x14
push rbx
mov ebx, dword [rsp + 0x20]
push rbp
mov ebp, dword [rsp + 0x28]
test edx, edx
je 0x14001093d
xor eax, eax
lea ecx, [rbx + 0xf]
mov dword [rsp + 0x2c], ecx
sub eax, ebx
push rsi
mov dword [rsp + 0xc], eax
push rdi
lea eax, [rsp + 0x14]
cmp eax, ecx
ja 0x14001086f
lea eax, [rsp + 0x23]
mov esi, ebx
lea edi, [rsp + 0x14]
xor ecx, ecx
movsd dword [rdi], dword [rsi]
movsd dword [rdi], dword [rsi]
movsd dword [rdi], dword [rsi]
movsd dword [rdi], dword [rsi]
mov esi, dword [rsp + 0x28]
mov eax, dword [rsi + rcx*4]
xor dword [rsp + rcx*4 + 0x14], eax
cmp r9d, 4
jb 0x14001087f
mov esi, dword [rsp + 0x20]
mov eax, dword [rsp + 0x1c]
mov edi, dword [rsp + 0x18]
mov ecx, dword [rsp + 0x14]
mov dword [rsp + 0x30], 0x10
add ecx, edi
add eax, esi
rol edi, 5
xor edi, ecx
rol esi, 8
xor esi, eax
rol ecx, 0x10
add eax, edi
add ecx, esi
rol edi, 7
rol esi, 0xd
xor edi, eax
xor esi, ecx
rol eax, 0x10
sub dword [rsp + 0x30], 1
jne 0x1400108a4
mov ebx, dword [rsp + 0x28]
mov dword [rsp + 0x14], ecx
xor ecx, ecx
mov dword [rsp + 0x20], esi
mov dword [rsp + 0x18], edi
mov dword [rsp + 0x1c], eax
mov eax, dword [rbx + rcx*4]
xor dword [rsp + rcx*4 + 0x14], eax
cmp r9d, 4
jb 0x1400108e3
push 0x10
pop rsi
cmp edx, esi
mov ecx, edx
cmova ecx, esi
test ecx, ecx
je 0x140010913
lea edi, [rsp + 0x14]
mov esi, ebp
sub edi, ebp
mov ebx, ecx
mov al, byte [rdi + rsi]
xor byte [rsi], al
sub ebx, 1
jne 0x140010908
mov ebx, dword [rsp + 0x10]
sub edx, ecx
add ebp, ecx
mov ecx, dword [rsp + 0x34]
add byte [rcx], 1
jne 0x14001092c
lea rax, [r11 + rcx]
test eax, eax
jg 0x14001091f
mov ebx, dword [rsp + 0x2c]
lea ecx, [rbx + 0xf]
test edx, edx
jne 0x140010863
pop rdi
pop rsi
pop rbp
pop rbx
add esp, 0x14
ret