joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400183a0
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
xor r11d, r11d
lea r15, [0x140055e20]
mov r14, r9
mov rbx, rdx
mov r10, rcx
mov eax, r11d
cmp rdx, 2
jbe 0x140018478
lea edx, [r11 + 4]
nop dword [rax + rax]
movzx r9d, byte [r10]
sub rbx, 3
movzx edi, byte [r10 + 1]
movzx ebp, r9b
movzx esi, byte [r10 + 2]
movzx ecx, dil
shr cl, 4
and r9b, 3
and dil, 0xf
shl r9b, 4
add r9b, cl
shl dil, 2
movzx ecx, sil
shr bpl, 2
shr cl, 6
add r10, 3
add dil, cl
and sil, 0x3f
cmp rdx, r14
ja 0x14001851e
movzx ecx, bpl
add rdx, 4
movzx ecx, byte [rcx + r15]
mov byte [rax + r8], cl
movzx ecx, r9b
movzx ecx, byte [rcx + r15]
mov byte [rax + r8 + 1], cl
movzx ecx, dil
movzx ecx, byte [rcx + r15]
mov byte [rax + r8 + 2], cl
movzx ecx, sil
movzx ecx, byte [rcx + r15]
mov byte [rax + r8 + 3], cl
add rax, 4
cmp rbx, 2
ja 0x1400183e0
test rbx, rbx
je 0x14001853c
xor r9b, r9b
mov word [rsp + 0x29], r11w
xor dil, dil
mov byte [rsp + 0x28], r9b
xor dl, dl
test rbx, rbx
je 0x1400184c6
mov rdx, r11
nop dword [rax]
movzx ecx, byte [r10]
inc r11d
mov byte [rsp + rdx + 0x28], cl
inc r10
mov edx, r11d
cmp rdx, rbx
jb 0x1400184a0
movzx edi, byte [rsp + 0x2a]
movzx edx, byte [rsp + 0x29]
movzx r9d, byte [rsp + 0x28]
movzx ecx, dl
shr dil, 6
movzx r10d, r9b
shr cl, 4
and r9b, 3
shr r10b, 2
and dl, 0xf
shl r9b, 4
shl dl, 2
add r9b, cl
lea rcx, [rax + 4]
add dl, dil
cmp rcx, r14
ja 0x14001851e
movzx ecx, r10b
movzx ecx, byte [rcx + r15]
mov byte [rax + r8], cl
movzx ecx, r9b
movzx ecx, byte [rcx + r15]
mov byte [rax + r8 + 1], cl
cmp rbx, 1
jne 0x140018523
mov byte [rax + r8 + 2], 0x3d
jmp 0x140018530
or eax, 0xffffffff
jmp 0x140018546
movzx ecx, dl
movzx ecx, byte [rcx + r15]
mov byte [rax + r8 + 2], cl
add rax, 3
mov byte [rax + r8], 0x3d
inc rax
cmp rax, r14
jae 0x14001851e
mov byte [rax + r8], 0
mov rbx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
pop r15
pop r14
pop rdi
ret
Function at 0x140019330
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rcx
push rdx
push r13
movabs rcx, 0x60
mov rdx, qword gs:[rcx]
push rsi
mov rsi, qword [rdx + 0x10]
mov esi, dword [rdx + 0x10]
add rdx, 0x18
mov r13, qword [rdx]
mov rdx, qword [r13 + 0x10]
push r15
mov r13, rdx
add r13, 0x30
mov rcx, qword [r13]
cmp rcx, 0
je 0x140019393
mov r13, qword [rdx + 0x60]
mov r15, qword [r13]
and r15d, 0xdf00df
mov r13, qword [r13 + 0xc]
shl r13d, 8
add r13d, r15d
shl r13d, 2
shl ebp, 2
sub r13d, 0xc914cd2c
test r13, r13
je 0x140019398
mov rdx, qword [rdx]
jmp 0x140019354
mov edx, dword [rcx + 0x3c]
add rdx, 0x10
add rdx, rcx
mov r13d, dword [rdx + 0x78]
add r13, rcx
push r14
mov r15d, dword [r13 + 0x20]
add r15, rcx
mov r14d, dword [r15]
add r14, rcx
mov edx, dword [r14 + 0xb]
add edx, 0xff8b9c9b
cmp edx, 0
jne 0x1400193c9
jmp 0x1400193cf
add r15, 4
jmp 0x1400193b2
mov edx, dword [r13 + 0x20]
sub r15, rcx
sub r15, rdx
shr r15d, 1
mov edx, dword [r13 + 0x24]
add rdx, r15
add rdx, rcx
mov r15d, dword [rdx]
mov edx, dword [r13 + 0x1c]
shl r15d, 0x10
shr r15d, 0xe
add rdx, rcx
add rdx, r15
mov r15d, dword [rdx]
movabs rdx, 0xb1000
add r15, rcx
add rdx, rsi
push rcx
push rsi
push rdx
push r14
push r14
mov rcx, rdx
push rdx
mov edx, 0x39000
mov r9, rsp
mov r8d, 0x40
call r15
pop r13
pop r14
pop r14
pop rdx
pop rsi
push r15
mov ecx, 0x7a14
mov r13d, 0x1e160
mov r15d, 0xf
imul rcx, r15
movabs r15, 0x3773
add r15, rsi
add rcx, r15
call fcn.140019483
mov edx, 0xd5000
movabs rcx, 0x94c9f
add rcx, rsi
add rdx, rsi
mov r13d, 0x34e0
call fcn.140019483
pop r15
jmp 0x1400194ac
mov r13d, 0x14a
movabs rdx, 0xb1000
mov ecx, 0x8000000
mov r15d, 0xc
imul r13d, r15d
add r13d, 0x88
add rdx, rsi
sub rdx, r13
mov r13, rdx
sub r13, rcx
movabs rcx, 0x98e9f
mov r15d, 0x9956b
add r15, rsi
add rcx, rsi

Function at 0x1400224dc
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x140022308
Function at 0x140001488
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov rax, qword [0x14000cb00]
mov dword [rax], 1
mov rax, qword [0x14000cb10]
mov dword [rax], 1
mov rax, qword [0x14000cb20]
mov dword [rax], 1
mov rax, qword [0x14000caf0]
mov dword [rax], 1
mov rax, qword [0x14000c9a0]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x1400014e6
mov eax, 0
jmp 0x140001593
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x140001512
mov eax, 0
jmp 0x140001593
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
movzx eax, ax
cmp eax, 0x10b
je 0x140001538
cmp eax, 0x20b
je 0x14000155f
jmp 0x14000158e
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x5c]
cmp eax, 0xe
ja 0x14000154b
mov eax, 0
jmp 0x140001593
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0xd0]
test eax, eax
setne al
movzx eax, al
jmp 0x140001593
mov rax, qword [rbp - 0x18]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
mov eax, dword [rax + 0x6c]
cmp eax, 0xe
ja 0x14000157a
mov eax, 0
jmp 0x140001593
mov rax, qword [rbp - 0x20]
mov eax, dword [rax + 0xe0]
test eax, eax
setne al
movzx eax, al
jmp 0x140001593
mov eax, 0
add rsp, 0x20
pop rbp
ret

Function at 0x1400018c0
Capabilities:
Delete file

Disassembly:
push rbx
sub rsp, 0x90
movaps xmmword [rsp + 0x80], xmm6
lea rbx, [0x14000c076]
lea rax, [0x14001e0c0]
mov rcx, qword [0x1400200c8]
movq xmm6, rax
movq xmm0, rbx
punpcklqdq xmm6, xmm0
test rcx, rcx
je 0x14000192f
call qword [sym.imp.KERNEL32.dll_GetProcessId]
xor ecx, ecx
mov edx, eax
call qword [sym.imp.KERNEL32.dll_GenerateConsoleCtrlEvent]
test eax, eax
je 0x140001998
mov rcx, qword [0x1400200c8]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [0x1400200c8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [0x1400200c0], 0
jne 0x140001950
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x90
pop rbx
ret
mov eax, 0x414
mov dword [rsp + 0x48], 3
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x40], 0
mov word [rsp + 0x60], ax
mov dword [rsp + 0x64], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], rbx
movaps xmmword [rsp + 0x50], xmm6
call qword [sym.imp.SHELL32.dll_SHFileOperationW]
jmp 0x140001938
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, 0x400
xor edx, edx
mov qword [rsp + 0x30], 0
mov r8d, eax
lea rax, [rsp + 0x40]
mov dword [rsp + 0x28], 0
mov ecx, 0x1300
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
lea rcx, str.Failed_to_send_CTRL_C_to_child_process.
call sub.msvcrt.dll_puts
mov rcx, qword [rsp + 0x40]
call sub.msvcrt.dll_puts
jmp 0x140001910
Function at 0x140002db0
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call fcn.140009fa0
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sub.msvcrt.dll_fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call fcn.140009fa0
mov r8, rbx
mov rdx, qword [rbp + 0x20]
mov rcx, rax
call sub.msvcrt.dll_vfprintf
call sub.msvcrt.dll_abort
nop

Function at 0x1400039e2
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x1400201a8]
test eax, eax
je 0x140003a7a
lea rax, [0x140020180]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x1400201b0]
mov qword [rbp - 8], rax
jmp 0x140003a5e
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x140003a52
cmp qword [rbp - 0x10], 0
je 0x140003a52
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x140003a18
lea rax, [0x140020180]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x140003a7b
nop
add rsp, 0x30
pop rbp
ret

Function at 0x140003b80
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x140003ba8
mov eax, 0
jmp 0x140003bf6
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x140003bd1
mov eax, 0
jmp 0x140003bf6
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
cmp ax, 0x20b
je 0x140003bf1
mov eax, 0
jmp 0x140003bf6
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x140003bfc
Capabilities:
Enumerate pe sections

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov qword [rbp - 0x18], rax
mov dword [rbp - 0xc], 0
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 0x14]
movzx edx, ax
mov rax, qword [rbp - 0x18]
add rax, rdx
add rax, 0x18
mov qword [rbp - 8], rax
jmp 0x140003c7a
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x140003c71
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0xc]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 8]
add eax, edx
mov eax, eax
cmp qword [rbp + 0x18], rax
jae 0x140003c71
mov rax, qword [rbp - 8]
jmp 0x140003c8f
add dword [rbp - 0xc], 1
add qword [rbp - 8], 0x28
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 6]
movzx eax, ax
cmp dword [rbp - 0xc], eax
jb 0x140003c44
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x140001378
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov rax, qword [0x140049d60]
mov dword [rax], 1
mov rax, qword [0x140049d70]
mov dword [rax], 1
mov rax, qword [0x140049d80]
mov dword [rax], 1
mov rax, qword [0x140049d10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x1400013c9
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x1400013f5
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
movzx eax, ax
cmp eax, 0x10b
je 0x14000141b
cmp eax, 0x20b
je 0x140001442
jmp 0x140001471
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x5c]
cmp eax, 0xe
ja 0x14000142e
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0xd0]
test eax, eax
setne al
movzx eax, al
jmp 0x140001476
mov rax, qword [rbp - 0x18]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
mov eax, dword [rax + 0x6c]
cmp eax, 0xe
ja 0x14000145d
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x20]
mov eax, dword [rax + 0xe0]
test eax, eax
setne al
movzx eax, al
jmp 0x140001476
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x140026090
Capabilities:
Query environment variable

Disassembly:
push r14
mov eax, 0x10080
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.14002d3c0
sub rsp, rax
xor eax, eax
xor edx, edx
lea rdi, str.PYTHON_FROZEN_MODULES
mov ebp, 0x50
lea r13, [rdi + 0x28]
mov word [rsp + 0x30], dx
lea r14, [rsp + 0x30]
lea r12, [rsp + 0x2e]
mov word [rsp + 0x80], ax
mov rsi, r14
nop dword [rax]
mov rax, r13
mov rbx, rsi
sub rax, rdi
cmp word [rsi], 0
je 0x1400260fe
nop word [rax + rax]
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x1400260f0
test rax, rax
je 0x14003e2aa
mov rcx, rbx
add rdi, 1
add rsi, 2
call sub.msvcrt.dll_wcslen
mov r8d, 2
mov rdx, r12
mov byte [rsp + 0x2e], bpl
lea rcx, [rbx + rax*2]
mov byte [rsp + 0x2f], 0
call sub.msvcrt.dll_mbstowcs
movzx ebp, byte [rdi]
test bpl, bpl
jne 0x1400260d8
lea rbx, [rsp + 0x80]
mov r8d, 0x10000
mov rcx, r14
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
lea edx, [rax - 1]
xor eax, eax
cmp edx, 0xffff
ja 0x14002616a
mov rcx, rbx
call sub.msvcrt.dll__wcsdup
add rsp, 0x10080
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
Function at 0x14002c0a0
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call fcn.14003d820
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sub.msvcrt.dll_fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call fcn.14003d820
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call sub.msvcrt.dll_vfprintf
call sub.msvcrt.dll_abort
nop

Function at 0x14002cd72
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x140052108]
test eax, eax
je 0x14002ce0a
lea rax, [0x1400520e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x140052110]
mov qword [rbp - 8], rax
jmp 0x14002cdee
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x14002cde2
cmp qword [rbp - 0x10], 0
je 0x14002cde2
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x14002cda8
lea rax, [0x1400520e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x14002ce0b
nop
add rsp, 0x30
pop rbp
ret

Function at 0x14002cf10
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x14002cf38
mov eax, 0
jmp 0x14002cf86
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x14002cf61
mov eax, 0
jmp 0x14002cf86
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
cmp ax, 0x20b
je 0x14002cf81
mov eax, 0
jmp 0x14002cf86
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x14002cf8c
Capabilities:
Enumerate pe sections

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov qword [rbp - 0x18], rax
mov dword [rbp - 0xc], 0
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 0x14]
movzx edx, ax
mov rax, qword [rbp - 0x18]
add rax, rdx
add rax, 0x18
mov qword [rbp - 8], rax
jmp 0x14002d00a
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x14002d001
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0xc]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 8]
add eax, edx
mov eax, eax
cmp qword [rbp + 0x18], rax
jae 0x14002d001
mov rax, qword [rbp - 8]
jmp 0x14002d01f
add dword [rbp - 0xc], 1
add qword [rbp - 8], 0x28
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 6]
movzx eax, ax
cmp dword [rbp - 0xc], eax
jb 0x14002cfd4
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x140018d4c
Capabilities:
Get graphical window text

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov r13d, edx
mov edx, 0xffffffec
mov ebp, r8d
mov rdi, rcx
call qword [sym.imp.USER32.dll_GetWindowLongW]
mov rcx, rdi
movsxd r14, eax
call qword [sym.imp.USER32.dll_GetParent]
xor r15d, r15d
lea rdx, [rsp + 0x68]
mov rcx, rdi
mov r12, rax
mov dword [rsp + 0x68], r15d
mov dword [rsp + 0x6c], r15d
mov dword [rsp + 0x70], r15d
mov dword [rsp + 0x74], r15d
call qword [sym.imp.USER32.dll_GetWindowRect]
lea rdx, [rsp + 0xd8]
mov rcx, r12
mov dword [rsp + 0xd8], r15d
mov dword [rsp + 0xdc], r15d
call qword [sym.imp.USER32.dll_ScreenToClient]
mov r8d, dword [rsp + 0xdc]
mov edx, dword [rsp + 0xd8]
lea rcx, [rsp + 0x68]
call qword [sym.imp.USER32.dll_OffsetRect]
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
movsxd rbx, eax
lea ecx, [rbx + 0x1b]
movsxd rdx, ecx
lea rcx, [rsp + 0x60]
call fcn.14006193c
mov rsi, qword [rsp + 0x60]
lea r8d, [rbx + 0xb]
mov rdx, rsi
mov rcx, rdi
mov word [rsi], r15w
call qword [sym.imp.USER32.dll_GetWindowTextW]
mov rax, qword [rsp + 0x60]
lea edx, [r15 + 0x31]
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
mov word [rax + rbx*2 + 0x14], r15w
call qword [sym.imp.USER32.dll_SendMessageW]
lea r9, [rsp + 0xd0]
mov r15, rax
or eax, 0xffffffff
lea r8, [rsp + 0xc0]
mov edx, 0xb0
mov rcx, rdi
mov dword [rsp + 0xc0], eax
mov dword [rsp + 0xd0], eax
call qword [sym.imp.USER32.dll_SendMessageW]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.USER32.dll_ShowWindow]
test ebp, ebp
jns 0x140018e83
mov rcx, rdi
call qword [sym.imp.USER32.dll_DestroyWindow]
and qword [rsp + 0x58], 0
mov r9d, dword [rsp + 0x68]
mov r11d, dword [rsp + 0x6c]
mov r8d, dword [rsp + 0x70]
mov r10d, dword [rsp + 0x74]
mov rax, qword [0x140133f38]
mov qword [rsp + 0x50], rax
sub r8d, r9d
movzx edx, bp
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x40], r12
sub r10d, r11d
mov dword [rsp + 0x38], r10d
mov dword [rsp + 0x30], r8d
mov dword [rsp + 0x28], r11d
mov dword [rsp + 0x20], r9d
lea rdx, [0x140116bc8]
xor r8d, r8d
mov r9d, r13d
mov ecx, r14d
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov r9d, 1
mov r8, r15
lea edx, [r9 + 0x2f]
mov rcx, rax
mov rbx, rax
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rsi
mov rcx, rbx
call qword [sym.imp.USER32.dll_SetWindowTextW]
mov r9d, dword [rsp + 0xd0]
mov r8d, dword [rsp + 0xc0]
mov edx, 0xb1
mov rcx, rbx
call qword [sym.imp.USER32.dll_SendMessageW]
lea rcx, [rsp + 0x60]
call fcn.1400592f8
mov rax, rbx
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x14003c234
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
sub rsp, 0x20
mov rdi, rcx
mov esi, edx
lea rcx, [rsp + 0x40]
mov edx, 0x20a
call fcn.14006193c
mov rax, qword [rsp + 0x40]
mov ebx, 0x20
mov word [rax], bx
mov rax, qword [rsp + 0x40]
xor r12d, r12d
mov word [rax + 2], r12w
mov rdx, qword [rsp + 0x40]
lea rcx, str.SystemRoot
add rdx, 2
mov r8d, 0x208
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
lea rdx, str.System32OnShutdown.wcs
lea rcx, [rsp + 0x40]
call fcn.140061a04
test bl, sil
lea r11, str.unknown
lea rax, [0x140115360]
lea rcx, str.reboot
lea rbx, str.lock
cmove rax, r11
test sil, 0x10
cmove rcx, rax
test sil, 2
lea rax, [0x140119f88]
cmove rax, rcx
test sil, 4
lea rcx, str.suspend
cmove rcx, rax
test sil, 8
lea rax, str.hiber
cmove rax, rcx
test sil, 0x40
lea rcx, str.poweroff
cmove rcx, rax
test sil, 0x80
cmove rbx, rcx
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rcx, [rsp + 0x40]
mov rdx, rbx
movsxd rbp, eax
call fcn.140061a04
lea rdx, [0x1401154a0]
lea rcx, [rsp + 0x40]
call fcn.140061a04
cmp rdi, r12
je 0x14003c34e
lea rcx, [rsp + 0x40]
mov rdx, rdi
call fcn.140061a04
mov rdx, qword [rsp + 0x40]
lea rcx, [0x1401340d0]
call fcn.140030dc4
lea rdx, str._25INDATA
lea rcx, [rsp + 0x50]
call fcn.14006d808
mov rax, qword [rsp + 0x40]
lea rcx, [rsp + 0x50]
lea rdx, [rax + rbp*2]
call fcn.140061a04
test sil, 0x70
je 0x14003c39a
mov rdx, qword [rsp + 0x50]
lea rcx, [0x1401340d0]
call fcn.140030dc4
lea rcx, [rsp + 0x50]
call fcn.1400592f8
lea rcx, [rsp + 0x40]
call fcn.1400592f8
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x58]
add rsp, 0x20
pop r12
pop rdi
pop rsi
ret
Function at 0x1800156fc
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
mov bl, r8b
mov r11b, dl
xor r10b, r10b
mov edi, 8
mov al, r10b
mov dl, r11b
xor al, r11b
movzx ecx, al
test bl, 1
movzx eax, r10b
cmove ecx, eax
mov al, r11b
add al, al
shr bl, 1
movzx r8d, al
mov r10b, cl
mov cl, r8b
xor cl, 0x1b
test dl, dl
movzx r11d, cl
cmovns r11d, r8d
sub rdi, 1
jne 0x180015714
mov rbx, qword [rsp + 8]
mov al, r10b
mov rdi, qword [rsp + 0x10]
ret

Function at 0x180015764
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
mov qword [rsp + 8], rbx
mov eax, dword [rcx]
mov r8, rdx
mov r11, rcx
mov r9d, 4
xor ebx, ebx
xor r10d, r10d
test eax, eax
jle 0x1800157ae
mov rdx, qword [r8]
inc ebx
movzx eax, byte [rdx + r10]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
lea rax, [0x180026ee0]
mov al, byte [rcx + rax]
mov byte [rdx + r10], al
inc r10
mov eax, dword [r11]
cmp ebx, eax
jl 0x180015780
add r8, 8
sub r9, 1
jne 0x180015777
mov rbx, qword [rsp + 8]
ret