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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x50
mov rax, qword [0x1400b1008]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rdi, qword [rsp + 0xa0]
lea rax, [rsp + 0x30]
xor esi, esi
mov qword [rsp + 0x20], rax
mov rbp, rdx
mov qword [rsp + 0x30], rsi
mov r14, r9
lea rdx, [rcx + 0x10]
mov rbx, r8
lea r9, [rsp + 0x38]
mov r15, rcx
lea r8d, [rsi + 0x10]
xorps xmm0, xmm0
add rcx, 0x20
movups xmmword [rsp + 0x38], xmm0
call fcn.1400476f0
mov r12d, eax
test eax, eax
je 0x14005afec
or dword [r15 + 0xa4], 0x10
lea edx, [rsi + 0x10]
lea rcx, [rsp + 0x38]
call fcn.1400386b0
mov eax, r12d
jmp 0x14005b114
test rbx, rbx
je 0x14005b103
cmp rbx, 0x40
jb 0x14005b0d5
lea rdx, [rdi - 1]
lea rax, [r14 - 1]
add rdx, rbx
add rax, rbx
cmp rdi, rax
ja 0x14005b01b
cmp rdx, r14
jae 0x14005b0d5
lea rax, [rbp - 1]
add rax, rbx
lea r8, [rsp + 0x38]
lea rcx, [rsp + 0x38]
add r8, rbp
add rcx, rax
cmp rdi, rcx
ja 0x14005b040
cmp rdx, r8
jae 0x14005b0d5
mov r9, rbx
and r9, 0xffffffffffffffc0
lea rdx, [rsp + 0x48]
mov rcx, r14
sub rcx, rbp
lea rax, [rsp + 0x48]
sub rcx, rdx
lea r8, [rsp + 0x48]
mov rdx, rdi
add rax, rbp
sub rdx, rbp
sub rdx, r8
nop dword [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add rsi, 0x40
movdqu xmm1, xmmword [rcx + rax]
movdqu xmm2, xmmword [rcx + rax + 0x10]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmmword [rdx + rax - 0x40], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rcx + rax - 0x20]
movdqu xmmword [rdx + rax - 0x30], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rcx + rax - 0x10]
movdqu xmmword [rdx + rax - 0x20], xmm1
pxor xmm2, xmm0
movdqu xmmword [rdx + rax - 0x10], xmm2
cmp rsi, r9
jb 0x14005b070
cmp rsi, rbx
jae 0x14005b103
sub rbp, r14
lea rdx, [rsp + 0x38]
add rdx, rbp
lea rax, [rsi + r14]
sub rdi, r14
sub rbx, rsi
nop word [rax + rax]
movzx ecx, byte [rdx + rax]
xor cl, byte [rax]
mov byte [rdi + rax], cl
lea rax, [rax + 1]
sub rbx, 1
jne 0x14005b0f0
mov edx, reloc.WS2_32.dll_recv
lea rcx, [rsp + 0x38]
call fcn.1400386b0
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14001a6d0
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
Function at 0x14005b1b0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push r14
sub rsp, 0x60
mov rax, qword [0x1400b1008]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov eax, dword [rcx + 0xa4]
mov r14, r8
mov rbp, rdx
mov rbx, rcx
test al, 0x10
je 0x14005b1e5
mov eax, 0xffffff92
jmp 0x14005b33a
cmp qword [rcx + 0x88], 0
jbe 0x14005b1f3
test al, 8
je 0x14005b208
mov rax, qword [rcx + 0x80]
test rax, rax
je 0x14005b212
cmp qword [rcx + 0x98], rax
je 0x14005b212
mov eax, 0xfffffff3
jmp 0x14005b33a
xor dl, dl
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rdi
cmp byte [rcx + 0xa0], dl
jbe 0x14005b247
nop word [rax + rax]
movzx eax, dl
mov rcx, rbx
sub rcx, rax
inc dl
mov byte [rcx + 0x1f], 0
cmp dl, byte [rbx + 0xa0]
jb 0x14005b230
xorps xmm0, xmm0
mov qword [rsp + 0x30], 0
lea rax, [rsp + 0x30]
mov r8d, reloc.WS2_32.dll_recv
lea rcx, [rbx + 0x20]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x38]
lea rdx, [rbx + 0x10]
movups xmmword [rsp + 0x38], xmm0
call fcn.1400476f0
mov edi, eax
test eax, eax
je 0x14005b29d
or dword [rbx + 0xa4], 0x10
lea rcx, [rsp + 0x38]
mov edx, reloc.WS2_32.dll_recv
call fcn.1400386b0
mov eax, edi
jmp 0x14005b330
lea rcx, [rsp + 0x47]
lea rax, [rbx + 0xf]
cmp rbx, rcx
ja 0x14005b2e3
lea rcx, [rsp + 0x38]
cmp rax, rcx
jb 0x14005b2e3
lea r8, [rsp + 0x38]
mov rcx, rbx
sub r8, rbx
mov edx, reloc.WS2_32.dll_recv
nop word [rax + rax]
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x14005b2d0
jmp 0x14005b2f5
movdqu xmm1, xmmword [rbx]
movdqu xmm0, xmmword [rsp + 0x38]
pxor xmm1, xmm0
movdqu xmmword [rbx], xmm1
mov edx, reloc.WS2_32.dll_recv
lea rcx, [rsp + 0x38]
call fcn.1400386b0
test rbp, rbp
je 0x14005b317
mov r8, r14
mov rdx, rbx
mov rcx, rbp
call fcn.140068bd0
mov dword [rbx + 0xa4], 0
xorps xmm0, xmm0
xorps xmm1, xmm1
xor eax, eax
movups xmmword [rbx], xmm0
movups xmmword [rbx + 0x10], xmm1
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14001a6d0
add rsp, 0x60
pop r14
pop rbp
pop rbx
ret
Function at 0x14005b980
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
mov rbx, rcx
mov rsi, r8
mov ecx, dword [rcx + 0xa4]
mov rdi, rdx
test cl, 0x10
jne 0x14005bba4
test r8, r8
je 0x14005bb7b
test cl, 8
jne 0x14005bba4
mov rdx, qword [rbx + 0x88]
test cl, 4
jne 0x14005b9e5
cmp r8, rdx
ja 0x14005bba4
movzx eax, byte [rbx + 0x89]
xor byte [rbx], al
xor byte [rbx + 1], dl
or ecx, 4
mov dword [rbx + 0xa4], ecx
jmp 0x14005ba00
mov rcx, qword [rbx + 0x98]
add rcx, r8
cmp rcx, rdx
ja 0x14005bba4
nop dword [rax + rax]
mov r10, qword [rbx + 0x98]
mov eax, reloc.WS2_32.dll_recv
add r10, 2
mov r9, rsi
and r10d, 0xf
sub rax, r10
cmp rax, rsi
cmovbe r9, rax
xor r8b, r8b
cmp r9, 0x40
jb 0x14005bae2
lea eax, [r9 - 1]
movzx edx, r10b
movzx ecx, al
lea eax, [rdx + rcx]
add rcx, rdi
movzx r11d, al
add rdx, rbx
add r11, rbx
cmp rdx, rcx
ja 0x14005ba57
cmp r11, rdi
jae 0x14005bae2
mov rdx, r9
and rdx, 0xffffffffffffffc0
xor ecx, ecx
mov r11b, 0x20
movdqu xmm1, xmmword [rcx + rdi]
lea rax, [rcx + r10]
add r8b, 0x40
movdqu xmm0, xmmword [rax + rbx]
pxor xmm1, xmm0
movdqu xmmword [rax + rbx], xmm1
lea eax, [r11 - 0x10]
movzx ecx, al
movdqu xmm1, xmmword [rcx + rdi]
lea rax, [rcx + r10]
movzx ecx, r11b
movdqu xmm0, xmmword [rax + rbx]
pxor xmm1, xmm0
movdqu xmmword [rax + rbx], xmm1
lea rax, [rcx + r10]
movdqu xmm0, xmmword [rax + rbx]
movdqu xmm1, xmmword [rcx + rdi]
pxor xmm1, xmm0
movdqu xmmword [rax + rbx], xmm1
lea eax, [r11 + 0x10]
add r11b, 0x40
movzx ecx, al
movdqu xmm1, xmmword [rcx + rdi]
lea rax, [rcx + r10]
movzx ecx, r8b
movdqu xmm0, xmmword [rax + rbx]
pxor xmm1, xmm0
movdqu xmmword [rax + rbx], xmm1
cmp rcx, rdx
jb 0x14005ba63
movzx edx, r8b
cmp rdx, r9
jae 0x14005bb07
nop dword [rax + rax]
movzx eax, byte [rdx + rdi]
lea rcx, [rdx + r10]
xor byte [rcx + rbx], al
inc r8b
movzx edx, r8b
cmp rdx, r9
jb 0x14005baf0
mov rcx, qword [rbx + 0x98]
lea rax, [r9 + r10]
add rcx, r9
sub rsi, r9
add rdi, r9
mov qword [rbx + 0x98], rcx
cmp rax, 0x10
je 0x14005bb31
cmp rcx, qword [rbx + 0x88]
jne 0x14005bb54
lea rax, [rsp + 0x40]
mov r9, rbx
lea rcx, [rbx + 0x20]
mov qword [rsp + 0x20], rax
mov r8d, reloc.WS2_32.dll_recv
mov rdx, rbx
call fcn.1400476f0
test eax, eax
jne 0x14005bb8d
test rsi, rsi
jne 0x14005ba00
mov rax, qword [rbx + 0x88]
cmp qword [rbx + 0x98], rax
jne 0x14005bb7b
or dword [rbx + 0xa4], 8
mov qword [rbx + 0x98], rsi
xor eax, eax
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
or dword [rbx + 0xa4], 0x10
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov rbx, qword [rsp + 0x48]
mov eax, 0xfffffff3
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
Function at 0x14005f750
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbp
push rsi
push r12
push r15
sub rsp, 0x30
mov rsi, r9
mov r15, r8
mov ebp, edx
mov r12, rcx
test r8b, 0xf
je 0x14005f783
mov eax, 0xffffffde
mov rbp, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r12
pop rsi
ret
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], r14
movaps xmmword [rsp + 0x20], xmm6
test r8, r8
je 0x14005f8e1
mov rbx, qword [rsp + 0x78]
test ebp, ebp
jne 0x14005f83c
mov rbp, qword [rsp + 0x70]
mov rdi, rsi
sub rdi, rbx
nop dword [rax + rax]
movups xmm6, xmmword [rbp]
mov r8, rbx
mov rdx, rbp
mov rcx, r12
call fcn.140060da0
test eax, eax
jne 0x14005f8e3
lea rax, [rsi + 0xf]
cmp rbx, rax
ja 0x14005f812
lea rax, [rbx + 0xf]
cmp rax, rsi
jb 0x14005f812
mov rax, rbx
mov edx, reloc.WS2_32.dll_recv
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [rdi + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x14005f800
jmp 0x14005f822
movdqu xmm0, xmmword [rbx]
movdqu xmm1, xmmword [rsi]
pxor xmm1, xmm0
movdqu xmmword [rbx], xmm1
add rbx, 0x10
add rbp, 0x10
sub rdi, 0x10
movups xmmword [rsi], xmm6
sub r15, 0x10
jne 0x14005f7c0
jmp 0x14005f8e1
mov rdi, qword [rsp + 0x70]
mov r14, rsi
sub r14, rdi
lea rax, [rdi + 0xf]
cmp rbx, rax
ja 0x14005f859
lea rax, [rbx + 0xf]
cmp rax, rdi
jae 0x14005f86b
lea rax, [rsi + 0xf]
cmp rbx, rax
ja 0x14005f897
lea rax, [rbx + 0xf]
cmp rax, rsi
jb 0x14005f897
mov r8, rbx
mov rcx, rdi
sub r8, rdi
mov edx, reloc.WS2_32.dll_recv
nop dword [rax]
movzx eax, byte [r14 + rcx]
xor al, byte [rcx]
mov byte [r8 + rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x14005f880
jmp 0x14005f8a7
movdqu xmm1, xmmword [rsi]
movdqu xmm0, xmmword [rdi]
pxor xmm1, xmm0
movdqu xmmword [rbx], xmm1
mov r8, rbx
mov rdx, rbx
mov rcx, r12
cmp ebp, 1
jne 0x14005f8bc
call fcn.140061500
jmp 0x14005f8c1
call fcn.140060da0
test eax, eax
jne 0x14005f8e3
movups xmm0, xmmword [rbx]
add rbx, 0x10
add rdi, 0x10
sub r14, 0x10
movups xmmword [rsi], xmm0
sub r15, 0x10
jne 0x14005f847
xor eax, eax
movaps xmm6, xmmword [rsp + 0x20]
mov r14, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r12
pop rsi
ret
Function at 0x140066450
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
movzx eax, r9b
mov rdi, r8
movzx r10d, al
mov rbx, rdx
and r10b, 0x1f
shr eax, 5
mov r11, rcx
and eax, 0x80000003
jge 0x14006648a
dec eax
or eax, 0xfffffffc
inc eax
movzx ecx, al
movzx ebp, r10b
mov edx, dword [r8 + rcx*4]
mov ecx, edx
shr ecx, 0x10
mov r9d, edx
and r9d, 0xff0000
xor r9d, ecx
mov ecx, edx
shl ecx, 0x10
and edx, 0xff00
xor ecx, edx
shr r9d, 8
shl ecx, 8
xor r9d, ecx
mov ecx, 0x20
sub cl, r10b
movzx edx, cl
xor ecx, ecx
test r10b, r10b
cmove edx, ecx
sub rbx, r11
movzx esi, dl
lea r10d, [rcx + 4]
nop dword [rax + rax]
inc al
lea r11, [r11 + 4]
and al, 3
movzx ecx, al
mov edx, dword [rdi + rcx*4]
mov r8d, edx
mov ecx, edx
and r8d, 0xff0000
shr ecx, 0x10
xor r8d, ecx
mov ecx, edx
shl ecx, 0x10
and edx, 0xff00
xor ecx, edx
shr r8d, 8
shl ecx, 8
xor r8d, ecx
mov ecx, ebp
shl r9d, cl
mov edx, r8d
mov ecx, esi
shr edx, cl
or r9d, edx
mov edx, r9d
mov ecx, r9d
shr ecx, 0x10
and edx, 0xff0000
xor edx, ecx
mov ecx, r9d
and ecx, 0xff00
shl r9d, 0x10
xor ecx, r9d
shr edx, 8
shl ecx, 8
mov r9d, r8d
xor edx, ecx
xor edx, dword [rbx + r11 - 4]
mov dword [r11 - 4], edx
sub r10, 1
jne 0x1400664e0
mov rbx, qword [rsp + 8]
mov rbp, qword [rsp + 0x10]
mov rsi, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
ret
Function at 0x1400708bc
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x1400706e8

Function at 0x1400743d0
Capabilities:
Delete file

Disassembly:
sub rsp, 0x28
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x1400743f0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.14006c320
or eax, 0xffffffff
jmp 0x1400743f2
xor eax, eax
add rsp, 0x28
ret
Function at 0x140001e30
Capabilities:
Create thread
Print debug messages
Resume thread

Disassembly:
sub rsp, 0x38
lea rcx, str.Enter_Function_StartCustomThread____n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp qword [0x140053e68], 0
je case.default.0x140001e56
lea rcx, str.Enter_condition_pSvc__hWorkEvent___NULL__n
add rsp, 0x38
jmp qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateEventW]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov qword [0x140053e68], rax
lea edx, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [0x140053e78], rax
xor r9d, r9d
lea r8, [0x14000fa00]
xor edx, edx
lea rax, [0x140053e70]
xor ecx, ecx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 4
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [0x140053e60], rax
test rax, rax
je 0x140001ed7
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov qword [0x140053e60], 0
mov ecx, dword [0x140053e70]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x5e5b
call qword [sym.imp.USER32.dll_PostThreadMessageW]
mov rcx, qword [0x140053e68]
mov edx, 0x64
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x140001f42
lea rdx, str.Create_Thread_fails__n
mov ecx, 1
call fcn.1400197e0
mov ecx, dword [0x140053e70]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x5e5b
call qword [sym.imp.USER32.dll_PostThreadMessageW]
mov rcx, qword [0x140053e68]
mov edx, 0x64
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x140001f04
call fcn.140009810
cmp eax, 0x14
jl 0x140001f89
cmp qword [0x140053e80], 0
jne 0x140001f89
lea rax, [0x140053e88]
xor edx, edx
mov qword [rsp + 0x28], rax
lea r9, [0x140053e20]
lea r8, [0x140001ad0]
mov dword [rsp + 0x20], 0
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [0x140053e80], rax
add rsp, 0x38
ret
clc
pop rdi
sub eax, 0x27040167
movsd dword [rdi], dword [rsi]
xor cl, byte [0x162bb489e]
invalid
jbe 0x14008acc7
fstp xword [rbx + rdi - 0x29]
jbe 0x14008ad78
invalid
mov ecx, 0xcd887de7
push rsi
pop rbp
xor byte [rbx + 0x52], dl
retf
Function at 0x14000e220
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
push rbx
push rdi
sub rsp, 0x848
mov rax, qword [0x140053008]
xor rax, rsp
mov qword [rsp + 0x830], rax
mov rbx, rcx
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0x800
call fcn.14001d250
lea rdi, [rsp + 0x868]
call fcn.140001030
mov qword [rsp + 0x28], rdi
lea rdx, [rsp + 0x30]
mov r9, rbx
mov qword [rsp + 0x20], 0
mov r8d, 0x7fffffff
mov rcx, qword [rax]
call fcn.1400217b8
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rsp + 0x830]
xor rcx, rsp
call fcn.140019ce0
add rsp, 0x848
pop rdi
pop rbx
ret

Function at 0x14000e2c0
Capabilities:
Print debug messages

Disassembly:
push rbx
sub rsp, 0x20
movsxd rbx, ecx
lea rcx, str.Enter_Function_DisableRadioHandler__disable___d_n
mov edx, ebx
call fcn.14000e220
mov r8d, ebx
lea rdx, str.Enter_Function_DisableRadioHandler__disable___d_n
mov ecx, 2
call fcn.1400197e0
test ebx, ebx
je case.default.0x14000e337
call fcn.140009810
cmp eax, 0x32
jl case.default.0x14000e337
lea rcx, str.DisableRadioHandler__dont_send_check_msg__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea rdx, str.DisableRadioHandler__dont_send_check_msg_n
mov ecx, 2
call fcn.1400197e0
mov dword [0x140053e94], 1
mov ecx, dword [0x140053e70]
mov r8, rbx
xor r9d, r9d
mov edx, 0x5e5d
add rsp, 0x20
pop rbx
jmp qword [sym.imp.USER32.dll_PostThreadMessageW]
insd dword [rdi], dx
iretd
invalid
Function at 0x180001170
Capabilities:
Create thread

Disassembly:
sub rsp, 0x38
cmp edx, 1
jne 0x180001198
xor eax, eax
lea r8, [0x1800010a0]
mov qword [rsp + 0x28], rax
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x20], eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, 1
add rsp, 0x38
ret

Function at 0x1800011b0
Capabilities:
Resume thread

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
xor edi, edi
mov esi, ecx
mov ecx, dword [0x18000688c]
mov ebx, edi
test ecx, ecx
je 0x1800012eb
mov rax, qword [0x180006880]
add rax, 0x20
nop
movzx edx, byte [rax]
shr edx, 1
and edx, 1
cmp edx, esi
jne 0x180001208
inc ebx
add rax, 0x38
cmp ebx, ecx
jb 0x1800011e0
mov eax, edi
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
cmp ebx, 0xffffffff
je 0x1800012eb
mov r8d, edi
lea rcx, [rsp + 0x20]
test esi, esi
mov edx, 0xffffffff
setne r8b
call fcn.180001530
mov r8d, dword [0x18000688c]
cmp ebx, r8d
jae 0x180001278
nop word [rax + rax]
mov eax, ebx
imul rcx, rax, 0x38
mov rax, qword [0x180006880]
movzx edx, byte [rcx + rax + 0x20]
shr edx, 1
and edx, 1
cmp edx, esi
je 0x180001271
mov edx, esi
mov ecx, ebx
call fcn.180001420
mov edi, eax
test eax, eax
jne 0x180001278
mov r8d, dword [0x18000688c]
inc ebx
cmp ebx, r8d
jb 0x180001240
cmp qword [rsp + 0x20], 0
je 0x1800012eb
mov eax, dword [rsp + 0x2c]
test eax, eax
je 0x1800012d7
mov rbx, qword [rsp + 0x20]
mov qword [rsp + 0x40], rbp
mov ebp, eax
nop dword [rax]
nop dword [rax + rax]
mov r8d, dword [rbx]
xor edx, edx
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rsi, rax
test rax, rax
je 0x1800012c8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rbx, 4
sub rbp, 1
jne 0x1800012a0
mov rbp, qword [rsp + 0x40]
mov r8, qword [rsp + 0x20]
xor edx, edx
mov rcx, qword [0x180006268]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x48]
mov eax, edi
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
Function at 0x180001420
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov eax, ecx
lea r9, [rsp + 0x30]
imul rbx, rax, 0x38
mov esi, edx
add rbx, qword [0x180006880]
mov r8, qword [rbx]
movzx eax, byte [rbx + 0x20]
and al, 1
movzx ecx, al
lea rdi, [r8 - 5]
cmove rdi, r8
mov r8d, 0x40
lea rbp, [rcx*2 + 5]
mov rcx, rdi
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x180001484
mov eax, 0xa
jmp 0x180001517
test esi, esi
je 0x1800014a6
mov byte [rdi], 0xe9
mov eax, dword [rbx + 8]
sub eax, edi
sub eax, 5
mov dword [rdi + 1], eax
test byte [rbx + 0x20], 1
je 0x1800014c9
mov rax, qword [rbx]
mov word [rax], 0xf9eb
jmp 0x1800014c9
mov eax, dword [rbx + 0x18]
test byte [rbx + 0x20], 1
mov dword [rdi], eax
je 0x1800014c2
movzx eax, word [rbx + 0x1c]
mov word [rdi + 4], ax
movzx eax, byte [rbx + 0x1e]
mov byte [rdi + 6], al
jmp 0x1800014c9
movzx eax, byte [rbx + 0x1c]
mov byte [rdi + 4], al
mov r8d, dword [rsp + 0x30]
lea r9, [rsp + 0x30]
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8, rbp
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
movzx ecx, sil
shl sil, 2
add cl, cl
xor cl, byte [rbx + 0x20]
and cl, 2
xor cl, byte [rbx + 0x20]
xor sil, cl
and sil, 4
xor sil, cl
mov byte [rbx + 0x20], sil
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
Function at 0x180001530
Capabilities:
Enumerate threads
Suspend thread

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x50
mov rax, qword [0x180006228]
xor rax, rsp
mov qword [rsp + 0x40], rax
xor esi, esi
mov r14d, edx
mov rbx, rcx
mov qword [rcx], rsi
mov qword [rcx + 8], rsi
xor edx, edx
mov ebp, r8d
lea ecx, [rsi + 4]
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x18000165a
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x1c
mov rcx, rax
call sub.KERNEL32.dll_Thread32First
test eax, eax
je 0x180001651
nop word [rax + rax]
cmp dword [rsp + 0x20], 0x10
jb 0x180001634
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rsp + 0x2c], eax
jne 0x180001634
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rsp + 0x28], eax
je 0x180001634
mov rdx, qword [rbx]
test rdx, rdx
jne 0x1800015f2
mov dword [rbx + 8], 0x80
mov r8d, 0x200
mov rcx, qword [0x180006268]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbx], rax
mov rdx, rax
test rax, rax
je 0x180001651
jmp 0x180001627
mov eax, dword [rbx + 8]
cmp dword [rbx + 0xc], eax
jb 0x180001627
mov rcx, qword [0x180006268]
lea r9d, [rax + rax]
mov r8, rdx
shl r9, 2
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov rdx, rax
test rax, rax
je 0x180001651
mov eax, dword [rbx + 8]
add eax, eax
mov qword [rbx], rdx
mov dword [rbx + 8], eax
mov ecx, dword [rbx + 0xc]
mov eax, dword [rsp + 0x28]
mov dword [rdx + rcx*4], eax
inc dword [rbx + 0xc]
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x1c
mov rcx, rdi
call sub.KERNEL32.dll_Thread32Next
test eax, eax
jne 0x1800015a0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp qword [rbx], rsi
je 0x1800016b3
cmp dword [rbx + 0xc], esi
jbe 0x1800016b3
nop dword [rax]
nop dword [rax + rax]
mov r8, qword [rbx]
xor edx, edx
mov eax, esi
lea ecx, [rdx + 0x5a]
mov r8d, dword [r8 + rax*4]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rdi, rax
test rax, rax
je 0x1800016ac
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov r8d, ebp
mov edx, r14d
mov rcx, rdi
call fcn.180001a20
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc esi
cmp esi, dword [rbx + 0xc]
jb 0x180001670
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180002b60
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
Function at 0x180001bd0
Capabilities:
Resume thread

Disassembly:
push rdi
sub rsp, 0x20
cmp qword [rcx], 0
mov rdi, rcx
je 0x180001c3f
mov qword [rsp + 0x30], rbx
xor ebx, ebx
cmp dword [rcx + 0xc], ebx
jbe 0x180001c28
mov qword [rsp + 0x38], rsi
mov r8, qword [rdi]
xor edx, edx
mov r8d, dword [r8 + rbx*4]
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rsi, rax
test rax, rax
je 0x180001c1c
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc ebx
cmp ebx, dword [rdi + 0xc]
jb 0x180001bf0
mov rsi, qword [rsp + 0x38]
mov r8, qword [rdi]
xor edx, edx
mov rcx, qword [0x180006268]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret