joyce8/EMBER2024-capa huggingface dataset:
Function at 0x18007fe90
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbx
sub rsp, 0x60
movsxd rax, dword [rcx]
mov rbx, rdx
mov rdx, rcx
cmp eax, r8d
je 0x180068731
movups xmm0, xmmword [rbx]
mov r9, rax
mov qword [rsp + 0x70], rsi
mov rax, qword [rcx + 0x10]
shl r9, 5
mov qword [rsp + 0x78], rdi
lea rdi, [rbx + 0x88]
movups xmmword [r9 + rax], xmm0
movsxd rcx, dword [rcx]
mov rax, qword [rdx + 0x10]
movups xmm0, xmmword [rbx + 0x10]
shl rcx, 5
movups xmmword [rcx + rax + 0x10], xmm0
mov rax, qword [rdx + 0x10]
mov dword [rdx], r8d
movsxd rcx, r8d
shl rcx, 5
movups xmm0, xmmword [rax + rcx]
movups xmmword [rbx], xmm0
mov rax, qword [rdx + 0x10]
movups xmm0, xmmword [rax + rcx + 0x10]
movups xmmword [rbx + 0x10], xmm0
mov rax, qword [rbx + 0x18]
movsxd rsi, dword [rbx + 0x10]
lea rcx, [rax + rsi*2]
movsxd rax, dword [rbx]
mov qword [rbx + 0x50], rcx
test eax, eax
je 0x1800686e8
imul rcx, rax, 0x38
mov rax, qword [rbx + 8]
add rax, 0xffffffffffffffc8
add rcx, rax
je 0x1800686e8
cmp dword [rcx + 0x20], 0
jne 0x1800686d6
movups xmm0, xmmword [rdi]
mov rsi, qword [rsp + 0x70]
movups xmmword [rcx], xmm0
movsd xmm1, qword [rdi + 0x10]
movsd qword [rcx + 0x10], xmm1
mov eax, dword [rdi + 0x18]
mov rdi, qword [rsp + 0x78]
mov dword [rcx + 0x18], eax
add rsp, 0x60
pop rbx
ret
mov r8d, 0x1c
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x180068727
xor eax, eax
mov dword [rsp + 0x3c], esi
xorps xmm0, xmm0
mov qword [rsp + 0x50], rax
mov rax, qword [rbx + 0x98]
lea rdx, [rsp + 0x20]
movdqu xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x30], rax
mov rcx, rbx
movups xmm0, xmmword [rdi]
mov eax, dword [rbx + 0xa0]
mov dword [rsp + 0x38], eax
movups xmmword [rsp + 0x20], xmm0
call fcn.18005f3f0
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x60
pop rbx
ret
sub rsp, 0x38
mov rax, qword [0x1800daf10]
mov rcx, qword [rax + 0x4e18]
mov r9, qword [rax + 0x4000]
movups xmm0, xmmword [r9 + 0x248]
movups xmmword [rcx + 0x170], xmm0
mov rax, qword [r9 + 0x2a8]
movups xmm0, xmmword [rcx + 0x150]
movss xmm4, dword [rcx + 0x150]
movss xmm3, dword [rcx + 0x154]
movss xmm2, dword [rcx + 0x158]
movss xmm1, dword [rcx + 0x15c]
movups xmmword [r9 + 0x248], xmm0
movss dword [rsp + 0x20], xmm4
movss dword [rsp + 0x24], xmm3
movss dword [rsp + 0x28], xmm2
movss dword [rsp + 0x2c], xmm1
movss dword [rax + 0x88], xmm4
movss dword [rax + 0x8c], xmm3
movss dword [rax + 0x90], xmm2
movss dword [rax + 0x94], xmm1
mov rax, qword [r9 + 0x2a8]
movups xmm0, xmmword [rsp + 0x20]
movsxd r8, dword [rax + 0x58]
mov rdx, qword [rax + 0x60]
add r8, r8
movups xmmword [rdx + r8*8 - 0x10], xmm0
movzx r8d, word [rcx + 0x232]
mov rcx, qword [rcx + 0x1a0]
mov rdx, qword [r9 + 0x2a8]
add rsp, 0x38
jmp 0x180068610
Function at 0x180089540
Capabilities:
Get system information on windows
Link many functions at runtime

Disassembly:
lea rcx, [0x1800d7240]
jmp 0x18008a4b0
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
mov rbx, rcx
mov word [rcx + 0x18], 0x100
mov byte [rcx + 0x1a], 1
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rsp + 0x24]
test eax, eax
je 0x18008a4dd
mov qword [rbx], rax
mov eax, dword [rsp + 0x48]
test eax, eax
je 0x18008a4e9
mov qword [rbx + 0x10], rax
lea rcx, str.kernelbase.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
je 0x18008a53a
lea rdx, str.VirtualAlloc2FromApp
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1800e3548], rax
test rax, rax
jne 0x18008a531
lea rdx, str.VirtualAlloc2
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1800e3548], rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
je 0x18008a56f
lea rdx, str.NtAllocateVirtualMemoryEx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rdi
mov qword [0x1800e3550], rax
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
je 0x18008a5e9
lea rdx, str.GetCurrentProcessorNumberEx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetNumaProcessorNodeEx
mov rcx, rdi
mov qword [0x1800e3558], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetNumaNodeProcessorMaskEx
mov rcx, rdi
mov qword [0x1800e3560], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetNumaProcessorNode
mov rcx, rdi
mov qword [0x1800e3568], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rdi
mov qword [0x1800e3570], rax
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, 6
call fcn.180083980
test al, al
jne 0x18008a605
mov ecx, 7
call fcn.180083980
test al, al
je 0x18008a60e
lea rcx, [rbx + 8]
call fcn.18008ab00
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret

Function at 0x18008a480
Capabilities:
Query environment variable

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, r8
mov byte [rdx], 0
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov eax, eax
test rax, rax
je 0x18008a4a6
cmp rax, rbx
jae 0x18008a4a6
mov al, 1
add rsp, 0x20
pop rbx
ret
xor al, al
add rsp, 0x20
pop rbx
ret
Function at 0x18008a4b0
Capabilities:
Get system information on windows
Link many functions at runtime

Disassembly:
lea rcx, [0x1800d7240]
jmp 0x18008a4b0
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
mov rbx, rcx
mov word [rcx + 0x18], 0x100
mov byte [rcx + 0x1a], 1
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rsp + 0x24]
test eax, eax
je 0x18008a4dd
mov qword [rbx], rax
mov eax, dword [rsp + 0x48]
test eax, eax
je 0x18008a4e9
mov qword [rbx + 0x10], rax
lea rcx, str.kernelbase.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
je 0x18008a53a
lea rdx, str.VirtualAlloc2FromApp
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1800e3548], rax
test rax, rax
jne 0x18008a531
lea rdx, str.VirtualAlloc2
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1800e3548], rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
je 0x18008a56f
lea rdx, str.NtAllocateVirtualMemoryEx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rdi
mov qword [0x1800e3550], rax
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
je 0x18008a5e9
lea rdx, str.GetCurrentProcessorNumberEx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetNumaProcessorNodeEx
mov rcx, rdi
mov qword [0x1800e3558], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetNumaNodeProcessorMaskEx
mov rcx, rdi
mov qword [0x1800e3560], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetNumaProcessorNode
mov rcx, rdi
mov qword [0x1800e3568], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rdi
mov qword [0x1800e3570], rax
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, 6
call fcn.180083980
test al, al
jne 0x18008a605
mov ecx, 7
call fcn.180083980
test al, al
je 0x18008a60e
lea rcx, [rbx + 8]
call fcn.18008ab00
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
Function at 0x18008a750
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x1800d72c0]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rbx, rcx
call fcn.180087d20
test al, al
jne 0x18008a853
cmp qword [0x1800d7268], 0xffffffffffffffff
jne 0x18008a7b5
mov ecx, 0xfffffff4
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov qword [0x1800d7268], rax
cmp rax, 0xffffffffffffffff
je 0x18008a7ad
lea rdx, [rsp + 0x38]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x18008a7ad
mov al, 1
jmp 0x18008a7af
xor al, al
mov byte [0x1800e35a0], al
mov rcx, rbx
call fcn.1800830f0
mov edx, 0xfffffffd
lea rcx, [rax - 1]
cmp rcx, rdx
ja 0x18008a853
mov rcx, qword [0x1800d7268]
xor edx, edx
cmp byte [0x1800e35a0], dl
mov dword [rsp + 0x30], edx
je 0x18008a80d
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x30]
mov rdx, rbx
mov r8d, eax
call qword [sym.imp.KERNEL32.dll_WriteConsoleA]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.18008e020
add rsp, 0x60
pop rbx
ret
cmp rcx, 0xffffffffffffffff
je 0x18008a83c
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x30]
mov rdx, rbx
mov r8d, eax
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.18008e020
add rsp, 0x60
pop rbx
ret
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputs]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.18008e020
add rsp, 0x60
pop rbx
ret

Function at 0x18008c610
Capabilities:
Encode data using xor

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
call fcn.18008a2e0
lea rcx, [fcn.18008c610]
xor rax, rcx
xor rax, rbx
mov r8, rax
shr r8, 0x11
xor r8, rax
and r8d, 0xf
add r8, 1
je 0x18008c693
mov r9d, 0x11
movabs r10, 0xbf58476d1ce4e5b9
movabs r11, 0x94d049bb133111eb
nop dword [rax]
test rax, rax
cmove rax, r9
mov rcx, rax
shr rcx, 0x1e
xor rcx, rax
imul rcx, r10
mov rdx, rcx
shr rdx, 0x1b
xor rdx, rcx
imul rdx, r11
mov rax, rdx
shr rax, 0x1f
xor rax, rdx
sub r8, 1
jne 0x18008c660
add rsp, 0x20
pop rbx
ret
Function at 0x18008cc10
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
mov r9, rcx
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm0
movups xmmword [rcx + 0x30], xmm0
movups xmmword [rcx + 0x40], xmm0
movups xmmword [rcx + 0x50], xmm0
movups xmmword [rcx + 0x60], xmm0
movups xmmword [rcx + 0x70], xmm0
mov qword [rcx + 0x80], rax
mov dword [rcx], 0x61707865
mov dword [rcx + 4], 0x3320646e
mov dword [rcx + 8], 0x79622d32
mov dword [rcx + 0xc], 0x6b206574
movzx eax, byte [rdx + 2]
movzx ecx, byte [rdx + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx]
shl ecx, 8
or ecx, eax
mov dword [r9 + 0x10], ecx
movzx eax, byte [rdx + 6]
movzx ecx, byte [rdx + 7]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 4]
shl ecx, 8
or ecx, eax
mov dword [r9 + 0x14], ecx
movzx eax, byte [rdx + 0xa]
movzx ecx, byte [rdx + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 8]
shl ecx, 8
or ecx, eax
mov dword [r9 + 0x18], ecx
movzx eax, byte [rdx + 0xe]
movzx ecx, byte [rdx + 0xf]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xd]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xc]
shl ecx, 8
or ecx, eax
mov dword [r9 + 0x1c], ecx
movzx eax, byte [rdx + 0x12]
movzx ecx, byte [rdx + 0x13]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x11]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x10]
shl ecx, 8
or ecx, eax
mov dword [r9 + 0x20], ecx
movzx eax, byte [rdx + 0x16]
movzx ecx, byte [rdx + 0x17]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x15]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x14]
shl ecx, 8
or ecx, eax
mov dword [r9 + 0x24], ecx
movzx eax, byte [rdx + 0x1a]
movzx ecx, byte [rdx + 0x1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x19]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x18]
shl ecx, 8
or ecx, eax
mov dword [r9 + 0x28], ecx
movzx eax, byte [rdx + 0x1e]
movzx ecx, byte [rdx + 0x1f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1d]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1c]
shl ecx, 8
or ecx, eax
xor eax, eax
mov dword [r9 + 0x2c], ecx
mov dword [r9 + 0x38], r8d
shr r8, 0x20
mov dword [r9 + 0x3c], r8d
mov qword [r9 + 0x30], rax
ret

Function at 0x18008ddd0
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rbx, rdx
lea r8, [rsp + 0x60]
mov edi, ecx
mov edx, 0x20000001
lea rcx, str._x_sys_default_locale
mov r9d, 2
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
test eax, eax
jne 0x18008de0a
xor r9d, r9d
mov dword [rsp + 0x60], r9d
jmp 0x18008de0f
mov r9d, dword [rsp + 0x60]
and qword [rsp + 0x30], 0
mov r8d, edi
and dword [rsp + 0x28], 0
xor edx, edx
mov ecx, 0x1300
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, eax
test eax, eax
je 0x18008de58
mov r8, qword [rbx]
dec r8
add r8, rdx
movzx ecx, byte [r8]
lea rax, [0x18009c680]
cmp byte [rcx + rax], 0
je 0x18008de58
dec r8
sub rdx, 1
jne 0x18008de3e
mov rbx, qword [rsp + 0x50]
mov rax, rdx
add rsp, 0x40
pop rdi
ret
Function at 0x140011028
Capabilities:
Get token membership

Disassembly:
jmp 0x140014120
push rbp
push rdi
sub rsp, 0x188
lea rbp, [rsp + 0x60]
lea rdi, [rsp + 0x60]
mov ecx, 0x1a
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rax, qword [0x140038040]
xor rax, rbp
mov qword [rbp + 0x118], rax
lea rcx, [0x1400410de]
call fcn.140011c17
nop
mov dword [rbp + 4], 0
mov qword [rbp + 0x28], 0
mov byte [rbp + 0x44], 0
mov byte [rbp + 0x45], 0
mov byte [rbp + 0x46], 0
mov byte [rbp + 0x47], 0
mov byte [rbp + 0x48], 0
mov byte [rbp + 0x49], 5
lea rax, [rbp + 0x28]
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x48], 0
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r9d, 0x220
mov r8d, 0x20
mov dl, 2
lea rcx, [rbp + 0x44]
call qword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
test eax, eax
je 0x1400141f6
lea r8, [rbp + 4]
mov rdx, qword [rbp + 0x28]
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
nop
mov rcx, qword [rbp + 0x28]
call qword [sym.imp.ADVAPI32.dll_FreeSid]
nop
cmp dword [rbp + 4], 0
je 0x140014205
mov byte [rbp + 0x114], 1
jmp 0x14001420c
mov byte [rbp + 0x114], 0
movzx eax, byte [rbp + 0x114]
mov edi, eax
lea rcx, [rbp - 0x60]
lea rdx, [0x14002fdb0]
call fcn.140011a28
mov eax, edi
mov rcx, qword [rbp + 0x118]
xor rcx, rbp
call fcn.1400115d2
lea rsp, [rbp + 0x128]
pop rdi
pop rbp
ret
Function at 0x14001112c
Capabilities:
Write file on windows

Disassembly:
jmp 0x140023ed0
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x128
lea rbp, [rsp + 0x20]
lea rcx, [0x1400412bd]
call fcn.140011c17
nop
mov rax, qword [rbp + 0x120]
cmp qword [rax + 0x68], 0
je 0x140023f28
mov r8, qword [rbp + 0x130]
mov rdx, qword [rbp + 0x128]
mov rcx, qword [rbp + 0x120]
call qword [sym.imp.MSVCP140D.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsputn_char_const____ptr64__long_long___int64_____ptr64]
jmp 0x14002403a
mov rax, qword [rbp + 0x130]
mov qword [rbp + 8], rax
mov rcx, qword [rbp + 0x120]
call qword [sym.imp.MSVCP140D.dll_protected:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Pnavail_void_const___ptr64]
mov qword [rbp + 0x28], rax
cmp qword [rbp + 0x130], 0
jle 0x140023fd3
cmp qword [rbp + 0x28], 0
jle 0x140023fd3
mov rax, qword [rbp + 0x28]
cmp qword [rbp + 0x130], rax
jge 0x140023f71
mov rax, qword [rbp + 0x130]
mov qword [rbp + 0x28], rax
mov rcx, qword [rbp + 0x120]
call qword [sym.imp.MSVCP140D.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pptr_void_const___ptr64]
mov r8, qword [rbp + 0x28]
mov rdx, qword [rbp + 0x128]
mov rcx, rax
call fcn.140011b63
nop
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x128]
add rcx, rax
mov rax, rcx
mov qword [rbp + 0x128], rax
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x130]
sub rcx, rax
mov rax, rcx
mov qword [rbp + 0x130], rax
mov edx, dword [rbp + 0x28]
mov rcx, qword [rbp + 0x120]
call qword [sym.imp.MSVCP140D.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pbump_int____ptr64]
nop
cmp qword [rbp + 0x130], 0
jle 0x140024029
mov rax, qword [rbp + 0x120]
cmp qword [rax + 0x80], 0
je 0x140024029
mov rax, qword [rbp + 0x120]
mov r9, qword [rax + 0x80]
mov r8, qword [rbp + 0x130]
mov edx, 1
mov rcx, qword [rbp + 0x128]
call qword [sym.imp.ucrtbased.dll_fwrite]
mov rcx, qword [rbp + 0x130]
sub rcx, rax
mov rax, rcx
mov qword [rbp + 0x130], rax
mov rax, qword [rbp + 0x130]
mov rcx, qword [rbp + 8]
sub rcx, rax
mov rax, rcx
lea rsp, [rbp + 0x108]
pop rdi
pop rbp
ret
Function at 0x1400116db
Capabilities:
Terminate process

Disassembly:
jmp 0x140026f80
mov qword [rsp + 8], rcx
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
nop
add rsp, 0x28
ret

Function at 0x140011875
Capabilities:
Parse pe header

Disassembly:
jmp 0x140027b60
sub rsp, 0x38
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x140027b80
xor al, al
jmp 0x140027c01
mov rax, qword [rsp + 0x20]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x140027b93
xor al, al
jmp 0x140027c01
mov rax, qword [rsp + 0x20]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x20]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
cmp dword [rax], 0x4550
je 0x140027bbd
xor al, al
jmp 0x140027c01
mov rax, qword [rsp + 0x28]
movzx eax, word [rax + 0x18]
cmp eax, 0x20b
je 0x140027bd1
xor al, al
jmp 0x140027c01
mov rax, qword [rsp + 0x28]
cmp dword [rax + 0x84], 0xe
ja 0x140027be3
xor al, al
jmp 0x140027c01
mov eax, 8
imul rax, rax, 0xe
mov rcx, qword [rsp + 0x28]
cmp dword [rcx + rax + 0x88], 0
jne 0x140027bff
xor al, al
jmp 0x140027c01
mov al, 1
add rsp, 0x38
ret
Function at 0x140011bef
Capabilities:
Write file on windows

Disassembly:
jmp 0x140020aa0
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x1b8
lea rbp, [rsp + 0x30]
lea rdi, [rsp + 0x30]
mov ecx, 0x32
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x1d8]
mov rax, qword [0x140038040]
xor rax, rbp
mov qword [rbp + 0x170], rax
lea rcx, [0x1400412bd]
call fcn.140011c17
nop
mov rax, qword [rbp + 0x1a0]
cmp qword [rax + 0x68], 0
je 0x140020b07
mov rax, qword [rbp + 0x1a0]
movzx eax, byte [rax + 0x71]
test eax, eax
jne 0x140020b0e
mov al, 1
jmp 0x140020c7e
mov rax, qword [rbp + 0x1a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
mov qword [rbp + 0x158], rax
call fcn.140011352
mov dword [rbp + 0x160], eax
mov edx, dword [rbp + 0x160]
mov rcx, qword [rbp + 0x1a0]
call qword [rbp + 0x158]
mov dword [rbp + 0x164], eax
call fcn.140011352
mov dword [rbp + 0x168], eax
mov edx, dword [rbp + 0x164]
mov ecx, dword [rbp + 0x168]
call fcn.1400119b0
movzx eax, al
test eax, eax
je 0x140020b71
xor al, al
jmp 0x140020c7e
mov qword [rbp + 8], 0x20
mov rax, qword [rbp + 0x1a0]
mov rax, qword [rax + 0x68]
mov qword [rbp + 0x158], rax
lea rax, [rbp + 0x48]
mov rcx, qword [rbp + 0x1a0]
add rcx, 0x74
lea rdx, [rbp + 0x68]
mov qword [rsp + 0x20], rdx
mov r9, rax
lea r8, [rbp + 0x28]
mov rdx, rcx
mov rcx, qword [rbp + 0x158]
call qword [sym.imp.MSVCP140D.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::unshift_struct__Mbstatet____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
mov dword [rbp + 0x160], eax
cmp dword [rbp + 0x160], 0
je 0x140020be4
cmp dword [rbp + 0x160], 1
je 0x140020bef
cmp dword [rbp + 0x160], 3
je 0x140020c6d
jmp 0x140020c7c
mov rax, qword [rbp + 0x1a0]
mov byte [rax + 0x71], 0
lea rax, [rbp + 0x28]
mov rcx, qword [rbp + 0x68]
sub rcx, rax
mov rax, rcx
mov qword [rbp + 0x88], rax
cmp qword [rbp + 0x88], 0
jbe 0x140020c3f
mov rax, qword [rbp + 0x1a0]
mov r9, qword [rax + 0x80]
mov r8, qword [rbp + 0x88]
mov edx, 1
lea rcx, [rbp + 0x28]
call qword [sym.imp.ucrtbased.dll_fwrite]
cmp qword [rbp + 0x88], rax
je 0x140020c3f
xor al, al
jmp 0x140020c7e
mov rax, qword [rbp + 0x1a0]
movzx eax, byte [rax + 0x71]
test eax, eax
jne 0x140020c5a
mov dword [rbp + 0x154], 1
jmp 0x140020c64
mov dword [rbp + 0x154], 0
movzx eax, byte [rbp + 0x154]
jmp 0x140020c7e
mov rax, qword [rbp + 0x1a0]
mov byte [rax + 0x71], 0
mov al, 1
jmp 0x140020c7e
xor al, al
mov rdi, rax
lea rcx, [rbp - 0x30]
lea rdx, [0x140031e90]
call fcn.140011a28
mov rax, rdi
mov rcx, qword [rbp + 0x170]
xor rcx, rbp
call fcn.1400115d2
lea rsp, [rbp + 0x188]
pop rdi
pop rbp
ret
Function at 0x140011cf3
Capabilities:
Query or enumerate registry value

Disassembly:
jmp 0x1400240b0
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x1e8
lea rbp, [rsp + 0x30]
lea rdi, [rsp + 0x30]
mov ecx, 0x3e
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x208]
mov rax, qword [0x140038040]
xor rax, rbp
mov qword [rbp + 0x1a8], rax
mov dword [rbp + 0x194], 0
lea rcx, [0x1400413ff]
call fcn.140011c17
nop
lea rax, str.SOFTWAREMicrosoftCryptography
mov qword [rbp + 0x28], rax
mov dword [rbp + 0xb4], 0x4e
lea rax, [rbp + 8]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
mov rdx, qword [rbp + 0x28]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400241ae
lea rax, [rbp + 0xb4]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.MachineGuid
mov rcx, qword [rbp + 8]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400241a3
mov rcx, qword [rbp + 8]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
lea rdx, [rbp + 0x50]
mov rcx, qword [rbp + 0x1d0]
call fcn.1400113ed
mov eax, dword [rbp + 0x194]
or eax, 1
mov dword [rbp + 0x194], eax
mov rax, qword [rbp + 0x1d0]
jmp 0x1400241d7
mov rcx, qword [rbp + 8]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
lea rdx, [0x140030adc]
mov rcx, qword [rbp + 0x1d0]
call fcn.1400113ed
mov eax, dword [rbp + 0x194]
or eax, 1
mov dword [rbp + 0x194], eax
mov rax, qword [rbp + 0x1d0]
mov rdi, rax
lea rcx, [rbp - 0x30]
lea rdx, [0x140032960]
call fcn.140011a28
mov rax, rdi
mov rcx, qword [rbp + 0x1a8]
xor rcx, rbp
call fcn.1400115d2
lea rsp, [rbp + 0x1b8]
pop rdi
pop rbp
ret

Function at 0x14001d350
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x148
lea rbp, [rsp + 0x30]
lea rdi, [rsp + 0x30]
mov ecx, 0x16
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x168]
mov rax, qword [0x140038040]
xor rax, rbp
mov qword [rbp + 0x100], rax
lea rcx, [0x14004122e]
call fcn.140011c17
nop
mov edx, 8
lea rcx, [rbp + 8]
call fcn.14001e400
mov rdx, qword [rbp + 0x138]
lea rcx, [rbp + 8]
call fcn.14001db60
nop
lea rax, [0x14001d240]
mov qword [rbp + 0x28], rax
mov rax, qword [rbp + 0x130]
add rax, 8
mov qword [rbp + 0xf8], rax
lea rcx, [rbp + 8]
call fcn.14001e640
mov rcx, qword [rbp + 0xf8]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0
mov r9, rax
mov r8, qword [rbp + 0x28]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ucrtbased.dll__beginthreadex]
mov rcx, qword [rbp + 0x130]
mov qword [rcx], rax
mov rax, qword [rbp + 0x130]
cmp qword [rax], 0
je 0x14001d42c
lea rcx, [rbp + 8]
call fcn.14001ea10
nop
jmp 0x14001d445
mov rax, qword [rbp + 0x130]
mov dword [rax + 8], 0
mov ecx, 6
call fcn.1400112b7
nop
lea rcx, [rbp + 8]
call fcn.14001df00
nop
lea rcx, [rbp - 0x30]
lea rdx, [0x140031360]
call fcn.140011a28
mov rcx, qword [rbp + 0x100]
xor rcx, rbp
call fcn.1400115d2
lea rsp, [rbp + 0x118]
pop rdi
pop rbp
ret