joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140045264
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, 0x20
xor ebp, ebp
mov r14, rcx
xor ecx, ecx
lea edi, [rbp + 1]
jmp 0x140045222
mov r8d, edi
mov rdx, rbx
mov rcx, r14
mov rbp, rbx
mov esi, edi
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov edi, eax
test eax, eax
je 0x14004525e
cmp edi, esi
je 0x14004525e
cmp edi, 0x8000
ja 0x14004525e
cmp edi, esi
jb 0x140045259
mov rcx, rbx
mov rdx, rdi
call qword [fcn.140057684]
mov rbx, rax
test rax, rax
jne 0x1400451f5
mov rcx, rbp
call qword [fcn.140057674]
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
mov rax, rbx
jmp 0x14004523e
mov rcx, rbx
jmp 0x140045236
jmp 0x1400451d0

Function at 0x140048cfc
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub rsp, 0x28
mov rax, r8
mov r10, rdx
cmp ecx, 2
je 0x140048d1d
call fcn.1400542e4
mov dword [rax], 0x273f
xor eax, eax
add rsp, 0x28
ret
mov r8, r9
mov rdx, rax
mov rcx, r10
add rsp, 0x28
jmp 0x140048d30
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x60
mov rax, qword [0x1400a4118]
xor rax, rsp
mov qword [rsp + 0x50], rax
movzx eax, byte [rcx + 3]
mov rbx, rdx
movzx edx, byte [rcx + 2]
mov rdi, r8
movzx r10d, byte [rcx + 1]
lea r8, str._d._d._d._d
movzx r9d, byte [rcx]
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], edx
mov edx, reloc.WS2_32.dll_recv
mov byte [rsp + 0x40], 0
mov dword [rsp + 0x20], r10d
call fcn.140040738
lea rcx, [rsp + 0x40]
or rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], 0
jne 0x140048d91
test rax, rax
je 0x140048dc6
cmp rax, rdi
jae 0x140048dc6
lea rax, [rsp + 0x40]
mov r8, rbx
sub r8, rax
lea rdx, [rsp + 0x40]
mov cl, byte [rdx]
mov byte [r8 + rdx], cl
inc rdx
test cl, cl
jne 0x140048db4
mov rax, rbx
jmp 0x140048dd3
call fcn.1400542e4
mov dword [rax], 0x1c
xor eax, eax
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140050400
mov rbx, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
ret
Function at 0x14004bde8
Capabilities:
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x170
mov rax, qword [0x1400a4118]
xor rax, rsp
mov qword [rsp + 0x160], rax
mov qword [rsp + 0x50], rcx
mov r15, r8
mov rcx, rdx
mov r12, rdx
xor esi, esi
xor edi, edi
call fcn.140067e08
mov rbp, rax
test rax, rax
jne 0x14004be67
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, 0x100
lea rdx, [rsp + 0x60]
mov ecx, eax
call fcn.140047dd8
lea rdx, str.schannel:_invalid_path_name_for_CA_file__s:__s
mov r8, r12
mov r9, rax
mov rcx, r15
call fcn.140035bf4
mov ebx, 0x4d
jmp 0x14004bfae
and qword [rsp + 0x30], rsi
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov rcx, rbp
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x14004bebb
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, 0x100
lea rdx, [rsp + 0x60]
mov ecx, eax
call fcn.140047dd8
lea rdx, str.schannel:_failed_to_open_CA_file__s:__s
jmp 0x14004be4f
lea rdx, [rsp + 0x48]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x14004bf04
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, 0x100
lea rdx, [rsp + 0x60]
mov ecx, eax
call fcn.140047dd8
lea rdx, str.schannel:_failed_to_determine_size_of_CA_file__s:__s
mov r8, r12
mov r9, rax
mov rcx, r15
call fcn.140035bf4
mov ebx, 0x4d
jmp 0x14004bfa5
mov rbx, qword [rsp + 0x48]
mov eax, 0x100000
cmp rbx, rax
jle 0x14004bf27
mov r8d, eax
lea rdx, str.schannel:_CA_file_exceeds_max_size_of__u_bytes
mov rcx, r15
call fcn.140035bf4
jmp 0x14004befa
lea rcx, [rbx + 1]
call qword [fcn.14005767c]
mov rsi, rax
test rax, rax
jne 0x14004bf3e
lea ebx, [rax + 0x1b]
jmp 0x14004bfa5
test rbx, rbx
je 0x14004bf87
and dword [rsp + 0x40], 0
lea rdx, [rsi + rdi]
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
mov r8d, ebx
mov r13d, edi
sub r8d, edi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14004bff1
mov eax, dword [rsp + 0x40]
test eax, eax
jne 0x14004bf7e
mov ebx, r13d
jmp 0x14004bf80
add edi, eax
mov eax, edi
cmp rax, rbx
jb 0x14004bf43
mov rcx, qword [rsp + 0x50]
mov r9, r12
mov r8, rbx
mov byte [rbx + rsi], 0
mov rdx, rsi
mov qword [rsp + 0x20], r15
call fcn.14004bc08
mov ebx, eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rsi
call qword [fcn.140057674]
test rbp, rbp
je 0x14004bfc4
mov rcx, rbp
call fcn.140057674
mov eax, ebx
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.140050400
mov rbx, qword [rsp + 0x1c8]
add rsp, 0x170
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, 0x100
lea rdx, [rsp + 0x60]
mov ecx, eax
call fcn.140047dd8
lea rdx, str.schannel:_failed_to_read_from_CA_file__s:__s
jmp 0x14004beec
Function at 0x14004de58
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x20
mov eax, dword [rcx + 0x18]
mov rbx, rcx
mov ecx, dword [rcx + 0x20]
mov r14, rdx
add rcx, 0x18
mov ebp, r8d
lea r9d, [rax + rax]
add rcx, r9
call qword [fcn.14005767c]
xor esi, esi
mov rdi, rax
test rax, rax
je 0x14004df61
lea rcx, [rax + 0x18]
mov qword [rax], rbx
mov qword [rax + 8], rcx
mov eax, dword [rbx + 0x18]
add rax, rcx
mov qword [rdi + 0x10], rax
cmp ebp, dword [rbx + 0x1c]
jbe 0x14004deda
call qword [rbx]
mov rcx, qword [rdi + 8]
mov r8d, ebp
mov rdx, r14
call qword [rbx + ioctlsocket]
mov r14d, dword [rbx + 0x18]
add r14, qword [rdi + 0x10]
mov rdx, qword [rdi + 8]
mov rcx, r14
call qword [rbx + reloc.WS2_32.dll_recv]
mov rcx, qword [rdi + 8]
mov ebp, dword [rbx + 0x20]
call qword [rbx]
mov rcx, qword [rdi + 0x10]
call qword [rbx]
test rbp, rbp
je 0x14004df56
mov rsi, rbp
mov al, byte [r14]
lea rdx, [rsp + 0x40]
xor al, 0x36
mov r8d, 1
mov byte [rsp + 0x40], al
mov rcx, qword [rdi + 8]
call qword [rbx + ioctlsocket]
mov al, byte [r14]
lea rdx, [rsp + 0x40]
xor al, 0x5c
mov r8d, 1
mov byte [rsp + 0x40], al
inc r14
mov rcx, qword [rdi + 0x10]
call qword [rbx + ioctlsocket]
sub rbp, 1
jne 0x14004deea
jmp 0x14004df56
mov rcx, qword [rdi + 8]
lea rdx, [0x1400896a9]
mov r8d, 1
call qword [rbx + ioctlsocket]
mov rcx, qword [rdi + 0x10]
lea rdx, [0x1400896aa]
mov r8d, 1
call qword [rbx + ioctlsocket]
inc rsi
mov eax, dword [rbx + 0x1c]
cmp rsi, rax
jb 0x14004df2b
mov rax, rdi
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r14
pop rdi
pop rsi
ret

Function at 0x140065ab0
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x140065814
Function at 0x14006ca80
Capabilities:
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax + 8], rcx
push rbp
mov rbp, rsp
sub rsp, 0x20
test rcx, rcx
jne 0x14006c920
call fcn.1400542e4
mov dword [rax], socket
call fcn.140054194
or eax, 0xffffffff
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop rbp
ret
mov eax, dword [rcx + 0x14]
shr eax, 0xd
test al, 1
je 0x14006c908
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
shr ecx, 0xc
test cl, 1
jne 0x14006c908
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
mov rax, qword [rbp + 0x10]
shr ecx, 1
test cl, 1
je 0x14006c952
lock or dword [rax + 0x14], 0x10
jmp 0x14006c908
lock or dword [rax + 0x14], 1
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
test ecx, 0x4c0
jne 0x14006c96f
mov rcx, qword [rbp + 0x10]
call fcn.140074914
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax + 8]
mov qword [rax], rcx
mov rbx, qword [rbp + 0x10]
mov rcx, rbx
call fcn.14006a844
mov rdx, qword [rbp + 0x10]
mov ecx, eax
mov r8d, dword [rdx + 0x20]
mov rdx, qword [rdx + 8]
call fcn.1400683b0
mov dword [rbx + 0x10], eax
mov rax, qword [rbp + 0x10]
mov edx, dword [rax + 0x10]
lea ecx, [rdx + 1]
cmp ecx, 1
ja 0x14006c9c6
neg edx
sbb ecx, ecx
and ecx, 8
add ecx, 8
lock or dword [rax + 0x14], ecx
mov rax, qword [rbp + 0x10]
and dword [rax + 0x10], 0
jmp 0x14006c908
mov ecx, dword [rax + 0x14]
test cl, 6
jne 0x14006ca32
mov rcx, qword [rbp + 0x10]
call fcn.14006a844
cmp eax, 0xffffffff
je 0x14006ca19
mov rcx, qword [rbp + 0x10]
call fcn.14006a844
cmp eax, 0xfffffffe
je 0x14006ca19
mov rbx, qword [rbp + 0x10]
mov rcx, rbx
call fcn.14006a844
movsxd rdi, eax
lea rsi, [0x1400a62b0]
mov rcx, rbx
sar rdi, 6
call fcn.14006a844
and eax, 0x3f
shl rax, 6
add rax, qword [rsi + rdi*8]
jmp 0x14006ca20
lea rax, [0x1400a45c0]
mov al, byte [rax + 0x38]
and al, 0x82
cmp al, 0x82
jne 0x14006ca32
mov rax, qword [rbp + 0x10]
lock or dword [rax + 0x14], 0x20
mov rax, qword [rbp + 0x10]
cmp dword [rax + 0x20], 0x200
jne 0x14006ca68
mov ecx, dword [rax + 0x14]
shr ecx, 6
test cl, 1
je 0x14006ca64
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
shr ecx, 8
test cl, 1
jne 0x14006ca64
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x20], 0x1000
mov rax, qword [rbp + 0x10]
dec dword [rax + 0x10]
mov rcx, qword [rax]
movzx edx, byte [rcx]
inc rcx
mov qword [rax], rcx
mov eax, edx
jmp 0x14006c90b
jmp 0x14006c8d8
Function at 0x140001000
Capabilities:
Enumerate process modules

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x298
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x210], 0xfffffffffffffffe
mov qword [rbp + 0x208], rdx
mov edx, ecx
mov ecx, 0x18
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x1400010b2
mov dword [rbp - 0x60], 0x238
lea rdx, [rbp - 0x60]
mov rcx, rsi
call sub.KERNEL32.dll_Module32First
test eax, eax
je 0x1400010a4
lea rdi, [rbp - 0x30]
lea rbx, [rbp - 0x60]
nop dword [rax]
mov rcx, rdi
call fcn.140037f30
mov rdx, qword [rbp + 0x208]
cmp qword [rdx + 0x10], rax
jne 0x140001095
cmp qword [rdx + 0x18], 0x10
mov rcx, rdx
jb 0x140001082
mov rcx, qword [rdx]
mov rdx, rdi
mov r8, rax
call fcn.14004d260
test eax, eax
je 0x14000119e
mov rcx, rsi
mov rdx, rbx
call sub.KERNEL32.dll_Module32Next
test eax, eax
jne 0x140001060
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140001136
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rcx, rax
mov dx, 0xc
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
movups xmm0, xmmword [0x140050620]
movaps xmmword [rbp - 0x40], xmm0
movups xmm0, xmmword [0x140050610]
movaps xmmword [rbp - 0x50], xmm0
movups xmm0, xmmword [str.U7E.H]
movaps xmmword [rbp - 0x60], xmm0
movabs rax, 0x6fd19afd91c088f3
mov qword [rbp - 0x31], rax
lea rcx, [rbp - 0x60]
mov edx, 0x37
call fcn.140006dd0
lea rcx, [0x14006c5d0]
mov rdx, rax
call fcn.140002600
mov rcx, rax
call fcn.1400029f0
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rcx, rax
mov dx, 0xf
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
xor edi, edi
mov rsi, qword [rbp + 0x208]
mov rax, qword [rsi + 0x18]
cmp rax, 0x10
jb 0x14000117d
mov rcx, qword [rsi]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140001178
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140001223
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.14002e230
mov qword [rsi + 0x10], 0
mov qword [rsi + 0x18], 0xf
mov byte [rsi], 0
mov eax, edi
add rsp, 0x298
pop rbx
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rcx, rax
mov dx, 0xc
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
movups xmm0, xmmword [0x140050644]
movups xmmword [rbp + 0x1ed], xmm0
movups xmm0, xmmword [0x140050637]
movaps xmmword [rbp + 0x1e0], xmm0
lea rcx, [rbp + 0x1e0]
mov edx, 0x1d
call fcn.140006dd0
lea rcx, [0x14006c700]
mov rdx, rax
call fcn.140002600
mov rcx, rax
call fcn.1400029f0
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rcx, rax
mov dx, 0xf
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
mov dil, 1
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140001138
call fcn.1400383e4
int3
Function at 0x140006dd0
Capabilities:
Encode data using xor

Disassembly:
push rsi
mov rax, rcx
test rdx, rdx
je 0x140006e34
mov r9, rdx
and r9, 3
je 0x140006e24
lea r10, str.uldshONLYHACKSoatiSke
lea r11, [0x140051444]
mov rsi, rax
mov r8, r10
nop word cs:[rax + rax]
cmp r8, r11
cmove r8, r10
movzx ecx, byte [r8]
xor byte [rsi], cl
lea rcx, [rsi + 1]
inc r8
mov rsi, rcx
dec r9
jne 0x140006e00
cmp rdx, 4
jb 0x140006e34
jmp 0x140006e36
lea r8, str.uldshONLYHACKSoatiSke
mov rcx, rax
cmp rdx, 4
jae 0x140006e36
pop rsi
ret
add rdx, rax
lea r9, str.uldshONLYHACKSoatiSke
lea r10, [0x140051444]
jmp 0x140006e64
movzx r11d, byte [r8]
xor byte [rcx + 3], r11b
inc r8
add rcx, 4
cmp rcx, rdx
je 0x140006e34
mov r11, r9
cmp r8, r10
je 0x140006e6f
mov r11, r8
movzx r8d, byte [r11]
xor byte [rcx], r8b
inc r11
mov r8, r9
cmp r11, r10
je 0x140006e84
mov r8, r11
movzx r11d, byte [r8]
xor byte [rcx + 1], r11b
inc r8
mov r11, r9
cmp r8, r10
je 0x140006e9a
mov r11, r8
movzx r8d, byte [r11]
xor byte [rcx + 2], r8b
inc r11
mov r8, r9
cmp r11, r10
je 0x140006e50
mov r8, r11
jmp 0x140006e50

Function at 0x140006ec0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rcx
test rdx, rdx
je 0x140006efc
add rdx, rdx
lea rcx, str.uldshONLYHACKSoatiSke
xor r8d, r8d
lea r9, [0x140051444]
mov r10, rcx
nop
cmp r10, r9
cmove r10, rcx
movzx r11d, byte [r10]
xor word [rax + r8], r11w
inc r10
add r8, 2
cmp rdx, r8
jne 0x140006ee0
ret
Function at 0x14000bc00
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x20
lea rbp, [rsp + 0x20]
mov rax, rdx
mov rsi, qword [rbp + 0x70]
mov rdi, qword [rbp + 0x68]
mov rdx, qword [rbp + 0x60]
mov ebx, ecx
shr ebx, 8
lea r8, [rax + r8*2]
xor r11d, r11d
mov r15, rax
movzx r14d, byte [rax + 1]
add rax, 2
lea r10, [r11 + r14]
cmp byte [r15], bl
jne 0x14000bc80
cmp r10, r11
jb 0x14000bcf7
cmp r10, rdx
ja 0x14000bd09
add r11, r9
xor r15d, r15d
nop dword [rax + rax]
cmp r14, r15
je 0x14000bc82
lea r12, [r15 + 1]
cmp byte [r11 + r15], cl
mov r15, r12
jne 0x14000bc60
jmp 0x14000bce4
ja 0x14000bc8a
mov r11, r10
cmp rax, r8
jne 0x14000bc2e
add rsi, rdi
movzx ecx, cx
mov al, 1
nop word cs:[rax + rax]
lea r8, [rdi + 1]
movzx edx, byte [rdi]
test dl, dl
js 0x14000bcc0
mov rdi, r8
sub ecx, edx
jns 0x14000bcdb
jmp 0x14000bce6
cmp r8, rsi
je 0x14000bd18
movzx r8d, byte [rdi + 1]
add rdi, 2
and edx, 0x7f
shl edx, 8
or edx, r8d
sub ecx, edx
js 0x14000bce6
xor al, 1
cmp rdi, rsi
jne 0x14000bca0
jmp 0x14000bce6
xor eax, eax
and al, 1
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret
lea r8, str.librarycore_srcunicodeprintable.rs
mov rcx, r11
mov rdx, r10
call fcn.14004e3d0
lea r8, str.librarycore_srcunicodeprintable.rs
mov rcx, r10
call fcn.14004e0e0
lea rcx, str.librarycore_srcunicodeprintable.rs
call fcn.14004e440
int3

Function at 0x1400105d0
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
mov rax, rdx
sub rdx, rcx
cmp rdx, 0x20
jae 0x1400105f5
cmp rax, rcx
je 0x1400105fb
cmp rdx, 4
jae 0x1400105ff
xor eax, eax
xor r8d, r8d
jmp 0x140010690
pop rbp
jmp fcn.1400098d0
xor eax, eax
pop rbp
ret
mov r8d, edx
and r8d, 0x1c
pxor xmm0, xmm0
xor eax, eax
movdqa xmm2, xmmword [0x140051390]
movdqa xmm3, xmmword [0x1400513a0]
pxor xmm1, xmm1
movzx r9d, word [rcx + rax]
movd xmm4, r9d
movzx r9d, word [rcx + rax + 2]
movd xmm5, r9d
pcmpgtb xmm4, xmm2
punpcklbw xmm4, xmm4
pshuflw xmm4, xmm4, 0xd4
pshufd xmm4, xmm4, 0xd4
pand xmm4, xmm3
paddq xmm0, xmm4
pcmpgtb xmm5, xmm2
punpcklbw xmm5, xmm5
pshuflw xmm4, xmm5, 0xd4
pshufd xmm4, xmm4, 0xd4
pand xmm4, xmm3
paddq xmm1, xmm4
add rax, 4
cmp r8, rax
jne 0x140010620
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rax, xmm0
cmp r8, rdx
je 0x1400106a7
nop dword [rax]
xor r9d, r9d
cmp byte [rcx + r8], 0xc0
setge r9b
add rax, r9
inc r8
cmp rdx, r8
jne 0x140010690
pop rbp
ret
Function at 0x140023d30
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x60]
mov rsi, rcx
lea rcx, [rbp - 0x28]
call fcn.1400195a0
mov rcx, qword [rbp - 0x28]
mov rax, qword [rbp - 0x20]
movabs rbx, 0x8000000000000000
cmp rcx, rbx
jne 0x140023d6e
mov qword [rbp - 8], rax
mov qword [rbp - 0x10], rbx
jmp 0x140023d94
mov rdx, qword [rbp - 0x18]
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rdx
lea rcx, [rbp - 0x10]
lea rdx, [rbp - 0x40]
call fcn.140023c50
mov r14, qword [rbp - 0x10]
cmp r14, rbx
jne 0x140023dad
lea rcx, [rbp - 8]
call fcn.140013e40
mov qword [rsi], rbx
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
mov rdi, qword [rbp - 8]
mov r15, qword [rbp]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140023dd0
mov qword [rsi], r14
mov qword [rsi + 8], rdi
mov qword [rsi + 0x10], r15
jmp 0x140023da0
mov qword [rsi], rbx
test r14, r14
je 0x140023da0
mov rcx, qword [0x14006c4c8]
xor edx, edx
mov r8, rdi
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
jmp qword [sym.imp.KERNEL32.dll_HeapFree]
Function at 0x140029e00
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x70]
mov rdi, rdx
cmp qword [rdx], 0
jne 0x140029f70
mov rsi, rcx
mov rbx, qword [rdi + 0x18]
mov rax, qword [rbx]
test rax, rax
jne 0x140029e3d
mov rdx, qword [rbx + 0x10]
lea rax, [rdx + 0xf]
cmp rax, 0xf
jbe 0x140029f35
xor eax, eax
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x140029f53
sub rax, rdx
add rdx, qword [rbx + 8]
mov r8, qword [rdi + 0x10]
mov ecx, 0xffffffff
cmp rax, rcx
cmovae rax, rcx
mov dword [rbp + 4], 0
mov rcx, qword [rdi + 0x20]
mov qword [rsp + 0x20], r8
lea r9, [rbp + 4]
mov r8d, eax
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140029e9c
mov eax, dword [rbp + 4]
mov ecx, 2
test rax, rax
je 0x140029edf
mov qword [rdi], rcx
mov qword [rdi + 8], rax
mov byte [rsi + 1], 1
jmp 0x140029ee3
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov qword [rbp - 0x40], rax
movabs rcx, 0xffffffff00000000
and rcx, rax
movabs rdx, 0x6d00000000
cmp rcx, rdx
je 0x140029ee7
movabs rdx, 0x3e500000000
cmp rcx, rdx
jne 0x140029f11
lea rax, [rbp - 8]
jmp 0x140029ef3
mov byte [rsi + 1], 0
xor eax, eax
jmp 0x140029f17
mov qword [rbp - 8], 1
lea rax, [rbp - 0x10]
mov qword [rax], 0
lea rcx, [rbp - 0x40]
call fcn.140013e40
mov rcx, qword [rbp - 8]
mov rax, qword [rbp - 0x10]
cmp rcx, 2
jne 0x140029f22
mov qword [rsi + 8], rax
mov al, 1
mov byte [rsi], al
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop rbp
ret
test rcx, rcx
jne 0x140029e85
mov ecx, 1
jmp 0x140029e8f
mov r8d, 0x10
mov rcx, rbx
call fcn.14004eec0
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
jne 0x140029e4a
mov r8d, 1
mov rcx, rbx
mov rdx, rax
call fcn.14004eec0
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
jmp 0x140029e4a
mov qword [rbp - 0x40], 0
lea rdx, [rbp - 0x40]
mov rcx, rdi
call fcn.14004f260
int3

Function at 0x14002eadc
Capabilities:
Parse pe header

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

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, 0x20
mov rbp, r8
mov r14, rdx
mov rdi, rcx
test r8, r8
jg 0x14003070e
xor eax, eax
jmp 0x1400307f4
cmp qword [rcx + 0x68], 0
je 0x14003071f
call fcn.140030810
jmp 0x1400307f4
mov rax, qword [rcx + 0x38]
mov rsi, rbp
mov rdx, qword [rax]
test rdx, rdx
je 0x140030736
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x140030738
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x14003076a
cmp rax, rbp
mov rbx, rbp
mov rcx, r14
cmovb rbx, rax
mov r8, rbx
call fcn.14004d360
mov rax, qword [rdi + 0x50]
add r14, rbx
sub rsi, rbx
sub dword [rax], ebx
mov rcx, qword [rdi + 0x38]
movsxd rax, ebx
add qword [rcx], rax
cmp qword [rdi + 0x80], 0
je 0x1400307ee
mov r8, qword [rdi + 0x18]
lea rax, [rdi + 0x70]
cmp qword [r8], rax
jne 0x1400307a1
mov rcx, qword [rdi + 0x88]
mov rdx, qword [rdi + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rdi + 0x38]
mov qword [rax], rcx
mov rax, qword [rdi + 0x50]
mov dword [rax], edx
mov ebx, 0xfff
jmp 0x1400307ca
mov r9, qword [rdi + 0x80]
mov r8, rbx
mov edx, 1
mov rcx, r14
call fcn.14003c234
add r14, rax
sub rsi, rax
cmp rax, rbx
jne 0x1400307ee
cmp rsi, rbx
ja 0x1400307a8
test rsi, rsi
je 0x1400307ee
mov r9, qword [rdi + 0x80]
mov r8, rsi
mov edx, 1
mov rcx, r14
call fcn.14003c234
sub rsi, rax
sub rbp, rsi
mov rax, rbp
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret

Function at 0x140039314
Capabilities:
Parse pe header

Disassembly:
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 0x140039383
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140039383
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140039383
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140039383
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140039383
cmp dword [rcx + 0x84], 0xe
jbe 0x140039383
cmp dword [rcx + 0xf8], 0
je 0x140039383
mov ecx, ebx
call fcn.140039434
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.140039210
nop
cmp dword [rbp + 0x20], 0
je 0x1400393d1
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.1400393dc
int3
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 1]
jmp 0x140039314

Function at 0x140039518
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x140039314