joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400c57b3
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 0x1400c588a
lea rdi, [rdx + rax]
mov esi, dword [rdi + 0x18]
test esi, esi
je 0x1400c588a
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 0x1400c5841
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 0x1400c582f
mov byte [rbp + rcx - 0x10], 0
mov rdx, r9
lea rcx, [rbp - 0x10]
call fcn.1400c7d1b
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.1400c7d1b
xor rax, qword [rsp + 0x20]
cmp rax, qword [rbp + 0x160]
je 0x1400c58a0
test esi, esi
jne 0x1400c5857
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 0x1400c5960
mov eax, dword [r14 + rbx + 0x8c]
add rax, rdi
cmp r8, rax
jae 0x1400c5960
xor r10d, r10d
mov r9d, r10d
cmp byte [r8], r10b
je 0x1400c58f4
cmp r9d, 0x3c
jae 0x1400c58f4
mov eax, r9d
mov cl, byte [rax + r8]
mov byte [rsp + rax + 0x30], cl
cmp cl, 0x2e
je 0x1400c58f4
inc r9d
cmp byte [r9 + r8], r10b
jne 0x1400c58d5
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 0x1400c593d
cmp edx, 0x7f
jae 0x1400c593d
mov ecx, edx
inc edx
mov al, byte [rcx + r9]
mov byte [rsp + rcx + 0x70], al
cmp byte [rdx + r9], r10b
jne 0x1400c5926
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.1400c596b
mov r8, rax
mov rax, r8
jmp 0x1400c588c
Function at 0x1400c596b
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 0x1400c59dc
test r11, r11
jne 0x1400c59fd
mov rdx, qword [rbx + 0x30]
cmp rdx, rbp
je 0x1400c59cd
xor r9d, r9d
mov r8, rsi
mov rcx, rdi
call fcn.1400c7aff
mov r11, rax
mov rbx, qword [rbx]
cmp qword [rbx + 0x30], 0
jne 0x1400c59ae
test r11, r11
jne 0x1400c59fd
mov rdx, r14
mov rcx, rdi
call fcn.1400c7a17
test rax, rax
je 0x1400c59fa
mov rdx, rsi
mov rcx, rax
call qword [rdi + 0x38]
mov r11, rax
jmp 0x1400c59fd
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 0x1400c77bb
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 0x1400c782b
mov r9d, dword [rsi + 0x340]
lea rdx, [rcx + rcx*4]
cmp dword [r10 + rdx*8 + 0x18], r9d
je 0x1400c7860
inc ecx
cmp ecx, r8d
jb 0x1400c7819
mov ebx, dword [rsp + 0xe0]
mov rdi, qword [rsp + 0xe0]
call qword [rsi + 0xc0]
xor edx, edx
test ebx, ebx
je 0x1400c7880
mov r8, rdi
lea rcx, [r8 + 8]
mov r14, r8
mov r8, rcx
cmp qword [rcx], rax
je 0x1400c7872
inc edx
cmp edx, ebx
jb 0x1400c7849
jmp 0x1400c7888
mov edi, dword [r10 + rdx*8 + 0x24]
mov ebx, dword [r10 + rdx*8 + 0x20]
add rdi, rax
shr ebx, 3
jmp 0x1400c783a
mov rdx, rbp
mov rcx, r14
call qword [rsi + 0x1f0]
jmp 0x1400c7888
mov r14, qword [rsp + 0xe0]
call qword [rsi + 0xb8]
xor ebp, ebp
lea r9d, [rbp + 1]
test ebx, ebx
je 0x1400c78d9
lea rcx, [rdi + 8]
cmp qword [rcx], rax
je 0x1400c78ae
add ebp, r9d
add rcx, 8
cmp ebp, ebx
jb 0x1400c789c
jmp 0x1400c78d9
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.1400c8227
mov r9d, 1
mov rax, qword [r15 + 0x18]
mov rdi, qword [rax + 0x10]
jmp 0x1400c79e8
lea r12, [rsi + 0x370]
mov cl, byte [r12]
xor ebp, ebp
xor edx, edx
mov r15d, r9d
test cl, cl
je 0x1400c79e5
xor r8d, r8d
cmp cl, 0x3b
je 0x1400c7936
cmp edx, 0x80
jae 0x1400c7936
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 0x1400c7903
test edx, edx
je 0x1400c79e5
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.1400c7aff
mov rbx, rax
mov r9d, 1
test rax, rax
je 0x1400c78ed
test r15d, r15d
je 0x1400c79a8
test ebp, ebp
je 0x1400c7988
call rbx
mov rbx, rax
mov r9d, 1
test rax, rax
je 0x1400c78ed
mov rdx, qword [rbx]
mov rcx, rsi
call fcn.1400c5f37
mov r9d, 1
test eax, eax
je 0x1400c78ed
mov rax, qword [rsp + 0x28]
jmp 0x1400c79dd
test ebp, ebp
je 0x1400c79c0
call rbx
mov rbx, rax
mov r9d, 1
test rax, rax
je 0x1400c78ed
mov rdx, qword [rbx]
mov rcx, rsi
call fcn.1400c5f37
mov r9d, 1
test eax, eax
je 0x1400c78ed
mov rax, qword [r14 + 8]
mov qword [rbx], rax
jmp 0x1400c78ed
mov rdi, qword [rdi]
cmp qword [rdi + 0x30], 0
jne 0x1400c78e6
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 0x1400c7a17
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 0x1400c7a4e
cmp r8d, 0x40
jae 0x1400c7a4e
mov al, byte [r8 + rdx]
mov byte [rsp + r8 + 0x20], al
inc r8d
cmp byte [r8 + rdx], 0
jne 0x1400c7a35
lea eax, [r8 - 4]
mov byte [rsp + r8 + 0x20], 0
cmp byte [rsp + rax + 0x20], 0x2e
je 0x1400c7a89
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 0x1400c7ae0
movsxd rax, dword [rbx + 0x3c]
mov ecx, dword [rax + rbx + 0x88]
xor eax, eax
test ecx, ecx
je 0x1400c7ad3
mov edx, dword [rcx + rbx + 0xc]
lea rcx, [rsp + 0x20]
add rdx, rbx
call fcn.1400c8283
mov r10d, eax
xor eax, eax
test r10d, r10d
je 0x1400c7af8
mov rdi, qword [rdi]
test r10d, r10d
jne 0x1400c7a9e
test rax, rax
jne 0x1400c7ae8
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 0x1400c7ae8
Function at 0x1400c7aff
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 0x1400c7c87
movsxd r15, dword [rdx + 0x3c]
mov eax, dword [r15 + rdx + 0x88]
test eax, eax
je 0x1400c7c87
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 0x1400c7c77
mov ebp, dword [rsi + 0x18]
test ebp, ebp
je 0x1400c7c87
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.1400c8263
xor r11d, r11d
test eax, eax
jne 0x1400c7bae
mov rax, qword [rsp + 0xe8]
movzx eax, word [r12 + rax*2]
mov ebx, dword [r14 + rax*4]
add rbx, rdi
test ebp, ebp
je 0x1400c7bbf
mov r8, qword [rsp + 0xf0]
test rbx, rbx
je 0x1400c7b76
mov r10, qword [rsp + 0xe0]
cmp rbx, rsi
jb 0x1400c7c72
mov eax, dword [r15 + rdi + 0x8c]
add rax, rsi
cmp rbx, rax
jae 0x1400c7c72
mov r8d, r11d
cmp byte [rbx], r11b
je 0x1400c7c0a
cmp r8d, 0x3c
jae 0x1400c7c0a
mov eax, r8d
mov cl, byte [rax + rbx]
mov byte [rsp + rax + 0x20], cl
cmp cl, 0x2e
je 0x1400c7c0a
inc r8d
cmp byte [r8 + rbx], r11b
jne 0x1400c7bec
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 0x1400c7c53
cmp edx, 0x3f
jae 0x1400c7c53
mov ecx, edx
inc edx
mov al, byte [rcx + r8]
mov byte [rsp + rcx + 0x60], al
cmp byte [rdx + r8], r11b
jne 0x1400c7c3c
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.1400c596b
mov rbx, rax
mov rax, rbx
jmp 0x1400c7c89
sub r9d, dword [rsi + 0x10]
mov ebx, dword [r14 + r9*4]
add rbx, rdi
jmp 0x1400c7bc7
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 0x1400c7ca7
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 0x1400c7cfa
test r10, r10
jne 0x1400c7d03
mov r9, rdi
mov r8, rsi
mov rdx, rax
mov rcx, rbp
call fcn.1400c57b3
mov rbx, qword [rbx]
mov r10, rax
mov rax, qword [rbx + 0x30]
test rax, rax
jne 0x1400c7cde
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 0x1400c7de7
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 0x1400c7e14
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x2c], r8d
mov rax, qword [rsp + 0x28]
add rsp, 0x10
pop rbx
ret

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

Disassembly:
test r9d, r9d
je 0x1400c7fa9
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 0x1400c7eb2
lea rax, [rbp - 1]
cmp rax, rdx
jb 0x1400c7eb2
movups xmm0, xmmword [rdx]
movdqu xmmword [rbp - 0x10], xmm0
jmp 0x1400c7eba
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 0x1400c7ec4
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 0x1400c7ee5
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 0x1400c7f2f
cmp r9d, r12d
mov ecx, r9d
cmova ecx, r12d
mov r10d, ecx
test ecx, ecx
je 0x1400c7f6d
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 0x1400c7f5d
sub r9d, ecx
mov r8d, r12d
add rdi, r10
lea eax, [r8 - 1]
add byte [rax + rdx], 1
jne 0x1400c7f88
dec r8d
test r8d, r8d
jg 0x1400c7f76
test r9d, r9d
jne 0x1400c7e96
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 0x1400c7fab
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.1400c81ef
test eax, eax
je 0x1400c81ab
lea rcx, [rbp - 0x20]
call fcn.1400c81ef
test eax, eax
je 0x1400c80b1
lea rcx, [rbp - 0x20]
call fcn.1400c81ef
test eax, eax
je 0x1400c806d
xor r9d, r9d
lea r10d, [r9 + 4]
lea rcx, [rbp - 0x20]
call fcn.1400c81ef
lea r9d, [rax + r9*2]
sub r10d, esi
jne 0x1400c8026
test r9d, r9d
je 0x1400c805a
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 0x1400c81c5
mov rax, qword [rbp - 0x18]
mov byte [rax], 0
add rax, rsi
mov qword [rbp - 0x18], rax
jmp 0x1400c81c5
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 0x1400c80aa
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 0x1400c8093
mov qword [rbp - 0x18], rdx
jmp 0x1400c81a6
mov edi, esi
jmp 0x1400c81a6
mov r10d, esi
lea rcx, [rbp - 0x20]
call fcn.1400c81ef
lea rcx, [rbp - 0x20]
lea r10d, [rax + r10*2]
call fcn.1400c81ef
test eax, eax
jne 0x1400c80b4
test r9d, r9d
jne 0x1400c811b
cmp r10d, 2
jne 0x1400c811b
mov r9d, esi
lea rcx, [rbp - 0x20]
call fcn.1400c81ef
lea rcx, [rbp - 0x20]
lea r9d, [rax + r9*2]
call fcn.1400c81ef
test eax, eax
jne 0x1400c80dc
test r9d, r9d
je 0x1400c81a6
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 0x1400c8109
jmp 0x1400c81a2
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.1400c81ef
lea rcx, [rbp - 0x20]
lea r9d, [rax + r9*2]
call fcn.1400c81ef
test eax, eax
jne 0x1400c8141
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 0x1400c81a6
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 0x1400c8195
mov qword [rbp - 0x18], rcx
mov r9d, esi
jmp 0x1400c81c8
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 0x1400c7ff0
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 0x1400cac38
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 0x1400cac69
pop rdi
pop rsi
pop rbp
pop rbx
add esp, 0x10
ret

Function at 0x1400cac9b
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 0x1400cada0
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 0x1400cacd2
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 0x1400cace2
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 0x1400cad07
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 0x1400cad46
push 0x10
pop rsi
cmp edx, esi
mov ecx, edx
cmova ecx, esi
test ecx, ecx
je 0x1400cad76
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 0x1400cad6b
mov ebx, dword [rsp + 0x10]
sub edx, ecx
add ebp, ecx
mov ecx, dword [rsp + 0x34]
add byte [rcx], 1
jne 0x1400cad8f
lea rax, [r11 + rcx]
test eax, eax
jg 0x1400cad82
mov ebx, dword [rsp + 0x2c]
lea ecx, [rbx + 0xf]
test edx, edx
jne 0x1400cacc6
pop rdi
pop rsi
pop rbp
pop rbx
add esp, 0x14
ret
Function at 0x1400cada6
Capabilities:
Decompress data using aplib

Disassembly:
sub esp, 0x14
mov ecx, dword [rsp + 0x18]
and dword [rsp + 0x10], 0
push rbx
push rbp
mov ebp, dword [rsp + 0x24]
mov al, byte [rcx]
push rsi
push rdi
mov byte [rbp], al
or edi, 0xffffffff
lea eax, [rbp + 1]
xor esi, esi
mov dword [rsp + 0x18], eax
xor ebx, ebx
lea eax, [rcx + 1]
mov dword [rsp + 0x10], ebx
mov dword [rsp + 0x14], eax
lea eax, [rsp + 0x14]
push rax
call fcn.1400caf49
pop rcx
test eax, eax
je 0x1400caf1d
lea eax, [rsp + 0x14]
push rax
call fcn.1400caf49
test eax, eax
lea eax, [rsp + 0x18]
pop rcx
push rax
je 0x1400cae7c
call fcn.1400caf49
pop rcx
test eax, eax
je 0x1400cae40
push 4
xor esi, esi
pop rbx
lea eax, [rsp + 0x14]
push rax
call fcn.1400caf49
pop rcx
lea esi, [rax + rsi*2]
sub ebx, 1
jne 0x1400cae0e
mov edx, dword [rsp + 0x18]
test esi, esi
je 0x1400cae33
mov eax, edx
sub eax, esi
mov al, byte [rax]
mov byte [rdx], al
jmp 0x1400cae36
mov byte [rdx], 0
mov ebx, dword [rsp + 0x10]
jmp 0x1400caf2f
mov eax, dword [rsp + 0x14]
mov edx, dword [rsp + 0x18]
movzx edi, byte [rax]
mov ecx, edi
mov dword [rsp + 0x14], eax
and ecx, 1
add ecx, 2
shr edi, 1
je 0x1400cae70
mov esi, edx
sub esi, edi
mov al, byte [rsi]
mov byte [rdx], al
sub ecx, 1
jne 0x1400cae60
jmp 0x1400caf14
xor ebx, ebx
mov dword [r12 + r12 + 0x10], ebx
jmp 0x1400caf18
call fcn.1400caf80
mov edx, eax
pop rcx
test esi, esi
jne 0x1400caeb3
cmp edx, 2
jne 0x1400caeb3
lea eax, [rsp + 0x14]
push rax
call fcn.1400caf80
mov edx, dword [rsp + 0x1c]
mov esi, eax
pop rcx
test esi, esi
je 0x1400caf18
mov ecx, edx
sub ecx, edi
mov al, byte [rcx]
mov byte [rdx], al
sub r14d, 1
jne 0x1400caea6
jmp 0x1400caf14
mov ecx, dword [rsp + 0x14]
lea eax, [rsp + 0x14]
xor esi, 1
sub edx, esi
shl edx, 8
movzx edi, byte [rcx]
add edi, 0xfffffe00
add edi, edx
push r8
mov dword [rsp + 0x18], ecx
call fcn.1400caf80
pop rcx
mov ecx, eax
cmp edi, 0x7d00
jb 0x1400caee5
mov edx, dword [r12 + 0x18]
mov edx, dword [rsp + 0x18]
lea eax, [rcx + 1]
cmp edi, 0x500
cmovb eax, ecx
cmp edi, 0x80
lea esi, [rax + 2]
cmovae esi, eax
test esi, esi
je 0x1400caf18
mov ecx, edx
sub ecx, edi
mov al, byte [rcx]
mov byte [rdx], al
sub r14d, 1
jne 0x1400caf09
mov dword [rsp + 0x18], edx
xor esi, esi
jmp 0x1400caf35
mov ecx, dword [rsp + 0x14]
mov edx, dword [rsp + 0x18]
mov al, byte [rcx]
mov byte [rdx], al
mov dword [r12 + 0x14], ecx
xor esi, esi
mov dword [rsp + 0x18], edx
test ebx, ebx
je 0x1400cadd8
pop rdi
pop rsi
sub edx, ebp
pop rbp
mov eax, edx
pop rbx
add esp, 0x14
ret

Function at 0x1400cb050
Capabilities:
Access peb ldr_data

Disassembly:
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x20]
ret
Function at 0x1400cbb50
Capabilities:
Allocate or change rwx memory

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rdx
mov rdi, rcx
movsxd r13, dword [rcx + 0x3c]
mov ebx, dword [rcx + r13 + 0x54]
mov r8, rbx
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x1400cbbba
lea r9, [rsp + 0x20]
mov rcx, rsi
mov rdx, rbx
mov r8d, 0x40
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x1400cbbba
mov rcx, rsi
mov rdx, rdi
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov r8d, dword [rsp + 0x20]
lea r9, [rsp + 0x20]
mov rcx, rsi
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
movzx eax, word [rdi + r13 + 6]
test ax, ax
je 0x1400cbc5d
movsxd rcx, dword [rdi + 0x3c]
lea rbp, [rcx + rdi]
add rbp, 0x110
xor ebx, ebx
jmp 0x1400cbbf5
movzx eax, word [rdi + r13 + 6]
inc rbx
movzx ecx, ax
add rbp, 0x28
cmp rbx, rcx
jae 0x1400cbc5d
cmp dword [rbp + 0x1c], 0
js 0x1400cbbe6
mov r14d, dword [rbp]
mov r15d, dword [rbp + 4]
lea r12, [rdi + r15]
add r15, rsi
mov rcx, r12
mov rdx, r15
mov r8, r14
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x1400cbbe0
mov rcx, r15
mov rdx, r14
mov r8d, 0x40
lea r9, [rsp + 0x24]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x1400cbbe0
mov rcx, r15
mov rdx, r12
mov r8, r14
call sub.msvcrt.dll_memcpy
mov r8d, dword [rsp + 0x24]
mov rcx, r15
mov rdx, r14
lea r9, [rsp + 0x24]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
jmp 0x1400cbbe0
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret