joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400122f4
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
lea rbp, [rsp - 0x160]
sub rsp, 0x260
mov rax, qword [0x14001c038]
xor rax, rsp
mov qword [rbp + 0x150], rax
and dword [rsp + 0x20], 0
lea r8, [rsp + 0x20]
mov rbx, rcx
lea rdx, str.CFlickSetting::LoadResourceDLL
lea rcx, [rsp + 0x28]
call fcn.14000b964
test rbx, rbx
jne 0x14001237d
mov ebx, 0x80070057
mov dword [rsp + 0x20], ebx
mov rcx, qword [section..data]
lea rax, section..data
cmp rcx, rax
je 0x1400123fe
test byte [rcx + 0x1c], 4
je 0x1400123fe
mov rcx, qword [rcx + 0x10]
mov edx, 0x16
mov r9d, 0x80070057
call fcn.14000da44
jmp 0x1400123fa
and qword [rbx], 0
lea rdx, [rsp + 0x40]
mov r8d, 0x104
lea rcx, str._windir_System32TabletPC.cpl
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
jne 0x1400123e8
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov dword [rsp + 0x20], ebx
mov rcx, qword [section..data]
lea rax, section..data
cmp rcx, rax
je 0x1400123fe
test byte [rcx + 0x1c], 4
je 0x1400123fe
mov rcx, qword [rcx + 0x10]
lea r8, [0x140017ee0]
mov edx, 0x17
mov r9d, ebx
call fcn.1400011f0
jmp 0x1400123fa
lea r9, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.14000ccac
mov qword [rbx], rax
mov ebx, dword [rsp + 0x20]
lea rcx, [rsp + 0x28]
call fcn.14000b9ac
mov eax, ebx
mov rcx, qword [rbp + 0x150]
xor rcx, rsp
call fcn.140013b10
mov rbx, qword [rsp + 0x278]
add rsp, 0x260
pop rbp
ret

Function at 0x1400125f0
Capabilities:
Get geographical location
Identify system language via api

Disassembly:
push rbx
sub rsp, 0x50
mov rax, qword [0x14001c038]
xor rax, rsp
mov qword [rsp + 0x40], rax
xor ebx, ebx
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
test ax, ax
je 0x140012638
movzx ecx, ax
lea r9d, [rbx + 0x10]
lea r8, [rsp + 0x20]
lea edx, [rbx + 0x58]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x140012638
movzx ebx, word [rsp + 0x2e]
shr ebx, 0xb
and ebx, 1
jmp 0x14001263e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, ebx
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.140013b10
add rsp, 0x50
pop rbx
ret

Function at 0x1400126f0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rdi, rdx
mov rsi, r8
mov rdx, r8
mov rbp, rcx
xor ebx, ebx
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x14001273c
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbx, rax
test rdi, rdi
je 0x14001273c
mov rdx, rsi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [rdi], eax
mov rbp, qword [rsp + 0x38]
mov rax, rbx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x14001387c
Capabilities:
Terminate process

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
push r15
sub rsp, 0xb0
xor r14d, r14d
mov dword [rsp + 0x20], r14d
lea rcx, [rax - 0x78]
call qword [sym.imp.KERNEL32.dll_GetStartupInfoW]
nop
mov rax, qword gs:[0x30]
mov rbx, qword [rax + 8]
mov esi, r14d
xor eax, eax
lock cmpxchg qword [0x14001ccc8], rbx
je 0x1400138e3
cmp rax, rbx
jne 0x1400138d6
mov ebx, 1
mov esi, ebx
jmp 0x1400138e8
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1400138bb
mov ebx, 1
mov eax, dword [0x14001ccd0]
cmp eax, ebx
jne 0x140013900
mov edi, 0x1f
mov ecx, edi
call sub.msvcrt.dll__amsg_exit
jmp 0x14001396c
mov eax, dword [0x14001ccd0]
test eax, eax
jne 0x140013961
mov dword [0x14001ccd0], ebx
lea r15, [0x140015c98]
lea rdi, [0x140015c80]
mov qword [rsp + 0x30], rdi
mov eax, r14d
mov dword [rsp + 0x24], eax
cmp rdi, r15
jae 0x140013953
test eax, eax
jne 0x140013957
cmp qword [rdi], r14
je 0x140013948
mov rax, qword [rdi]
mov rcx, qword [0x140015c40]
call rcx
mov dword [rsp + 0x24], eax
add rdi, 8
mov qword [rsp + 0x30], rdi
jmp 0x14001392a
test eax, eax
je 0x140013967
mov eax, 0xff
jmp 0x140013ac2
mov dword [0x14001c4c4], ebx
mov edi, 0x1f
mov eax, dword [0x14001ccd0]
cmp eax, ebx
jne 0x140013993
lea rdx, [0x140015c78]
lea rcx, [0x140015c48]
call sub.msvcrt.dll__initterm
mov dword [0x14001ccd0], 2
test esi, esi
jne 0x1400139a1
mov rax, r14
xchg qword [0x14001ccc8], rax
cmp qword [0x14001cce8], r14
je 0x1400139d4
lea rcx, [0x14001cce8]
call fcn.140014080
test eax, eax
je 0x1400139d4
xor r8d, r8d
lea edx, [r8 + 2]
xor ecx, ecx
mov rax, qword [0x14001cce8]
mov r9, qword [0x140015c40]
call r9
mov rax, qword [sym.imp.msvcrt.dll__wcmdln]
mov rcx, qword [rax]
test rcx, rcx
jne 0x1400139ed
mov eax, 0xff
jmp 0x140013ac2
mov qword [rsp + 0x28], rcx
mov edx, dword [rsp + 0x20]
movzx eax, word [rcx]
cmp ax, 0x20
ja 0x140013a73
test ax, ax
je 0x140013a08
test edx, edx
jne 0x140013a73
sub ax, bx
cmp ax, di
ja 0x140013a1e
add rcx, 2
mov qword [rsp + 0x28], rcx
movzx eax, word [rcx]
jmp 0x140013a08
test byte [rsp + 0x7c], bl
movzx eax, word [rsp + 0x80]
mov r9d, 0xa
cmovne r9d, eax
mov r8, rcx
xor edx, edx
lea rcx, [0x140000000]
call fcn.1400080b0
mov dword [0x14001c4c0], eax
cmp dword [0x14001c4e0], r14d
jne 0x140013a5c
mov ecx, eax
call qword [sym.imp.msvcrt.dll_exit]
cmp dword [0x14001c4c4], r14d
jne 0x140013a71
call qword [sym.imp.msvcrt.dll__cexit]
mov eax, dword [0x14001c4c0]
jmp 0x140013ac2
cmp ax, 0x22
jne 0x140013a87
mov eax, r14d
test edx, edx
sete al
mov edx, eax
mov dword [rsp + 0x20], eax
add rcx, 2
mov qword [rsp + 0x28], rcx
jmp 0x1400139f6
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
mov rsp, r11
pop r15
ret
sub rsp, 0x28
call fcn.140014100
add rsp, 0x28
jmp 0x14001387c
Function at 0x140013f90
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x18
xor edx, edx
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140013fdc
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x140013fd4
cmp dword [rcx + 0x3c], edx
jl 0x140013fd4
cmp dword [rcx + 0x3c], 0x10000000
jae 0x140013fd4
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 0x140013fdc
mov rax, rdx
add rsp, 0x18
ret

Function at 0x1400141e4
Capabilities:
Print debug messages

Disassembly:
jmp 0x1400141ec
push rbx
sub rsp, 0x540
mov rax, qword [0x14001c038]
xor rax, rsp
mov qword [rsp + 0x530], rax
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntdll.dll_RtlCaptureContext]
mov rbx, qword [rsp + 0x158]
lea rdx, [rsp + 0x40]
mov rcx, rbx
xor r8d, r8d
call qword [sym.imp.ntdll.dll_RtlLookupFunctionEntry]
test rax, rax
je 0x140014269
and qword [rsp + 0x38], 0
lea rcx, [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov r9, rax
mov qword [rsp + 0x30], rcx
mov r8, rbx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x20], rcx
xor ecx, ecx
call qword [sym.imp.ntdll.dll_RtlVirtualUnwind]
jmp 0x140014289
mov rax, qword [rsp + 0x548]
mov qword [rsp + 0x158], rax
lea rax, [rsp + 0x548]
mov qword [rsp + 0xf8], rax
lea rcx, str.Invalid_parameter_passed_to_C_runtime_function._n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov rcx, qword [rsp + 0x530]
xor rcx, rsp
call fcn.140013b10
add rsp, 0x540
pop rbx
ret

Function at 0x1400141ec
Capabilities:
Print debug messages

Disassembly:
jmp 0x1400141ec
push rbx
sub rsp, 0x540
mov rax, qword [0x14001c038]
xor rax, rsp
mov qword [rsp + 0x530], rax
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntdll.dll_RtlCaptureContext]
mov rbx, qword [rsp + 0x158]
lea rdx, [rsp + 0x40]
mov rcx, rbx
xor r8d, r8d
call qword [sym.imp.ntdll.dll_RtlLookupFunctionEntry]
test rax, rax
je 0x140014269
and qword [rsp + 0x38], 0
lea rcx, [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov r9, rax
mov qword [rsp + 0x30], rcx
mov r8, rbx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x20], rcx
xor ecx, ecx
call qword [sym.imp.ntdll.dll_RtlVirtualUnwind]
jmp 0x140014289
mov rax, qword [rsp + 0x548]
mov qword [rsp + 0x158], rax
lea rax, [rsp + 0x548]
mov qword [rsp + 0xf8], rax
lea rcx, str.Invalid_parameter_passed_to_C_runtime_function._n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov rcx, qword [rsp + 0x530]
xor rcx, rsp
call fcn.140013b10
add rsp, 0x540
pop rbx
ret
Function at 0x180001000
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdi, rcx
mov ecx, 0x208
call fcn.180001534
mov rbx, rax
mov r8d, 0x104
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0x102
ja 0x180001043
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov edx, 2
mov rcx, rbx
call fcn.180001568
xor eax, eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x180001070
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x70
mov rax, qword [0x180005008]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rdi, rcx
mov qword [rsp + 0x40], rcx
lea rcx, str.NVFBCWRP_PRIVDATA_FILE
call fcn.180001000
mov r14, rax
xor ebx, ebx
test rax, rax
je 0x180001116
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [rbx + 1]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
mov qword [rsp + 0x48], rax
lea edx, [rbx + 2]
mov rcx, r14
call fcn.180001568
cmp rsi, 0xffffffffffffffff
je 0x180001116
lea r9d, [rbx + 2]
lea r8, [rsp + 0x50]
mov edx, ebx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x180001124
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi], rbx
mov dword [rdi + 8], ebx
mov rax, rdi
jmp 0x1800011b7
mov rcx, rsi
cmp dword [rsp + 0x54], ebx
jne 0x180001110
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x18000110d
mov ecx, dword [rsp + 0x50]
call fcn.180001534
mov r14, rax
mov dword [rsp + 0x58], ebx
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x58]
mov r8d, dword [rsp + 0x50]
mov rdx, r14
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180001191
mov eax, dword [rsp + 0x50]
cmp dword [rsp + 0x58], eax
jne 0x180001191
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi], r14
mov eax, dword [rsp + 0x50]
mov dword [rdi + 8], eax
mov rax, rdi
jmp 0x1800011b7
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, 1
mov rcx, r14
call fcn.180001568
mov qword [rdi], rbx
mov dword [rdi + 8], ebx
mov rax, rdi
jmp 0x1800011b7
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.180001510
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret
Function at 0x1800011e0
Capabilities:
Link many functions at runtime

Disassembly:
push rbx
sub rsp, 0x40
mov rax, qword [0x180005008]
xor rax, rsp
mov qword [rsp + 0x38], rax
cmp edx, 1
jne 0x180001356
lea rcx, str..NvFBC64_.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rbx, rax
test rax, rax
je 0x18000136e
lea rdx, [0x1800032d8]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180005730], rax
test rax, rax
je 0x18000136e
lea rdx, [0x1800032e8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1800056f8], rax
test rax, rax
je 0x18000136e
lea rdx, [0x1800032f8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180005728], rax
test rax, rax
je 0x18000136e
lea rdx, [0x180003308]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180005720], rax
test rax, rax
je 0x18000136e
lea rdx, [0x180003320]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180005718], rax
test rax, rax
je 0x18000136e
lea rdx, [0x180003330]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180005710], rax
test rax, rax
je 0x18000136e
lea rdx, [0x180003348]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180005708], rax
test rax, rax
je 0x18000136e
lea rdx, [0x180003360]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180005700], rax
test rax, rax
je 0x18000136e
lea rcx, str.NVFBCWRP_DUMP_DIR
call fcn.180001000
mov rcx, qword [0x1800056f0]
test rax, rax
cmovne rcx, rax
mov qword [0x1800056f0], rcx
lea rcx, [rsp + 0x20]
call fcn.180001070
mov ecx, dword [rax + 8]
mov dword [rsp + 0x30], ecx
mov rdx, qword [rax]
test rdx, rdx
je 0x180001356
mov qword [0x180005040], rdx
mov dword [0x180005038], ecx
mov eax, 1
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.180001510
add rsp, 0x40
pop rbx
ret
xor eax, eax
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.180001510
add rsp, 0x40
pop rbx
ret
Function at 0x180001390
Capabilities:
Get common file path
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push r14
sub rsp, 0x260
mov rax, qword [0x180005008]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov r14d, dword [rcx + 0x20]
mov rbx, rcx
test r14d, r14d
jne 0x1800013f2
cmp qword [rcx + 0x18], 0
jne 0x1800014a4
mov eax, dword [0x180005038]
mov dword [rcx + 0x20], eax
mov rax, qword [0x180005040]
mov qword [rcx + 0x18], rax
call qword [0x1800056f8]
mov qword [rbx + 0x18], 0
mov dword [rbx + 0x20], r14d
jmp 0x1800014ad
mov qword [rsp + 0x280], rsi
mov rsi, qword [rcx + 0x18]
test rsi, rsi
je 0x18000149c
mov rcx, qword [0x1800056f0]
test rcx, rcx
je 0x18000149c
lea r9, [rsp + 0x40]
xor r8d, r8d
lea rdx, [0x1800033a0]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x18000149c
mov qword [rsp + 0x30], 0
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x28], 0x80
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 2
mov edx, 0x40000000
mov qword [rsp + 0x278], rbp
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbp, rax
cmp rax, 0xffffffffffffffff
je 0x180001494
xor r9d, r9d
mov qword [rsp + 0x20], 0
mov r8d, r14d
mov rdx, rsi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbp, qword [rsp + 0x278]
mov rsi, qword [rsp + 0x280]
mov rcx, rbx
call qword [0x1800056f8]
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.180001510
mov rbx, qword [rsp + 0x288]
add rsp, 0x260
pop r14
ret
Function at 0x140013a17
Capabilities:
Write file on windows

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], r8
mov qword [rbp - 8], 0
mov rdx, qword [rbp + 0x20]
mov rax, qword [rbp + 0x18]
mov r9, qword [rbp + 0x10]
mov r8, rdx
mov edx, 1
mov rcx, rax
call sym.fwrite
mov qword [rbp - 8], rax
mov dword [rbp - 0xc], 0
mov rcx, qword [rbp + 0x10]
call sym.fflush
mov dword [rbp - 0xc], eax
nop
add rsp, 0x30
pop rbp
ret

Function at 0x140016ed4
Capabilities:
Write file on windows

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x90
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
lea rax, str.echoBinSafe
mov qword [rbp - 0x58], rax
lea rax, [0x1400b4af8]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], 0
mov word [rbp - 0x40], 0
lea rax, [rbp - 0x60]
mov rcx, rax
call sym.nimFrame_7
call sym.nimErrorFlag_7
mov qword [rbp - 0x10], rax
mov qword [rbp - 0x50], 0xb5f
lea rax, [0x1400d8180]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x50], 0x12
lea rax, [0x1400b5270]
mov qword [rbp - 0x48], rax
mov qword [rbp - 8], 0
mov qword [rbp - 0x50], 0x13
mov rax, qword [rbp - 8]
cmp rax, qword [rbp + 0x18]
jge 0x140017034
mov qword [rbp - 0x50], 0xb60
lea rax, [0x1400b4af8]
mov qword [rbp - 0x48], rax
cmp qword [rbp - 8], 0
js 0x140016f98
mov rax, qword [rbp - 8]
cmp rax, qword [rbp + 0x18]
jl 0x140016fb1
mov rax, qword [rbp + 0x18]
lea rdx, [rax - 1]
mov rax, qword [rbp - 8]
mov rcx, rax
call sym.raiseIndexError2
jmp 0x1400170c5
mov rax, qword [rbp - 8]
shl rax, 4
mov rdx, rax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x50], 0xb77
mov ecx, 1
mov rax, qword [sym.__acrt_iob_func]
call rax
mov rcx, rax
mov rax, qword [rbp - 0x18]
mov rdx, qword [rax + 8]
mov rax, qword [rax]
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], rdx
lea rax, [rbp - 0x70]
mov r8d, 0
mov rdx, rax
call sym.writeWindows__system_u9092
mov rax, qword [rbp - 0x10]
movzx eax, byte [rax]
movzx eax, al
test eax, eax
jne 0x1400170c4
mov qword [rbp - 0x50], 0xd
lea rax, [0x1400b5270]
mov qword [rbp - 0x48], rax
add qword [rbp - 8], 1
jmp 0x140016f66
nop
mov qword [rbp - 0x50], 0xb7b
lea rax, [0x1400b4af8]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x20], 0
mov ecx, 1
mov rax, qword [sym.__acrt_iob_func]
call rax
mov r9, rax
mov r8d, 1
mov edx, 1
lea rax, [0x1400b4ae9]
mov rcx, rax
call sym.fwrite
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x50], 0xb7c
mov dword [rbp - 0x24], 0
mov ecx, 1
mov rax, qword [sym.__acrt_iob_func]
call rax
mov rcx, rax
call sym.fflush
mov dword [rbp - 0x24], eax
mov qword [rbp - 0x50], 0xb80
lea rax, [0x1400d8180]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x1400170c5
nop
call sym.popFrame_7
nop
add rsp, 0x90
pop rbp
ret
Function at 0x14001d337
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0xb0]
mov rbx, rcx
mov rcx, qword [rbx]
mov rbx, qword [rbx + 8]
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x78], rbx
mov rbx, rdx
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov qword [rbp - 0x90], rax
mov qword [rbp - 0x88], rdx
lea rax, str.startsWith
mov qword [rbp - 0x58], rax
lea rax, [0x1400b9388]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], 0
mov word [rbp - 0x40], 0
lea rax, [rbp - 0x60]
mov rcx, rax
call sym.nimFrame_11
mov byte [rbp - 1], 0
mov qword [rbp - 0x50], 0x38
lea rax, str.D:_a_nightlies_nightlies_nim_2.2.1lib_stdprivate_strimpl.nim
mov qword [rbp - 0x48], rax
mov rax, qword [rbp - 0x90]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x50], 0x39
mov rax, qword [rbp - 0x80]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x50], 0x3a
mov qword [rbp - 0x10], 0
mov qword [rbp - 0x50], 0x66e
lea rax, [0x1400b9388]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], 0x3c
lea rax, str.D:_a_nightlies_nightlies_nim_2.2.1lib_stdprivate_strimpl.nim
mov qword [rbp - 0x48], rax
mov rax, qword [rbp - 0x20]
cmp rax, qword [rbp - 0x10]
jg 0x14001d443
mov qword [rbp - 0x50], 0x661
lea rax, [0x1400b9388]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], 0x3c
lea rax, str.D:_a_nightlies_nightlies_nim_2.2.1lib_stdprivate_strimpl.nim
mov qword [rbp - 0x48], rax
mov byte [rbp - 1], 1
jmp 0x14001d570
nop
mov qword [rbp - 0x50], 0x3d
mov byte [rbp - 0x11], 0
mov rax, qword [rbp - 0x28]
cmp rax, qword [rbp - 0x10]
setle al
mov byte [rbp - 0x11], al
cmp byte [rbp - 0x11], 0
jne 0x14001d4f3
cmp qword [rbp - 0x10], 0
js 0x14001d479
mov rax, qword [rbp - 0x80]
cmp qword [rbp - 0x10], rax
jl 0x14001d492
mov rax, qword [rbp - 0x80]
lea rdx, [rax - 1]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call sym.raiseIndexError2
jmp 0x14001d570
cmp qword [rbp - 0x10], 0
js 0x14001d4a6
mov rax, qword [rbp - 0x90]
cmp qword [rbp - 0x10], rax
jl 0x14001d4c2
mov rax, qword [rbp - 0x90]
lea rdx, [rax - 1]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call sym.raiseIndexError2
jmp 0x14001d570
mov rdx, qword [rbp - 0x78]
mov rax, qword [rbp - 0x10]
add rax, rdx
add rax, 8
movzx edx, byte [rax]
mov rcx, qword [rbp - 0x88]
mov rax, qword [rbp - 0x10]
add rax, rcx
add rax, 8
movzx eax, byte [rax]
cmp dl, al
setne al
mov byte [rbp - 0x11], al
jmp 0x14001d4f4
nop
movzx eax, byte [rbp - 0x11]
xor eax, 1
test al, al
jne 0x14001d52b
mov qword [rbp - 0x50], 0x661
lea rax, [0x1400b9388]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], 0x3d
lea rax, str.D:_a_nightlies_nightlies_nim_2.2.1lib_stdprivate_strimpl.nim
mov qword [rbp - 0x48], rax
mov byte [rbp - 1], 0
jmp 0x14001d570
nop
mov qword [rbp - 0x50], 0x3e
mov edx, 0
mov rax, qword [rbp - 0x10]
add rax, 1
jno 0x14001d548
mov edx, 1
mov rcx, rax
lea rax, [rbp - 0x68]
mov qword [rax], rcx
mov rax, rdx
and eax, 1
test al, al
je 0x14001d563
call sym.raiseOverflow
jmp 0x14001d570
mov rax, qword [rbp - 0x68]
mov qword [rbp - 0x10], rax
jmp 0x14001d3f7
call sym.popFrame_11
movzx eax, byte [rbp - 1]
add rsp, 0xb8
pop rbx
pop rbp
ret
Function at 0x140039797
Capabilities:
Execute command

Disassembly:
push rbp
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x90]
mov rbx, rcx
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rdx
lea rax, str.execShellCmd
mov qword [rbp - 0x48], rax
lea rax, str.D:_a_nightlies_nightlies_nim_2.2.1libpureos.nim
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x40], 0
mov word [rbp - 0x30], 0
lea rax, [rbp - 0x50]
mov rcx, rax
call sym.nimFrame_26
call sym.nimErrorFlag_23
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], 0
mov qword [rbp - 0x40], 0x1a1
mov dword [rbp - 0x14], 0
mov rax, qword [rbp - 0x60]
mov rdx, qword [rbp - 0x58]
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], rdx
lea rax, [rbp - 0x70]
mov rcx, rax
call sym.nimToCStringConv_6
mov rcx, rax
call sym.system
mov dword [rbp - 0x14], eax
mov dword [rbp - 0x18], 0
mov eax, dword [rbp - 0x14]
mov ecx, eax
call sym.exitStatusLikeShell__pureZos_u154
mov dword [rbp - 0x18], eax
mov rax, qword [rbp - 0x10]
movzx eax, byte [rax]
movzx eax, al
test eax, eax
jne 0x14003985e
mov eax, dword [rbp - 0x18]
cdqe
mov qword [rbp - 8], rax
jmp 0x14003985f
nop
call sym.popFrame_26
mov rax, qword [rbp - 8]
add rsp, 0x98
pop rbx
pop rbp
ret

Function at 0x14009e3f0
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call sym.__acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sym.fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sym.__acrt_iob_func
mov r8, rbx
mov rdx, qword [rbp + 0x20]
mov rcx, rax
call sym.vfprintf
call sym.abort
nop

Function at 0x14009f022
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x1400d8568]
test eax, eax
je 0x14009f0ba
lea rax, [0x1400d8540]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x1400d8570]
mov qword [rbp - 8], rax
jmp 0x14009f09e
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x14009f092
cmp qword [rbp - 0x10], 0
je 0x14009f092
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x14009f058
lea rax, [0x1400d8540]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x14009f0bb
nop
add rsp, 0x30
pop rbp
ret