joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140075c30
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rsi
push rdi
sub rsp, 0x78
mov rsi, rdx
cmp dword [rcx], 2
jne 0x140075cc6
movdqu xmm0, xmmword [rcx + 8]
pshufd xmm1, xmm0, 0x44
pxor xmm1, xmmword [0x140201020]
movdqa xmmword [rsp + 0x30], xmm1
pshufd xmm1, xmm0, 0xee
pxor xmm1, xmmword [0x140201030]
movdqa xmmword [rsp + 0x40], xmm1
movdqa xmmword [rsp + 0x50], xmm0
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
mov rdi, qword [rsi]
xor eax, eax
test rdi, rdi
setne al
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x28]
mov r8d, 8
call fcn.140047d90
test rdi, rdi
je 0x140075d55
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
lea rcx, [rsp + 0x30]
jmp 0x140075d6e
mov rdx, qword [rsi]
xor ecx, ecx
test rdx, rdx
setne cl
movabs rax, 0xcbf29ce484222325
xor rax, rcx
movabs rcx, 0x1efac7090aef4a21
imul rax, rcx
test rdx, rdx
je 0x140075e66
mov r9, qword [rsi + 0x10]
test r9, r9
je 0x140075ee8
mov rcx, qword [rsi + 8]
movabs rdx, 0x100000001b3
mov r10, r9
and r10, 7
je 0x140075e73
mov r11, rax
mov r8, rcx
nop word cs:[rax + rax]
movzx eax, byte [r8]
inc r8
xor rax, r11
imul rax, rdx
mov r11, rax
dec r10
jne 0x140075d30
cmp r9, 8
jae 0x140075e7c
jmp 0x140075ee8
movzx eax, byte [rsi + 8]
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x28]
mov r8d, 8
call fcn.140047d90
mov rax, qword [rsp + 0x40]
mov r9, qword [rsp + 0x60]
shl r9, 0x38
or r9, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x48]
xor rcx, r9
mov r8, qword [rsp + 0x30]
add r8, rax
mov rdx, qword [rsp + 0x38]
add rdx, rcx
rol rax, 0xd
xor rax, r8
rol rcx, 0x10
rol r8, 0x20
xor rcx, rdx
add rdx, rax
rol rax, 0x11
add r8, rcx
xor rax, rdx
rol rcx, 0x15
xor rcx, r8
rol rdx, 0x20
xor r8, r9
xor rdx, 0xff
add r8, rax
rol rax, 0xd
add rdx, rcx
xor rax, r8
rol rcx, 0x10
xor rcx, rdx
rol r8, 0x20
add rdx, rax
add r8, rcx
rol rax, 0x11
xor rax, rdx
rol rcx, 0x15
rol rdx, 0x20
xor rcx, r8
add r8, rax
rol rax, 0xd
add rdx, rcx
xor rax, r8
rol rcx, 0x10
xor rcx, rdx
rol r8, 0x20
add rdx, rax
add r8, rcx
rol rax, 0x11
xor rax, rdx
rol rcx, 0x15
rol rdx, 0x20
xor rcx, r8
add r8, rax
rol rax, 0xd
add rdx, rcx
xor rax, r8
shl rcx, 0x10
xor rcx, rdx
add rdx, rax
shr rax, 0x2f
shr rcx, 0x2b
xor rcx, rax
mov rax, rdx
shr rax, 0x20
xor rax, rdx
xor rax, rcx
jmp 0x140075ee8
movzx edx, byte [rsi + 8]
xor rax, rdx
imul rax, rcx
jmp 0x140075ee8
mov r8, rcx
cmp r9, 8
jb 0x140075ee8
add rcx, r9
nop
movzx r9d, byte [r8]
xor r9, rax
imul r9, rdx
movzx eax, byte [r8 + 1]
xor rax, r9
imul rax, rdx
movzx r9d, byte [r8 + 2]
xor r9, rax
imul r9, rdx
movzx eax, byte [r8 + 3]
xor rax, r9
imul rax, rdx
movzx r9d, byte [r8 + 4]
xor r9, rax
imul r9, rdx
movzx eax, byte [r8 + 5]
xor rax, r9
imul rax, rdx
movzx r9d, byte [r8 + 6]
xor r9, rax
imul r9, rdx
movzx eax, byte [r8 + 7]
add r8, 8
xor rax, r9
imul rax, rdx
cmp r8, rcx
jne 0x140075e80
and eax, 0x7fff
add rsp, 0x78
pop rdi
pop rsi
ret
Function at 0x1400830c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rdi, qword [rcx]
movups xmm0, xmmword [rcx + 8]
movups xmm1, xmmword [rcx + 0x18]
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x20], xmm0
mov rsi, qword [rdi + 0x28]
cmp rsi, 0x7fff
jbe 0x140083127
lea rcx, [rdx + 0x18]
mov r9, qword [rdx]
mov rax, qword [rdx + 8]
mov r8, qword [rdx + 0x10]
mov rdx, rax
call qword [r9 + 0x20]
mov rax, qword [rsp + 0x20]
test rax, rax
je 0x140083120
lea rcx, [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
call qword [rax + 0x20]
xor eax, eax
jmp 0x140083239
lea r15, [rcx + 8]
movzx ebp, word [rcx + 0x30]
mov r14, qword [rcx + 0x28]
movzx ebx, byte [rcx + 0x32]
mov rax, qword [rdx + 0x20]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
cmp rsi, qword [rdi + 0x18]
jne 0x140083160
lea rcx, [rdi + 0x18]
call fcn.14006eed0
mov rcx, qword [rdi + 0x20]
imul rax, rsi, 0x68
mov qword [rcx + rax], 0
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movups xmmword [rcx + rax + 0x18], xmm0
movups xmmword [rcx + rax + 0x28], xmm1
mov rdx, qword [rsp + 0x60]
mov qword [rcx + rax + 0x38], rdx
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [rcx + rax + 0x40], xmm0
movups xmmword [rcx + rax + 0x50], xmm1
mov word [rcx + rax + 0x60], bp
lea rcx, [rsi + 1]
mov qword [rdi + 0x28], rcx
mov rcx, qword [rdi + 0x48]
mov r8, qword [rdi + 0x50]
xor edx, edx
mov r9d, esi
nop dword [rax + rax]
mov r10, r14
mov r14d, 0
cmp r10, r8
jae 0x1400831c0
movzx r11d, word [rcx + r10*4]
cmp r11w, 0xffff
je 0x1400831fc
inc rdx
movzx r14d, word [rcx + r10*4 + 2]
mov word [rcx + r10*4], r9w
mov word [rcx + r10*4 + 2], bp
inc r10
mov ebp, r14d
mov r9d, r11d
mov r14, r10
jmp 0x1400831c0
xor bl, 1
mov word [rcx + r10*4], r9w
mov word [rcx + r10*4 + 2], bp
cmp rdx, 0x80
setb cl
test cl, bl
jne 0x140083225
cmp qword [rdi], 0
jne 0x140083225
mov qword [rdi], 1
mov rdx, qword [rdi + 0x28]
cmp rsi, rdx
jae 0x140083246
mov rcx, qword [rdi + 0x20]
add rax, rcx
add rax, 0x18
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
lea r8, str._redacted_
mov rcx, rsi
call fcn.140056860
int3
Function at 0x1400871b0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
mov rax, rcx
add qword [rcx + 0x30], r8
mov r11, qword [rcx + 0x40]
test r11, r11
je 0x1400871f2
mov r10d, 8
sub r10, r11
cmp r8, r10
mov rdi, r10
cmovb rdi, r8
cmp rdi, 4
jb 0x1400871fa
mov esi, dword [rdx]
mov r9d, 4
mov rcx, r9
or rcx, 1
cmp rcx, rdi
jb 0x14008720b
jmp 0x140087222
xor r10d, r10d
jmp 0x1400872ad
xor esi, esi
xor r9d, r9d
mov rcx, r9
or rcx, 1
cmp rcx, rdi
jae 0x140087222
movzx ebx, word [rdx + r9]
lea ecx, [r9*8]
shl rbx, cl
or rsi, rbx
or r9, 2
cmp r9, rdi
jae 0x140087239
movzx edi, byte [rdx + r9]
shl r9d, 3
mov ecx, r9d
shl rdi, cl
or rsi, rdi
lea ecx, [r11*8]
shl rsi, cl
or rsi, qword [rax + 0x38]
mov qword [rax + 0x38], rsi
cmp r10, r8
jbe 0x140087259
add r11, r8
jmp 0x140087389
mov rcx, qword [rax + 0x18]
xor rcx, rsi
mov rdi, qword [rax + 0x10]
mov r9, qword [rax]
add r9, rdi
mov r11, qword [rax + 8]
add r11, rcx
rol rdi, 0xd
xor rdi, r9
rol rcx, 0x10
rol r9, 0x20
xor rcx, r11
add r11, rdi
rol rdi, 0x11
add r9, rcx
xor rdi, r11
rol rcx, 0x15
mov qword [rax + 0x10], rdi
xor rcx, r9
rol r11, 0x20
mov qword [rax + 0x18], rcx
mov qword [rax + 8], r11
xor r9, rsi
mov qword [rax], r9
sub r8, r10
mov r11d, r8d
and r11d, 7
and r8, 0xfffffffffffffff8
cmp r10, r8
jae 0x140087322
mov rcx, qword [rax]
mov r9, qword [rax + 8]
mov rdi, qword [rax + 0x18]
mov rsi, qword [rax + 0x10]
nop
mov rbx, qword [rdx + r10]
xor rdi, rbx
add rcx, rsi
rol rsi, 0xd
add r9, rdi
xor rsi, rcx
rol rdi, 0x10
xor rdi, r9
rol rcx, 0x20
add r9, rsi
add rcx, rdi
rol rsi, 0x11
xor rsi, r9
rol rdi, 0x15
rol r9, 0x20
xor rdi, rcx
xor rcx, rbx
add r10, 8
cmp r10, r8
jb 0x1400872d0
mov qword [rax + 0x18], rdi
mov qword [rax + 0x10], rsi
mov qword [rax + 8], r9
mov qword [rax], rcx
cmp r11d, 4
jb 0x14008733f
mov r9d, dword [rdx + r10]
mov r8d, 4
mov ecx, r8d
or ecx, 1
cmp ecx, r11d
jb 0x140087350
jmp 0x14008736b
xor r9d, r9d
xor r8d, r8d
mov ecx, r8d
or ecx, 1
cmp ecx, r11d
jae 0x14008736b
lea rcx, [rdx + r8]
movzx esi, word [r10 + rcx]
lea ecx, [r8*8]
shl rsi, cl
or r9, rsi
or r8, 2
cmp r8d, r11d
jae 0x140087385
add r10, r8
movzx edx, byte [rdx + r10]
shl r8d, 3
mov ecx, r8d
shl rdx, cl
or r9, rdx
mov qword [rax + 0x38], r9
mov qword [rax + 0x40], r11
pop rbx
pop rdi
pop rsi
ret
Function at 0x14008e640
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov esi, dword [0x1401fe280]
test esi, esi
je 0x14008e70c
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x14008e74f
je 0x14008e708
movzx eax, byte [0x14031a2c8]
mov edx, 0x58
xor ecx, ecx
call fcn.1401dbaa0
test rax, rax
je 0x14008e757
movups xmm0, xmmword [0x1402dc628]
movups xmmword [rax + 0x40], xmm0
movups xmm0, xmmword [0x1402dc618]
movups xmmword [rax + 0x30], xmm0
movups xmm0, xmmword [0x1402dc608]
movups xmmword [rax + 0x20], xmm0
movups xmm0, xmmword [0x1402dc5f8]
movups xmmword [rax + 0x10], xmm0
movups xmm0, xmmword [0x1402dc5e8]
movups xmmword [rax], xmm0
mov dword [rax + 0x50], esi
mov ecx, esi
mov rbx, rax
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
mov ecx, esi
mov rsi, rbx
mov rdx, rbx
call sub.kernel32.dll_TlsSetValue
test rdi, rdi
je 0x14008e74c
mov rax, qword [rdi + 8]
cmp rax, 2
je 0x14008e73b
mov rcx, rdi
add rcx, 0x10
test rax, rax
je 0x14008e72d
mov rax, qword [rcx]
lock dec qword [rax]
jne 0x14008e73b
call fcn.14008ca50
jmp 0x14008e73b
xor eax, eax
jmp 0x14008e74f
lea rcx, [0x1401fe268]
call fcn.1401b4d10
mov esi, eax
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x14008e668
jmp 0x14008e74f
mov rax, qword [rcx]
lock dec qword [rax]
jne 0x14008e73b
call fcn.14008c560
mov rcx, qword [0x14031a288]
xor edx, edx
mov r8, rdi
call fcn.1401fb9c4
mov rax, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov ecx, 8
mov edx, 0x58
call fcn.140033f80
int3
Function at 0x1400a4920
Capabilities:
Get keyboard layout

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1d8
movaps xmmword [rsp + 0x1c0], xmm6
mov ebx, r9d
mov ebp, r8d
mov rdi, rdx
mov rsi, rcx
movabs r13, 0x8000000000000000
call sub.user32.dll_GetForegroundWindow
xor r12d, r12d
mov rcx, rax
xor edx, edx
call sub.user32.dll_GetWindowThreadProcessId
lea r14, [rdi + 8]
xorps xmm6, xmm6
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm6
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm6
mov ecx, eax
call sub.user32.dll_GetKeyboardLayout
mov r15, rax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 7
lea r9, [rsp + 0x40]
mov ecx, ebp
mov edx, ebx
mov r8, r14
call sub.user32.dll_ToUnicodeEx
cmp eax, 0xffffffff
je 0x1400a4a0d
test eax, eax
je 0x1400a4af5
jle 0x1400a49fb
mov r8d, eax
cmp eax, 0x21
jae 0x1400a4b7f
mov r12, r13
lea rcx, [rsp + 0xc0]
lea rdx, [rsp + 0x40]
call fcn.140035290
mov r13, qword [rsp + 0xc0]
cmp r13, r12
je 0x1400a49fb
movups xmm0, xmmword [rsp + 0xc8]
movaps xmmword [rsp + 0x80], xmm0
xor r12d, r12d
mov ecx, dword [rdi]
test ecx, ecx
jne 0x1400a4afb
jmp 0x1400a4b48
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x1b0], xmm6
movaps xmmword [rsp + 0x1a0], xmm6
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x180], xmm6
movaps xmmword [rsp + 0x170], xmm6
movaps xmmword [rsp + 0x160], xmm6
movaps xmmword [rsp + 0x150], xmm6
movaps xmmword [rsp + 0x140], xmm6
movaps xmmword [rsp + 0x130], xmm6
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x110], xmm6
movaps xmmword [rsp + 0x100], xmm6
movaps xmmword [rsp + 0xf0], xmm6
movaps xmmword [rsp + 0xe0], xmm6
movaps xmmword [rsp + 0xd0], xmm6
movaps xmmword [rsp + 0xc0], xmm6
lea r12, [rsp + 0xc0]
lea r13, [rsp + 0x80]
nop dword [rax]
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x20
mov ecx, ebp
mov edx, ebx
mov r8, r12
mov r9, r13
call sub.user32.dll_ToUnicodeEx
test eax, eax
js 0x1400a4ac0
mov r12b, 1
movabs r13, 0x8000000000000000
mov ecx, dword [rdi]
test ecx, ecx
je 0x1400a4b48
cmp byte [rdi + 0x108], 0
je 0x1400a4b48
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
mov edx, dword [rdi + 4]
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x20
lea r9, [rsp + 0x40]
mov r8, r14
call sub.user32.dll_ToUnicodeEx
mov dword [rdi], 0
jmp 0x1400a4b54
mov dword [rdi], ebp
mov dword [rdi + 4], ebx
mov byte [rdi + 0x108], r12b
mov qword [rsi], r13
movaps xmm0, xmmword [rsp + 0x80]
movups xmmword [rsi + 8], xmm0
movaps xmm6, xmmword [rsp + 0x1c0]
add rsp, 0x1d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, str._redacted_
mov edx, 0x20
mov rcx, r8
mov r8, rax
call fcn.140057200
int3
Function at 0x1400de5a0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
jmp 0x140105a30
push rsi
push rdi
push rbx
sub rsp, 0x40
movaps xmmword [rsp + 0x30], xmm6
mov esi, dword [0x1401fe238]
test esi, esi
je 0x140105ad9
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x140105acc
je 0x140105aca
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x20]
mov edx, 0x10
call sub.bcryptprimitives.dll_ProcessPrng
movaps xmm6, xmmword [rsp + 0x20]
movzx eax, byte [0x14031a2c8]
mov edx, 0x18
xor ecx, ecx
call fcn.1401dbaa0
test rax, rax
je 0x140105afa
movups xmmword [rax], xmm6
mov dword [rax + 0x10], esi
mov ecx, esi
mov rbx, rax
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
mov ecx, esi
mov rsi, rbx
mov rdx, rbx
call sub.kernel32.dll_TlsSetValue
test rdi, rdi
je 0x140105ac5
mov rcx, qword [0x14031a288]
xor edx, edx
mov r8, rdi
call fcn.1401fb9c4
mov rax, rsi
jmp 0x140105acc
xor eax, eax
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x40
pop rbx
pop rdi
pop rsi
ret
lea rcx, [0x1401fe220]
call fcn.1401b4d10
mov esi, eax
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x140105a59
jmp 0x140105acc
mov ecx, 8
mov edx, 0x18
call fcn.140033f80
int3
Function at 0x1400f1500
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov r12, r8
mov rdi, rdx
mov rbx, rcx
cmp r9, 8
jb 0x1400f157a
shr r9, 3
mov r14, r9
shl r14, 7
lea rdx, [rbx + r14]
imul r15, r9, 0xe0
lea r8, [rbx + r15]
mov rcx, rbx
mov rsi, r12
mov r12, r9
call fcn.1400f1500
mov rbx, rax
lea rdx, [rdi + r14]
lea r8, [rdi + r15]
mov rcx, rdi
mov r9, r12
call fcn.1400f1500
mov rdi, rax
add r14, rsi
add r15, rsi
mov rcx, rsi
mov rdx, r14
mov r8, r15
mov r9, r12
call fcn.1400f1500
mov r12, rax
mov qword [rsp + 0x38], rdi
mov rbp, qword [rbx + 8]
mov rsi, qword [rbx + 0x10]
mov rdx, qword [rdi + 8]
mov r8, qword [rdi + 0x10]
mov r13, rsi
sub r13, r8
mov qword [rsp + 0x48], r8
cmovb r8, rsi
mov rcx, rbp
mov qword [rsp + 0x50], rdx
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne r13, rax
movzx r15d, byte [rbx + 0x18]
movzx ecx, byte [rdi + 0x18]
mov eax, r15d
mov byte [rsp + 0x2f], cl
sub al, cl
xor r14d, r14d
cmp al, 0xff
sete r14b
xor eax, eax
test r13, r13
sets al
cmovne r14d, eax
mov rdx, qword [r12 + 8]
mov r13, qword [r12 + 0x10]
mov rdi, r12
mov r12, rsi
sub r12, r13
cmovae rsi, r13
mov rcx, rbp
mov qword [rsp + 0x30], rdx
mov r8, rsi
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne r12, rax
mov qword [rsp + 0x40], rdi
movzx ebp, byte [rdi + 0x18]
sub r15b, bpl
xor eax, eax
cmp r15b, 0xff
sete al
xor ecx, ecx
test r12, r12
sets cl
cmovne eax, ecx
cmp r14b, al
jne 0x1400f1680
mov rax, qword [rsp + 0x48]
mov rsi, rax
sub rsi, r13
cmovb r13, rax
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x30]
mov r8, r13
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rsi, rax
movzx ecx, byte [rsp + 0x2f]
sub cl, bpl
xor eax, eax
cmp cl, 0xff
sete al
xor ecx, ecx
test rsi, rsi
sets cl
cmovne eax, ecx
xor r14b, al
mov rbx, qword [rsp + 0x38]
cmovne rbx, qword [rsp + 0x40]
mov rax, rbx
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x140105a30
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
jmp 0x140105a30
push rsi
push rdi
push rbx
sub rsp, 0x40
movaps xmmword [rsp + 0x30], xmm6
mov esi, dword [0x1401fe238]
test esi, esi
je 0x140105ad9
dec esi
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x140105acc
je 0x140105aca
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x20]
mov edx, 0x10
call sub.bcryptprimitives.dll_ProcessPrng
movaps xmm6, xmmword [rsp + 0x20]
movzx eax, byte [0x14031a2c8]
mov edx, 0x18
xor ecx, ecx
call fcn.1401dbaa0
test rax, rax
je 0x140105afa
movups xmmword [rax], xmm6
mov dword [rax + 0x10], esi
mov ecx, esi
mov rbx, rax
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
mov ecx, esi
mov rsi, rbx
mov rdx, rbx
call sub.kernel32.dll_TlsSetValue
test rdi, rdi
je 0x140105ac5
mov rcx, qword [0x14031a288]
xor edx, edx
mov r8, rdi
call fcn.1401fb9c4
mov rax, rsi
jmp 0x140105acc
xor eax, eax
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x40
pop rbx
pop rdi
pop rsi
ret
lea rcx, [0x1401fe220]
call fcn.1401b4d10
mov esi, eax
mov ecx, esi
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x140105a59
jmp 0x140105acc
mov ecx, 8
mov edx, 0x18
call fcn.140033f80
int3
Function at 0x140122d60
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
movabs r14, 0x7ffffffffffffff8
mov rbx, r8
sub rbx, rdx
lea rax, [r14 + 4]
cmp rbx, rax
ja 0x140122f45
mov rdi, rdx
mov rsi, rcx
cmp r8, rdx
je 0x140122e4d
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rdx, rbx
call fcn.1401dbaa0
test rax, rax
je 0x140122f4f
mov rcx, rbx
shr rcx, 3
cmp rbx, 0xa0
jae 0x140122e6b
xor edx, edx
mov r8, rdx
or r8, 1
test bl, 8
je 0x140122df4
mov r9d, dword [rdi + rdx*8]
mov r10d, dword [rdi + rdx*8 + 4]
cmp r9d, r10d
mov r11d, r10d
cmovb r11d, r9d
cmova r10d, r9d
mov dword [rax + rdx*8], r11d
mov dword [rax + rdx*8 + 4], r10d
mov rdx, r8
cmp rcx, r8
jne 0x140122e00
mov rdx, r8
jmp 0x140122e56
mov r8d, dword [rdi + rdx*8]
mov r9d, dword [rdi + rdx*8 + 4]
cmp r8d, r9d
mov r10d, r9d
cmovb r10d, r8d
cmova r9d, r8d
mov dword [rax + rdx*8], r10d
mov dword [rax + rdx*8 + 4], r9d
mov r8d, dword [rdi + rdx*8 + 8]
mov r9d, dword [rdi + rdx*8 + 0xc]
cmp r8d, r9d
mov r10d, r9d
cmovb r10d, r8d
cmova r9d, r8d
mov dword [rax + rdx*8 + 8], r10d
mov dword [rax + rdx*8 + 0xc], r9d
add rdx, 2
cmp rcx, rdx
jne 0x140122e00
jmp 0x140122e56
mov eax, 4
xor ecx, ecx
xor edx, edx
mov qword [rsi], rcx
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rdx
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
lea r8, [rax + rcx*8]
add r8, 0xfffffffffffffff8
xor edx, edx
cmp r8, rax
jb 0x140122dc5
lea r8, [rax + 4]
lea r9, [rax + rcx*8]
add r9, 0xfffffffffffffffc
cmp r9, r8
jb 0x140122dc5
lea r8, [rcx - 1]
shr r8, 0x3d
jne 0x140122dc5
and r14, rbx
lea rdx, [rax + r14]
add r14, rdi
cmp rax, r14
setb r8b
cmp rdx, rdi
seta dl
test r8b, dl
jne 0x140122dc3
movabs rdx, 0xffffffffffffffe
and rdx, rcx
xor r8d, r8d
movdqa xmm0, xmmword [0x1402051b0]
nop dword [rax]
movdqu xmm1, xmmword [rdi + r8*8]
pshufd xmm2, xmm1, 0xe8
pshufd xmm1, xmm1, 0xed
movdqa xmm3, xmm2
pxor xmm3, xmm0
movdqa xmm4, xmm1
pxor xmm4, xmm0
pcmpgtd xmm4, xmm3
movdqa xmm3, xmm4
pandn xmm3, xmm1
movdqa xmm5, xmm4
pandn xmm5, xmm2
pand xmm2, xmm4
por xmm2, xmm3
pand xmm4, xmm1
por xmm4, xmm5
punpckldq xmm2, xmm4
movdqu xmmword [rax + r8*8], xmm2
add r8, 2
cmp rdx, r8
jne 0x140122ee0
cmp rcx, rdx
jne 0x140122dc5
jmp 0x140122e56
xor ecx, ecx
mov rdx, rbx
call fcn.140033f20
mov ecx, 4
mov rdx, rbx
call fcn.140033f20
int3
Function at 0x140130430
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rsi, r8
mov rdi, rdx
cmp r9, 8
jb 0x1401304ab
mov rbx, r9
shr rbx, 3
and r9, 0xfffffffffffffff8
lea rdx, [rcx + r9]
mov r14, rbx
shl r14, 4
sub r14, rbx
sub r14, rbx
lea r8, [rcx + r14]
mov r15, r9
mov r9, rbx
call fcn.140130430
mov r12, rax
lea rdx, [rdi + r15]
lea r8, [rdi + r14]
mov rcx, rdi
mov r9, rbx
call fcn.140130430
mov rdi, rax
add r15, rsi
add r14, rsi
mov rcx, rsi
mov rdx, r15
mov r8, r14
mov r9, rbx
call fcn.140130430
mov rsi, rax
mov rcx, r12
movzx r11d, byte [rcx]
movzx ebx, byte [rcx + 1]
movzx edx, byte [rdi]
movzx r8d, byte [rdi + 1]
xor r9d, r9d
cmp bl, r8b
setb r9b
xor eax, eax
cmp r11b, dl
setb al
cmove eax, r9d
movzx r9d, byte [rsi]
movzx r10d, byte [rsi + 1]
xor ebp, ebp
cmp bl, r10b
setb bpl
xor ebx, ebx
cmp r11b, r9b
setb bl
cmove ebx, ebp
cmp al, bl
jne 0x140130512
xor ecx, ecx
cmp r8b, r10b
setb cl
xor r8d, r8d
cmp dl, r9b
setb r8b
cmove r8d, ecx
xor al, r8b
cmovne rdi, rsi
mov rcx, rdi
mov rax, rcx
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
Function at 0x14014eab0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x50
cmp byte [rcx + 0x79], 0
je 0x14014eac4
xor eax, eax
jmp 0x14014ecdf
mov r8, qword [rcx + 0x48]
mov r9, qword [rcx + 0x50]
test byte [rcx], 1
je 0x14014eaff
lea rdx, [rcx + 8]
mov rax, qword [rcx + 0x58]
cmp qword [rcx + 0x38], 0xffffffffffffffff
mov rdi, rcx
mov rcx, qword [rcx + 0x60]
je 0x14014ec28
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x30], 0
jmp 0x14014ec37
cmp byte [rcx + 0x1a], 0
je 0x14014eb1f
mov rsi, r8
xor eax, eax
mov qword [rsp + 0x38], rax
test byte [rsp + 0x38], 1
jne 0x14014ec77
jmp 0x14014eca9
mov rax, qword [rcx + 8]
movzx edx, byte [rcx + 0x18]
jmp 0x14014eb37
add rax, r10
mov qword [rcx + 8], rax
mov r10d, edx
xor dl, 1
test rax, rax
je 0x14014eb66
cmp rax, r9
jae 0x14014eb60
cmp byte [r8 + rax], 0xbf
jg 0x14014eb66
jmp 0x14014ece7
jne 0x14014ece7
cmp rax, r9
je 0x14014ec50
movzx r11d, byte [r8 + rax]
test r11b, r11b
jns 0x14014ebd0
mov esi, r11d
and esi, 0x1f
movzx ebx, byte [r8 + rax + 1]
and ebx, 0x3f
cmp r11b, 0xdf
jbe 0x14014ebc3
movzx edi, byte [r8 + rax + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp r11b, 0xf0
jb 0x14014ec12
movzx r11d, byte [r8 + rax + 3]
and esi, 7
shl esi, 0x12
shl edi, 6
and r11d, 0x3f
or r11d, edi
or r11d, esi
test r10b, 1
je 0x14014ebd6
jmp 0x14014ec20
shl esi, 6
or esi, ebx
mov r11d, esi
nop dword [rax + rax]
test r10b, 1
jne 0x14014ec20
mov r10d, 1
cmp r11d, 0x80
jb 0x14014eb30
mov r10d, 2
cmp r11d, 0x800
jb 0x14014eb30
cmp r11d, 0x10000
mov r10d, 4
sbb r10, 0
jmp 0x14014eb30
shl esi, 0xc
or edi, esi
mov r11d, edi
test r10b, 1
je 0x14014ebd6
mov byte [rcx + 0x18], dl
mov r9, rax
jmp 0x14014ec59
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x30], 1
lea rcx, [rsp + 0x38]
mov rsi, r8
call fcn.14014ed10
mov rcx, rdi
test byte [rsp + 0x38], 1
jne 0x14014ec77
jmp 0x14014eca9
mov byte [rcx + 0x18], dl
test r10b, 1
je 0x14014ec94
mov rsi, r8
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x48], r9
mov eax, 1
mov qword [rsp + 0x38], rax
test byte [rsp + 0x38], 1
je 0x14014eca9
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov r9, qword [rcx + 0x68]
sub rdx, r9
mov rax, rsi
add rax, r9
mov qword [rcx + 0x68], r8
jmp 0x14014ecdf
mov rsi, r8
mov byte [rcx + 0x1a], 1
xor eax, eax
mov qword [rsp + 0x38], rax
test byte [rsp + 0x38], 1
jne 0x14014ec77
cmp byte [rcx + 0x79], 0
jne 0x14014eabd
mov byte [rcx + 0x79], 1
cmp byte [rcx + 0x78], 1
jne 0x14014ecc7
mov rax, qword [rcx + 0x68]
mov rdx, qword [rcx + 0x70]
jmp 0x14014ecd8
mov rax, qword [rcx + 0x68]
mov rdx, qword [rcx + 0x70]
cmp rdx, rax
je 0x14014eabd
sub rdx, rax
add rax, qword [rcx + 0x48]
add rsp, 0x50
pop rbx
pop rdi
pop rsi
ret
mov byte [rcx + 0x18], dl
lea rcx, str._redacted_
mov qword [rsp + 0x20], rcx
mov rcx, r8
mov rdx, r9
mov r8, rax
call fcn.14005d870
int3