joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10000eae0
Capabilities:
Terminate process

Disassembly:
sub rsp, 0x28
call 0x100121000
add rsp, 0x28
jmp 0x10000eaf8
mov qword [rsp + 8], rsi
mov qword [rsp + 0x10], rdi
push r12
sub rsp, 0xb0
and dword [rsp + 0x20], 0
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetStartupInfoW]
nop
mov rax, qword gs:[0x30]
mov rdi, qword [rax + 8]
xor esi, esi
xor eax, eax
lock cmpxchg qword [0x100070088], rdi
jne 0x10002a18e
mov eax, dword [0x1000700c0]
cmp eax, 1
je 0x10002a1ad
mov eax, dword [0x1000700c0]
test eax, eax
jne 0x10002a1c4
mov dword [0x1000700c0], 1
lea r12, [0x100055140]
lea rdi, [0x100055128]
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], eax
cmp rdi, r12
jae 0x10000eb9c
test eax, eax
jne 0x10000eb9c
mov rcx, qword [rdi]
test rcx, rcx
je 0x10000eb91
call rcx
mov dword [rsp + 0x30], eax
add rdi, 8
mov qword [rsp + 0x38], rdi
jmp 0x10000eb7a
test eax, eax
jne 0x10002a1ba
mov eax, dword [0x1000700c0]
cmp eax, 1
jne 0x10000ebcc
lea rdx, [0x100055120]
lea rcx, [0x100054fc8]
call sub.msvcrt.dll__initterm
mov dword [0x1000700c0], 2
test esi, esi
jne 0x10000ebd9
xor eax, eax
xchg qword [0x100070088], rax
cmp qword [0x100071e50], 0
jne 0x10002a1d3
mov rax, qword [sym.imp.msvcrt.dll__acmdln]
mov rdi, qword [rax]
mov qword [rsp + 0x28], rdi
mov esi, dword [rsp + 0x20]
cmp byte [rdi], 0x20
jbe 0x10000ec23
cmp byte [rdi], 0x22
je 0x10002a22a
movzx ecx, byte [rdi]
call qword [sym.imp.msvcrt.dll__ismbblead]
test eax, eax
jne 0x10002a23c
inc rdi
mov qword [rsp + 0x28], rdi
jmp 0x10000ebfa
cmp byte [rdi], 0
je 0x10000ec2c
test esi, esi
jne 0x10000ebff
cmp byte [rdi], 0
je 0x10000ec40
cmp byte [rdi], 0x20
ja 0x10000ec40
inc rdi
mov qword [rsp + 0x28], rdi
jmp 0x10000ec2c
test byte [rsp + 0x7c], 1
movzx eax, word [rsp + 0x80]
mov r9d, 0xa
cmovne r9d, eax
mov r8, rdi
xor edx, edx
lea rcx, [0x100000000]
call fcn.10000ec80
nop
jmp 0x10002a1fc
cmp rax, rdi
jne 0x10002a19d
mov esi, 1
jmp 0x10000eb3c
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x10000eb2b
lea ecx, [rax + 0x1e]
call sub.msvcrt.dll__amsg_exit
jmp 0x10000eba4
mov eax, 0xff
jmp 0x10002a276
mov dword [0x10007261c], 1
jmp 0x10000eba4
lea rcx, [0x100071e50]
call fcn.100048bac
test eax, eax
je 0x10000ebe7
xor r8d, r8d
lea edx, [r8 + 2]
xor ecx, ecx
call qword [0x100071e50]
nop
jmp 0x10000ebe7
mov dword [0x100072618], eax
cmp dword [0x1000700a8], 0
jne 0x10002a213
mov ecx, eax
call qword [sym.imp.msvcrt.dll_exit]
cmp dword [0x10007261c], 0
jne 0x10002a228
call qword [sym.imp.msvcrt.dll__cexit]
mov eax, dword [0x100072618]
jmp 0x10002a276
xor eax, eax
test esi, esi
sete al
mov esi, eax
mov dword [rsp + 0x20], eax
jmp 0x10000ec08
inc rdi
mov qword [rsp + 0x28], rdi
jmp 0x10000ec19
lea r11, [rsp + 0xb0]
mov rsi, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov rsp, r11
pop r12
ret
Function at 0x10000f548
Capabilities:
Query or enumerate registry value

Disassembly:
mov r11, rsp
sub rsp, 0x48
lea rax, [r11 + 0x18]
mov r8, rcx
mov r9d, 0x10
mov qword [r11 - 0x18], rax
mov qword [r11 - 0x20], rdx
and qword [r11 - 0x28], 0
lea rdx, str.SoftwareMicrosoftWindows_SearchTracing
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x60], 4
call qword [sym.imp.SHLWAPI.dll_SHRegGetValueW]
add rsp, 0x48
ret

Function at 0x100016da0
Capabilities:
Get common file path
Set environment variable

Disassembly:
sub rsp, 0x258
mov rax, qword [0x1000700c8]
xor rax, rsp
mov qword [rsp + 0x240], rax
cmp byte [0x100070091], 0
je 0x10001ce05
xor eax, eax
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.100001250
add rsp, 0x258
ret
lea rax, [rsp + 0x30]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x801c
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x100016dc8
lea rdx, [rsp + 0x30]
lea rcx, str.LOCALAPPDATA
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
test eax, eax
je 0x1000288c2
mov byte [0x100070091], 1
jmp 0x100016dc6
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r11d, eax
movzx eax, ax
or eax, 0x80070000
test r11d, r11d
cmovle eax, r11d
jmp 0x100016dc8

Function at 0x1000344e0
Capabilities:
Query or enumerate registry value

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rcx
mov qword [r11 + 0x10], rdx
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x20], r9
sub rsp, 0x58
cmp byte [0x100072649], 0
jne 0x1000345a6
cmp byte [0x100072648], 0
jne 0x1000345c7
and qword [r11 - 0x18], 0
lea rax, [r11 - 0x18]
lea rdx, str.SoftwareMicrosoftWindows_Search
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [r11 - 0x38], rax
mov byte [0x100072649], 1
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1000345a6
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x30]
lea r9, [rsp + 0x34]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x38]
lea rdx, str.ETWLogging
xor r8d, r8d
mov dword [rsp + 0x30], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x100034594
cmp dword [rsp + 0x34], 4
jne 0x100034594
mov byte [0x100072648], 1
cmp dword [rsp + 0x38], eax
ja 0x10003459b
mov byte [0x100072648], 0
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [0x100072648], 0
jne 0x1000345c7
mov rcx, qword [0x100070cf8]
lea rdx, [0x1000569c8]
call qword [sym.imp.ADVAPI32.dll_EventEnabled]
test al, al
je 0x1000345ed
mov r9, qword [rsp + 0x60]
lea rax, [rsp + 0x68]
xor r8d, r8d
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x40]
or edx, 0xffffffff
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.1000345f8
add rsp, 0x58
ret
Function at 0x1400048c0
Capabilities:
Set environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x90
mov rax, qword [0x140059040]
xor rax, rsp
mov qword [rsp + 0x80], rax
lea rsi, [0x14004c640]
mov rcx, rsi
call fcn.140015550
xor ebp, ebp
mov qword [0x140061768], rax
mov word [rsp + 0x30], bp
lea rbx, [rsp + 0x30]
mov edi, 0x28
mov al, 0x50
nop dword [rax]
nop word [rax + rax]
mov r8d, 2
mov byte [rsp + 0x20], al
lea rdx, [rsp + 0x20]
mov byte [rsp + 0x21], bpl
lea rcx, [rsp + 0x24]
call fcn.140033c9c
cmp rax, 1
jne 0x140004a08
mov rcx, rdi
mov rax, rbx
cmp word [rbx], bp
je 0x14000495f
add rax, 2
dec rcx
cmp word [rax], bp
jne 0x140004953
cmp rcx, 1
jb 0x140004a08
movzx ecx, word [rsp + 0x24]
inc rsi
mov word [rax], cx
add rbx, 2
mov word [rax + 2], bp
dec rdi
movzx eax, byte [rsi]
test al, al
jne 0x140004920
lea rdx, [0x14004c648]
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
lea rcx, str.PYTHONHOME
call fcn.140015550
mov cl, 1
mov qword [0x140061790], rax
call fcn.140016410
mov rdx, rax
lea rcx, str.PYTHONHOME
call fcn.140015680
mov cl, 1
call fcn.140016410
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
mov rax, qword [sym.imp.python310.dll__Py_path_config]
mov dword [rax + 0x30], 1
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140024e40
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
call fcn.140028570
int3
Function at 0x140015550
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
mov eax, 0x10090
call fcn.140040240
sub rsp, rax
mov rax, qword [0x140059040]
xor rax, rsp
mov qword [rsp + 0x10080], rax
movzx eax, byte [rcx]
lea rbx, [rsp + 0x30]
xor ebp, ebp
mov rsi, rcx
mov word [rsp + 0x80], bp
mov edi, 0x28
mov word [rsp + 0x30], bp
test al, al
je 0x140015612
nop dword [rax]
nop word [rax + rax]
mov r8d, 2
mov byte [rsp + 0x20], al
lea rdx, [rsp + 0x20]
mov byte [rsp + 0x21], bpl
lea rcx, [rsp + 0x24]
call fcn.140033c9c
cmp rax, 1
jne 0x14001566e
mov rcx, rdi
mov rax, rbx
cmp word [rbx], bp
je 0x1400155ef
add rax, 2
dec rcx
cmp word [rax], bp
jne 0x1400155e3
cmp rcx, 1
jb 0x14001566e
movzx ecx, word [rsp + 0x24]
inc rsi
mov word [rax], cx
add rbx, 2
mov word [rax + 2], bp
dec rdi
movzx eax, byte [rsi]
test al, al
jne 0x1400155b0
mov r8d, 0x10000
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0xffff
ja 0x140015643
lea rcx, [rsp + 0x80]
call fcn.1400351cc
jmp 0x140015645
xor eax, eax
mov rcx, qword [rsp + 0x10080]
xor rcx, rsp
call fcn.140024e40
lea r11, [rsp + 0x10090]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
call fcn.140028570
int3

Function at 0x140015680
Capabilities:
Set environment variable

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x90
mov rax, qword [0x140059040]
xor rax, rsp
mov qword [rsp + 0x80], rax
movzx eax, byte [rcx]
lea rbx, [rsp + 0x30]
xor r14d, r14d
mov rbp, rdx
mov word [rsp + 0x30], r14w
mov rsi, rcx
mov edi, 0x28
test al, al
je 0x140015731
nop word [rax + rax]
mov r8d, 2
mov byte [rsp + 0x20], al
lea rdx, [rsp + 0x20]
mov byte [rsp + 0x21], r14b
lea rcx, [rsp + 0x24]
call fcn.140033c9c
cmp rax, 1
jne 0x140015767
mov rcx, rdi
mov rax, rbx
cmp word [rbx], r14w
je 0x14001570d
add rax, 2
dec rcx
cmp word [rax], r14w
jne 0x140015700
cmp rcx, 1
jb 0x140015767
movzx ecx, word [rsp + 0x24]
inc rsi
mov word [rax], cx
add rbx, 2
mov word [rax + 2], r14w
dec rdi
movzx eax, byte [rsi]
test al, al
jne 0x1400156d0
mov rdx, rbp
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140024e40
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
call fcn.140028570
int3
Function at 0x140015770
Capabilities:
Set environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x90
mov rax, qword [0x140059040]
xor rax, rsp
mov qword [rsp + 0x80], rax
movzx eax, byte [rcx]
lea rbx, [rsp + 0x30]
xor ebp, ebp
mov rsi, rcx
mov word [rsp + 0x30], bp
mov edi, 0x28
test al, al
je 0x14001581f
nop dword [rax]
nop dword [rax + rax]
mov r8d, 2
mov byte [rsp + 0x20], al
lea rdx, [rsp + 0x20]
mov byte [rsp + 0x21], bpl
lea rcx, [rsp + 0x24]
call fcn.140033c9c
cmp rax, 1
jne 0x140015855
mov rcx, rdi
mov rax, rbx
cmp word [rbx], bp
je 0x1400157fc
nop
add rax, 2
dec rcx
cmp word [rax], bp
jne 0x1400157f0
cmp rcx, 1
jb 0x140015855
movzx ecx, word [rsp + 0x24]
inc rsi
mov word [rax], cx
add rbx, 2
mov word [rax + 2], bp
dec rdi
movzx eax, byte [rsi]
test al, al
jne 0x1400157c0
xor edx, edx
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140024e40
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
call fcn.140028570
int3
Function at 0x140020370
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
cmp byte [0x140060d7e], 0
mov rbp, r8
mov rsi, rdx
mov r14, rcx
jne 0x1400203fe
mov edx, 3
xor ecx, ecx
mov r8d, 0xa
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov rdx, rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov qword [0x140060bb8], rax
mov ebx, dword [rax]
lea rcx, [rax + 4]
lea rdi, [rcx + 4]
mov qword [0x140060bb8], rcx
mov r8d, dword [rcx]
mov rdx, rdi
mov qword [0x140060bb8], rdi
call fcn.14001e660
cmp eax, ebx
jne 0x1400205a3
mov byte [0x140060d7e], 1
jmp 0x140020405
mov rdi, qword [0x140060bb8]
lea rdx, [0x14004c4f8]
mov rcx, rbp
call fcn.140040400
test eax, eax
je 0x1400204bf
cmp byte [0x140060d7f], 1
je 0x1400204bf
call qword [sym.imp.python310.dll_PyDict_New]
mov qword [0x140061ad8], rax
call qword [sym.imp.python310.dll_PyDict_New]
mov qword [0x140061f88], rax
call qword [sym.imp.python310.dll_PyDict_New]
mov qword [0x140061810], rax
call qword [sym.imp.python310.dll_PyDict_New]
mov qword [0x140061798], rax
call qword [sym.imp.python310.dll_PyDict_New]
mov qword [0x140061fd8], rax
call qword [sym.imp.python310.dll_PyDict_New]
mov qword [0x140061880], rax
call qword [sym.imp.python310.dll_PyDict_New]
mov qword [0x140061f90], rax
call qword [sym.imp.python310.dll_PyDict_New]
mov qword [0x140061fa0], rax
mov rax, qword [sym.imp.python310.dll__PyRuntime]
mov rax, qword [rax + 0x1f0]
mov rdi, qword [0x140060bb8]
mov byte [0x140060d7f], 1
mov rcx, qword [rax + 0x10]
add rcx, 0xda0
mov qword [0x140062018], rcx
mov rdx, rdi
mov rax, rbp
sub rdx, rbp
nop dword [rax + rax]
movzx ecx, byte [rax]
xor r9d, r9d
cmp cl, byte [rax + rdx]
jne 0x1400204e7
inc rax
test cl, cl
jne 0x1400204d0
mov ecx, r9d
jmp 0x1400204ec
sbb ecx, ecx
or ecx, 1
mov rax, 0xffffffffffffffff
cmp byte [rdi + rax + 1], r9b
lea rax, [rax + 1]
jne 0x1400204f3
lea rdx, [rdi + rax]
mov eax, dword [rdi + rax + 1]
add rdx, 5
test ecx, ecx
je 0x140020558
nop
add rdx, rax
mov rax, rbp
mov r8, rdx
sub r8, rbp
nop dword [rax]
movzx ecx, byte [rax]
cmp cl, byte [rax + r8]
jne 0x140020535
inc rax
test cl, cl
jne 0x140020520
mov ecx, r9d
jmp 0x14002053a
sbb ecx, ecx
or ecx, 1
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rdx + rax], r9b
jne 0x140020541
add rdx, rax
mov eax, dword [rdx + 1]
add rdx, 5
test ecx, ecx
jne 0x140020510
movzx ecx, word [rdx]
lea rax, [rdx + 2]
cmp r9w, cx
jae 0x140020588
mov ebx, ecx
nop word [rax + rax]
mov r8, rax
mov rdx, rsi
mov rcx, r14
call fcn.14001f410
add rsi, 8
sub rbx, 1
jne 0x140020570
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
lea rcx, str.Error__corrupted_constants_object
call fcn.1400307c4
call fcn.140028570
int3
Function at 0x140025818
Capabilities:
Parse pe header

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

Function at 0x1400286cc
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 0x14002873b
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14002873b
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14002873b
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14002873b
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14002873b
cmp dword [rcx + 0x84], 0xe
jbe 0x14002873b
cmp dword [rcx + 0xf8], 0
je 0x14002873b
mov ecx, ebx
call fcn.1400287ec
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.1400285c8
nop
cmp dword [rbp + 0x20], 0
je 0x140028789
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.140028794
int3
xor r8d, r8d
xor edx, edx
jmp 0x1400286cc

Function at 0x1400288d0
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 0x14002873b
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14002873b
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14002873b
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14002873b
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14002873b
cmp dword [rcx + 0x84], 0xe
jbe 0x14002873b
cmp dword [rcx + 0xf8], 0
je 0x14002873b
mov ecx, ebx
call fcn.1400287ec
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.1400285c8
nop
cmp dword [rbp + 0x20], 0
je 0x140028789
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.140028794
int3
xor r8d, r8d
xor edx, edx
jmp 0x1400286cc
Function at 0x140039f80
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 0x14003a007
mov rsi, rbx
cmp word [rax], bp
je 0x140039fc6
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], bp
jne 0x140039fb0
lea rsi, [rsi + rax*2]
add rsi, 2
cmp word [rsi], bp
jne 0x140039fac
sub rsi, rbx
add rsi, 2
sar rsi, 1
add rsi, rsi
mov rcx, rsi
call fcn.140037920
mov rdi, rax
test rax, rax
je 0x140039ff4
mov r8, rsi
mov rdx, rbx
mov rcx, rax
call fcn.1400408a0
mov rbp, rdi
xor ecx, ecx
call fcn.140035838
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
Function at 0x14003c70c
Capabilities:
Get file size

Disassembly:
push rbx
sub rsp, 0x20
mov edx, dword [rcx + 0x14]
nop
shr edx, 3
test dl, 1
je 0x14003c722
mov al, 1
jmp 0x14003c782
mov eax, dword [rcx + 0x14]
nop
test al, 0xc0
je 0x14003c733
mov rax, qword [rcx + 8]
cmp qword [rcx], rax
je 0x14003c780
mov ecx, dword [rcx + 0x18]
nop
call fcn.14003a724
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x14003c780
mov r9d, 1
lea r8, [rsp + 0x38]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x14003c780
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x14003c780
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x38], rax
sete al
jmp 0x14003c782
xor al, al
add rsp, 0x20
pop rbx
ret

Function at 0x140040150
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x140040178
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
cmp dword [rdx], 0x4550
jne 0x140040178
xor eax, eax
mov ecx, 0x20b
cmp word [rdx + 0x18], cx
sete al
ret
xor eax, eax
ret
Function at 0x14013085a
Capabilities:
Get number of processors
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
je 0x140130865
inc r8d
jmp 0x1401307b3
add rcx, r9
movzx eax, byte [rcx]
inc rcx
test al, al
je 0x140130686
nop dword [rax]
jmp 0x1401306d1
movsx eax, al
lea rcx, [rcx + 1]
xor eax, edx
imul edx, eax, 0x1000193
je 0x1401306ff
jne 0x1401306ff
cmp rsi, rcx
dec r9
call rcx
pushf
lea r11d, [rcx + 0xd581]
ret
jmp 0x14013084e
mov r10d, r8d
mov edx, 0xc5606cfd
lea rax, [r11 + r10*4]
mov ecx, dword [rax + r9]
jmp 0x14013068e
movzx eax, byte [rcx - 1]
test al, al
jne 0x1401306d1
cmp edx, 0xdafbc378
jmp 0x140130680
mov rax, qword gs:[0x60]
mov r8d, r15d
mov ecx, dword [rbx + r9 + 0x24]
add rcx, r9
movzx edx, word [rcx + r10*2]
mov ecx, dword [rbx + r9 + 0x1c]
jmp fcn.140130970
Function at 0x140131b62
Capabilities:
Hash data using fnv

Disassembly:
je 0x140131b7f
lea edi, [rbx + 0x4b01]
test r12d, 0xf5f60615
jmp rcx
Function at 0x140001350
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push r15
sub rsp, 0x30
mov rax, qword gs:[0x30]
mov rbx, qword [rax + 8]
xor esi, esi
xor eax, eax
lock cmpxchg qword [0x140003638], rbx
je 0x14000139c
cmp rax, rbx
jne 0x14000138f
mov ebx, 1
mov esi, ebx
jmp 0x1400013a1
mov ecx, 0x3e8
call qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_Sleep]
jmp 0x140001374
mov ebx, 1
mov eax, dword [0x140003640]
cmp eax, ebx
jne 0x1400013b7
mov ecx, 0x1f
call sub.msvcrt.dll__amsg_exit
jmp 0x14000141c
mov eax, dword [0x140003640]
test eax, eax
jne 0x140001416
mov dword [0x140003640], ebx
lea r15, [0x1400022d8]
lea rdi, [0x1400022c0]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
cmp rdi, r15
jae 0x140001408
test eax, eax
jne 0x14000140c
cmp qword [rdi], 0
je 0x1400013fd
mov rax, qword [rdi]
mov rcx, qword [0x1400022a0]
call rcx
mov dword [rsp + 0x20], eax
add rdi, 8
mov qword [rsp + 0x28], rdi
jmp 0x1400013de
test eax, eax
je 0x14000141c
mov eax, 0xff
jmp 0x1400014f8
mov dword [0x140003044], ebx
mov eax, dword [0x140003640]
cmp eax, ebx
jne 0x140001443
lea rdx, [0x1400022b8]
lea rcx, [0x1400022a8]
call sub.msvcrt.dll__initterm
mov dword [0x140003640], 2
test esi, esi
jne 0x140001450
xor eax, eax
xchg qword [0x140003638], rax
cmp qword [0x140003648], 0
je 0x140001484
lea rcx, [0x140003648]
call fcn.140001700
test eax, eax
je 0x140001484
xor r8d, r8d
lea edx, [r8 + 2]
xor ecx, ecx
mov rax, qword [0x140003648]
mov r9, qword [0x1400022a0]
call r9
mov r8, qword [0x140003058]
mov rdx, qword [0x140003050]
mov ecx, dword [0x140003048]
call fcn.1400011ec
mov dword [0x140003040], eax
cmp dword [0x140003060], 0
jne 0x1400014b4
mov ecx, eax
call qword [sym.imp.msvcrt.dll_exit]
cmp dword [0x140003044], 0
jne 0x1400014c9
call qword [sym.imp.msvcrt.dll__cexit]
mov eax, dword [0x140003040]
jmp 0x1400014f8
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
add rsp, 0x30
pop r15
ret
sub rsp, 0x28
call 0x140173000
add rsp, 0x28
jmp 0x140001350

Function at 0x1400015ec
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x18
xor edx, edx
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140001638
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x140001630
cmp dword [rcx + 0x3c], edx
jl 0x140001630
cmp dword [rcx + 0x3c], 0x10000000
jae 0x140001630
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
mov qword [rsp], rax
cmp dword [rax], 0x4550
cmovne rax, rdx
mov rdx, rax
mov qword [rsp], rax
jmp 0x140001638
mov rax, rdx
add rsp, 0x18
ret
Function at 0x402022
Capabilities:
Access peb ldr_data
Get process filename

Disassembly:
mov rcx, qword [rsp + 0x70]
call fcn.00403c38
jmp 0x405756
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov rax, qword gs:[0x60]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x20]
sub rax, 0x10
jmp 0x403e5a
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x30]
mov qword [rsp + 0x48], rax
jmp 0x4076b3
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
movzx eax, word [rcx + rax*2]
test eax, eax
je 0x40178b
jmp 0x40620c
jmp 0x4037cc
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x50]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
je 0x406cac
jmp 0x404531
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
movzx eax, word [rcx + rax*2]
test eax, eax
jne 0x40620c
jmp 0x40178b
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x48], 0
jmp 0x402f80
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x20], 0
jmp 0x40284d
test eax, eax
jne 0x406cac
jmp 0x40258f
xor r9d, r9d
mov r8d, eax
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x38]
call fcn.00404984
jmp 0x405749
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
movzx eax, word [rcx + rax*2]
cmp eax, 0x5c
je 0x407541
jmp 0x402927
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x10]
sub rax, 0x10
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x40]
cmp qword [rsp + 0x30], rax
jne 0x402f80
jmp 0x4076b3
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
lea rax, [rcx + rax*2 + 2]
mov qword [rsp + 0x38], rax
jmp 0x4037cc
mov rax, qword [rsp + 0x48]
add rsp, 0x68
ret