joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140083790
Capabilities:
Read file on windows

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov r12, qword [sym.imp.msvcrt.dll__errno]
mov rdi, rcx
mov rsi, rdx
mov ebx, r8d
mov rcx, qword [rdi]
call sub.msvcrt.dll__fileno_1
mov ecx, eax
mov r8d, ebx
mov rdx, rsi
call sub.msvcrt.dll__read
movsxd rbp, eax
cmp eax, 0xffffffff
je 0x1400837d8
mov rax, rbp
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
call r12
cmp dword [rax], 4
je 0x1400837aa
mov rax, rbp
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret

Function at 0x140096100
Capabilities:
Read file on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rax, qword [rcx + 8]
mov rdi, rcx
test rax, rax
je 0x140096128
mov rcx, qword [rcx]
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
jmp rax
mov rbp, qword [sym.imp.msvcrt.dll__errno]
mov ebx, 4
lea rsi, [rsp + 0x2c]
nop dword [rax]
mov ecx, dword [rdi + 0x10]
mov r8d, ebx
mov rdx, rsi
call sub.msvcrt.dll__read
test eax, eax
jle 0x140096170
cdqe
add rsi, rax
sub rbx, rax
jne 0x140096140
mov eax, dword [rsp + 0x2c]
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
cmp eax, 0xffffffff
jne 0x14009617c
call rbp
cmp dword [rax], 4
je 0x140096140
lea rcx, str.random_device_could_not_be_read
call fcn.1400be2a0
nop
nop
nop
nop
nop
nop
nop
nop
mov rax, qword [0x1400c9370]
add rax, 0x10
mov qword [rcx], rax
mov rax, qword [rdx + 8]
mov qword [rcx + 8], rax
mov eax, dword [rax - 8]
test eax, eax
mov rax, qword [rcx + 8]
jg 0x1400961c0
mov dword [rax - 8], 1
ret
lock add dword [rax - 8], 1
ret
Function at 0x1400a2140
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 0x28
movups xmmword [rsp], xmm6
movups xmmword [rsp + 0x10], xmm7
movdqu xmm5, xmmword [0x1400c3330]
pxor xmm7, xmm7
movdqu xmm6, xmmword [0x1400c3340]
movdqu xmm3, xmmword [0x1400c3350]
movdqu xmm4, xmmword [0x1400c3360]
mov rdx, rcx
lea rcx, [rcx + 0x380]
mov rax, rdx
nop
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 4]
add rax, 0x10
movdqu xmm2, xmmword [rax + 0x624]
pand xmm1, xmm6
pand xmm0, xmm5
por xmm0, xmm1
movdqa xmm1, xmm0
pand xmm0, xmm3
psrld xmm1, 1
pxor xmm1, xmm2
movdqa xmm2, xmm7
psubd xmm2, xmm0
pand xmm2, xmm4
movdqa xmm0, xmm2
pxor xmm0, xmm1
movups xmmword [rax - 0x10], xmm0
cmp rcx, rax
jne 0x1400a2180
movq xmm0, qword [rdx + 0x380]
mov eax, dword [rdx + 0x388]
movq xmm1, qword [0x1400c3330]
mov ecx, dword [rdx + 0x38c]
movq xmm2, qword [0x1400c3340]
and eax, 0x80000000
pand xmm0, xmm1
and ecx, 0x7fffffff
movq xmm1, qword [rdx + 0x384]
or eax, ecx
pand xmm1, xmm2
mov ecx, eax
and eax, 1
por xmm0, xmm1
neg eax
shr ecx, 1
xor ecx, dword [rdx + 0x9bc]
movdqa xmm2, xmm0
and eax, 0x9908b0df
movq xmm1, qword [rdx + 0x9b4]
psrld xmm2, 1
xor eax, ecx
lea rcx, [rdx + 0x9bc]
pxor xmm1, xmm2
mov dword [rdx + 0x388], eax
movq xmm2, qword [0x1400c3350]
lea rax, [rdx + 0x38c]
pand xmm0, xmm2
pxor xmm2, xmm2
psubd xmm2, xmm0
movq xmm0, qword [0x1400c3360]
pand xmm0, xmm2
pxor xmm2, xmm2
pxor xmm1, xmm0
movq qword [rdx + 0x380], xmm1
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 4]
add rax, 0x10
movdqu xmm7, xmmword [rax - 0x39c]
pand xmm1, xmm6
pand xmm0, xmm5
por xmm0, xmm1
movdqa xmm1, xmm0
pand xmm0, xmm3
psrld xmm1, 1
pxor xmm1, xmm7
movdqa xmm7, xmm2
psubd xmm7, xmm0
pand xmm7, xmm4
movdqa xmm0, xmm7
pxor xmm0, xmm1
movups xmmword [rax - 0x10], xmm0
cmp rcx, rax
jne 0x1400a2283
mov eax, dword [rdx + 0x9bc]
mov ecx, dword [rdx]
mov qword [rdx + 0x9c0], 0
movups xmm6, xmmword [rsp]
movups xmm7, xmmword [rsp + 0x10]
and ecx, 0x7fffffff
and eax, 0x80000000
or eax, ecx
mov ecx, eax
and eax, 1
neg eax
shr ecx, 1
xor ecx, dword [rdx + 0x630]
and eax, 0x9908b0df
xor eax, ecx
mov dword [rdx + 0x9bc], eax
add rsp, 0x28
ret
Function at 0x1400bcee0
Capabilities:
Write file on windows

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
mov rbx, rcx
call fcn.1400bbd40
mov rax, qword [rbx - 0x10]
mov rcx, qword [rbx - 0x40]
mov rbp, qword [rbx - 0x18]
movsxd rsi, dword [rbx - 0x24]
mov qword [rsp + 0x30], rax
mov rdi, qword [rbx - 0x38]
call fcn.140022850
mov rcx, rax
jmp 0x1400bcdd0
call fcn.1400bbd40
call fcn.1400bbf90
mov rbx, qword [rax]
test byte [rbx + 0x50], 1
je 0x1400bce57
mov rbx, qword [rbx]
lea r12, [rsp + 0x20]
mov rdx, rbp
xor ecx, ecx
mov r8, r12
call fcn.140022420
mov rdx, qword [rbx - 0x90]
mov r9, rsi
mov r8, rbx
mov rcx, r12
call fcn.140022510
test al, al
jne 0x1400bce75
lea rbx, [0x1400cb860]
mov r9, rsi
xor r8d, r8d
mov rcx, r12
mov rdx, rbx
call fcn.140022510
test al, al
je 0x1400bce7a
mov ecx, 8
call fcn.1400bbcd0
lea r8, [0x1400899b0]
mov rdx, rbx
mov rcx, rax
mov rax, qword [0x1400c9320]
add rax, 0x10
mov qword [rcx], rax
call fcn.1400bc250
add rbx, 0x90
jmp 0x1400bcde6
call fcn.1400bc200
mov rcx, rdi
call fcn.140022830
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
call sub.msvcrt.dll_abort
mov rcx, rax
call fcn.1400bbd40
call sub.msvcrt.dll_abort
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, 8
call fcn.1400bbcd0
lea r8, [fcn.1400b4240]
lea rdx, [0x1400cc4d0]
mov rcx, rax
mov rax, qword [str.0_r_]
add rax, 0x10
mov qword [rcx], rax
call fcn.1400bc250
nop
nop
nop
mov rcx, rax
mov rax, rdx
sub rax, 1
jne 0x1400bcf5c
call fcn.1400bbd40
mov rcx, rax
mov rax, qword [rax]
call qword [rax + 0x10]
mov ecx, 2
mov rbx, rax
call rsi
mov r9, rax
mov r8d, 0xb
mov edx, 1
lea rcx, str.__what__:
call sub.msvcrt.dll_fwrite
mov ecx, 2
call rsi
mov rdx, rax
mov rcx, rbx
call sub.msvcrt.dll_fputs
mov ecx, 2
call rsi
mov rdx, rax
mov ecx, 0xa
call sub.msvcrt.dll_fputc
call fcn.1400bbe70
call sub.msvcrt.dll_abort
mov rcx, rdi
call fcn.14001c9d0
call fcn.1400bc200
call fcn.1400bbd40
call fcn.1400bbe70
jmp 0x1400bcf4a
Function at 0x140004940
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x14000d040]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x14000496d
xor eax, eax
jmp 0x140004ad9
mov rax, qword [rcx + 0x40]
mov rdx, qword [rax]
test rdx, rdx
je 0x1400049a7
mov rax, qword [rcx + 0x58]
movsxd r8, dword [rax]
lea rcx, [rdx + r8]
cmp rdx, rcx
jae 0x1400049a7
lea ecx, [r8 - 1]
mov dword [rax], ecx
mov eax, edi
mov rdx, qword [rbx + 0x40]
mov r8, qword [rdx]
lea rcx, [r8 + 1]
mov qword [rdx], rcx
mov byte [r8], dil
jmp 0x140004ad9
cmp qword [rbx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x140004acc
mov r8, qword [rbx + 0x18]
lea rax, [rbx + 0x70]
cmp qword [r8], rax
jne 0x1400049ea
mov rcx, qword [rbx + 0x88]
mov rdx, qword [rbx + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rbx + 0x38]
mov qword [rax], rcx
mov rax, qword [rbx + 0x50]
mov dword [rax], edx
mov rcx, qword [rbx + 0x68]
test rcx, rcx
jne 0x140004a15
mov rdx, qword [rbx + 0x80]
movsx ecx, dil
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, edi
mov eax, ecx
jmp 0x140004ad1
lea rax, [rsp + 0x40]
mov byte [rsp + 0x50], dil
mov qword [rsp + 0x38], rax
lea rdx, [rbx + 0x74]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x51]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x50]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::out_struct__Mbstatet____ptr64__char_const____ptr64__char_const____ptr64__char_const____ptr64____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x140004a84
sub eax, 1
je 0x140004a84
cmp eax, 2
jne 0x140004acc
movsx ecx, byte [rsp + 0x50]
mov rdx, qword [rbx + 0x80]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, edi
mov eax, ecx
jmp 0x140004ad1
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x140004ab2
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x58]
mov r8, rsi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rsi, rax
jne 0x140004acc
lea rax, [rsp + 0x50]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x48], rax
mov ecx, 0xffffffff
cmovne ecx, edi
mov eax, ecx
jmp 0x140004ad1
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140006da0
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x140004e40
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x14000d040]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x140004f13
cmp byte [rcx + 0x71], 0
je 0x140004f13
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x140004f0f
mov rcx, qword [rbx + 0x68]
lea rax, [rsp + 0x30]
lea rdx, [rbx + 0x74]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x38]
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::unshift_struct__Mbstatet____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x140004ed4
sub eax, 1
je 0x140004ed8
cmp eax, 2
jne 0x140004f0f
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140006da0
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x140004f06
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x38]
mov r8, rdi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rdi, rax
jne 0x140004f0f
cmp byte [rbx + 0x71], 0
sete al
jmp 0x140004ebc
xor al, al
jmp 0x140004ebc
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140006da0
add rsp, 0x60
pop rbx
ret
Function at 0x140006940
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 8
mov r9, rcx
mov r10d, 0x270
mov ecx, dword [rcx]
cmp ecx, r10d
jne 0x1400069a1
lea r8, [r9 + 8]
nop dword [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r10, 1
jne 0x140006960
mov ecx, dword [r9]
jmp 0x140006a88
cmp ecx, 0x4e0
jb 0x140006a88
lea r10, [r9 + 0x9c4]
mov qword [rsp], rbx
mov r11d, dword [r10]
mov ebx, 0xe3
mov eax, r11d
mov r11d, dword [r10 + 4]
mov edx, r11d
lea r10, [r10 + 4]
xor edx, eax
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r10 + 0x630]
xor ecx, edx
mov dword [r10 - 0x9c4], ecx
sub rbx, 1
jne 0x1400069c0
lea r10, [r9 + 0xd50]
mov ebx, 0x18c
mov r11d, dword [r10]
nop dword [rax + rax]
mov eax, r11d
mov r11d, dword [r10 + 4]
mov edx, r11d
lea r10, [r10 + 4]
xor edx, eax
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r10 - 0xd50]
xor ecx, edx
mov dword [r10 - 0x9c4], ecx
sub rbx, 1
jne 0x140006a10
mov eax, dword [r9 + 0x1380]
mov edx, eax
xor edx, dword [r9 + 4]
mov rbx, qword [rsp]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r9 + 0x634]
xor ecx, edx
mov dword [r9 + 0x9c0], ecx
xor ecx, ecx
mov dword [r9], ecx
mov eax, ecx
mov edx, dword [r9 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r9], eax
mov ecx, edx
mov eax, dword [r9 + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
add rsp, 8
ret

Function at 0x140006ad8
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rbx, rdx
lea r8, [rsp + 0x60]
mov edi, ecx
mov edx, 0x20000001
lea rcx, str._x_sys_default_locale
mov r9d, 2
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
test eax, eax
jne 0x140006b12
xor r9d, r9d
mov dword [rsp + 0x60], r9d
jmp 0x140006b17
mov r9d, dword [rsp + 0x60]
and qword [rsp + 0x30], 0
mov r8d, edi
and dword [rsp + 0x28], 0
xor edx, edx
mov ecx, 0x1300
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, eax
test eax, eax
je 0x140006b60
mov r8, qword [rbx]
dec r8
add r8, rdx
movzx ecx, byte [r8]
lea rax, [0x1400094a0]
cmp byte [rcx + rax], 0
je 0x140006b60
dec r8
sub rdx, 1
jne 0x140006b46
mov rbx, qword [rsp + 0x50]
mov rax, rdx
add rsp, 0x40
pop rdi
ret
Function at 0x140007944
Capabilities:
Parse pe header

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

Function at 0x100403a20
Capabilities:
Encode data using xor

Disassembly:
xor al, 0x6c
xor al, 0x64
xor al, 0x67
xor al, 0x41
xor al, 0x3e
xor al, 0x7d
xor al, 0xa2
xor al, 0x9a
xor al, 0xa3
xor al, 0x88
xor al, 0x9d
xor al, 0xa4
xor al, 0x71
xor al, 0x74
xor al, 0x59
xor al, 0x87
xchg dword [rbp*4 - 0x57cb58cc], esi
xor al, 0x99
xor al, 0xa1
xor al, 0x86
xor al, 0xa3
xor al, 0xa3
movabs dword [0xa73490345934a834], eax
xor al, 0xad
xor al, 0xa7
xor al, 0xa8
xor al, 0x99
cdq
xor al, 0xa1
xor al, 0x67
xor al, 0x66
xor al, 0x90
xor al, 0xa7
xor al, 0x9c
xor al, 0x99
xor al, 0xa0
xor al, 0xa0
xor al, 0x67
xor al, 0x66
xor al, 0x62
Function at 0x14001a95c
Capabilities:
Hide graphical window

Disassembly:
mov r11, rsp
sub rsp, 0x68
and qword [r11 - 0x10], 0
mov rax, qword [0x1400e44b8]
lea rdx, str.126605_v3
mov qword [r11 - 0x18], rax
and qword [r11 - 0x20], 0
and qword [r11 - 0x28], 0
mov eax, 0x80000000
mov dword [rsp + 0x38], 0x64
mov dword [rsp + 0x30], 0x12c
mov dword [rsp + 0x28], eax
mov r9d, 0xcf0000
mov r8, rdx
xor ecx, ecx
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_CreateWindowExW]
and qword [rsp + 0x58], 0
mov rcx, qword [0x1400e44b8]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], 1
mov qword [rsp + 0x40], rax
and dword [rsp + 0x38], 0
and dword [rsp + 0x30], 0
and dword [rsp + 0x28], 0
and dword [rsp + 0x20], 0
lea rdx, [0x1400ab2e0]
mov r9d, 0x50b008c4
xor r8d, r8d
xor ecx, ecx
mov qword [0x1400e4510], rax
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov rcx, qword [0x1400e4510]
xor edx, edx
mov qword [0x1400e4508], rax
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, qword [0x1400e4510]
xor edx, edx
add rsp, 0x68
jmp qword [sym.imp.USER32.dll_ShowWindow]
Function at 0x14001ab60
Capabilities:
Create process on windows
Get common file path
Set current directory

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r15
lea rbp, [rsp - 0x1ff70]
mov eax, 0x20070
call fcn.140038c40
sub rsp, rax
lea rcx, [rsp + 0x50]
mov rsi, rdx
call fcn.14001e640
lea rdx, [rsp + 0x70]
xor bl, bl
mov ecx, 0x7fff
mov byte [rbp + 0x1ffa0], bl
xor dil, dil
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea r8, [rbp + 0x1ffb0]
mov rdx, rsi
call fcn.14001a624
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
jne 0x14004f0da
mov eax, dword [0x1400e4570]
test eax, eax
je 0x14001acf2
mov r15d, 1
lea rcx, [0x1400e6320]
cmp eax, r15d
je 0x14004f0fc
lea rax, [rbp + 0x1ffa0]
lea r8, [0x1400e4570]
lea rdx, [0x1400e4598]
mov qword [rsp + 0x20], rax
call fcn.14001cb64
test al, al
je 0x14001acfb
mov al, byte [0x1400e6320]
mov rcx, qword [0x1400e4598]
mov dil, byte [0x1400e6321]
lea r9, [rbp + 0x1ffb8]
lea r8, [rbp + 0xff70]
mov edx, 0x7fff
mov byte [0x1400e4574], al
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov rdx, qword [rbp + 0x1ffb8]
lea rcx, [0x1400e4550]
call fcn.14001edf8
mov bl, byte [rbp + 0x1ffa0]
mov r8d, dword [0x1400e4570]
lea rdx, [0x1400e4598]
call fcn.14000bdc0
test eax, eax
jne 0x14004f120
cmp dil, r15b
je 0x14004f143
call fcn.14001aa30
call fcn.14001a95c
cmp byte [0x1400e4574], 0
jne 0x14001ac9f
lea rcx, [0x1400e4f50]
call fcn.14000175c
lea rcx, [0x1400e45c0]
mov edx, r15d
call fcn.14000bea0
cmp byte [0x1400e4574], 0
jne 0x14001acc3
lea rcx, [0x1400e4f50]
call fcn.1400018ac
lea rcx, [0x1400e6320]
call fcn.14001cbfc
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea rcx, [rsp + 0x50]
call fcn.14001c29c
add rsp, 0x20070
pop r15
pop rdi
pop rsi
pop rbx
pop rbp
ret
or dword [0x1400e44c0], 0xffffffff
jmp 0x14001accf
mov dword [0x1400e44c0], r15d
jmp 0x14001accf
lea r8, [0x1400cf2a4]
lea rdx, str.This_is_a_third_party_compiled_126605_script.
mov r9d, reloc.WSOCK32.dll_recv
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
nop
jmp 0x14001acda
mov r8, qword [0x1400e4578]
or r9d, 0xffffffff
mov edx, r15d
call fcn.14001cab8
mov al, byte [0x1400e44c8]
mov byte [0x1400e6322], al
jmp 0x14001ac5c
lea rcx, [0x1400e6320]
call fcn.14001cbfc
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov dword [0x1400e44c0], r15d
jmp 0x14001acda
call fcn.1400749b0
test al, al
jne 0x14001ac80
cmp byte [rbp + 0x1ffb0], al
jne 0x14001ac80
lea rcx, [rsp + 0x50]
call fcn.14001a3c8
lea rdx, [0x1400cb8a0]
lea rcx, [rsp + 0x30]
call fcn.14001f0bc
lea rcx, [rsp + 0x30]
test bl, bl
je 0x14004f1ab
lea rdx, [0x1400cf2d8]
call fcn.14001ef20
lea rdx, [0x1400e4598]
lea rcx, [rsp + 0x30]
call fcn.14001ec60
lea rdx, [0x1400cf2d8]
lea rcx, [rsp + 0x30]
jmp 0x14004f1ae
mov rdx, rsi
call fcn.14001ef20
mov rbx, qword [rsp + 0x30]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov r8, qword [rsp + 0x50]
mov rcx, rax
lea rax, [rsp + 0x70]
lea rdx, str.runas
mov r9, rbx
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
lea rcx, [rsp + 0x30]
call fcn.14001c29c
nop
jmp 0x14001acc3
Function at 0x1800014c0
Capabilities:
Read file on windows
Read pipe
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x98
mov rax, qword [0x180021018]
xor rax, rsp
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x34], 0
mov rdx, qword [rsp + 0xa8]
lea rcx, [rsp + 0x48]
call fcn.180004680
lea rdx, [0x180016470]
lea rcx, [rsp + 0x48]
call fcn.1800050f0
lea rcx, [rsp + 0x48]
call fcn.1800066c0
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x48]
call fcn.1800064f0
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x34]
mov rcx, qword [rsp + 0x40]
mov r8d, ecx
mov rdx, rax
mov rcx, qword [0x180021bd0]
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rdx, [0x180016441]
lea rcx, [rsp + 0x68]
call fcn.180004700
xor eax, eax
cmp eax, 1
je 0x180001640
mov qword [rsp + 0x28], 0
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, qword [0x180021bc0]
call qword [sym.imp.KERNEL32.dll_PeekNamedPipe]
cmp dword [rsp + 0x30], 0
je 0x1800015f3
mov eax, dword [rsp + 0x30]
inc eax
mov eax, eax
mov ecx, eax
call fcn.18000948c
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0x30]
inc eax
mov eax, eax
mov r8d, eax
xor edx, edx
mov rcx, qword [rsp + 0x38]
call fcn.180008280
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x34]
mov r8d, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
mov rcx, qword [0x180021bc0]
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0x34], 0
jbe 0x180001615
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x68]
call fcn.1800050f0
mov rcx, qword [rsp + 0x38]
call fcn.180009478
jmp 0x180001628
cmp dword [rsp + 0x30], 0
je 0x180001626
mov rcx, qword [rsp + 0x38]
call fcn.180009478
jmp 0x180001640
mov dword [rsp + 0x34], 0
mov ecx, 0x1f4
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x180001569
lea rdx, [rsp + 0x68]
mov rcx, qword [rsp + 0xa0]
call fcn.180004620
lea rcx, [rsp + 0x68]
call fcn.180004ba0
lea rcx, [rsp + 0x48]
call fcn.180004ba0
mov rcx, qword [rsp + 0xa8]
call fcn.180004ba0
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.180007320
add rsp, 0x98
ret
Function at 0x180002140
Capabilities:
Create a process with modified i/o handles and window
Create pipe
Create process on windows
Create two anonymous pipes
Execute shell command and capture output

Disassembly:
sub rsp, 0x108
mov r8d, 0x68
xor edx, edx
lea rcx, [rsp + 0x70]
call fcn.180008280
mov dword [rsp + 0x70], 0x68
mov r8d, 0x18
xor edx, edx
lea rcx, [rsp + 0xe0]
call fcn.180008280
mov dword [rsp + 0x50], 0x18
mov qword [rsp + 0x58], 0
mov dword [rsp + 0x60], 1
xor r9d, r9d
lea r8, [rsp + 0x50]
lea rdx, [0x180021bc8]
lea rcx, [0x180021bc0]
call qword [sym.imp.KERNEL32.dll_CreatePipe]
xor r9d, r9d
lea r8, [rsp + 0x50]
lea rdx, [0x180021bd0]
lea rcx, [0x180021bd8]
call qword [sym.imp.KERNEL32.dll_CreatePipe]
mov r8d, 0x68
xor edx, edx
lea rcx, [rsp + 0x70]
call fcn.180008280
mov dword [rsp + 0xac], 0x101
xor eax, eax
mov word [rsp + 0xb0], ax
mov rax, qword [0x180021bd8]
mov qword [rsp + 0xc0], rax
mov rax, qword [0x180021bc8]
mov qword [rsp + 0xc8], rax
mov rax, qword [0x180021bc8]
mov qword [rsp + 0xd0], rax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
lea rdx, str.cmd.exe
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
add rsp, 0x108
ret

Function at 0x180003500
Capabilities:
Create thread

Disassembly:
sub rsp, 0x38
call fcn.180002d90
call fcn.180002140
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor r9d, r9d
lea r8, [0x180003150]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
add rsp, 0x38
ret
Function at 0x2fc4c5030
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 sub.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sub.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call fcn.2fc4c60f0
call sub.api_ms_win_crt_runtime_l1_1_0.dll_abort
nop

Function at 0x2fc4c5a32
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x2fc4ea108]
test eax, eax
je 0x2fc4c5aca
lea rax, [0x2fc4ea0e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x2fc4ea110]
mov qword [rbp - 8], rax
jmp 0x2fc4c5aae
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 0x2fc4c5aa2
cmp qword [rbp - 0x10], 0
je 0x2fc4c5aa2
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 0x2fc4c5a68
lea rax, [0x2fc4ea0e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x2fc4c5acb
nop
add rsp, 0x30
pop rbp
ret

Function at 0x2fc4c5bd0
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 0x2fc4c5bf8
mov eax, 0
jmp 0x2fc4c5c46
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 0x2fc4c5c21
mov eax, 0
jmp 0x2fc4c5c46
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 0x2fc4c5c41
mov eax, 0
jmp 0x2fc4c5c46
mov eax, 1
add rsp, 0x20
pop rbp
ret