joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14007bc60
Capabilities:
Allocate or change rwx memory

Disassembly:
push rbx
sub rsp, 0x50
mov rax, qword [0x14029a130]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov r9d, 0x40
mov ebx, ecx
lea rax, [rsp + 0x38]
mov edx, ecx
mov rcx, qword [0x14030ab20]
movss dword [rsp + 0x30], xmm1
lea r8d, [r9 - 0x3c]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov rcx, qword [0x14030ab20]
lea r8, [rsp + 0x30]
mov r9d, 4
mov qword [rsp + 0x20], 0
mov edx, ebx
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov r9d, dword [rsp + 0x38]
mov r8d, 4
mov rcx, qword [0x14030ab20]
mov edx, ebx
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1400c4b80
add rsp, 0x50
pop rbx
ret

Function at 0x14007ca80
Capabilities:
Enumerate processes

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x160
mov rax, qword [0x14029a130]
xor rax, rsp
mov qword [rsp + 0x150], rax
xor edi, edi
mov rbp, rcx
xor edx, edx
mov ebx, edi
lea ecx, [rdi + 2]
call qword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x14007cac8
xor eax, eax
jmp 0x14007cb1e
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x130
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_Process32First]
test eax, eax
je 0x14007cb13
mov rdx, rbp
lea rcx, [rsp + 0x4c]
call fcn.1400d9afc
test eax, eax
jne 0x14007cb01
mov eax, dword [rsp + 0x3c]
cmp eax, ebx
jbe 0x14007cb01
mov edi, dword [rsp + 0x28]
mov ebx, eax
lea rdx, [rsp + 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_Process32Next]
test eax, eax
jne 0x14007cae2
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.1400c4b80
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x14007ef00
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
mov r15d, edx
lea r14d, [rdx - 1]
mov rdi, rcx
xor r12d, r12d
nop word [rax + rax]
mov esi, r12d
mov ebp, r12d
test r14d, r14d
je 0x14007f0f6
nop
movzx ecx, byte [rdi + 8]
add cl, 0xff
shl esi, cl
add esi, esi
nop dword [rax + rax]
mov r10, qword [rdi]
mov ecx, dword [r10]
cmp ecx, 0x270
jne 0x14007efb4
lea rax, [r10 + 8]
mov r9d, ecx
nop word [rax + rax]
mov r8d, dword [rax - 4]
xor r8d, dword [rax]
lea rax, [rax + 4]
btr r8d, 0x1f
xor r8d, dword [rax - 8]
mov ecx, r8d
and cl, 1
neg cl
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [rax + 0x62c]
xor edx, r8d
mov dword [rax + 0x9b8], edx
sub r9, 1
jne 0x14007ef70
mov ecx, dword [r10]
jmp 0x14007f097
cmp ecx, 0x4e0
jb 0x14007f097
lea r11, [r10 + 0x9c4]
mov ebx, 0xe3
mov eax, dword [r11]
nop
mov edx, dword [r11 + 4]
lea r8, [r11 + 4]
xor edx, eax
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
mov eax, dword [r8]
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r11 + 0x634]
xor ecx, edx
mov dword [r11 - 0x9c0], ecx
lea r11, [r8]
sub rbx, 1
jne 0x14007efd0
lea r11, [r10 + 0xd50]
mov ebx, 0x18c
mov eax, dword [r11]
nop dword [rax + rax]
mov edx, eax
lea r8, [r11 + 4]
xor edx, dword [r8]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
mov eax, dword [r8]
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r11 - 0xd4c]
xor ecx, edx
mov dword [r11 - 0x9c0], ecx
lea r11, [r8]
sub rbx, 1
jne 0x14007f020
mov edx, dword [r10 + 0x1380]
xor edx, dword [r10 + 4]
btr edx, 0x1f
xor edx, dword [r10 + 0x1380]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r10 + 0x634]
xor ecx, edx
mov dword [r10 + 0x9c0], ecx
mov ecx, r12d
mov dword [r10], r12d
mov eax, ecx
mov edx, dword [r10 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r10], eax
mov ecx, edx
mov eax, dword [r10 + 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
mov edx, dword [rdi + 0x10]
cmp eax, edx
ja 0x14007ef50
movzx ecx, byte [rdi + 8]
or esi, eax
add cl, 0xff
shl ebp, cl
add ebp, ebp
or ebp, edx
cmp ebp, r14d
jb 0x14007ef40
xor edx, edx
mov eax, ebp
div r15d
xor edx, edx
mov ecx, eax
mov eax, esi
div r15d
cmp eax, ecx
jb 0x14007f11a
xor edx, edx
mov eax, ebp
div r15d
cmp edx, r14d
jne 0x14007ef30
mov rbx, qword [rsp + 0x20]
mov eax, esi
mov rbp, qword [rsp + 0x28]
xor edx, edx
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
div r15d
mov eax, edx
pop r15
pop r14
pop r12
ret
Function at 0x14007f720
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
xor r14d, r14d
mov rdi, rcx
mov esi, r14d
mov ebp, r14d
movzx ecx, byte [rdi + 8]
add cl, 0xff
shl esi, cl
add esi, esi
nop dword [rax]
mov r10, qword [rdi]
mov ecx, dword [r10]
cmp ecx, 0x270
jne 0x14007f7b4
lea rax, [r10 + 8]
mov r9d, ecx
nop word [rax + rax]
mov r8d, dword [rax - 4]
xor r8d, dword [rax]
lea rax, [rax + 4]
btr r8d, 0x1f
xor r8d, dword [rax - 8]
mov ecx, r8d
and cl, 1
neg cl
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [rax + 0x62c]
xor edx, r8d
mov dword [rax + 0x9b8], edx
sub r9, 1
jne 0x14007f770
mov ecx, dword [r10]
jmp 0x14007f897
cmp ecx, 0x4e0
jb 0x14007f897
lea r11, [r10 + 0x9c4]
mov ebx, 0xe3
mov eax, dword [r11]
nop
mov edx, dword [r11 + 4]
lea r8, [r11 + 4]
xor edx, eax
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
mov eax, dword [r8]
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r11 + 0x634]
xor ecx, edx
mov dword [r11 - 0x9c0], ecx
lea r11, [r8]
sub rbx, 1
jne 0x14007f7d0
lea r11, [r10 + 0xd50]
mov ebx, 0x18c
mov eax, dword [r11]
nop dword [rax + rax]
mov edx, eax
lea r8, [r11 + 4]
xor edx, dword [r8]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
mov eax, dword [r8]
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r11 - 0xd4c]
xor ecx, edx
mov dword [r11 - 0x9c0], ecx
lea r11, [r8]
sub rbx, 1
jne 0x14007f820
mov edx, dword [r10 + 0x1380]
xor edx, dword [r10 + 4]
btr edx, 0x1f
xor edx, dword [r10 + 0x1380]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r10 + 0x634]
xor ecx, edx
mov dword [r10 + 0x9c0], ecx
mov ecx, r14d
mov dword [r10], r14d
mov eax, ecx
mov edx, dword [r10 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r10], eax
mov ecx, edx
mov eax, dword [r10 + 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 ecx, edx
shr ecx, 0x12
xor ecx, edx
cmp ecx, dword [rdi + 0x10]
ja 0x14007f750
add rbp, qword [rdi + 8]
or esi, ecx
cmp rbp, 0x20
jb 0x14007f742
mov rbx, qword [rsp + 0x10]
mov eax, esi
mov rsi, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x28]
pop r14
ret
Function at 0x14007fa10
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r15
sub rsp, 0x30
movsxd rbx, dword [rsp + 0x78]
xor r12d, r12d
mov qword [rsp + 0x58], r14
mov r11d, r12d
movsxd r14, dword [rsp + 0x70]
mov r10d, r12d
mov rsi, r9
mov rdi, r8
mov r15, rdx
mov rax, r12
test rbx, rbx
jle 0x14007fa86
lea r9, [r14 + r14*2]
shl r9, 5
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [rdi]
lea r9, [r9 + 0x18]
mov rdx, qword [r10 + rcx]
mov rcx, qword [rsi]
lea r8, [rdx + rax*4]
inc rax
mov rdx, qword [r9 + rcx - 0x18]
mov ecx, dword [rdx + r11]
xor dword [r8], ecx
cmp rax, rbx
jl 0x14007fa60
add r10, 0x18
add r11, 4
cmp r10, 0x60
jl 0x14007fa44
mov rdx, qword [rdi + 0x10]
mov qword [rdi + 0x10], r12
mov rcx, qword [rdi + 8]
mov qword [rdi + 8], r12
mov rax, qword [rdi]
mov qword [rdi], r12
mov qword [r15], rax
mov qword [r15 + 8], rcx
mov qword [r15 + 0x10], rdx
mov rbx, qword [rdi]
mov qword [rsp + 0x50], rbp
mov r14, qword [rsp + 0x58]
test rbx, rbx
je 0x14007fb86
mov rbp, qword [rdi + 8]
cmp rbx, rbp
je 0x14007fb25
mov rcx, qword [rbx]
test rcx, rcx
je 0x14007fb1c
mov rdx, qword [rbx + 0x10]
sub rdx, rcx
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x14007fb0c
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14007fbaa
mov rcx, r8
call fcn.1400c4ba0
mov qword [rbx], r12
mov qword [rbx + 8], r12
mov qword [rbx + 0x10], r12
add rbx, 0x18
cmp rbx, rbp
jne 0x14007fad4
mov r8, qword [rdi]
movabs rax, 0x2aaaaaaaaaaaaaab
mov rcx, qword [rdi + 0x10]
sub rcx, r8
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 3
cmp rdx, 0x1000
jb 0x14007fb73
mov rcx, qword [r8 - 8]
add rdx, 0x27
sub r8, rcx
lea rax, [r8 - 8]
cmp rax, 0x1f
ja 0x14007fbaa
mov r8, rcx
mov rcx, r8
call fcn.1400c4ba0
mov qword [rdi], r12
mov qword [rdi + 8], r12
mov qword [rdi + 0x10], r12
mov rcx, rsi
call fcn.14007f980
mov rbp, qword [rsp + 0x50]
mov rax, r15
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r12
pop rdi
ret
call fcn.1400cbc18
int3
Function at 0x140085900
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r14d, r8d
mov rbx, rdx
xor r12d, r12d
mov ecx, dword [0x140309460]
mov rax, qword gs:[0x58]
mov rsi, qword [rax + rcx*8]
mov eax, 0x13a8
mov eax, dword [rax + rsi]
cmp dword [0x140306ed8], eax
jg 0x140085afb
mov r15d, 0x1398
mov eax, dword [r15 + rsi]
mov r13d, reloc.OLEAUT32.dll_SafeArrayGetDim
test al, 1
jne 0x1400859b8
or eax, 1
mov dword [r15 + rsi], eax
mov edi, r13d
add rdi, rsi
call fcn.1400a17b0
mov dword [rdi + 0x1384], 0xffffffff
mov dword [rdi + 4], eax
mov edx, 1
lea r8, [rdi + 8]
nop dword [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [r8], eax
inc rdx
lea r8, [r8 + 4]
cmp rdx, 0x270
jb 0x140085990
mov dword [rdi], 0x270
mov eax, dword [r15 + rsi]
mov ebp, 0x13a0
test al, 2
jne 0x1400859dc
or eax, 2
mov dword [r15 + rsi], eax
mov dword [rsi + rbp], r12d
mov eax, dword [0x14029a010]
dec eax
mov dword [rsi + rbp + 4], eax
mov eax, 0x20
test r14d, r14d
cmovne eax, r14d
movsxd rdx, eax
xor r8d, r8d
mov rcx, rbx
call fcn.14007e050
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x140085a08
mov rcx, qword [rbx]
mov rdx, rcx
jmp 0x140085a0b
mov rdx, rbx
mov rdi, rcx
mov r14, qword [rbx + 0x10]
add r14, rdx
cmp rcx, r14
je 0x140085ad8
lea r15, [rsi + rbp]
mov ebp, r13d
add rbp, rsi
mov r12d, 0x80000000
lea r13, [section..data]
nop word [rax + rax]
mov edx, dword [r15 + 4]
mov ecx, dword [r15]
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x30], 0x20
mov dword [rsp + 0x38], 0xffffffff
lea eax, [rcx - 0x80000000]
lea esi, [rcx + r12]
cmp ecx, r12d
cmovae esi, eax
lea eax, [rdx - 0x80000000]
lea ecx, [rdx + r12]
cmp edx, r12d
cmovae ecx, eax
sub ecx, esi
cmp ecx, 0xffffffff
jne 0x140085a90
lea rcx, [rsp + 0x28]
call fcn.14007f720
jmp 0x140085a9d
lea edx, [rcx + 1]
lea rcx, [rsp + 0x28]
call fcn.14007ef00
lea ecx, [rsi + rax]
lea eax, [rcx - 0x80000000]
lea edx, [rcx + r12]
cmp ecx, r12d
cmovae edx, eax
mov rcx, r13
cmp qword [0x14029a018], 0x10
cmovae rcx, qword [section..data]
movsxd rax, edx
movzx ecx, byte [rax + rcx]
mov byte [rdi], cl
inc rdi
cmp rdi, r14
jne 0x140085a40
mov rax, rbx
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
lea rcx, [0x140306ed8]
call fcn.1400c4f24
cmp dword [0x140306ed8], 0xffffffff
jne 0x14008594c
mov edx, 0x30
lea rcx, [section..data]
call fcn.14000c420
mov qword [section..data], rax
mov qword [0x14029a010], 0x2a
mov qword [0x14029a018], 0x2f
movups xmm0, xmmword [str.ABCDFGHJKLMNPQRSTVWXZabcdfghjklmnpqrstvwxz]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140100a70]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [0x140100a80]
movsd qword [rax + 0x20], xmm0
movzx edx, word [0x140100a88]
mov word [rax + 0x28], dx
mov byte [rax + 0x2a], 0
lea rcx, [0x1400fee80]
call fcn.1400c4e1c
nop
lea rcx, [0x140306ed8]
call fcn.1400c4eb8
jmp 0x14008594c
Function at 0x140092810
Capabilities:
Reference http user-agent string

Disassembly:
xor eax, eax
mov dword [rcx + 0x18], eax
mov qword [rcx], rax
lea rax, [0x140101010]
mov qword [rcx + 8], rax
lea rax, str.Mozilla_5.0__compatible__MSIE_9.0__Windows_NT_6.1__Trident_5.0_
mov qword [rcx + 0x10], rax
mov rax, rcx
ret

Function at 0x140092b80
Capabilities:
Initialize winhttp library

Disassembly:
push rbx
sub rsp, 0x30
cmp qword [rcx], 0
mov rbx, rcx
je 0x140092b97
xor al, al
add rsp, 0x30
pop rbx
ret
mov rcx, qword [rcx + 0x10]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 0
xor edx, edx
call qword [sym.imp.WINHTTP.dll_WinHttpOpen]
test rax, rax
mov qword [rbx], rax
setne al
add rsp, 0x30
pop rbx
ret
Function at 0x1400bb37c
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
lea r9, [rdx + rdx]
movabs r8, 0xcbf29ce484222325
xor edx, edx
test r9, r9
je 0x1400a7a0a
movzx eax, byte [rdx + rcx]
movabs r10, 0x100000001b3
xor r8, rax
inc rdx
imul r8, r10
cmp rdx, r9
jb 0x1400a79ed
mov rax, r8
ret
sub r8, rdx
mov rcx, rdx
sar r8, 1
mov rdx, r8
jmp 0x1400a79d8

Function at 0x1400c5a68
Capabilities:
Parse pe header

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

Function at 0x1400cf440
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x30
xor edi, edi
mov esi, edx
mov rbp, rcx
test r8, r8
jne 0x1400cf477
call fcn.1400d9f64
mov dword [rax], SafeArrayPutElement
call fcn.1400cbbf8
xor eax, eax
jmp 0x1400cf505
mov rdx, r9
mov rcx, r8
call fcn.1400cf3dc
mov rbx, rax
test rax, rax
je 0x1400cf502
lea rax, [rsp + 0x50]
mov rdx, rsi
mov qword [rsp + 0x28], rax
lea r8, [0x1400cf308]
mov eax, dword [rsp + 0x60]
mov r9, rbx
mov rcx, rbp
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rdx, rax
test rax, rax
jne 0x1400cf4ef
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.1400d9ed8
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x1400cf4d6
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x1400cf4e5
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, rbx
call fcn.1400e1284
jmp 0x1400cf502
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1400cf4ff
mov eax, dword [rsp + 0x50]
mov dword [rcx], eax
mov rdi, rdx
mov rax, rdi
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
Function at 0x1400cf8d8
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 0x1400cf743
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400cf743
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1400cf743
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1400cf743
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1400cf743
cmp dword [rcx + 0x84], 0xe
jbe 0x1400cf743
cmp dword [rcx + 0xf8], 0
je 0x1400cf743
mov ecx, ebx
call fcn.1400cf7f4
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.1400cf5d0
nop
cmp dword [rbp + 0x20], 0
je 0x1400cf791
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.1400cf79c
int3
xor r8d, r8d
xor edx, edx
jmp 0x1400cf6d4

Function at 0x1400cfc8c
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1050
call fcn.1400c58b0
sub rsp, rax
mov rax, qword [0x14029a130]
xor rax, rsp
mov qword [rsp + 0x1040], rax
mov r15, r8
mov rbp, rdx
mov rbx, rcx
call fcn.1400e3d7c
xor edi, edi
movsxd r14, eax
cmp dword [rbx + 0x10], edi
jne 0x1400cfcdb
mov rax, rbp
jmp 0x1400cfde3
mov rax, qword [rbx]
mov rcx, r14
sub rax, qword [rbx + 8]
and ecx, 0x3f
cqo
mov rbx, r14
sub rax, rdx
sar rbx, 6
sar rax, 1
mov r9, r15
lea r12, [rcx + rcx*8]
mov rsi, rax
lea rax, [0x140000000]
xor r8d, r8d
mov rdx, qword [rax + rbx*8 + 0x309bc0]
mov ecx, r14d
mov rdx, qword [rdx + r12*8 + 0x30]
call fcn.1400e421c
mov r13, rax
lea rax, [0x140000000]
mov rcx, qword [rax + rbx*8 + 0x309bc0]
cmp r13, qword [rcx + r12*8 + 0x30]
jne 0x1400cfddf
mov rcx, qword [rcx + r12*8 + 0x28]
lea r9, [rsp + 0x30]
mov r8d, 0x1000
mov qword [rsp + 0x20], rdi
lea rdx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400cfddf
mov r9, r15
xor r8d, r8d
mov rdx, rbp
mov ecx, r14d
call fcn.1400e421c
test rax, rax
js 0x1400cfddf
mov eax, dword [rsp + 0x30]
cmp rsi, rax
jg 0x1400cfddf
lea rdx, [rsp + 0x40]
add rdx, rax
lea rcx, [rsp + 0x40]
test rsi, rsi
je 0x1400cfdd1
lea r8, [0x140000000]
cmp rcx, rdx
jae 0x1400cfdd1
cmp byte [rcx], 0xd
jne 0x1400cfdb7
lea rax, [rdx - 1]
cmp rcx, rax
jae 0x1400cfdc6
cmp byte [rcx + 1], 0xa
jne 0x1400cfdc6
inc rcx
jmp 0x1400cfdc6
movzx eax, byte [rcx]
movsx rax, byte [rax + r8 + 0x29a550]
add rcx, rax
inc rdi
inc rcx
cmp rdi, rsi
jne 0x1400cfd99
lea rax, [rsp + 0x40]
sub rcx, rax
lea rax, [rcx + r13]
jmp 0x1400cfde3
or rax, 0xffffffffffffffff
mov rcx, qword [rsp + 0x1040]
xor rcx, rsp
call fcn.1400c4b80
mov rbx, qword [rsp + 0x1090]
add rsp, 0x1050
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x1400e42c8
Capabilities:
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, 0x30
movsxd r15, ecx
lea r9, [0x140309bc0]
mov rax, r15
mov rbp, r15
and eax, 0x3f
sar rbp, 6
mov ecx, 4
xor esi, esi
mov r14, rdx
lea rdi, [rax + rax*8]
mov rax, qword [r9 + rbp*8]
lea r13d, [rcx + 6]
mov r10, qword [rax + rdi*8 + 0x28]
test r8, r8
je 0x1400e431f
cmp word [rdx], r13w
jne 0x1400e431f
or byte [rax + rdi*8 + 0x38], cl
jmp 0x1400e4324
and byte [rax + rdi*8 + 0x38], 0xfb
lea r8, [rdx + r8*2]
mov rbx, r14
cmp r14, r8
jae 0x1400e4449
mov r11d, SafeArrayGetDim
lea r12d, [r11 - 0xb]
movzx ecx, word [rdx]
cmp cx, 0x1a
je 0x1400e446a
lea r9, [rdx + 2]
cmp cx, r11w
je 0x1400e435d
mov rdx, r9
mov word [rbx], cx
jmp 0x1400e4384
cmp r9, r8
jae 0x1400e4394
cmp word [r9], r13w
mov rax, r12
mov ecx, 4
cmove rax, rcx
add rdx, rax
mov eax, r13d
cmp word [r9], r13w
cmovne ax, r11w
mov word [rbx], ax
mov rax, r12
add rbx, rax
cmp rdx, r8
jb 0x1400e433e
jmp 0x1400e4449
lea r9, [rsp + 0x80]
mov qword [rsp + 0x20], rsi
mov r8d, r12d
lea rdx, [rsp + 0x70]
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400e443e
cmp dword [rsp + 0x80], esi
je 0x1400e443e
lea r8, [0x140309bc0]
mov rax, qword [r8 + rbp*8]
test byte [rax + rdi*8 + 0x38], 0x48
je 0x1400e4416
movzx eax, word [rsp + 0x70]
cmp ax, r13w
jne 0x1400e43e6
mov word [rbx], r13w
jmp 0x1400e4446
mov ecx, SafeArrayGetDim
mov word [rsp + 0x78], ax
mov word [rbx], cx
mov rax, qword [r8 + rbp*8]
lea rcx, [rax + rdi*8]
mov al, byte [rsp + rsi + 0x78]
mov byte [rcx + rsi + 0x3a], al
inc rsi
cmp rsi, r12
jl 0x1400e43f3
mov rax, qword [r8 + rbp*8]
mov byte [rax + rdi*8 + 0x3c], r13b
jmp 0x1400e4446
cmp word [rsp + 0x70], r13w
jne 0x1400e4423
cmp rbx, r14
je 0x1400e43e0
mov rdx, 0xfffffffffffffffe
mov ecx, r15d
lea r8d, [rdx + 3]
call fcn.1400e4224
cmp word [rsp + 0x70], r13w
je 0x1400e4449
mov ecx, SafeArrayGetDim
mov word [rbx], cx
add rbx, r12
sub rbx, r14
sar rbx, 1
lea eax, [rbx + rbx]
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea r8, [0x140309bc0]
mov rdx, qword [r8 + rbp*8]
mov al, byte [rdx + rdi*8 + 0x38]
test al, 0x40
jne 0x1400e4443
or al, r12b
mov byte [rdx + rdi*8 + 0x38], al
jmp 0x1400e4449
Function at 0x1400e6e40
Capabilities:
Get file size

Disassembly:
push rbx
sub rsp, 0x20
mov edx, dword [rcx + 0x14]
nop
shr edx, 3
test dl, 1
je 0x1400e6e56
mov al, 1
jmp 0x1400e6eb6
mov eax, dword [rcx + 0x14]
nop
test al, 0xc0
je 0x1400e6e67
mov rax, qword [rcx + 8]
cmp qword [rcx], rax
je 0x1400e6eb4
mov ecx, dword [rcx + 0x18]
nop
call fcn.1400ed538
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1400e6eb4
mov r9d, 1
lea r8, [rsp + 0x38]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x1400e6eb4
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x1400e6eb4
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x38], rax
sete al
jmp 0x1400e6eb6
xor al, al
add rsp, 0x20
pop rbx
ret
Function at 0x1400ec32c
Capabilities:
Query environment variable

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x40
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor esi, esi
mov rbx, rax
test rax, rax
jne 0x1400ec35c
xor eax, eax
jmp 0x1400ec41f
mov rbp, rbx
cmp word [rax], si
je 0x1400ec381
or rax, 0xffffffffffffffff
inc rax
cmp word [rbp + rax*2], si
jne 0x1400ec368
lea rbp, [rbp + rax*2]
add rbp, 2
cmp word [rbp], si
jne 0x1400ec364
mov qword [rsp + 0x38], rsi
sub rbp, rbx
mov qword [rsp + 0x30], rsi
add rbp, 2
sar rbp, 1
mov r8, rbx
mov r9d, ebp
mov dword [rsp + 0x28], esi
xor edx, edx
mov qword [rsp + 0x20], rsi
xor ecx, ecx
call fcn.1400ea4e8
movsxd r14, eax
test eax, eax
jne 0x1400ec3bf
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
jmp 0x1400ec355
mov rcx, r14
call fcn.1400e2a7c
mov rdi, rax
test rax, rax
jne 0x1400ec3d8
xor ecx, ecx
call fcn.1400e1284
jmp 0x1400ec3b4
mov qword [rsp + 0x38], rsi
mov r9d, ebp
mov qword [rsp + 0x30], rsi
mov r8, rbx
mov dword [rsp + 0x28], r14d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rdi
call fcn.1400ea4e8
test eax, eax
jne 0x1400ec409
mov rcx, rdi
call fcn.1400e1284
jmp 0x1400ec413
xor ecx, ecx
call fcn.1400e1284
mov rsi, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rax, rsi
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x40
pop r14
ret

Function at 0x1400ec43c
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor ebp, ebp
mov rbx, rax
test rax, rax
je 0x1400ec4c3
mov rsi, rbx
cmp word [rax], bp
je 0x1400ec482
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], bp
jne 0x1400ec46c
lea rsi, [rsi + rax*2]
add rsi, 2
cmp word [rsi], bp
jne 0x1400ec468
sub rsi, rbx
add rsi, 2
sar rsi, 1
add rsi, rsi
mov rcx, rsi
call fcn.1400e2a7c
mov rdi, rax
test rax, rax
je 0x1400ec4b0
mov r8, rsi
mov rdx, rbx
mov rcx, rax
call fcn.1400c7230
mov rbp, rdi
xor ecx, ecx
call fcn.1400e1284
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rax, rbp
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret