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

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
mov eax, 0x50
call fcn.1400a59c0
sub rsp, rax
mov rax, qword [rcx + 0x180]
mov rsi, rcx
mov rdi, qword [rcx + 0x160]
mov r14, r9
mov qword [rsp + 0x30], rax
mov rbp, r8
mov rax, qword [rcx + 0x168]
mov r15, rdx
mov rcx, qword [rcx + 0x38]
mov qword [rsp + 0x38], rax
add rcx, r9
movabs rax, 0xfffffffe0
cmp rcx, rax
ja 0x14009805e
cmp rcx, r9
jb 0x14009805e
cmp dword [rsi + 0x174], 0
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x48], r12
mov qword [rsi + 0x38], rcx
je 0x140097eb1
lea rdx, [rsi + 0x60]
lea rcx, [rsi + 0x40]
call rdi
mov dword [rsi + 0x174], 0
mov ebx, dword [rsi + 0x170]
mov r12d, dword [rsi + 0xc]
mov dword [rsp + 0x80], ebx
bswap r12d
test ebx, ebx
je 0x140097f14
nop dword [rax]
test r14, r14
je 0x140097f02
movzx edx, byte [r15]
dec r14
mov ecx, ebx
inc r15
movzx eax, byte [rcx + rsi + 0x10]
xor al, dl
mov byte [rbp], al
inc rbp
xor byte [rcx + rsi + 0x40], dl
inc ebx
and ebx, 0xf
mov dword [rsp + 0x80], ebx
jne 0x140097ed0
jmp 0x140097f0a
test ebx, ebx
jne 0x14009803d
lea rdx, [rsi + 0x60]
lea rcx, [rsi + 0x40]
call rdi
mov qword [rsp + 0x40], r13
mov r13, qword [rsp + 0xa0]
cmp r14, 0xc00
jb 0x140097fa8
movabs rax, 0xaaaaaaaaaaaaaaab
mul r14
mov rdi, rdx
shr rdi, 0xb
imul rax, rdi, 0xfffffffffffff400
add r14, rax
nop dword [rax + rax]
mov r9d, 0xc00
lea rdx, [rsi + 0x60]
mov r8, r15
lea rcx, [rsi + 0x40]
call qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
mov r8d, 0xc0
mov rdx, rbp
mov qword [rsp + 0x20], rsi
mov rcx, r15
call r13
add r12d, 0xc0
add rbp, 0xc00
mov eax, r12d
add r15, 0xc00
bswap eax
mov dword [rsi + 0xc], eax
sub rdi, 1
jne 0x140097f50
mov ebx, dword [rsp + 0x80]
mov r13, r14
and r13, 0xfffffffffffffff0
je 0x140097ff8
mov rdi, r13
lea rdx, [rsi + 0x60]
lea rcx, [rsi + 0x40]
shr rdi, 4
mov r9, r13
mov r8, r15
call qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
mov r8, rdi
mov rdx, rbp
mov qword [rsp + 0x20], rsi
mov rcx, r15
call qword [rsp + 0xa0]
add r12d, edi
add rbp, r13
mov eax, r12d
add r15, r13
bswap eax
mov dword [rsi + 0xc], eax
sub r14, r13
mov r13, qword [rsp + 0x40]
test r14, r14
je 0x14009803d
mov r8, qword [rsp + 0x30]
lea rdx, [rsi + 0x10]
mov rcx, rsi
call qword [rsi + 0x178]
inc r12d
bswap r12d
mov dword [rsi + 0xc], r12d
nop
mov edx, ebx
inc ebx
movzx ecx, byte [rdx + r15]
movzx eax, byte [rsi + rdx + 0x10]
xor byte [rdx + rsi + 0x40], cl
xor al, cl
mov byte [rdx + rbp], al
sub r14, 1
jne 0x140098020
mov r12, qword [rsp + 0x48]
xor eax, eax
mov dword [rsi + 0x170], ebx
mov rbx, qword [rsp + 0x88]
add rsp, 0x50
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
or eax, 0xffffffff
add rsp, 0x50
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x140098340
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
mov eax, 0x50
call fcn.1400a59c0
sub rsp, rax
mov rax, qword [rcx + 0x180]
mov rsi, rcx
mov rdi, qword [rcx + 0x160]
mov r14, r9
mov qword [rsp + 0x30], rax
mov r15, r8
mov rax, qword [rcx + 0x168]
mov rbp, rdx
mov rcx, qword [rcx + 0x38]
mov qword [rsp + 0x38], rax
add rcx, r9
movabs rax, 0xfffffffe0
cmp rcx, rax
ja 0x14009859e
cmp rcx, r9
jb 0x14009859e
cmp dword [rsi + 0x174], 0
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x48], r12
mov qword [rsi + 0x38], rcx
je 0x1400983d1
lea rdx, [rsi + 0x60]
lea rcx, [rsi + 0x40]
call rdi
mov dword [rsi + 0x174], 0
mov ebx, dword [rsi + 0x170]
mov r12d, dword [rsi + 0xc]
mov dword [rsp + 0x80], ebx
bswap r12d
test ebx, ebx
je 0x140098431
nop dword [rax]
test r14, r14
je 0x14009841f
mov ecx, ebx
dec r14
movzx eax, byte [rcx + rsi + 0x10]
xor al, byte [rbp]
inc rbp
mov byte [r15], al
inc r15
xor byte [rcx + rsi + 0x40], al
inc ebx
and ebx, 0xf
mov dword [rsp + 0x80], ebx
jne 0x1400983f0
jmp 0x140098427
test ebx, ebx
jne 0x14009857d
lea rdx, [rsi + 0x60]
lea rcx, [rsi + 0x40]
call rdi
mov r10, qword [rsp + 0xa0]
mov qword [rsp + 0x40], r13
cmp r14, 0xc00
jb 0x1400984e6
movabs rax, 0xaaaaaaaaaaaaaaab
mul r14
mov rdi, rdx
shr rdi, 0xb
imul rax, rdi, 0xfffffffffffff400
add r14, rax
mov qword [rsp + 0x98], r14
mov r14, qword [rsp + 0x30]
nop word [rax + rax]
mov r9, r14
mov qword [rsp + 0x20], rsi
mov r8d, 0xc0
mov rdx, r15
mov rcx, rbp
call r10
add r12d, 0xc0
lea rdx, [rsi + 0x60]
mov eax, r12d
lea rcx, [rsi + 0x40]
bswap eax
mov r9d, 0xc00
mov dword [rsi + 0xc], eax
mov r8, r15
call qword [rsp + 0x38]
mov r10, qword [rsp + 0xa0]
add r15, 0xc00
add rbp, 0xc00
sub rdi, 1
jne 0x140098480
mov ebx, dword [rsp + 0x80]
mov r14, qword [rsp + 0x98]
mov r13, r14
and r13, 0xfffffffffffffff0
je 0x140098532
mov r9, qword [rsp + 0x30]
mov rdi, r13
shr rdi, 4
mov rdx, r15
mov r8, rdi
mov qword [rsp + 0x20], rsi
mov rcx, rbp
call r10
add r12d, edi
lea rdx, [rsi + 0x60]
mov eax, r12d
lea rcx, [rsi + 0x40]
bswap eax
mov r9, r13
mov dword [rsi + 0xc], eax
mov r8, r15
add rbp, r13
sub r14, r13
call qword [rsp + 0x38]
add r15, r13
mov r13, qword [rsp + 0x40]
test r14, r14
je 0x14009857d
mov r8, qword [rsp + 0x30]
lea rdx, [rsi + 0x10]
mov rcx, rsi
call qword [rsi + 0x178]
inc r12d
bswap r12d
mov dword [rsi + 0xc], r12d
nop dword [rax + rax]
mov ecx, ebx
inc ebx
movzx edx, byte [rcx + rbp]
movzx eax, byte [rsi + rcx + 0x10]
xor edx, eax
mov byte [rcx + r15], dl
xor byte [rcx + rsi + 0x40], dl
sub r14, 1
jne 0x140098560
mov r12, qword [rsp + 0x48]
xor eax, eax
mov dword [rsi + 0x170], ebx
mov rbx, qword [rsp + 0x88]
add rsp, 0x50
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
or eax, 0xffffffff
add rsp, 0x50
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x1400987a0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r13
push r14
mov eax, 0x20
call fcn.1400a59c0
sub rsp, rax
mov r13, qword [rcx + 0x160]
xor r14d, r14d
mov qword [rcx], r14
mov rsi, r8
mov qword [rcx + 8], r14
mov rdi, rdx
mov qword [rcx + 0x40], r14
mov rbx, rcx
mov qword [rcx + 0x48], r14
mov qword [rcx + 0x30], r14
mov qword [rcx + 0x38], r14
mov qword [rcx + 0x170], r14
cmp r8, 0xc
jne 0x140098807
movsd xmm0, qword [rdx]
lea edi, [r8 - 0xb]
movsd qword [rcx], xmm0
mov eax, dword [rdx + 8]
mov dword [rcx + 8], eax
mov byte [rcx + 0xf], 1
jmp 0x140098979
mov qword [rsp + 0x58], rbp
mov rbp, rsi
mov qword [rsp + 0x50], rsi
cmp rsi, 0x10
jb 0x1400988b3
mov qword [rsp + 0x60], r12
mov r12, rbx
shr rbp, 4
neg r12
imul rax, rbp, 0xfffffffffffffff0
mov qword [rsp + 0x68], r15
lea r15, [rcx + 0xf]
add rsi, rax
nop dword [rax]
lea r8, [r12 + rdi]
lea rax, [r8 + r15]
cmp rbx, rax
ja 0x140098880
cmp r15, rdi
jb 0x140098880
mov rax, rbx
mov edx, 0x10
nop word [rax + rax]
movzx ecx, byte [r8 + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x140098860
jmp 0x140098890
movdqu xmm1, xmmword [rbx]
movdqu xmm0, xmmword [rdi]
pxor xmm1, xmm0
movdqu xmmword [rbx], xmm1
lea rdx, [rbx + 0x60]
mov rcx, rbx
call r13
add rdi, 0x10
sub rbp, 1
jne 0x140098840
mov rbp, qword [rsp + 0x50]
mov r15, qword [rsp + 0x68]
mov r12, qword [rsp + 0x60]
test rsi, rsi
je 0x14009895a
cmp rsi, 0x20
jb 0x140098923
lea rcx, [rbx - 1]
lea rax, [rdi - 1]
add rcx, rsi
add rax, rsi
cmp rbx, rax
ja 0x1400988da
cmp rcx, rdi
jae 0x140098923
mov rdx, rsi
mov rcx, rdi
and rdx, 0xffffffffffffffe0
mov rax, rbx
sub rcx, rbx
nop word [rax + rax]
movdqu xmm0, xmmword [rax]
add r14, 0x20
movdqu xmm1, xmmword [rax + rcx]
lea rax, [rax + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
movdqu xmm1, xmmword [rcx + rax - 0x10]
movdqu xmm0, xmmword [rax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x10], xmm1
cmp r14, rdx
jb 0x1400988f0
cmp r14, rsi
jae 0x140098950
sub rdi, rbx
lea rcx, [r14 + rbx]
sub rsi, r14
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + rdi]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rsi, 1
jne 0x140098940
lea rdx, [rbx + 0x60]
mov rcx, rbx
call r13
shl rbp, 3
lea rdx, [rbx + 0x60]
bswap rbp
xor qword [rbx + 8], rbp
mov rcx, rbx
call r13
mov edi, dword [rbx + 0xc]
mov rbp, qword [rsp + 0x58]
bswap edi
mov r8, qword [rbx + 0x180]
lea rdx, [rbx + 0x20]
mov rcx, rbx
call qword [rbx + 0x178]
inc edi
bswap edi
mov dword [rbx + 0xc], edi
add rsp, 0x20
pop r14
pop r13
pop rdi
pop rsi
pop rbx
ret
Function at 0x14009e800
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
mov eax, 0x20
call fcn.1400a59c0
sub rsp, rax
mov r9d, dword [rdx + 8]
mov rsi, rdx
cmp r9d, dword [r8 + 8]
mov rdi, r8
mov rbx, rcx
cmovge rdi, rdx
cmovge rsi, r8
mov edx, dword [rdi + 8]
cmp edx, dword [rcx + 0xc]
jg 0x14009e83e
mov rax, rcx
jmp 0x14009e843
call fcn.140043eb0
test rax, rax
jne 0x14009e858
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
xor eax, eax
cmp dword [rsi + 8], eax
jle 0x14009e885
xor r9d, r9d
mov rcx, qword [rsi]
lea r9, [r9 + 8]
mov rdx, qword [rdi]
inc eax
mov r8, qword [r9 + rdx - 8]
xor r8, qword [r9 + rcx - 8]
mov rcx, qword [rbx]
mov qword [r9 + rcx - 8], r8
cmp eax, dword [rsi + 8]
jl 0x14009e862
cmp eax, dword [rdi + 8]
jge 0x14009e8bb
movsxd rcx, eax
lea r8, [rcx*8]
nop word [rax + rax]
mov rcx, qword [rdi]
lea r8, [r8 + 8]
mov rdx, qword [rbx]
inc eax
mov rcx, qword [r8 + rcx - 8]
mov qword [r8 + rdx - 8], rcx
cmp eax, dword [rdi + 8]
jl 0x14009e8a0
mov edx, dword [rdi + 8]
mov dword [rbx + 8], edx
test edx, edx
jle 0x14009e8e7
lea eax, [rdx - 1]
movsxd rcx, eax
mov rax, qword [rbx]
lea r8, [rax + rcx*8]
mov rax, qword [r8]
lea r8, [r8 - 8]
test rax, rax
jne 0x14009e8e4
dec edx
test edx, edx
jg 0x14009e8d2
mov dword [rbx + 8], edx
cmp dword [rbx + 8], 0
jne 0x14009e8f4
mov dword [rbx + 0x10], 0
mov rbx, qword [rsp + 0x30]
mov eax, 1
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x1400a30b0
Capabilities:
Encode data using base64

Disassembly:
xor r10d, r10d
test r8d, r8d
jle 0x1400a31a3
lea r9, [rdx + 1]
lea r11, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
cmp r8d, 3
jl 0x1400a312b
movzx eax, byte [r9]
movzx edx, byte [r9 - 1]
shl rdx, 8
or rdx, rax
movzx eax, byte [r9 + 1]
shl rdx, 8
or rdx, rax
mov rax, rdx
shr rax, 0x12
movzx eax, byte [rax + r11]
mov byte [rcx], al
mov rax, rdx
shr rax, 0xc
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rcx + 1], al
mov rax, rdx
shr rax, 6
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rcx + 2], al
add rcx, 3
and edx, 0x3f
movzx eax, byte [rdx + r11]
mov byte [rcx], al
jmp 0x1400a3184
movzx edx, byte [r9 - 1]
shl edx, 0x10
cmp r8d, 2
jne 0x1400a3142
movzx eax, byte [r9]
shl eax, 8
or edx, eax
mov rax, rdx
shr rax, 0x12
movzx eax, byte [rax + r11]
mov byte [rcx], al
mov rax, rdx
shr rax, 0xc
and eax, 0x3f
movzx eax, byte [rax + r11]
mov byte [rcx + 1], al
cmp r8d, 1
jne 0x1400a316e
lea eax, [r8 + 0x3c]
jmp 0x1400a317a
shr rdx, 6
and edx, 0x3f
movzx eax, byte [rdx + r11]
mov byte [rcx + 2], al
add rcx, 3
mov byte [rcx], 0x3d
add r10d, 4
add r9, 3
sub r8d, 3
inc rcx
test r8d, r8d
jg 0x1400a30c7
mov byte [rcx], 0
mov eax, r10d
ret
mov byte [rcx], r10b
mov eax, r10d
ret
Function at 0x1400051c0
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push rbp
lea rbp, [rsp - 0x3d0]
sub rsp, 0x4d0
mov rax, qword [0x140020010]
xor rax, rsp
mov qword [rbp + 0x3c0], rax
lea rcx, [rsp + 0x78]
call fcn.140007ef0
mov qword [rbp - 0x78], 0
lea rdx, [0x140020b30]
mov r8, qword [0x140020b40]
cmp qword [0x140020b48], 0x10
jb 0x140005213
mov rdx, qword [0x140020b30]
add r8, rdx
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x50], xmm1
cmp rdx, r8
jne 0x140005241
movdqa xmm0, xmmword [0x14001bf50]
movdqu xmmword [rsp + 0x50], xmm0
mov byte [rsp + 0x40], 0
jmp 0x14000524f
sub r8, rdx
lea rcx, [rsp + 0x40]
call fcn.140003a00
nop
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x70]
call fcn.1400080d0
mov qword [rbp - 0x60], 0
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x38], rax
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x60]
call fcn.140005740
mov qword [rsp + 0x70], 0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x58]
call fcn.140005740
nop
lea r9, [0x140005420]
mov edx, 0x18
lea r8d, [rdx - 0x17]
lea rcx, [rsp + 0x60]
call fcn.140016af8
nop
lea r9, [0x140005420]
mov edx, 0x18
lea r8d, [rdx - 0x16]
lea rcx, [rsp + 0x78]
call fcn.140016af8
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x140005329
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140005324
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140005324
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140016ac4
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x58]
call fcn.140005450
mov r8d, dword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x140005345
mov rax, qword [rax]
xor r9d, r9d
mov rdx, rax
mov rcx, qword [0x140020b18]
call qword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x140005364
mov byte [0x140020b10], 0
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x1400053a4
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000539f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000539f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140016ac4
xor edx, edx
mov r8d, 0x400
lea rcx, [rbp - 0x40]
call sub.VCRUNTIME140.dll_memset
xor r9d, r9d
mov r8d, 0x400
lea rdx, [rbp - 0x40]
mov rcx, qword [0x140020b18]
call qword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x1400053dd
mov byte [0x140020b10], 0
jmp 0x1400053f1
movsxd r8, eax
lea rdx, [rbp - 0x40]
lea rcx, [0x140020070]
call fcn.140003ec0
nop
lea rcx, [rbp - 0x58]
call fcn.1400020c0
movzx edx, byte [rbp - 0x58]
lea rcx, [rbp - 0x50]
call fcn.140001ca0
nop
mov rcx, qword [rbp + 0x3c0]
xor rcx, rsp
call fcn.140016810
add rsp, 0x4d0
pop rbp
ret
Function at 0x140008a10
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x80
xor esi, esi
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], esi
xor r9d, r9d
lea r8, [0x1400088e0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
cmp byte [0x140020b10], 0
je 0x140008ad8
call fcn.1400051c0
test al, al
je 0x140008a41
mov qword [rsp + 0x78], rsi
lea r8, [rsp + 0x40]
lea rdx, [0x140020070]
lea rcx, [rsp + 0x30]
call fcn.140008b40
mov rdi, rax
mov rcx, rax
call fcn.1400020c0
movzx edx, byte [0x140020090]
movzx ecx, byte [rdi]
mov byte [0x140020090], cl
mov byte [rdi], dl
mov rdx, qword [0x140020098]
mov r8, qword [rdi + 8]
mov qword [0x140020098], r8
mov qword [rdi + 8], rdx
lea rcx, [0x140020090]
call fcn.1400020c0
nop
mov rcx, rdi
call fcn.1400020c0
movzx edx, byte [rdi]
lea rcx, [rdi + 8]
call fcn.140001ca0
nop
lea rcx, [0x140020050]
call fcn.140001510
jmp 0x140008a41
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140008c60
lea rdx, [0x140008e10]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x140008a41

Function at 0x140017314
Capabilities:
Parse pe header

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

Disassembly:
push rbx
sub rsp, 0x40
mov qword [rsp + 0x58], rdx
mov rbx, r8
xor edx, edx
test rcx, rcx
je 0x140005494
cmp word [rcx], 0x5a4d
jne 0x140005494
movsxd rax, dword [rcx + 0x3c]
cmp eax, 0x400
jg 0x140005494
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140005494
mov edx, dword [rcx + 0x28]
add rdx, qword [rsp + 0x58]
mov rcx, rbx
call fcn.1400053a0
test eax, eax
jne 0x1400054b0
xor eax, eax
add rsp, 0x40
pop rbx
ret
mov rcx, rbx
call fcn.140005410
test rax, rax
je 0x1400054a5
lea rdx, [rax + 0x10]
lea rax, [rsp + 0x38]
mov rcx, qword [rbx]
mov r9d, 8
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x58]
mov qword [rsp + 0x38], 0
call fcn.140005c5f
not eax
shr eax, 0x1f
add rsp, 0x40
pop rbx
ret

Function at 0x140005b60
Capabilities:
Execute syscall

Disassembly:
pop rax
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
sub rsp, 0x28
mov rcx, r10
call fcn.140005b00
add rsp, 0x28
mov rcx, qword [rsp + 8]
mov rdx, qword [rsp + 0x10]
mov r8, qword [rsp + 0x18]
mov r9, qword [rsp + 0x20]
mov r10, rcx
syscall
ret

Function at 0x140005fc4
Capabilities:
Allocate or change rwx memory

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
mov rax, qword [0x1409b7018]
xor ebx, ebx
add rax, 0x18
mov r12, rcx
mov ecx, dword [0x1409b7014]
mov rsi, rdx
mov rdi, r8
cmp ebx, ecx
jge 0x140006012
mov rdx, qword [rax]
cmp r12, rdx
jb 0x14000600a
mov r8, qword [rax + 8]
mov r8d, dword [r8 + 8]
add rdx, r8
cmp r12, rdx
jb 0x1400060f9
inc ebx
add rax, 0x28
jmp 0x140005fea
mov rcx, r12
call fcn.1400067f1
mov rbp, rax
test rax, rax
jne 0x140006031
mov rdx, r12
lea rcx, str.Address__p_has_no_image_section
call fcn.140005f60
movsxd rbx, ebx
mov rax, qword [0x1409b7018]
xor edx, edx
imul rbx, rbx, 0x28
add rax, rbx
mov dword [rax], edx
mov qword [rax + 0x20], rbp
call fcn.14000689f
mov edx, dword [rbp + 0xc]
mov r8d, 0x30
lea rcx, [rax + rdx]
mov rax, qword [0x1409b7018]
lea rdx, [rsp + 0x20]
mov qword [rax + rbx + 0x18], rcx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
jne 0x140006093
mov rax, qword [0x1409b7018]
mov edx, dword [rbp + 8]
lea rcx, str.__VirtualQuery_failed_for__d_bytes_at_address__p
mov r8, qword [rax + rbx + 0x18]
call fcn.140005f60
mov eax, dword [rsp + 0x44]
lea edx, [rax - 4]
and edx, 0xfffffffb
je 0x1400060f3
lea edx, [rax - 0x40]
and edx, 0xffffffbf
je 0x1400060f3
cmp eax, 2
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x38]
mov r8d, 0x40
mov eax, 4
cmove r8d, eax
add rbx, qword [0x1409b7018]
mov qword [rbx + 8], rcx
mov r9, rbx
mov qword [rbx + 0x10], rdx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x1400060f3
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.__VirtualProtect_failed_with_code_0x_x
mov edx, eax
call fcn.140005f60
inc dword [0x1409b7014]
mov ecx, edi
mov rdi, r12
rep movsb byte [rdi], byte [rsi]
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
Function at 0x140006520
Capabilities:
Get thread local storage value

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
lea rdi, [0x1409b7080]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [0x1409b7060]
test rbx, rbx
je 0x14000656c
mov ecx, dword [rbx]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test rsi, rsi
je 0x140006566
test eax, eax
jne 0x140006566
mov rax, qword [rbx + 8]
mov rcx, rsi
call rax
mov rbx, qword [rbx + 0x10]
jmp 0x14000653e
mov rcx, rdi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]

Function at 0x140006720
Capabilities:
Parse pe header

Disassembly:
xor eax, eax
cmp word [rcx], 0x5a4d
jne 0x140006743
movsxd rdx, dword [rcx + 0x3c]
add rcx, rdx
cmp dword [rcx], 0x4550
jne 0x140006743
xor eax, eax
cmp word [rcx + 0x18], 0x20b
sete al
ret

Function at 0x140006744
Capabilities:
Enumerate pe sections

Disassembly:
xor r8d, r8d
movsxd rax, dword [rcx + 0x3c]
add rcx, rax
movzx eax, word [rcx + 0x14]
movzx r9d, word [rcx + 6]
lea rax, [rcx + rax + 0x18]
cmp r8d, r9d
jae 0x14000677e
mov r10d, dword [rax + 0xc]
mov rcx, r10
cmp rdx, r10
jb 0x140006775
add ecx, dword [rax + 8]
cmp rdx, rcx
jb 0x140006780
inc r8d
add rax, 0x28
jmp 0x14000675c
xor eax, eax
ret

Function at 0x1400067f1
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r9, qword [0x1409b0b10]
mov r8, rcx
mov rcx, r9
call fcn.140006720
test eax, eax
je 0x14000681d
mov rdx, r8
mov rcx, r9
sub rdx, r9
add rsp, 0x28
jmp fcn.140006744
xor eax, eax
add rsp, 0x28
ret
Function at 0x415bc0
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x415d4b
push rbp
mov rbp, rsp
sub rsp, 0x48
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rbx
mov rcx, qword [sym.imp.kernel32.dll_VirtualFree]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0x4000
call fcn.00433380
xorps xmm15, xmm15
mov r14, qword [0x00686218]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x20], 0
jne 0x415c25
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
jmp 0x415c34
add rsp, 0x48
pop rbp
ret
sub rcx, rbx
add rax, rbx
mov rbx, rcx
test rbx, rbx
jbe 0x415c53
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x40], rax
mov rcx, rbx
jmp 0x415c63
cmp rbx, 0x1000
jae 0x415c2b
jmp 0x415ccd
add rsp, 0x48
pop rbp
ret
shr rbx, 1
and rbx, 0xfffffffffffff000
mov qword [rsp + 0x38], rbx
cmp rbx, 0x1000
jae 0x415c75
xor edx, edx
jmp 0x415cc4
mov rcx, qword [sym.imp.kernel32.dll_VirtualFree]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0x4000
call fcn.00433380
xorps xmm15, xmm15
mov r14, qword [0x00686218]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x20], 0
sete al
mov rcx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x38]
mov edx, eax
mov rax, qword [rsp + 0x40]
test dl, dl
jne 0x415c59
jmp 0x415c48
call fcn.004658e0
xorps xmm15, xmm15
mov r14, qword [0x00686218]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov eax, dword [rsp]
mov qword [rsp + 0x30], rax
call fcn.00437960
lea rax, [0x00513bc7]
mov ebx, 0x18
nop dword [rax]
call fcn.004381e0
mov rax, qword [rsp + 0x38]
call fcn.00437f20
lea rax, [0x00514224]
mov ebx, 0x19
nop dword [rax + rax]
call fcn.004381e0
mov rax, qword [rsp + 0x30]
call fcn.00437f20
call fcn.00437ba0
call fcn.004379c0
lea rax, [0x00516d6d]
mov ebx, 0x21
call fcn.00435fc0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00462200
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.00415bc0