joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140009a00
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r15
sub rsp, 0x60
mov rax, qword [0x14002b300]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov rbx, rdx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x20], xmm0
lea r12, [rsp + 0x88]
movabs r15, 0xff00ff00ff00ff00
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x30], r12
mov rdi, qword [r12]
xor rdi, r15
mov qword [rsp + 0x20], rdi
mov qword [r12], rax
xor edx, edx
lea r8d, [rax + 1]
call qword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov qword [rsp + 0x50], rax
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
sub rbx, qword [rsp + 0x50]
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
lea rax, [rsp + 0x88]
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], rax
mov rcx, qword [rax]
xor rcx, r15
mov qword [rsp + 0x38], rcx
mov qword [rax], 0
xor ecx, ecx
lea rbp, [0x140001330]
lea rsi, [0x140000000]
mov rax, qword [0x14002c720]
test rax, rax
je 0x140009af0
xor edx, edx
cmp rax, rbp
je 0x140009adf
inc ecx
mov edx, ecx
mov rax, qword [rsi + rcx*8 + 0x2c720]
test rax, rax
jne 0x140009ac7
jmp 0x140009af0
mov r8, qword [rsi + rdx*8 + 0x2ca40]
test r8, r8
jne 0x140009bcf
mov edx, 0x1f4
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r8, rax
test rax, rax
je 0x140009bae
mov rcx, rbp
mov edx, 3
nop dword [rax + rax]
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rax + 0x30], xmm1
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [rax + 0x40], xmm0
movups xmm1, xmmword [rcx + 0x50]
movups xmmword [rax + 0x50], xmm1
movups xmm0, xmmword [rcx + 0x60]
movups xmmword [rax + 0x60], xmm0
lea rax, [rax + 0x80]
movups xmm1, xmmword [rcx + 0x70]
movups xmmword [rax - 0x10], xmm1
lea rcx, [rcx + 0x80]
sub rdx, 1
jne 0x140009b20
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rax + 0x30], xmm1
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [rax + 0x40], xmm0
movups xmm1, xmmword [rcx + 0x50]
movups xmmword [rax + 0x50], xmm1
movups xmm0, xmmword [rcx + 0x60]
movups xmmword [rax + 0x60], xmm0
mov ecx, dword [rcx + 0x70]
mov dword [rax + 0x70], ecx
mov rax, qword [0x14002c710]
mov qword [rsi + rax*8 + 0x2c720], rbp
mov qword [rsi + rax*8 + 0x2ca40], r8
inc rax
mov qword [0x14002c710], rax
lea rdx, [rsp + 0x50]
mov rcx, qword [sym.imp.KERNEL32.dll_FreeLibrary]
call r8
nop
xor rdi, r15
mov qword [r12], rdi
mov rax, rbx
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14000dbe0
mov rbx, qword [rsp + 0xa0]
add rsp, 0x60
pop r15
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x140009c10
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
mov dword [rsp + 0x10], edx
mov qword [r11 + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rsi, r9
mov r12, r8
mov ebx, edx
mov r14, rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
lea rax, [rsp + 0x78]
movabs r13, 0xff00ff00ff00ff00
mov qword [r11 - 0x50], r13
mov qword [r11 - 0x48], rax
mov rbp, qword [rax]
xor rbp, r13
mov qword [r11 + 0x20], rbp
mov qword [r11 - 0x58], rbp
xor edi, edi
mov qword [rax], rdi
mov ecx, dword [r9 + 0x90]
mov rdx, r9
call fcn.140009e10
cmp dword [rsi + 0x90], edi
je 0x140009ce6
cmp dword [rsi + 0x94], edi
je 0x140009ce6
lea r15, [rax + 0x10]
lea r11, [rsp + 0x78]
mov r8d, dword [r15 - 4]
mov r10, qword [r11]
mov qword [r11], rdi
movzx edx, word [rsi + 0x14]
add rdx, 0x18
add rdx, rsi
movzx eax, word [rsi + 6]
lea rcx, [rax + rax*4]
lea r9, [rdx + rcx*8]
cmp rdx, r9
jae 0x140009cdb
nop dword [rax]
mov ecx, dword [rdx + 0xc]
cmp r8, rcx
jb 0x140009cd2
mov eax, dword [rdx + 8]
add eax, ecx
cmp r8, rax
jb 0x140009d10
add rdx, 0x28
cmp rdx, r9
jb 0x140009cc0
mov qword [r11], r10
mov rbp, qword [rsp + 0x98]
mov edi, 1
xor r13, rbp
lea rax, [rsp + 0x78]
mov qword [rax], r13
mov eax, edi
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ebp, dword [rdx + 0x14]
sub rbp, rcx
add rbp, r8
mov qword [r11], r10
add rbp, r12
je 0x140009cde
mov r8, rbp
mov edx, ebx
mov rcx, r14
call fcn.140002540
mov r14, rax
test rax, rax
je 0x140009df6
mov ecx, dword [r15]
mov r8, r12
mov rdx, rsi
call fcn.140009e10
mov rbx, rax
mov r8, qword [rax]
test r8, r8
je 0x140009dd0
lea r13, [rsp + 0x78]
jns 0x140009d60
movzx edx, r8w
jmp 0x140009dac
mov r10, qword [r13]
mov qword [r13], rdi
movzx eax, word [rsi + 0x14]
add rax, 0x18
add rax, rsi
movzx ecx, word [rsi + 6]
lea rdx, [rcx + rcx*4]
lea r9, [rax + rdx*8]
cmp rax, r9
jae 0x140009d9f
mov edx, dword [rax + 0xc]
cmp r8, rdx
jb 0x140009d96
mov ecx, dword [rax + 8]
add ecx, edx
cmp r8, rcx
jb 0x140009de8
add rax, 0x28
cmp rax, r9
jb 0x140009d84
mov rcx, rdi
mov rax, r13
mov qword [rax], r10
lea rdx, [rcx + 2]
mov rcx, rbp
call fcn.140009a00
add rax, r14
mov qword [rbx], rax
add rbx, 8
mov r8, qword [rbx]
test r8, r8
jne 0x140009d58
movabs r13, 0xff00ff00ff00ff00
add r15, 0x14
mov ebx, dword [rsp + 0x88]
mov r14, qword [rsp + 0x80]
jmp 0x140009c8e
mov ecx, dword [rax + 0x14]
sub rcx, rdx
add rcx, r8
add rcx, r12
jmp 0x140009da2
mov rbp, qword [rsp + 0x98]
jmp 0x140009ceb
Function at 0x140009e10
Capabilities:
Enumerate pe sections

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
lea rdi, [rsp]
mov r10, rcx
mov rbx, qword [rdi]
mov qword [rdi], 0
movzx eax, word [rdx + 0x14]
add rax, 0x18
add rax, rdx
movzx edx, word [rdx + 6]
lea r9, [rdx + rdx*4]
lea r11, [rax + r9*8]
cmp rax, r11
jae 0x140009e62
mov edx, dword [rax + 0xc]
cmp r10, rdx
jb 0x140009e59
mov ecx, dword [rax + 8]
add ecx, edx
cmp r10, rcx
jb 0x140009e72
add rax, 0x28
cmp rax, r11
jb 0x140009e47
xor eax, eax
mov qword [rdi], rbx
mov rbx, qword [rsp + 8]
mov rdi, qword [rsp + 0x10]
ret
mov eax, dword [rax + 0x14]
sub rax, rdx
mov qword [rdi], rbx
mov rbx, qword [rsp + 8]
add rax, r10
mov rdi, qword [rsp + 0x10]
add rax, r8
ret
Function at 0x14000c7e0
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
sub rsp, 0x88
mov rax, qword [0x14002b300]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov r10, qword [0x14002ce08]
xor r11d, r11d
mov qword [rsp + 0x58], r11
test r10, r10
jne 0x14000c9bd
mov rax, qword gs:[0x60]
mov r10d, 0xdf6a51c
mov qword [rsp + 0x98], rbp
mov ebp, r11d
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0xa8], rdi
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x90], rbx
mov r12, qword [rcx + 0x10]
mov rsi, r12
mov qword [rsp + 0x70], r15
nop dword [rax]
movups xmm0, xmmword [rsi + 0x58]
movd eax, xmm0
sub ax, 8
test ebp, ebp
je 0x14000c8ac
psrldq xmm0, 8
mov edx, 0x811c9dc5
movq rcx, xmm0
movzx eax, ax
shr rax, 1
lea r8, [rcx + rax*2]
cmp rcx, r8
je 0x14000c8a4
nop
movsx eax, byte [rcx]
add rcx, 2
xor eax, edx
imul edx, eax, 0x1000193
cmp rcx, r8
jne 0x14000c890
cmp edx, ebp
jne 0x14000c972
mov r9, qword [rsi + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov rcx, qword [rax + r9 + 0x88]
mov r15, rcx
mov ebx, ecx
shr r15, 0x20
add rbx, r9
cmp rbx, r9
je 0x14000c972
mov r8d, dword [rbx + 0x18]
test r8d, r8d
je 0x14000c972
mov r14d, dword [rbx + 0x20]
nop dword [rax]
nop word [rax + rax]
dec r8d
mov edx, 0x811c9dc5
lea rax, [r14 + r8*4]
mov eax, dword [rax + r9]
add rax, r9
movzx ecx, byte [rax]
inc rax
test cl, cl
je 0x14000c927
nop dword [rax]
movsx ecx, cl
lea rax, [rax + 1]
xor ecx, edx
imul edx, ecx, 0x1000193
movzx ecx, byte [rax - 1]
test cl, cl
jne 0x14000c910
cmp edx, r10d
je 0x14000c933
test r8d, r8d
jne 0x14000c8f0
jmp 0x14000c972
mov ecx, dword [rbx + 0x24]
add rcx, r9
movzx edx, word [rcx + r8*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r9
mov r10d, dword [rcx + rdx*4]
add r10, r9
cmp r10, rbx
jbe 0x14000c984
lea rax, [rbx + r15]
cmp r10, rax
jae 0x14000c984
mov ebp, 0x811c9dc5
mov rsi, r12
mov dword [rsp + 0x50], ebp
mov dword [rsp + 0x54], ebp
mov r10, qword [rsp + 0x50]
shr r10, 0x20
mov rax, qword [rsi]
mov rsi, rax
cmp rax, r12
jne 0x14000c860
mov r10, r11
mov r15, qword [rsp + 0x70]
mov r14, qword [rsp + 0x78]
mov r12, qword [rsp + 0x80]
mov rdi, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x90]
mov qword [0x14002ce08], r10
movdqa xmm0, xmmword [0x14000f990]
movdqu xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x40], 0x848d848b
mov dword [rsp + 0x44], 0x898d9b91
mov word [rsp + 0x48], 0x88
mov byte [rsp + 0x4a], 1
nop word [rax + rax]
lea eax, [r11 - 0x41]
xor byte [rsp + r11 + 0x30], al
inc r11
cmp r11, 0x19
jb 0x14000c9f0
lea rax, [rsp + 0x58]
mov byte [rsp + 0x4a], 0
mov r9d, 0x20019
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, [rsp + 0x30]
mov rcx, 0xffffffff80000002
call r10
test eax, eax
jne 0x14000ca39
mov qword [0], 1
xor eax, eax
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.14000dbe0
add rsp, 0x88
ret
Function at 0x14000d260
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd8
mov rax, qword [0x14002b300]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov r14, r9
mov r13, r8
mov r12, rdx
mov r15, rcx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x28], xmm0
lea rcx, [rsp + 0x118]
movabs rbx, 0xff00ff00ff00ff00
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rcx
mov rsi, qword [rcx]
xor rsi, rbx
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rsi
mov qword [rcx], rax
movzx edi, word [r9 + 0x14]
add rdi, 0x2c
movzx ebp, ax
cmp ax, word [r9 + 6]
jae 0x14000d391
lea rsi, [rsp + 0x118]
add rdi, r9
nop dword [rax]
call fcn.140004870
mov r9, rax
mov r8d, dword [rdi - 4]
mov edx, dword [rdi]
add rdx, r13
mov ecx, dword [rdi - 8]
add rcx, r12
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], rsi
mov rbx, qword [rsi]
mov rax, rbx
movabs r10, 0xff00ff00ff00ff00
xor rax, r10
mov qword [rsp + 0x40], rax
mov qword [rsi], 0
mov dword [rsp + 0x60], 1
mov dword [rsp + 0x80], r15d
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x78], r8
lea rdx, [rsp + 0x60]
mov rcx, r9
call fcn.14000a4e0
nop
mov qword [rsi], rbx
inc bp
lea rdi, [rdi + 0x28]
cmp bp, word [r14 + 6]
movabs rbx, 0xff00ff00ff00ff00
jb 0x14000d2f0
mov rsi, qword [rsp + 0x20]
lea rcx, [rsp + 0x118]
xor rsi, rbx
mov qword [rcx], rsi
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.14000dbe0
add rsp, 0xd8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x14000d3d0
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Log keystrokes via polling
Resolve function by fnv-1a hash
Resolve function by parsing pe exports
Terminate process

Disassembly:
sub rsp, 0x38
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14000d4c8
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x30], rdi
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x14000d487
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x14000d487
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rbx + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x14000d482
nop
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x14000d460
cmp r8d, 0x2fa62ca8
je 0x14000d48c
test r9d, r9d
jne 0x14000d440
mov rax, qword [rax]
jmp 0x14000d410
mov ecx, dword [rdi + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
mov ecx, 0x64
add rax, r10
call rax
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14000d3f2
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x48]
mov edx, 0x1f4
mov ecx, edx
call qword [sym.imp.KERNEL32.dll_Beep]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.1400018b0
mov r10, rax
cmp byte [rax + 0xc], 0
je 0x14000d631
xor r8d, r8d
cmp dword [0x14002b2d0], 2
jl 0x14000d5f5
movdqa xmm2, xmmword [0x14000f890]
mov r8d, 8
movdqa xmm4, xmmword [0x14000f900]
movdqa xmm1, xmm2
movdqa xmm3, xmmword [0x14000f8a0]
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x14000f8b0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [rax]
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x14000f8e0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x14000f8f0]
xorps xmm2, xmm0
punpckldq xmm1, xmm3
movd dword [rax], xmm2
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x14000f8b0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [rax + 4]
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x14000f8e0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x14000f8f0]
xorps xmm2, xmm0
movd dword [rax + 4], xmm2
movsxd r9, r8d
add r9, r10
nop dword [rax + rax]
mov eax, 0x4ec4ec4f
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x38
xor byte [r9 - 1], al
cmp r8d, 0xd
jl 0x14000d600
lea rdx, str.nuh_uh
mov rcx, r10
call fcn.140006b20
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3
Function at 0x14000e204
Capabilities:
Parse pe header

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

Disassembly:
jmp 0x14001b1d0
mov qword [rsp + 8], rcx
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
add rsp, 0x28
ret

Function at 0x140011500
Capabilities:
Parse pe header

Disassembly:
jmp 0x14001bd00
sub rsp, 0x38
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x14001bd20
xor al, al
jmp 0x14001bda1
mov rax, qword [rsp + 0x20]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x14001bd33
xor al, al
jmp 0x14001bda1
mov rax, qword [rsp + 0x20]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x20]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
cmp dword [rax], 0x4550
je 0x14001bd5d
xor al, al
jmp 0x14001bda1
mov rax, qword [rsp + 0x28]
movzx eax, word [rax + 0x18]
cmp eax, 0x20b
je 0x14001bd71
xor al, al
jmp 0x14001bda1
mov rax, qword [rsp + 0x28]
cmp dword [rax + 0x84], 0xe
ja 0x14001bd83
xor al, al
jmp 0x14001bda1
mov eax, 8
imul rax, rax, 0xe
mov rcx, qword [rsp + 0x28]
cmp dword [rcx + rax + 0x88], 0
jne 0x14001bd9f
xor al, al
jmp 0x14001bda1
mov al, 1
add rsp, 0x38
ret
Function at 0x140001140
Capabilities:
Parse pe header
Terminate process

Disassembly:
mov rax, rsp
sub rsp, 0xc8
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rdi
lea rcx, [rax - 0x78]
call qword [sym.imp.KERNEL32.dll_GetStartupInfoA]
nop
cmp word [0x140000000], 0x5a4d
je 0x14000117d
xor ebx, ebx
mov dword [rsp + 0xd0], ebx
lea rdi, [0x140000000]
jmp 0x14000120b
movsxd rax, dword [0x14000003c]
lea rdi, [0x140000000]
add rax, rdi
cmp dword [rax], 0x4550
je 0x1400011a1
xor ebx, ebx
mov dword [rsp + 0xd0], ebx
jmp 0x14000120b
movzx ecx, word [rax + 0x18]
cmp ecx, 0x10b
je 0x1400011e8
cmp ecx, 0x20b
je 0x1400011c0
xor ebx, ebx
mov dword [rsp + 0xd0], ebx
jmp 0x14000120b
cmp dword [rax + 0x84], 0xe
ja 0x1400011d4
xor ebx, ebx
mov dword [rsp + 0xd0], ebx
jmp 0x14000120b
xor ebx, ebx
cmp dword [rax + 0xf8], ebx
setne bl
mov dword [rsp + 0xd0], ebx
jmp 0x14000120b
cmp dword [rax + 0x74], 0xe
ja 0x1400011f9
xor ebx, ebx
mov dword [rsp + 0xd0], ebx
jmp 0x14000120b
xor ebx, ebx
cmp dword [rax + 0xe8], ebx
setne bl
mov dword [rsp + 0xd0], ebx
mov ecx, 2
call qword [sym.imp.msvcrt.dll___set_app_type]
mov qword [0x1400290e0], 0xffffffffffffffff
mov qword [0x1400290e8], 0xffffffffffffffff
mov rcx, qword [sym.imp.msvcrt.dll__fmode]
mov eax, dword [0x14001db9c]
mov dword [rcx], eax
mov rcx, qword [sym.imp.msvcrt.dll__commode]
mov eax, dword [0x14001db98]
mov dword [rcx], eax
call fcn.1400013f0
cmp dword [section..data], 0
jne 0x140001265
lea rcx, [fcn.1400013f0]
call qword [sym.imp.msvcrt.dll___setusermatherr]
lea rdx, [0x140018720]
lea rcx, [0x140018718]
call sub.msvcrt.dll__initterm
mov r11d, dword [0x14001db94]
mov dword [rsp + 0xd8], r11d
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x20], rax
mov r9d, dword [0x14001db90]
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x3c]
call qword [sym.imp.msvcrt.dll___getmainargs]
lea rdx, [0x140018710]
lea rcx, [0x1400186d0]
call sub.msvcrt.dll__initterm
mov r11, qword [sym.imp.msvcrt.dll__acmdln]
mov r8, qword [r11]
mov qword [rsp + 0x30], r8
cmp byte [r8], 0x22
jne 0x140001306
nop
nop
inc r8
mov qword [rsp + 0x30], r8
movzx eax, byte [r8]
test al, al
je 0x1400012f6
cmp al, 0x22
je 0x1400012f6
jmp 0x1400012e0
cmp byte [r8], 0x22
jne 0x140001316
inc r8
mov qword [rsp + 0x30], r8
jmp 0x140001316
cmp byte [r8], 0x20
jbe 0x140001316
inc r8
mov qword [rsp + 0x30], r8
jmp 0x140001306
movzx eax, byte [r8]
test al, al
je 0x14000132c
cmp al, 0x20
ja 0x14000132c
inc r8
mov qword [rsp + 0x30], r8
jmp 0x140001316
test byte [rsp + 0x8c], 1
je 0x140001341
movzx r9d, word [rsp + 0x90]
jmp 0x140001347
mov r9d, 0xa
xor edx, edx
mov rcx, rdi
call fcn.14000ae40
mov edi, eax
mov dword [rsp + 0x38], eax
test ebx, ebx
jne 0x140001363
mov ecx, eax
call qword [sym.imp.msvcrt.dll_exit]
call qword [sym.imp.msvcrt.dll__cexit]
jmp 0x140001387
mov eax, edi
jmp 0x140001390
mov rbx, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0xe8]
add rsp, 0xc8
ret
Function at 0x140001c5c
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], r8
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
sub rsp, 0x5d0
or qword [rax - 0x538], 0xffffffffffffffff
xor ebx, ebx
mov rdi, r8
mov r8, rdx
lea rcx, [rax - 0x538]
lea rdx, [0x1400190c4]
mov rsi, r9
mov byte [rax - 0x530], bl
mov byte [rax - 0x168], bl
mov byte [rax - 0x2ac], bl
call fcn.1400105c8
lea rcx, [rsp + 0xb0]
mov byte [rsp + 0x30], bl
call fcn.140010518
cmp eax, ebx
je 0x140001dec
mov rbp, qword [rsp + 0x610]
test byte [rsp + 0x1fc], 0x10
je 0x140001db9
lea rcx, [rsp + 0x228]
call fcn.1400111c4
cmp eax, ebx
jne 0x140001db9
mov al, byte [rsp + 0x228]
cmp al, 0x53
je 0x140001d00
cmp al, 0x73
jne 0x140001d12
cmp byte [rsp + 0x229], 0x2d
lea rdx, [rsp + 0x228]
je 0x140001d1a
mov rdx, qword [rsp + 0x618]
lea rcx, [rsp + 0x30]
mov r8d, 0x80
call fcn.140011854
mov rcx, qword [rsp + 0x5f0]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x33c]
mov r9, rsi
mov r8, rdi
mov qword [rsp + 0x20], rbp
call fcn.140001c5c
cmp eax, ebx
jne 0x140001de7
xor eax, eax
or r8, 0xffffffffffffffff
mov rcx, r8
repne scasb al, byte [rdi]
lea rdi, [rsp + 0x33c]
not rcx
lea rdx, [rcx - 1]
mov rcx, r8
repne scasb al, byte [rdi]
mov rdi, qword [rsp + 0x600]
not rcx
lea rax, [rdx + rcx]
cmp rax, 0x104
jae 0x140001da7
lea rcx, [rsp + 0x33c]
mov r8, rsi
mov rdx, rdi
call fcn.140012184
jmp 0x140001da9
mov byte [rsi], bl
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x140001dcf
mov byte [rsi], bl
lea rcx, [rsp + 0xb0]
call fcn.140010518
cmp eax, ebx
je 0x140001dec
jmp 0x140001cce
mov ebx, 1
lea rdx, [rsp + 0x30]
mov rcx, rbp
lea r8d, [rbx + 0x7f]
call fcn.140011854
jmp 0x140001dec
mov ebx, 1
lea rcx, [rsp + 0xb0]
call fcn.14000ff48
mov eax, ebx
mov rbx, qword [rsp + 0x5f8]
add rsp, 0x5d0
pop rdi
pop rsi
pop rbp
ret

Function at 0x14000232c
Capabilities:
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
mov rdi, r8
mov rbp, rcx
call fcn.140001f8c
test eax, eax
mov ebx, eax
je 0x1400023e6
xor edx, edx
mov rcx, rdi
call fcn.140011ce4
cmp rax, 0xffffffffffffffff
mov rdi, rax
je 0x1400023e4
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edx, dword [rbp + 0xb0]
cmp eax, edx
mov ebx, eax
jl 0x140002395
add edx, dword [rbp + 0xb4]
cmp edx, eax
jle 0x14000237f
lea rcx, [rbp + 0xa8]
call fcn.14000fc88
cmp ebx, 0x32
jbe 0x1400023d7
mov rdx, qword [rbp + 0xa8]
and dword [rsp + 0x30], 0
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x30]
mov r8d, ebx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rdx, qword [rbp + 0xa8]
lea rcx, [rbp + 8]
mov r8d, 0xa0
mov ebx, eax
call sub.msvcrt.dll_memcpy
jmp 0x1400023d9
xor ebx, ebx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1400023e6
xor ebx, ebx
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov eax, ebx
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop rdi
ret
Function at 0x14000240c
Capabilities:
Authenticate hmac
Encode data using add xor sub operations
Encode data using xor

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 r12
push r13
push r14
sub rsp, 0x340
mov rdi, r9
mov ebp, r8d
mov r13d, edx
mov r12, rcx
mov ebx, 0x14
call fcn.140001e1c
cmp ebp, ebx
mov r14d, 0xff
lea rcx, [rsp + 0x41]
cmovb ebx, ebp
xor esi, esi
mov r8, r14
xor edx, edx
mov byte [rsp + 0x40], sil
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x141]
mov r8, r14
xor edx, edx
mov byte [rsp + 0x140], sil
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x241]
mov r8, r14
xor edx, edx
mov byte [rsp + 0x240], sil
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x40]
mov r8, rbx
mov rdx, rdi
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + 0x140]
mov r8, rbx
mov rdx, rdi
call sub.msvcrt.dll_memcpy
cmp ebp, esi
jbe 0x1400024d8
mov rax, rbp
xor byte [rsp + rsi + 0x40], 0x5c
xor byte [rsp + rsi + 0x140], 0x36
add rsi, 1
sub rax, 1
jne 0x1400024c1
lea rax, [rsp + 0x240]
lea r8, [rsp + 0x140]
mov r9d, ebp
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x390]
mov edx, r13d
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x388]
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.14000214c
mov edx, r13d
mov rcx, r12
call fcn.140001c0c
mov rcx, qword [rsp + 0x398]
lea r8, [rsp + 0x40]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x240]
mov r9d, ebp
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.14000207c
lea r11, [rsp + 0x340]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r13
pop r12
ret