joyce8/EMBER2024-capa huggingface dataset:
Function at 0x18010da3c
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 0x18010da6c
xor eax, eax
jmp 0x18010db2f
mov rbp, rbx
cmp word [rax], si
je 0x18010da91
or rax, 0xffffffffffffffff
inc rax
cmp word [rbp + rax*2], si
jne 0x18010da78
lea rbp, [rbp + rax*2]
add rbp, 2
cmp word [rbp], si
jne 0x18010da74
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.18010af48
movsxd r14, eax
test eax, eax
jne 0x18010dacf
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
jmp 0x18010da65
mov rcx, r14
call fcn.1801077c4
mov rdi, rax
test rax, rax
jne 0x18010dae8
xor ecx, ecx
call fcn.180103ebc
jmp 0x18010dac4
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.18010af48
test eax, eax
jne 0x18010db19
mov rcx, rdi
call fcn.180103ebc
jmp 0x18010db23
xor ecx, ecx
call fcn.180103ebc
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 0x180110380
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov ebx, ecx
call fcn.180102264
mov ecx, ebx
lea r8, [rsp + 0x30]
and ecx, 0x3ff
mov r9d, 2
bts ecx, 0xa
mov edx, 0x20000001
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
xor edx, edx
test eax, eax
je 0x180110421
cmp ebx, dword [rsp + 0x30]
je 0x18011041a
test esi, esi
je 0x18011041a
mov r10, qword [rdi + 0x98]
mov r9d, edx
movzx r8d, word [r10]
lea rcx, [r10 + 2]
lea eax, [r8 - 0x41]
cmp ax, 0x19
jbe 0x1801103f5
sub r8w, 0x61
cmp r8w, 0x19
ja 0x180110402
movzx r8d, word [rcx]
inc r9d
add rcx, 2
jmp 0x1801103df
or rax, 0xffffffffffffffff
inc rax
cmp word [r10 + rax*2], dx
jne 0x180110406
cmp r9d, eax
setne dl
mov eax, edx
jmp 0x180110423
mov eax, 1
jmp 0x180110423
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x180114454
Capabilities:
Clear file content

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 r14
push r15
sub rsp, 0x20
mov rbx, rdx
mov rsi, r8
xor edx, edx
mov r14d, ecx
lea r8d, [rdx + 1]
call fcn.18010738c
xor edx, edx
mov ecx, r14d
mov r12, rax
lea r8d, [rdx + 2]
call fcn.18010738c
mov rbp, rbx
sub rbp, rax
cmp r12, 0xffffffffffffffff
je 0x1801145a4
cmp rax, 0xffffffffffffffff
je 0x1801145a4
xor edi, edi
test rbp, rbp
jle 0x18011454f
lea edx, [rdi + 1]
mov ecx, 0x1000
call fcn.180103e44
mov rbx, rax
test rax, rax
jne 0x1801144dc
lea edi, [rax + 0xc]
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], edi
jmp 0x180114545
mov edx, 0x8000
mov ecx, r14d
call fcn.1801142d8
mov r15d, eax
mov eax, 0x1000
mov r8d, ebp
cmp rbp, rax
mov r9, rsi
mov rdx, rbx
mov ecx, r14d
cmovge r8d, eax
call fcn.1801062b4
cmp eax, 0xffffffff
je 0x180114525
cdqe
sub rbp, rax
test rbp, rbp
jg 0x1801144ec
mov edx, r15d
mov ecx, r14d
call fcn.1801142d8
jmp 0x180114545
cmp byte [rsi + 0x38], dil
je 0x18011453c
cmp dword [rsi + 0x34], 5
jne 0x18011453c
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], 0xd
cmp byte [rsi + 0x30], dil
je 0x180114545
mov edi, dword [rsi + 0x2c]
mov rcx, rbx
call fcn.180103ebc
jmp 0x1801145b8
jns 0x1801145b8
xor r8d, r8d
mov rdx, rbx
mov ecx, r14d
call fcn.18010738c
cmp rax, 0xffffffffffffffff
jne 0x180114570
cmp byte [rsi + 0x30], dil
je 0x1801145b8
mov edi, dword [rsi + 0x2c]
jmp 0x1801145b8
mov ecx, r14d
call fcn.180110d74
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x1801145b8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [rsi + 0x38], 1
mov edi, 0xd
mov dword [rsi + 0x34], eax
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], 0xd
jmp 0x1801145b8
xor edi, edi
cmp byte [rsi + 0x30], dil
je 0x1801145b1
mov eax, dword [rsi + 0x2c]
jmp 0x1801145b6
mov eax, 0x16
mov edi, eax
xor r8d, r8d
mov rdx, r12
mov ecx, r14d
call fcn.18010738c
mov rbx, qword [rsp + 0x40]
mov eax, edi
mov rdi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop r12
ret

Function at 0x1801155c0
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x1801155e8
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
cmp dword [rdx], 0x4550
jne 0x1801155e8
xor eax, eax
mov ecx, 0x20b
cmp word [rdx + 0x18], cx
sete al
ret
xor eax, eax
ret
Function at 0x1400347e0
Capabilities:
Terminate process

Disassembly:
cld
pop r11
jmp 0x1400347ed
inc rsi
mov byte [rdi], dl
inc rdi
mov dl, byte [rsi]
add ebx, ebx
jne 0x1400347fd
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jb 0x1400347e5
lea eax, [rcx + 1]
call r11
adc eax, eax
add ebx, ebx
jne 0x140034815
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jae 0x140034802
sub eax, 3
jb 0x14003482f
shl eax, 8
movzx edx, dl
or eax, edx
inc rsi
xor eax, 0xffffffff
je 0x140034866
movsxd rbp, eax
lea eax, [rcx + 1]
call r11
adc ecx, ecx
call r11
adc ecx, ecx
jne 0x140034856
mov ecx, eax
add eax, 2
call r11
adc ecx, ecx
add ebx, ebx
jne 0x140034854
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jae 0x140034843
cmp rbp, 0xfffffffffffff300
adc ecx, eax
call fcn.1400347a2
jmp 0x1400347ed
pop rsi
mov rdi, rsi
push rsi
mov rdi, rsi
mov rsi, 0x18e00
mov dl, 7
push rbx
push rdi
lea rcx, [rdi + rsi - 3]
pop rsi
push rsi
pop rbx
jmp 0x1400348b2
cmp rsi, rcx
jae 0x1400348ba
push rsi
pop rsi
lodsb al, byte [rsi]
cmp al, 0x80
jb 0x140034899
cmp al, 0x8f
ja 0x140034899
cmp byte [rsi - 2], 0xf
je 0x14003489f
sub al, 0xe8
cmp al, 1
ja 0x140034883
cmp rsi, rcx
jae 0x1400348ba
push rsi
lodsd eax, dword [rsi]
sub al, dl
jne 0x140034889
pop rdi
bswap eax
sub eax, edi
add eax, ebx
stosd dword [rdi], eax
cmp rsi, rcx
jae 0x1400348ba
lodsb al, byte [rsi]
jmp 0x140034899
pop rbx
pop rsi
sub rsp, 0x28
lea rdi, [rsi + 0x32000]
mov eax, dword [rdi]
or eax, eax
je 0x140034917
mov ebx, dword [rdi + 4]
lea rcx, [rax + rsi + 0x3c100]
add rbx, rsi
add rdi, 8
call qword [sym.imp.KERNEL32.DLL_LoadLibraryA]
xchg rbp, rax
mov al, byte [rdi]
inc rdi
or al, al
je 0x1400348c7
mov rcx, rdi
mov rdx, rdi
dec eax
repne scasb al, byte [rdi]
mov rcx, rbp
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
or rax, rax
je 0x140034911
mov qword [rbx], rax
add rbx, 8
jmp 0x1400348e7
jmp qword [sym.imp.KERNEL32.DLL_ExitProcess]
add rsp, 0x28
add rdi, 4
lea rbx, [rsi - 4]
xor eax, eax
mov al, byte [rdi]
inc rdi
or eax, eax
je 0x140034951
cmp al, 0xef
ja 0x140034943
add rbx, rax
mov rax, qword [rbx]
bswap rax
add rax, rsi
mov qword [rbx], rax
jmp 0x140034923
and al, 0xf
shl eax, 0x10
mov ax, word [rdi]
add rdi, 2
jmp 0x140034932
mov rbp, qword [sym.imp.KERNEL32.DLL_VirtualProtect]
lea rdi, [rsi - 0x1000]
mov ebx, 0x1000
push rax
mov r9, rsp
mov r8d, 4
mov rdx, rbx
mov rcx, rdi
sub rsp, 0x20
call rbp
lea rax, [rdi + 0x20f]
and byte [rax], 0x7f
and byte [rax + 0x28], 0x7f
lea r9, [rsp + 0x20]
mov r8, qword [r9]
mov rdx, rbx
mov rcx, rdi
call rbp
add rsp, 0x28
pop rbp
pop rdi
pop rsi
pop rbx
lea rax, [rsp - 0x80]
push 0
cmp rsp, rax
jne 0x1400349a5
sub rsp, 0xffffffffffffff80
jmp 0x140009edc
Function at 0x140019040
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rax, rdx
mov rsi, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x80]
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 0x1400190d0
cmp r11, r10
ja 0x140019146
cmp r10, rdx
ja 0x14001915a
add r11, r9
xor r15d, r15d
nop word cs:[rax + rax]
cmp r14, r15
je 0x1400190d2
lea r12, [r15 + 1]
cmp byte [r11 + r15], cl
mov r15, r12
jne 0x1400190b0
jmp 0x140019134
ja 0x1400190da
mov r11, r10
cmp rax, r8
jne 0x140019074
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 0x140019110
mov rdi, r8
sub ecx, edx
jns 0x14001912b
jmp 0x140019136
cmp r8, rsi
je 0x14001916b
movzx r8d, byte [rdi + 1]
add rdi, 2
and edx, 0x7f
shl edx, 8
or edx, r8d
sub ecx, edx
js 0x140019136
xor al, 1
cmp rdi, rsi
jne 0x1400190f0
jmp 0x140019136
xor eax, eax
and al, 1
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea r8, [0x141398178]
mov rcx, r11
mov rdx, r10
call fcn.14004e500
ud2
lea r8, [0x141398178]
mov rcx, r10
call fcn.14004e280
ud2
lea rcx, [0x14139c710]
lea r8, [0x141398160]
mov edx, 0x2b
call fcn.14004e300
ud2

Function at 0x14001e740
Capabilities:
Encode data using xor

Disassembly:
mov rax, rdx
sub rdx, rcx
cmp rdx, 0x20
jae fcn.140016960
cmp rax, rcx
je 0x14001e765
cmp rdx, 4
jae 0x14001e768
xor eax, eax
xor r8d, r8d
jmp 0x14001e800
xor eax, eax
ret
mov r8, rdx
and r8, 0xfffffffffffffffc
pxor xmm0, xmm0
xor eax, eax
movdqa xmm2, xmmword [0x140050730]
movdqa xmm3, xmmword [0x140050540]
pxor xmm1, xmm1
nop dword [rax]
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 0x14001e790
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rax, xmm0
cmp r8, rdx
je 0x14001e817
nop dword [rax]
xor r9d, r9d
cmp byte [rcx + r8], 0xc0
setge r9b
add rax, r9
inc r8
cmp rdx, r8
jne 0x14001e800
ret
Function at 0x140023900
Capabilities:
Write file on windows

Disassembly:
push rsi
push rdi
sub rsp, 0xa8
mov rdi, rdx
mov rsi, rcx
movups xmm0, xmmword [0x14139ee38]
movaps xmmword [rsp + 0x60], xmm0
mov eax, 0xffffffff
cmp r9, rax
cmovb rax, r9
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r8
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rcx, rdx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.ntdll.dll_NtWriteFile]
cmp eax, 0x103
jne 0x140023973
mov rcx, rdi
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [rsp + 0x60]
cmp eax, 0x103
je 0x1400239aa
test eax, eax
js 0x140023984
mov rax, qword [rsp + 0x68]
mov qword [rsi + 8], rax
xor eax, eax
jmp 0x14002399d
mov ecx, eax
call qword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov eax, 1
mov qword [rsi], rax
add rsp, 0xa8
pop rdi
pop rsi
ret
mov dword [rsp + 0x58], 0
mov byte [rsp + 0x5c], 0
lea rax, [0x14139ee98]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 1
lea rax, [rsp + 0x50]
mov qword [rsp + 0x88], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x90], xmm0
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x78]
call fcn.140022b00
mov qword [rsp + 0x70], rax
lea rcx, [rsp + 0x70]
call fcn.140022140
mov ecx, 7
int 0x29
ud2
Function at 0x140028610
Capabilities:
Query environment variable

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x4a8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x420], 0xfffffffffffffffe
mov rsi, rcx
lea rcx, [rbp - 0x58]
call fcn.140024460
mov rax, qword [rbp - 0x58]
mov qword [rbp + 0x410], rax
test rax, rax
je 0x140028797
mov qword [rbp + 0x3c8], rsi
mov rax, qword [rbp - 0x50]
mov qword [rbp + 0x408], rax
mov qword [rbp + 0x3f0], 2
xorps xmm0, xmm0
movups xmmword [rbp + 0x3f8], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rbp + 0x418], rax
xor edi, edi
xor ebx, ebx
xor r12d, r12d
cmp r8, 0x201
jae 0x1400286d0
jmp 0x1400286bf
jae 0x1400287a9
cmp r8, 0x201
jae 0x1400286d0
mov esi, 0x200
lea r13, [rbp - 0x58]
mov r15, r8
jmp 0x140028728
sub r8, r12
sub rbx, r12
cmp rbx, r8
jae 0x1400286ff
lea rcx, [rbp + 0x3f0]
mov rdx, r12
call fcn.14004f140
mov rax, qword [rbp + 0x3f0]
mov qword [rbp + 0x418], rax
mov rdi, qword [rbp + 0x3f8]
mov eax, 0xffffffff
cmp rdi, rax
mov r12d, 0xffffffff
cmovb r12, rdi
mov qword [rbp + 0x400], r12
mov rbx, rdi
mov rsi, r12
mov r13, qword [rbp + 0x418]
mov r15, r12
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, qword [rbp + 0x410]
mov rdx, r13
mov r8d, r15d
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov r14d, eax
test eax, eax
jne 0x140028758
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14002886e
mov r8d, r14d
cmp r15, r8
jne 0x1400286b0
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14002889f
add r15, r15
mov eax, 0xffffffff
cmp r15, rax
cmovae r15, rax
mov r8, r15
cmp r8, 0x201
jb 0x1400286bf
jmp 0x1400286d0
lea rcx, [rbp - 0x50]
call fcn.140022040
mov byte [rsi + 0x18], 2
jmp 0x140028838
cmp rsi, r8
jb 0x1400288b9
lea rcx, [rbp + 0x3a8]
mov rdx, r13
call fcn.1400263e0
movups xmm0, xmmword [rbp + 0x3a8]
movups xmm1, xmmword [rbp + 0x3b8]
movaps xmmword [rbp + 0x3e0], xmm1
movaps xmmword [rbp + 0x3d0], xmm0
test rdi, rdi
mov rsi, qword [rbp + 0x3c8]
je 0x1400287ff
mov rcx, qword [0x1413b0bb8]
xor edx, edx
mov r8, qword [rbp + 0x418]
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp byte [rbp + 0x3e8], 2
jne 0x14002884d
mov byte [rsi + 0x18], 2
lea rcx, [rbp + 0x3d0]
call fcn.140022040
cmp qword [rbp + 0x408], 0
je 0x140028838
mov rcx, qword [0x1413b0bb8]
xor edx, edx
mov r8, qword [rbp + 0x410]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
add rsp, 0x4a8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
movaps xmm0, xmmword [rbp + 0x3d0]
movaps xmm1, xmmword [rbp + 0x3e0]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
cmp qword [rbp + 0x408], 0
jne 0x140028822
jmp 0x140028838
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov qword [rbp + 0x3d0], rax
mov byte [rbp + 0x3e8], 2
test rdi, rdi
mov rsi, qword [rbp + 0x3c8]
jne 0x1400287e9
jmp 0x1400287ff
lea rcx, [0x14139d0c8]
lea r8, [0x14139f7f8]
mov edx, 0x28
call fcn.14004e300
jmp 0x1400288ce
lea rax, [0x14139f7e0]
mov rcx, r8
mov rdx, rsi
mov r8, rax
call fcn.14004e280
ud2
Function at 0x14002b180
Capabilities:
Read file on windows

Disassembly:
push rsi
push rdi
sub rsp, 0xa8
mov rdi, rdx
mov rsi, rcx
movups xmm0, xmmword [0x14139ee38]
movaps xmmword [rsp + 0x60], xmm0
mov eax, 0xffffffff
cmp r9, rax
cmovb rax, r9
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r8
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rcx, rdx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.ntdll.dll_NtReadFile]
cmp eax, 0x103
jne 0x14002b1ec
mov rcx, rdi
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [rsp + 0x60]
cmp eax, 0xc0000011
jne 0x14002b1fb
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
jmp 0x14002b233
cmp eax, 0x103
je 0x14002b23d
test eax, eax
js 0x14002b218
mov rax, qword [rsp + 0x68]
mov qword [rsi + 8], rax
mov qword [rsi], 0
jmp 0x14002b233
mov ecx, eax
call qword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
mov qword [rsi], 1
add rsp, 0xa8
pop rdi
pop rsi
ret
mov dword [rsp + 0x58], 0
mov byte [rsp + 0x5c], 0
lea rax, [0x14139ee98]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 1
lea rax, [rsp + 0x50]
mov qword [rsp + 0x88], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x90], xmm0
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x78]
call fcn.140022b00
mov qword [rsp + 0x70], rax
lea rcx, [rsp + 0x70]
call fcn.140022140
mov ecx, 7
int 0x29
ud2

Function at 0x14002c5f0
Capabilities:
Create directory

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x50
mov r8, rdx
mov rdx, rcx
lea rcx, [rsp + 0x20]
call fcn.140024460
mov rax, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
test rax, rax
ror byte [rdi], 0x84
lea eax, [rax]
add byte [rax], al
Function at 0x140036340
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rsi
push rdi
sub rsp, 0x88
movdqa xmmword [rsp + 0x70], xmm6
mov rsi, rcx
lea rcx, [rsp + 0x40]
call fcn.140024460
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
test rcx, rcx
je 0x1400363b6
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], 0
Function at 0x140038770
Capabilities:
Create thread

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x50
lea rbp, [rsp + 0x50]
mov qword [rbp - 8], 0xfffffffffffffffe
mov rdi, r8
mov r14, rdx
mov rsi, rcx
movzx eax, byte [0x1413b0ad0]
mov rcx, qword [0x1413b0bb8]
test rcx, rcx
jne 0x1400387bc
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x14003888a
mov rcx, rax
mov qword [0x1413b0bb8], rax
mov r8d, 0x10
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x14003888a
mov rbx, rax
mov qword [rax], r14
mov qword [rax + 8], rdi
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x1400389a0]
xor edi, edi
xor ecx, ecx
mov rdx, rsi
mov r9, rax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rdx, rax
test rax, rax
jne 0x14003887c
mov rcx, qword [rbx]
mov qword [rbp - 0x20], rbx
mov rax, qword [rbx + 8]
mov qword [rbp - 0x10], rcx
mov qword [rbp - 0x18], rax
call qword [rax]
mov rax, qword [rbp - 0x18]
cmp qword [rax + 8], 0
mov rsi, qword [rbp - 0x20]
je 0x140038855
cmp qword [rax + 0x10], 0x11
jae 0x14003883e
mov r8, qword [rbp - 0x10]
jmp 0x140038846
mov r8, qword [rbp - 0x10]
mov r8, qword [r8 - 8]
mov rcx, qword [0x1413b0bb8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x1413b0bb8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
shl rdx, 0x20
or rdx, 2
mov edi, 1
mov rax, rdi
add rsp, 0x50
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], rdi
mov ecx, 8
mov edx, 0x10
call fcn.14004e060
ud2

Function at 0x140039410
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push rbp
sub rsp, 0x80
lea rbp, [rsp + 0x80]
mov qword [rbp - 8], 0xfffffffffffffffe
xorps xmm0, xmm0
movaps xmmword [rbp - 0x20], xmm0
lea rcx, [rbp - 0x20]
mov edx, 0x10
call qword [sym.imp.ADVAPI32.dll_SystemFunction036]
test al, al
je 0x14003944f
mov rax, qword [rbp - 0x20]
add rsp, 0x80
pop rbp
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov qword [rbp - 0x10], rax
lea rax, [rbp - 0x10]
mov qword [rbp - 0x30], rax
lea rax, [0x140029210]
mov qword [rbp - 0x28], rax
lea rax, [0x14139f348]
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], 1
mov qword [rbp - 0x40], 0
lea rax, [rbp - 0x30]
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], 1
lea rdx, [0x14139f380]
lea rcx, [rbp - 0x60]
call fcn.14004e140
ud2
Function at 0x14003b3f0
Capabilities:
Read file on windows

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rdi, rdx
cmp qword [rdx], 0
jne 0x14003b545
mov rsi, rcx
mov rbx, qword [rdi + 0x18]
mov rax, qword [rbx + 8]
test rax, rax
jne 0x14003b428
mov rdx, qword [rbx + 0x10]
lea rax, [rdx + 0xf]
cmp rax, 0xf
jbe 0x14003b508
xor eax, eax
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x14003b527
sub rax, rdx
add rdx, qword [rbx]
mov r8, qword [rdi + 0x10]
mov ecx, 0xffffffff
cmp rax, rcx
cmovae rax, rcx
mov dword [rsp + 0x2c], 0
mov rcx, qword [rdi + 0x20]
mov qword [rsp + 0x20], r8
lea r9, [rsp + 0x2c]
mov r8d, eax
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14003b489
mov ecx, dword [rsp + 0x2c]
mov eax, 2
test rcx, rcx
je 0x14003b4bb
mov qword [rdi], rax
mov qword [rdi + 8], rcx
mov byte [rsi + 1], 1
jmp 0x14003b4bf
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rax
shl rcx, 0x20
or rcx, 2
mov qword [rsp + 0x40], rcx
cmp eax, 0x3e5
je 0x14003b4c3
cmp eax, 0x6d
jne 0x14003b4ee
mov qword [rsp + 0x30], 1
lea rax, [rsp + 0x38]
jmp 0x14003b4c8
mov byte [rsi + 1], 0
xor eax, eax
jmp 0x14003b4f4
lea rax, [rsp + 0x30]
mov qword [rax], 0
lea rcx, [rsp + 0x40]
call fcn.140022040
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
test rax, rax
je 0x14003b4fe
cmp rax, 1
je 0x14003b472
mov qword [rsi + 8], rcx
mov al, 1
mov byte [rsi], al
add rsp, 0x70
pop rbx
pop rdi
pop rsi
ret
mov eax, 1
jmp 0x14003b47c
mov r8d, 0x10
mov rcx, rbx
call fcn.14004dfa0
mov rax, qword [rbx + 8]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
jne 0x14003b435
mov r8d, 1
mov rcx, rbx
mov rdx, rax
call fcn.14004dfa0
mov rax, qword [rbx + 8]
mov rdx, qword [rbx + 0x10]
jmp 0x14003b435
mov qword [rsp + 0x40], 0
lea rdx, [rsp + 0x40]
mov rcx, rdi
call fcn.14004f340
ud2

Function at 0x1400443bc
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x1400441b8
Function at 0x14004747c
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 0x1400474ac
xor eax, eax
jmp 0x14004756f
mov rbp, rbx
cmp word [rax], si
je 0x1400474d1
or rax, 0xffffffffffffffff
inc rax
cmp word [rbp + rax*2], si
jne 0x1400474b8
lea rbp, [rbp + rax*2]
add rbp, 2
cmp word [rbp], si
jne 0x1400474b4
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.14004739c
movsxd r14, eax
test eax, eax
jne 0x14004750f
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
jmp 0x1400474a5
mov rcx, r14
call fcn.140048358
mov rdi, rax
test rax, rax
jne 0x140047528
xor ecx, ecx
call fcn.1400459fc
jmp 0x140047504
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.14004739c
test eax, eax
jne 0x140047559
mov rcx, rdi
call fcn.1400459fc
jmp 0x140047563
xor ecx, ecx
call fcn.1400459fc
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