joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14001cb80
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
vmovdqu xmm4, xmmword [rcx - 0x80]
vmovdqu xmm2, xmmword [r11 + 0x20]
lea r13, [rbp - 1]
vmovups xmm15, xmmword [rcx - 0x70]
lea r12, [rcx - 0x60]
vpxor xmm9, xmm1, xmm4
add ebx, 0x6000000
jb 0x14001cca0
vpaddb xmm10, xmm1, xmm2
vpaddb xmm11, xmm10, xmm2
vpxor xmm10, xmm10, xmm4
vpaddb xmm12, xmm11, xmm2
vpxor xmm11, xmm11, xmm4
vpaddb xmm13, xmm12, xmm2
vpxor xmm12, xmm12, xmm4
vpaddb xmm14, xmm13, xmm2
vpxor xmm13, xmm13, xmm4
vpaddb xmm1, xmm14, xmm2
vpxor xmm14, xmm14, xmm4
jmp 0x14001cbe0
vaesenc xmm9, xmm9, xmm15
vaesenc xmm10, xmm10, xmm15
vaesenc xmm11, xmm11, xmm15
vaesenc xmm12, xmm12, xmm15
vaesenc xmm13, xmm13, xmm15
vaesenc xmm14, xmm14, xmm15
vmovups xmm15, xmmword [r12]
lea r12, [r12 + 0x10]
dec r13d
jne 0x14001cbe0
vmovdqu xmm3, xmmword [r12]
vaesenc xmm9, xmm9, xmm15
vpxor xmm4, xmm3, xmmword [rdi]
vaesenc xmm10, xmm10, xmm15
vpxor xmm5, xmm3, xmmword [rdi + 0x10]
vaesenc xmm11, xmm11, xmm15
vpxor xmm6, xmm3, xmmword [rdi + 0x20]
vaesenc xmm12, xmm12, xmm15
vpxor xmm8, xmm3, xmmword [rdi + 0x30]
vaesenc xmm13, xmm13, xmm15
vpxor xmm2, xmm3, xmmword [rdi + 0x40]
vaesenc xmm14, xmm14, xmm15
vpxor xmm3, xmm3, xmmword [rdi + 0x50]
lea rdi, [rdi + 0x60]
vaesenclast xmm9, xmm9, xmm4
vaesenclast xmm10, xmm10, xmm5
vaesenclast xmm11, xmm11, xmm6
vaesenclast xmm12, xmm12, xmm8
vaesenclast xmm13, xmm13, xmm2
vaesenclast xmm14, xmm14, xmm3
vmovups xmmword [rsi], xmm9
vmovups xmmword [rsi + 0x10], xmm10
vmovups xmmword [rsi + 0x20], xmm11
vmovups xmmword [rsi + 0x30], xmm12
vmovups xmmword [rsi + 0x40], xmm13
vmovups xmmword [rsi + 0x50], xmm14
lea rsi, [rsi + 0x60]
repz ret
vpshufb xmm6, xmm1, xmm0
vmovdqu xmm5, xmmword [r11 + 0x30]
vpaddd xmm10, xmm6, xmmword [r11 + 0x40]
vpaddd xmm11, xmm6, xmm5
vpaddd xmm12, xmm10, xmm5
vpshufb xmm10, xmm10, xmm0
vpaddd xmm13, xmm11, xmm5
vpshufb xmm11, xmm11, xmm0
vpxor xmm10, xmm10, xmm4
vpaddd xmm14, xmm12, xmm5
vpshufb xmm12, xmm12, xmm0
vpxor xmm11, xmm11, xmm4
vpaddd xmm1, xmm13, xmm5
vpshufb xmm13, xmm13, xmm0
vpxor xmm12, xmm12, xmm4
vpshufb xmm14, xmm14, xmm0
vpxor xmm13, xmm13, xmm4
vpshufb xmm1, xmm1, xmm0
vpxor xmm14, xmm14, xmm4
jmp 0x14001cbe0
Function at 0x14003db60
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov rax, rsp
mov rdi, rcx
mov rsi, rdx
mov rdx, r8
mov rcx, r9
push rbx
push rbp
push r12
push r13
push r14
push r15
lea rdi, [rdi + 0x64]
sub rsp, 0xe8
mov r9, rsi
lea rsi, [rsp + 0x64]
not qword [rdi - 0x5c]
not qword [rdi - 0x54]
not qword [rdi - 0x24]
not qword [rdi - 4]
not qword [rdi + 0x24]
not qword [rdi + 0x3c]
lea r15, [0x14003dd40]
mov qword [rsi + 0x74], rcx
cmp rdx, rcx
jb 0x14003dc00
shr rcx, 3
lea r8, [rdi - 0x64]
mov rax, qword [r9]
lea r9, [r9 + 8]
xor rax, qword [r8]
lea r8, [r8 + 8]
sub rdx, 8
mov qword [r8 - 8], rax
sub rcx, 1
jne 0x14003dbc6
mov qword [rsi + 0x64], r9
mov qword [rsi + 0x6c], rdx
call fcn.14003d800
mov r9, qword [rsi + 0x64]
mov rdx, qword [rsi + 0x6c]
mov rcx, qword [rsi + 0x74]
jmp 0x14003dbb9
mov rax, rdx
not qword [rdi - 0x5c]
not qword [rdi - 0x54]
not qword [rdi - 0x24]
not qword [rdi - 4]
not qword [rdi + 0x24]
not qword [rdi + 0x3c]
add rsp, 0xe8
pop r15
pop r14
pop r13
pop r12
pop rbp
pop rbx
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret
Function at 0x140073ae0
Capabilities:
Enumerate process modules

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
mov eax, 0x4050
call fcn.14019ed20
sub rsp, rax
mov rax, qword [0x14023cac0]
xor rax, rsp
mov qword [rsp + 0x4040], rax
mov rdi, rcx
mov qword [rsp + 0x28], rcx
xor ecx, ecx
mov dword [rsp + 0x20], ecx
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi], rcx
mov qword [rdi + 8], rcx
mov qword [rdi + 0x10], rcx
mov dword [rsp + 0x20], 1
lea r8, [rsp + 0x30]
mov edx, 0x4000
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_K32EnumProcesses]
test eax, eax
je 0x140073b8e
mov eax, dword [rsp + 0x30]
shr eax, 2
test eax, eax
je 0x140073b8e
lea rbx, [rsp + 0x40]
mov esi, eax
nop dword [rax]
mov eax, dword [rbx]
test eax, eax
je 0x140073b84
mov rdx, qword [rdi + 8]
cmp rdx, qword [rdi + 0x10]
je 0x140073b79
mov dword [rdx], eax
add qword [rdi + 8], 4
jmp 0x140073b84
mov r8, rbx
mov rcx, rdi
call fcn.140074910
add rbx, 4
sub rsi, 1
jne 0x140073b60
mov rax, rdi
mov rcx, qword [rsp + 0x4040]
xor rcx, rsp
call fcn.14019e3d0
lea r11, [rsp + 0x4050]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
Function at 0x140077680
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x20
xor r10d, r10d
mov rdi, r9
lea r9, section..data
mov rbp, r8
mov r15, rdx
mov r12, rcx
mov r11, rdx
test r8, r8
je 0x1400776f4
lea rdx, [r8 - 1]
test rdx, rdx
je 0x1400776ec
nop word [rax + rax]
movzx eax, byte [r11]
movzx ecx, dl
and cl, 0x1f
inc r11
mov eax, dword [r9 + rax*4]
rol eax, cl
xor r10d, eax
sub rdx, 1
jne 0x1400776d0
movzx eax, byte [r11]
xor r10d, dword [r9 + rax*4]
test rdi, rdi
je 0x140077744
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rdi + rax], 0
jne 0x140077700
mov r8, rdi
test rax, rax
je 0x140077744
lea rdx, [rax - 1]
test rdx, rdx
je 0x14007773c
nop word [rax + rax]
movzx eax, byte [r8]
movzx ecx, dl
and cl, 0x1f
inc r8
mov eax, dword [r9 + rax*4]
rol eax, cl
xor r10d, eax
sub rdx, 1
jne 0x140077720
movzx ecx, byte [r8]
xor r10d, dword [r9 + rcx*4]
xor edx, edx
mov eax, r10d
div dword [r12]
xor esi, esi
mov r14d, edx
mov rbx, qword [r12 + rdx*8 + 8]
test rbx, rbx
je 0x1400777d5
nop dword [rax]
cmp qword [rbx + 8], rbp
jne 0x140077780
mov rcx, qword [rbx]
mov r8, rbp
mov rdx, r15
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x140077780
mov r9d, 1
jmp 0x140077783
xor r9d, r9d
mov rax, qword [rbx + 0x10]
cmp rax, rdi
je 0x1400777bb
test rax, rax
je 0x1400777b7
test rdi, rdi
je 0x1400777b7
mov r8, rdi
sub r8, rax
nop dword [rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x1400777b3
inc rax
test ecx, ecx
jne 0x1400777a0
test edx, edx
je 0x1400777bb
xor eax, eax
jmp 0x1400777c0
mov eax, 1
test r9d, r9d
je 0x1400777c9
test eax, eax
jne 0x1400777f6
mov rsi, rbx
mov rbx, qword [rbx + 0x20]
test rbx, rbx
jne 0x140077760
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
cmp dword [rsp + 0x60], 0
mov rdi, qword [rbx + 0x18]
je 0x140077833
mov rcx, qword [rbx + 0x20]
test rsi, rsi
jne 0x140077811
mov qword [r12 + r14*8 + 8], rcx
jmp 0x140077815
mov qword [rsi + 0x20], rcx
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x140077823
call fcn.14007c7f0
mov rcx, qword [rbx]
call fcn.14007c7f0
mov rcx, rbx
call fcn.14007c7f0
mov rax, rdi
jmp 0x1400777d7

Function at 0x140077840
Capabilities:
Encode data using xor

Disassembly:
mov r10, rdx
mov r9d, ecx
test r8, r8
je 0x140077884
lea rdx, [r8 - 1]
lea r8, section..data
test rdx, rdx
je 0x14007787c
nop dword [rax + rax]
movzx eax, byte [r10]
movzx ecx, dl
and cl, 0x1f
inc r10
mov eax, dword [r8 + rax*4]
rol eax, cl
xor r9d, eax
sub rdx, 1
jne 0x140077860
movzx eax, byte [r10]
xor r9d, dword [r8 + rax*4]
mov eax, r9d
ret

Function at 0x140077a50
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [rsp + 0x28]
mov r10, rcx
cmp eax, 0xfffffffe
jb 0x140077a62
mov eax, 0x1d
ret
lea ecx, [rax + 1]
mov qword [rsp + 0x28], rcx
mov rcx, r10
jmp fcn.1400778c0
Function at 0x14007e420
Capabilities:
Allocate thread local storage

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
xor ecx, ecx
mov edx, 0x1f
cmp eax, 0xffffffff
mov dword [rbx], eax
cmove ecx, edx
mov eax, ecx
add rsp, 0x20
pop rbx
ret

Function at 0x14007e480
Capabilities:
Set thread local storage value

Disassembly:
sub rsp, 0x28
mov ecx, dword [rcx]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
xor ecx, ecx
mov edx, 0x1f
test eax, eax
cmove ecx, edx
mov eax, ecx
add rsp, 0x28
ret

Function at 0x14007e7e0
Capabilities:
Get file size

Disassembly:
push rbx
sub rsp, 0x40
mov rbx, rdx
test rcx, rcx
jne 0x14007e7f9
mov eax, 0x1d
add rsp, 0x40
pop rbx
ret
mov qword [rsp + 0x58], rbp
xor r9d, r9d
mov qword [rsp + 0x60], rsi
xor ebp, ebp
mov qword [rsp + 0x30], rbp
mov edx, 0x80000000
mov qword [rsp + 0x68], rdi
mov r8d, 7
mov edi, 3
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], edi
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x14007e8e4
lea rdx, [rsp + 0x50]
mov qword [rbx], rax
mov rcx, rax
mov qword [rbx + 0x18], rbp
mov qword [rbx + 0x10], rbp
mov qword [rbx + 8], rbp
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x14007e8d4
mov rax, qword [rsp + 0x50]
mov qword [rbx + 8], rax
test rax, rax
je 0x14007e8fb
mov rcx, qword [rbx]
xor r9d, r9d
mov qword [rsp + 0x28], rbp
xor edx, edx
mov r8d, 2
mov dword [rsp + 0x20], ebp
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov qword [rbx + 0x18], rax
mov rcx, rax
mov edi, 4
test rax, rax
je 0x14007e8d0
mov rax, qword [rbx + 8]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, edi
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [rbx + 0x10], rax
test rax, rax
jne 0x14007e903
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 0x18], rbp
mov qword [rbx + 8], rbp
mov rcx, rsi
mov qword [rbx], 0xffffffffffffffff
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rsi, qword [rsp + 0x60]
mov eax, edi
mov rdi, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x58]
add rsp, 0x40
pop rbx
ret
mov qword [rbx + 0x18], rbp
mov qword [rbx + 0x10], rbp
mov edi, ebp
jmp 0x14007e8e4
Function at 0x1400aabc0
Capabilities:
Parse pe header

Disassembly:
mov r10, r8
mov r9, rdx
cmp rdx, 0x40
jb 0x1400aac2d
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x1400aac33
movsxd rax, dword [rcx + 0x3c]
test eax, eax
js 0x1400aac33
lea rdx, [rax + 0x18]
cmp r9, rdx
jb 0x1400aac33
add rax, rcx
add rdx, 0xe0
cmp dword [rax], 0x4550
jne 0x1400aac33
movzx r8d, word [rax + 4]
mov r11d, 0x14c
cmp r8w, r11w
je 0x1400aac16
mov r11d, 0x8664
cmp r8w, r11w
jne 0x1400aac33
cmp r9, rdx
jbe 0x1400aac33
mov edx, 0x2000
test word [rax + 0x16], dx
jne 0x1400aac33
mov eax, dword [rax + 0x28]
add rax, r10
ret
cmp r9, 0x10
jb 0x1400aac54
cmp dword [rcx], 0x464c457f
jne 0x1400aac54
movzx edx, byte [rcx + 4]
mov r8d, edx
sub r8d, 1
je 0x1400aac5f
cmp r8d, 1
jne 0x1400aac54
cmp r9, 0x40
jae 0x1400aac65
movabs rax, 0xfffabadafabadaff
ret
cmp r9, 0x34
jb 0x1400aac54
sub edx, 1
je 0x1400aac7e
cmp edx, 1
jne 0x1400aac54
cmp word [rcx + 0x10], 2
jne 0x1400aac54
mov rax, qword [rcx + 0x18]
add rax, r10
ret
cmp word [rcx + 0x10], 2
jne 0x1400aac54
mov eax, dword [rcx + 0x18]
add rax, r10
ret
Function at 0x1400b2ee0
Capabilities:
Parse pe header

Disassembly:
cmp rdx, 0x40
jb 0x1400b2f40
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x1400b2f40
movsxd rax, dword [rcx + 0x3c]
test eax, eax
js 0x1400b2f40
lea r8, [rax + 0x18]
cmp rdx, r8
jb 0x1400b2f40
add rax, rcx
cmp dword [rax], 0x4550
jne 0x1400b2f40
lea rcx, [r8 + 0xe0]
cmp rdx, rcx
jb 0x1400b2f40
mov r10d, 0x20b
mov ecx, 0xf0
cmp word [rax + 0x18], r10w
mov r9d, 0xe0
cmovne ecx, r9d
add rcx, r8
xor r8d, r8d
cmp rdx, rcx
cmovb rax, r8
ret
xor eax, eax
ret

Function at 0x1400b2f50
Capabilities:
Enumerate pe sections

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r13
push r14
push r15
mov r14, qword [rcx + 0x10]
mov rbp, rdx
mov rdi, rcx
mov r13d, 0xffffffff
movzx eax, word [r14 + 0x14]
lea r9, [r14 + 0x18]
movzx r12d, word [r14 + 6]
add r9, rax
xor r15d, r15d
mov r11d, r15d
mov r8d, r15d
mov esi, r15d
mov ebx, r15d
nop dword [rax]
mov eax, r12d
cmp r12d, 0x60
jb 0x1400b2fae
mov eax, 0x60
cmp ebx, eax
jge 0x1400b3061
mov rcx, qword [rdi + 8]
cmp rcx, 0x28
jb 0x1400b30a1
mov rax, qword [rdi]
cmp r9, rax
jb 0x1400b30a1
add rax, 0xffffffffffffffd8
add rax, rcx
cmp r9, rax
ja 0x1400b30a1
mov edx, dword [r9 + 0xc]
mov r10d, dword [r9 + 0x10]
cmp r13d, edx
mov eax, edx
cmovbe eax, r13d
mov r13d, eax
mov eax, dword [r9 + 8]
cmp rbp, rdx
jb 0x1400b3056
cmp eax, r10d
cmovbe eax, r10d
mov ecx, eax
mov rax, rbp
sub rax, rdx
cmp rax, rcx
jae 0x1400b3056
cmp r11d, edx
ja 0x1400b3056
mov ecx, dword [r14 + 0x3c]
mov r11d, edx
mov r8d, dword [r9 + 0x14]
mov esi, r10d
cmp ecx, 0x200
jae 0x1400b3032
test ecx, ecx
je 0x1400b3045
jmp 0x1400b3037
mov ecx, 0x200
xor edx, edx
mov eax, r8d
div ecx
test edx, edx
je 0x1400b3045
sub r8d, edx
cmp dword [r14 + 0x38], 0x1000
jb 0x1400b3056
and r8d, 0xfffffe00
add r9, 0x28
inc ebx
jmp 0x1400b2fa0
mov edx, r13d
cmp rbp, rdx
jae 0x1400b306c
mov esi, dword [rdi + 8]
mov r9d, r15d
mov eax, esi
cmovae r9d, r11d
mov rcx, rbp
sub rcx, r9
cmp rcx, rax
jae 0x1400b30a1
cmp rbp, rdx
mov rcx, 0xffffffffffffffff
cmovae r15d, r8d
mov eax, r15d
sub rax, r9
add rax, rbp
cmp rax, qword [rdi + 8]
cmovae rax, rcx
jmp 0x1400b30a8
mov rax, 0xffffffffffffffff
mov rbx, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
pop r15
pop r14
pop r13
pop r12
ret
Function at 0x1400b9160
Capabilities:
Encode data using base64

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
mov r15d, dword [rcx]
lea rsi, [rdx + 8]
movsxd rbx, r8d
lea r13, [rcx + 8]
movabs r10, 0xaaaaaaaaaaaaaaab
mov r8d, 3
mov rax, r10
xor edi, edi
lea rbp, [rbx + r15]
mul rbp
mov rax, r10
shr rdx, 1
lea rcx, [rdx + rdx*2]
mov rdx, rbp
sub rdx, rcx
lea rcx, [r15*4 + 3]
sub r8d, edx
test rdx, rdx
cmove r8d, edi
mul rcx
movsxd rcx, r8d
lea rax, [rbx + 9]
shr rdx, 1
add rax, rdx
mov dword [r9], r8d
add rcx, rax
call fcn.14007c870
mov r14, rax
test rax, rax
je 0x1400b9203
mov rcx, rbp
call fcn.14007c870
mov rbp, rax
test rax, rax
jne 0x1400b920a
mov rcx, r14
call fcn.14007c7f0
xor eax, eax
jmp 0x1400b9325
test ebx, ebx
jle 0x1400b921d
mov r8, rbx
mov dl, 0x41
mov rcx, rbp
mov edi, ebx
call sub.VCRUNTIME140.dll_memset
movsxd rdi, edi
mov r8, r15
mov rdx, r13
lea rcx, [rdi + rbp]
call sub.VCRUNTIME140.dll_memcpy
lea r8, [rdi + r15]
mov rdx, rbp
lea rbx, [r14 + 8]
lea r9, [r8 + rbp]
cmp r8, 3
jl 0x1400b92b6
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx]
sub r8, 3
shr rax, 2
movzx eax, byte [rax + rsi]
mov byte [rbx], al
movzx ecx, byte [rdx]
movzx eax, byte [rdx + 1]
and ecx, 3
shr rax, 4
shl rcx, 4
or rcx, rax
movzx eax, byte [rcx + rsi]
mov byte [rbx + 1], al
movzx ecx, byte [rdx + 1]
movzx eax, byte [rdx + 2]
and ecx, 0xf
shr rax, 6
shl rcx, 2
or rcx, rax
movzx eax, byte [rcx + rsi]
mov byte [rbx + 2], al
movzx eax, byte [rdx + 2]
add rdx, 3
and eax, 0x3f
movzx eax, byte [rax + rsi]
mov byte [rbx + 3], al
add rbx, 4
cmp r8, 3
jge 0x1400b9250
sub r9, rdx
je 0x1400b9311
movzx eax, byte [rdx]
shr rax, 2
movzx eax, byte [rax + rsi]
mov byte [rbx], al
movzx ecx, byte [rdx]
and ecx, 3
shl rcx, 4
cmp r9, 1
jne 0x1400b92e3
movzx eax, byte [rcx + rsi]
mov byte [rbx + 1], al
mov al, 0x3d
jmp 0x1400b9300
movzx eax, byte [rdx + 1]
shr rax, 4
or rax, rcx
movzx eax, byte [rax + rsi]
mov byte [rbx + 1], al
movzx eax, byte [rdx + 1]
and eax, 0xf
movzx eax, byte [rsi + rax*4]
lea rcx, [rbx + 2]
mov rbx, rcx
mov byte [rcx], al
add rbx, 2
mov byte [rcx + 1], 0x3d
mov rcx, rbp
call fcn.14007c7f0
sub ebx, r14d
mov rax, r14
sub ebx, 8
mov dword [r14], ebx
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
Function at 0x1400c9480
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
add r8d, 0xdeadbeef
mov rdi, rdx
add r8d, edx
mov r11, rcx
mov r10d, r8d
mov ebx, r8d
cmp rdx, 0xc
jbe 0x1400c95b3
mov qword [rsp + 0x10], rsi
lea r9, [rdx - 0xd]
movabs rax, 0xaaaaaaaaaaaaaaab
mul r9
mov rsi, rdx
shr rsi, 3
inc rsi
imul rax, rsi, 0xfffffffffffffff4
add rdi, rax
nop dword [rax]
movzx eax, byte [r11 + 6]
movzx ecx, byte [r11 + 7]
movzx r9d, byte [r11 + 4]
movzx edx, byte [r11 + 8]
add r9d, r10d
shl ecx, 8
add edx, r8d
add ecx, eax
movzx eax, byte [r11 + 5]
shl ecx, 8
add ecx, eax
movzx eax, byte [r11 + 0xa]
shl ecx, 8
add r9d, ecx
movzx ecx, byte [r11 + 0xb]
shl ecx, 8
add ecx, eax
movzx eax, byte [r11 + 9]
shl ecx, 8
add ecx, eax
movzx eax, byte [r11 + 2]
shl ecx, 8
add edx, ecx
movzx ecx, byte [r11 + 3]
shl ecx, 8
mov r8d, edx
add ecx, eax
rol r8d, 4
movzx eax, byte [r11 + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [r11]
shl ecx, 8
add r11, 0xc
add ecx, eax
sub ecx, edx
add edx, r9d
add ecx, ebx
xor r8d, ecx
sub r9d, r8d
mov eax, r8d
add r8d, edx
rol eax, 6
xor eax, r9d
sub edx, eax
mov ecx, eax
add eax, r8d
rol ecx, 8
xor ecx, edx
sub r8d, ecx
mov ebx, ecx
add ecx, eax
rol ebx, 0x10
xor ebx, r8d
sub eax, ebx
mov r10d, ebx
ror r10d, 0xd
add ebx, ecx
xor r10d, eax
sub ecx, r10d
mov r8d, r10d
rol r8d, 4
add r10d, ebx
xor r8d, ecx
sub rsi, 1
jne 0x1400c94d0
mov rsi, qword [rsp + 0x10]
cmp rdi, 0xc
ja 0x1400c963c
lea rcx, [0x140000000]
mov eax, dword [rcx + rdi*4 + 0xc969c]
add rax, rcx
jmp rax
movzx eax, byte [r11 + 0xb]
shl eax, 0x18
add r8d, eax
movzx eax, byte [r11 + 0xa]
shl eax, 0x10
add r8d, eax
movzx eax, byte [r11 + 9]
shl eax, 8
add r8d, eax
movzx eax, byte [r11 + 8]
add r8d, eax
movzx eax, byte [r11 + 7]
shl eax, 0x18
add r10d, eax
movzx eax, byte [r11 + 6]
shl eax, 0x10
add r10d, eax
movzx eax, byte [r11 + 5]
shl eax, 8
add r10d, eax
movzx eax, byte [r11 + 4]
add r10d, eax
movzx eax, byte [r11 + 3]
shl eax, 0x18
add ebx, eax
movzx eax, byte [r11 + 2]
shl eax, 0x10
add ebx, eax
movzx eax, byte [r11 + 1]
shl eax, 8
add ebx, eax
movzx eax, byte [r11]
add ebx, eax
xor r8d, r10d
mov eax, r10d
rol eax, 0xe
sub r8d, eax
mov eax, r8d
mov edx, r8d
rol eax, 0xb
xor edx, ebx
sub edx, eax
xor r10d, edx
mov eax, edx
ror eax, 7
sub r10d, eax
xor r8d, r10d
mov eax, r10d
rol eax, 0x10
sub r8d, eax
mov eax, r8d
mov ecx, r8d
rol eax, 4
xor ecx, edx
sub ecx, eax
xor r10d, ecx
mov eax, ecx
rol eax, 0xe
sub r10d, eax
mov eax, r10d
xor r8d, r10d
ror eax, 8
sub r8d, eax
mov eax, r8d
mov rbx, qword [rsp + 0x18]
pop rdi
ret

Function at 0x1400cd0a0
Capabilities:
Set thread local storage value

Disassembly:
mov eax, 0x28
call fcn.14019ed20
sub rsp, rax
mov ecx, dword [rcx]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
add rsp, 0x28
ret

Function at 0x1400fa6c0
Capabilities:
Get thread local storage value

Disassembly:
mov eax, 0x28
call fcn.14019ed20
sub rsp, rax
lea rcx, [0x14023fae0]
add rsp, 0x28
jmp fcn.1400ccf00
Function at 0x140133ce0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x38
call fcn.14019ed20
sub rsp, rax
mov r10, rdx
mov dword [rsp + 0x40], reloc.WS2_32.dll_recv
add rdx, 0xf
lea rax, [r8 + 0xf]
mov r11, rcx
cmp r10, rax
ja 0x140133d10
xor r9d, r9d
cmp rdx, r8
jae 0x140133d29
movdqu xmm1, xmmword [r10]
movdqu xmm0, xmmword [r8]
pxor xmm1, xmm0
movdqu xmmword [r10], xmm1
mov r9d, reloc.WS2_32.dll_recv
cmp r9, 0x10
jae 0x140133d51
sub r8, r10
lea rax, [r9 + r10]
mov edx, reloc.WS2_32.dll_recv
sub rdx, r9
nop
movzx ecx, byte [r8 + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x140133d40
mov rcx, qword [r11 + 8]
lea r8, [rsp + 0x40]
mov r9, r10
mov dword [rsp + 0x20], reloc.WS2_32.dll_recv
mov rdx, r10
call fcn.1400d1670
test eax, eax
je 0x140133d82
cmp dword [rsp + 0x40], 0x10
jne 0x140133d82
mov eax, 1
add rsp, 0x38
ret
xor eax, eax
add rsp, 0x38
ret

Function at 0x140133f30
Capabilities:
Encode data using xor

Disassembly:
mov r10, rcx
test rdx, rdx
je 0x140133fb8
test r8, r8
je 0x140133fb8
mov rax, qword [rcx + 0x18]
cmp r8, rax
mov r9, rax
cmovb r9, r8
test r9, r9
je 0x140133f76
add rcx, 0x20
mov r11, rdx
sub r11, r10
nop
movzx eax, byte [r11 + rcx - 0x20]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r9, 1
jne 0x140133f60
mov rax, qword [r10 + 0x18]
cmp r8, rax
jbe 0x140133fb8
sub r8, rax
mov eax, reloc.WS2_32.dll_recv
cmp r8, rax
cmova r8, rax
xor ecx, ecx
test r8, r8
je 0x140133fb8
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r10 + 0x18]
add rax, rcx
movzx eax, byte [rax + rdx]
xor byte [r10 + rcx + 0x40], al
inc rcx
cmp rcx, r8
jb 0x140133fa0
ret

Function at 0x14017dc80
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x38
call fcn.14019ed20
sub rsp, rax
cmp dword [rsp + 0x68], 0
je 0x14017dca9
lea rax, [0x14017c2f0]
mov qword [rsp + 0x68], rax
add rsp, 0x38
jmp fcn.140175050
lea rax, [0x14017b4b0]
mov qword [rsp + 0x68], rax
add rsp, 0x38
jmp fcn.140174da0

Function at 0x14019f0c0
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14019f10a
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14019f10a
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14019f10a
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14019f10a
cmp dword [rcx + 0x84], 0xe
jbe 0x14019f10a
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x14019f10c
xor al, al
add rsp, 0x28
ret
Function at 0x969fe0
Capabilities:
Terminate process

Disassembly:
cld
pop r11
jmp 0x969fed
inc rsi
mov byte [rdi], dl
inc rdi
mov dl, byte [rsi]
add ebx, ebx
jne 0x969ffd
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jb 0x969fe5
lea eax, [rcx + 1]
jmp 0x96a00b
dec eax
call r11
adc eax, eax
call r11
adc eax, eax
add ebx, ebx
jne 0x96a01e
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jae 0x96a004
sub eax, 3
jb 0x96a03e
shl eax, 8
movzx edx, dl
or eax, edx
inc rsi
xor eax, 0xffffffff
je 0x96a08d
sar eax, 1
movsxd rbp, eax
jb 0x96a074
jmp 0x96a04c
add ebx, ebx
jne 0x96a04a
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x96a074
inc ecx
add ebx, ebx
jne 0x96a05a
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x96a074
call r11
adc ecx, ecx
add ebx, ebx
jne 0x96a06d
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jae 0x96a05c
add ecx, 2
jmp 0x96a079
call r11
adc ecx, ecx
cmp rbp, 0xfffffffffffffb00
adc ecx, 2
call fcn.00969fa2
jmp 0x969fed
pop rsi
mov rdi, rsi
push rsi
mov rdi, rsi
mov rsi, 0x24e200
mov dl, 0x5b
push rbx
push rdi
lea rcx, [rdi + rsi - 3]
pop rsi
push rsi
pop rbx
jmp 0x96a0d9
cmp rsi, rcx
jae 0x96a0e1
push rsi
pop rsi
lodsb al, byte [rsi]
cmp al, 0x80
jb 0x96a0c0
cmp al, 0x8f
ja 0x96a0c0
cmp byte [rsi - 2], 0xf
je 0x96a0c6
sub al, 0xe8
cmp al, 1
ja 0x96a0aa
cmp rsi, rcx
jae 0x96a0e1
push rsi
lodsd eax, dword [rsi]
sub al, dl
jne 0x96a0b0
pop rdi
bswap eax
sub eax, edi
add eax, ebx
stosd dword [rdi], eax
cmp rsi, rcx
jae 0x96a0e1
lodsb al, byte [rsi]
jmp 0x96a0c0
pop rbx
pop rsi
sub rsp, 0x28
lea rdi, [rsi + 0x562000]
mov eax, dword [rdi]
or eax, eax
je 0x96a13e
mov ebx, dword [rdi + 4]
lea rcx, [rax + rsi + 0x56a000]
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 0x96a0ee
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 0x96a138
mov qword [rbx], rax
add rbx, 8
jmp 0x96a10e
jmp qword [sym.imp.KERNEL32.DLL_ExitProcess]
add rsp, 0x28
add rdi, 4
lea rbx, [rsi - 4]
xor eax, eax
mov al, byte [rdi]
inc rdi
or eax, eax
je 0x96a182
cmp al, 0xef
ja 0x96a16a
add rbx, rax
mov rax, qword [rbx]
bswap rax
add rax, rsi
mov qword [rbx], rax
jmp 0x96a14a
and al, 0xf
shl eax, 0x10
mov ax, word [rdi]
add rdi, 2
or eax, eax
jne 0x96a159
mov eax, dword [rdi]
add rdi, 4
jmp 0x96a159
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
pop rbp
pop rdi
pop rsi
pop rbx
lea rax, [rsp - 0x80]
push 0
cmp rsp, rax
jne 0x96a1d6
sub rsp, 0xffffffffffffff80
jmp 0x468380