joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140001f50
Capabilities:
Disable driver code integrity
Parse pe header

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov eax, 0x5a4d
mov rbp, rcx
cmp word [rcx], ax
jne 0x14000200d
movsxd rcx, dword [rcx + 0x3c]
add rcx, rbp
cmp dword [rcx], 0x4550
jne 0x14000200d
mov r8d, 0x20b
mov eax, 0x88
cmp word [rcx + 0x18], r8w
mov edx, 0x78
cmovne eax, edx
xor esi, esi
mov r12d, dword [rax + rcx]
mov eax, dword [rax + rcx + 4]
lea r13, [r12 + rbp]
mov r15d, dword [r13 + 0x20]
mov edi, dword [r13 + 0x18]
add r15, rbp
mov dword [rsp + 0x68], eax
mov eax, dword [r13 + 0x1c]
add rax, rbp
mov qword [rsp + 0x70], rax
mov eax, dword [r13 + 0x24]
add rax, rbp
sub edi, 1
mov qword [rsp + 0x60], rax
js 0x14000200d
nop
lea ebx, [rdi + rsi]
sar ebx, 1
lea rcx, str.CiInitialize
movsxd r14, ebx
mov edx, dword [r15 + r14*4]
add rdx, rbp
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
jns 0x140002004
lea edi, [rbx - 1]
jmp 0x140002009
jle 0x140002024
lea esi, [rbx + 1]
cmp edi, esi
jge 0x140001fe0
xor eax, eax
mov rbx, qword [rsp + 0x78]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp edi, esi
jl 0x14000200d
cmp ebx, dword [r13 + 0x14]
jge 0x14000200d
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x70]
movzx eax, word [rax + r14*2]
mov ecx, dword [rcx + rax*4]
cmp ecx, r12d
jb 0x140002050
mov eax, dword [rsp + 0x68]
add eax, r12d
cmp ecx, eax
jb 0x14000200d
lea rax, [rcx + rbp]
jmp 0x14000200f
Function at 0x1400020c0
Capabilities:
Get system information on windows
Make suspicious ntquerysysteminformation call

Disassembly:
mov r11, rsp
push rbp
push r14
sub rsp, 0x168
mov rax, qword [0x1400be080]
xor rax, rsp
mov qword [rsp + 0x158], rax
mov r14, rdx
mov qword [rdx], 0
xor edx, edx
mov dword [r11 - 0x28], 0
mov rbp, rcx
lea r9, [r11 - 0x28]
xor r8d, r8d
lea ecx, [rdx + 0xb]
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
cmp eax, 0xc0000004
jne 0x14000226f
mov rax, qword gs:[0x30]
mov r8d, dword [rsp + 0x150]
mov qword [rsp + 0x198], rsi
add r8, r8
mov qword [rsp + 0x160], rdi
mov rdx, qword [rax + 0x60]
mov rcx, qword [rdx + 0x30]
mov edx, 8
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov r8d, dword [rsp + 0x150]
xor r9d, r9d
add r8d, r8d
mov rdx, rax
mov rdi, rax
lea ecx, [r9 + 0xb]
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
mov esi, eax
test eax, eax
js 0x140002241
mov qword [rsp + 0x190], rbx
xor ebx, ebx
cmp dword [rdi], ebx
jbe 0x140002239
mov ecx, ebx
lea rax, [rsp + 0x20]
imul rcx, rcx, 0x128
mov edx, 2
add rcx, 8
add rcx, rdi
nop dword [rax]
lea rax, [rax + 0x80]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax - 0x70], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax - 0x60], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax - 0x50], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax - 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax - 0x30], xmm1
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x10], xmm1
sub rdx, 1
jne 0x1400021a0
movups xmm0, xmmword [rcx]
lea rdx, [rsp + 0x48]
movups xmm1, xmmword [rcx + 0x10]
mov rcx, qword [rcx + 0x20]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm1
mov qword [rax + 0x20], rcx
mov rcx, rbp
movzx eax, word [rsp + 0x46]
add rdx, rax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
test eax, eax
je 0x14000222f
inc ebx
cmp ebx, dword [rdi]
jb 0x140002182
jmp 0x140002239
mov rax, qword [rsp + 0x30]
xor esi, esi
mov qword [r14], rax
mov rbx, qword [rsp + 0x190]
mov rax, qword gs:[0x30]
mov r8, rdi
xor edx, edx
mov rcx, qword [rax + 0x60]
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov rdi, qword [rsp + 0x160]
mov eax, esi
mov rsi, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x158]
xor rcx, rsp
call fcn.14008f700
add rsp, 0x168
pop r14
pop rbp
ret
Function at 0x1400024b0
Capabilities:
Access peb ldr_data
Get windows directory from kuser_shared_data

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x190]
sub rsp, 0x290
mov rax, qword [0x1400be080]
xor rax, rsp
mov qword [rbp + 0x180], rax
mov qword [rcx], 0
lea rdx, [rsp + 0x58]
mov eax, dword [0x1400a3a38]
lea r8, str._lsSystem32_hs
movsd xmm0, qword [0x1400a3a30]
mov rdi, rcx
mov dword [rsp + 0x60], eax
mov esi, 0x23f0
movzx eax, byte [0x1400a3a3c]
mov r9d, 0x7ffe0030
mov byte [rsp + 0x64], al
mov eax, dword [str.CI.dll]
mov dword [rsp + 0x50], eax
movzx eax, word [0x1400a3a44]
mov word [rsp + 0x54], ax
movzx eax, byte [0x1400a3a46]
mov byte [rsp + 0x56], al
movsd qword [rsp + 0x58], xmm0
mov rax, qword gs:[0x30]
mov rcx, qword [rax + 0x60]
lea rax, [rsp + 0x50]
cmp word [rcx + 0x120], si
lea rcx, [rsp + 0x70]
cmovb rax, rdx
mov edx, 0x82
mov qword [rsp + 0x20], rax
call fcn.140002060
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x40]
lea rcx, [rsp + 0x70]
call fcn.140001d20
mov ebx, eax
test eax, eax
jns 0x1400025a9
mov r8d, eax
lea rdx, [rsp + 0x70]
lea rcx, str.Failed_to_map__ls:__08X_n
call fcn.140001cc0
jmp 0x1400026e0
mov rax, qword gs:[0x30]
mov rcx, qword [rax + 0x60]
cmp word [rcx + 0x120], si
jb 0x140002612
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x50]
call fcn.1400020c0
mov ebx, eax
test eax, eax
jns 0x1400025e7
mov edx, eax
lea rcx, str.Failed_to_FindKernelModule__08X_n
call fcn.140001cc0
jmp 0x1400026ce
mov rdx, qword [rsp + 0x38]
lea r8, [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
call fcn.140002290
test eax, eax
je 0x1400026c9
mov rax, qword [rsp + 0x30]
xor ebx, ebx
mov qword [rdi], rax
jmp 0x1400026ce
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x58]
call fcn.1400020c0
mov ebx, eax
test eax, eax
js 0x1400026ce
mov r11, qword [rsp + 0x48]
xor r10d, r10d
xor r9d, r9d
test r11, r11
je 0x1400026bd
mov rbx, qword [rsp + 0x40]
lea rsi, [0x1400a3ee4]
nop dword [rax + rax]
mov r8, r9
xor edx, edx
sub r8, rsi
mov rax, rsi
add r8, rbx
nop
movzx ecx, byte [rax]
cmp byte [r8 + rax], cl
je 0x14000266d
test cl, cl
jne 0x1400026b9
inc edx
inc rax
cmp edx, 4
jb 0x140002660
mov cl, 1
test cl, cl
mov rax, r9
cmove rax, r10
inc r9
mov r10, rax
cmp r9, r11
jb 0x140002650
test rax, rax
je 0x1400026bd
movsxd rcx, dword [rax + rbx + 4]
mov rbx, qword [rsp + 0x30]
add rcx, rax
add rbx, 8
add rbx, rcx
lea rcx, str.i_:_0x_llx_n_gCiEnabled_:__llx_n_gCiEnabledAddress_:__llx_n
call fcn.140001cc0
mov qword [rdi], rbx
xor ebx, ebx
jmp 0x1400026ce
xor cl, cl
jmp 0x140002679
lea rcx, str.failed_to_find_CiEnabled_n
call fcn.140001cc0
mov ebx, 0xc0000225
mov rdx, qword [rsp + 0x40]
mov rcx, 0xffffffffffffffff
call qword [sym.imp.ntdll.dll_NtUnmapViewOfSection]
mov eax, ebx
mov rcx, qword [rbp + 0x180]
xor rcx, rsp
call fcn.14008f700
lea r11, [rsp + 0x290]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
Function at 0x140002710
Capabilities:
Persist via windows service
Set registry value

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r14
sub rsp, 0x260
mov rax, qword [0x1400be080]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov r14, rdx
lea r8, str.RegistryMachineSystemCurrentControlSetServices_
mov rbx, rdx
mov edi, 0x34
mov rsi, rcx
lea edx, [rdi + 1]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
movzx ecx, word [rbx]
mov rdx, rbx
test cx, cx
je 0x1400027a1
nop dword [rax + rax]
add rdx, 2
cmp cx, 0x5c
mov rax, rdx
cmovne rax, rbx
movzx ecx, word [rdx]
mov rbx, rax
test cx, cx
jne 0x140002760
movzx ecx, word [rax]
test cx, cx
je 0x1400027a1
lea rax, [rsi + 0x68]
cmp cx, 0x2e
je 0x1400027a1
add rbx, 2
mov word [rax], cx
inc edi
add rax, 2
movzx ecx, word [rbx]
test cx, cx
jne 0x140002786
movsxd rax, edi
xor ecx, ecx
mov rdx, rsi
mov word [rsi + rax*2], cx
call qword [sym.imp.ntdll.dll_RtlCreateRegistryKey]
test eax, eax
js 0x140002867
lea r8, str.___
mov dword [rsp + 0x30], 1
mov edx, 5
lea rcx, [rsp + 0x40]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
mov r8, r14
lea rcx, [rsp + 0x40]
mov edx, 0x87
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
lea rcx, [rsp + 0x40]
mov rax, 0xffffffffffffffff
nop dword [rax]
cmp word [rcx + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x140002800
lea eax, [rax*2 + 2]
mov r9d, 1
mov dword [rsp + 0x28], eax
lea r8, str.ImagePath
lea rax, [rsp + 0x40]
mov rdx, rsi
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntdll.dll_RtlWriteRegistryValue]
test eax, eax
js 0x140002867
lea rax, [rsp + 0x30]
mov dword [rsp + 0x28], 4
mov r9d, 4
mov qword [rsp + 0x20], rax
lea r8, str.Type
mov rdx, rsi
xor ecx, ecx
call qword [sym.imp.ntdll.dll_RtlWriteRegistryValue]
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.14008f700
mov rbx, qword [rsp + 0x290]
add rsp, 0x260
pop r14
pop rdi
pop rsi
ret
Function at 0x14000b1c0
Capabilities:
Terminate process

Disassembly:
push rbp
sub rsp, 0x150
lea rbp, [rsp + 0x40]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x1400be080]
xor rax, rsp
mov qword [rbp + 0x100], rax
lea rcx, [0x1400de410]
call fcn.140035810
test al, al
je 0x14000b3ef
lea rcx, [rbp + 0xa0]
call fcn.1400089d0
nop
movabs rax, 0x5c8b2683b8599926
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x20], rax
movabs rax, 0x8af395a8713b9dd6
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x28], rax
movabs rax, 0x64b69c73865ab2a6
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x30], rax
movabs rax, 0x407ab24482c4178
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x38], rax
movabs rax, 0xbb074cc935b82a52
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x40], rax
movabs rax, 0x7702c6462d3aa2f
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x48], rax
movabs rax, 0xdea414c28a582284
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x50], rax
movabs rax, 0x1ecf94b239f61cc1
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x58], rax
movabs rax, 0x25ff4ff1cd3afc75
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xc0], rax
movabs rax, 0xfe80b5d81c5ee9f6
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xc8], rax
movabs rax, 0x17d5f507f533c6c7
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xd0], rax
movabs rax, 0x6766c74662061a58
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xd8], rax
movabs rax, 0x9b6329bd46d14639
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xe0], rax
movabs rax, 0x601f404410b6d95a
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xe8], rax
movabs rax, 0xf48e3df3a2784ceb
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xf0], rax
movabs rax, 0x1ecf94b239fc169c
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xf8], rax
vmovdqu ymm0, ymmword [rbp + 0xc0]
vpxor ymm1, ymm0, ymmword [rbp + 0x20]
vmovdqa ymmword [rbp + 0x20], ymm1
vmovdqu ymm0, ymmword [rbp + 0x40]
vpxor ymm1, ymm0, ymmword [rbp + 0xe0]
vmovdqa ymmword [rbp + 0x40], ymm1
lea r8, [rbp + 0xa0]
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x60]
vzeroupper
call fcn.1400178e0
mov rcx, rax
call fcn.140006cd0
call fcn.1400080d0
lea rdx, [0x1400a6a80]
lea rcx, [rbp + 0x80]
call fcn.140015020
mov rdx, rax
lea rcx, [0x1400de410]
call fcn.140034000
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
nop
mov rcx, qword [rbp + 0x100]
xor rcx, rsp
call fcn.14008f700
add rsp, 0x150
pop rbp
ret
Function at 0x14000d360
Capabilities:
Create process on windows
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
lea rbp, [rsp - 0x3d0]
sub rsp, 0x4d0
mov rax, qword [0x1400be080]
xor rax, rsp
mov qword [rbp + 0x3c0], rax
mov r8d, 0x104
lea rdx, [rbp - 0x60]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x14000d578
mov r8d, 0x104
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetShortPathNameW]
test eax, eax
je 0x14000d578
movabs rax, 0x259b4fd1cd59fc5a
mov qword [rsp + 0x4e0], rdi
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x40]
mov rax, qword [rsp + 0x30]
lea rcx, [rbp + 0x1b0]
mov qword [rsp + 0x40], rax
movabs rdi, 0x25ff4ff1cd3afc75
movabs rax, 0xfe80b5f81c32e993
movabs rbx, 0xfe80b5d81c5ee9f6
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x30], rdi
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x30], rbx
mov rax, qword [rsp + 0x30]
movdqa xmm0, xmmword [rsp + 0x40]
mov qword [rsp + 0x78], rax
pxor xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x40], xmm0
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, [rbp - 0x60]
lea rcx, [rbp + 0x1b0]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
movabs rax, 0x25df4fcfcd04fc55
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x30], rax
lea rcx, [rbp + 0x1b0]
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x50], rax
movabs rax, 0xfe80b5941c0be9b8
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x30], rdi
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x80], rax
mov qword [rsp + 0x30], rbx
mov rax, qword [rsp + 0x30]
movdqa xmm0, xmmword [rsp + 0x50]
mov qword [rbp - 0x78], rax
pxor xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rsp + 0x50], xmm0
call qword [sym.imp.KERNEL32.dll_lstrcatW]
movabs rax, 0x25ac4f9ccd55fc36
lea rdx, [rbp - 0x60]
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x60]
mov rax, qword [rsp + 0x30]
mov r8d, 0x104
mov qword [rsp + 0x60], rax
movabs rax, 0xfe80b5bb1c3be986
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x30], rdi
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x70], rax
mov qword [rsp + 0x30], rbx
mov rax, qword [rsp + 0x30]
movdqa xmm0, xmmword [rsp + 0x60]
mov qword [rbp - 0x68], rax
pxor xmm0, xmmword [rbp - 0x70]
movdqa xmmword [rsp + 0x60], xmm0
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov rdi, qword [rsp + 0x4e0]
test eax, eax
je 0x14000d578
xor ebx, ebx
lea r9, [rbp + 0x1b0]
mov dword [rsp + 0x28], ebx
lea r8, [rbp - 0x60]
xor edx, edx
mov qword [rsp + 0x20], rbx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
setg bl
mov eax, ebx
jmp 0x14000d57a
xor eax, eax
mov rcx, qword [rbp + 0x3c0]
xor rcx, rsp
call fcn.14008f700
mov rbx, qword [rsp + 0x4e8]
add rsp, 0x4d0
pop rbp
ret
Function at 0x140010880
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push rbx
mov eax, 0x13f0
call fcn.14008ffe0
sub rsp, rax
mov rax, qword [0x1400be080]
xor rax, rsp
mov qword [rsp + 0x13e0], rax
mov rbx, rcx
mov qword [rsp + 0x28], rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 0x3d
lea rdx, str.123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
lea rcx, [rsp + 0x30]
call fcn.140018a00
nop
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
mov dword [rsp + 0x13d4], 0xffffffff
mov dword [rsp + 0x54], eax
mov eax, 1
nop
mov ecx, edx
shr ecx, 0x1e
xor ecx, edx
imul edx, ecx, 0x6c078965
add edx, eax
mov dword [rsp + rax*4 + 0x54], edx
inc rax
cmp rax, 0x270
jb 0x1400108f0
mov dword [rsp + 0x50], 0x270
lea rcx, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
add rdx, rcx
lea rcx, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x50]
call fcn.140017780
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0
mov r8d, reloc.OLEAUT32.dll_SafeArrayPutElement
cmp qword [rsp + 0x40], r8
cmovb r8, qword [rsp + 0x40]
lea rdx, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rdx, qword [rsp + 0x30]
mov rcx, rbx
call fcn.140018a00
nop
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x1400109cb
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400109c6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400109c6
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14008f720
mov rax, rbx
mov rcx, qword [rsp + 0x13e0]
xor rcx, rsp
call fcn.14008f700
add rsp, 0x13f0
pop rbx
ret
Function at 0x140014220
Capabilities:
Write file on windows

Disassembly:
push rbx
push rdi
push r15
sub rsp, 0x20
cmp qword [rcx + 0x68], 0
mov rbx, r8
mov r15, rdx
mov rdi, rcx
je 0x140014248
add rsp, 0x20
pop r15
pop rdi
pop rbx
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsputn_char_const____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x40]
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], rsi
mov rsi, rbx
mov qword [rsp + 0x58], r14
mov r9, qword [rax]
test r9, r9
je 0x14001426e
mov rax, qword [rcx + 0x58]
mov ecx, dword [rax]
jmp 0x140014270
xor ecx, ecx
movsxd rbp, ecx
test rbx, rbx
jle 0x1400142c9
test ecx, ecx
jle 0x1400142a9
cmp rbx, rbp
mov rcx, r9
cmovl rbp, rbx
mov r8, rbp
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rdi + 0x58]
add r15, rbp
sub rbx, rbp
sub dword [rax], ebp
mov rcx, qword [rdi + 0x40]
movsxd rax, ebp
add qword [rcx], rax
test rbx, rbx
jle 0x1400142c9
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x1400142c9
mov r8, rbx
mov edx, 1
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
sub rbx, rax
mov r14, qword [rsp + 0x58]
sub rsi, rbx
mov rbp, qword [rsp + 0x40]
mov rax, rsi
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r15
pop rdi
pop rbx
ret

Function at 0x1400142f0
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push r14
sub rsp, 0x30
mov rbp, r8
mov r14, rdx
mov rsi, rcx
test r8, r8
jg 0x140014312
xor eax, eax
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
cmp qword [rcx + 0x68], 0
je 0x140014328
add rsp, 0x30
pop r14
pop rsi
pop rbp
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0x28], rbx
mov rbx, rbp
mov rdx, qword [rax]
test rdx, rdx
je 0x140014344
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x140014346
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x140014382
mov qword [rsp + 0x20], rdi
cmp rax, rbp
mov rdi, rbp
mov rcx, r14
cmovb rdi, rax
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rsi + 0x50]
add r14, rdi
sub rbx, rdi
sub dword [rax], edi
mov rcx, qword [rsi + 0x38]
movsxd rax, edi
mov rdi, qword [rsp + 0x20]
add qword [rcx], rax
cmp qword [rsi + 0x80], 0
je 0x14001441e
mov r8, qword [rsi + 0x18]
lea rax, [rsi + 0x70]
cmp qword [r8], rax
jne 0x1400143bd
mov rcx, qword [rsi + 0x88]
mov rdx, qword [rsi + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rsi + 0x38]
mov qword [rax], rcx
mov rax, qword [rsi + 0x50]
mov dword [rax], edx
cmp rbx, 0xfff
jbe 0x1400143fe
nop word [rax + rax]
mov r9, qword [rsi + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add r14, rax
sub rbx, rax
cmp rax, 0xfff
jne 0x14001441e
cmp rbx, rax
ja 0x1400143d0
test rbx, rbx
je 0x14001441e
mov r9, qword [rsi + 0x80]
mov r8, rbx
mov edx, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rbx, rax
sub rbp, rbx
mov rbx, qword [rsp + 0x28]
mov rax, rbp
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
Function at 0x140014850
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x1400be080]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x14001487d
xor eax, eax
jmp 0x1400149da
mov rdx, qword [rcx + 0x40]
mov rax, qword [rdx]
test rax, rax
je 0x1400148a8
mov rdx, qword [rcx + 0x58]
movsxd r8, dword [rdx]
add r8, rax
cmp rax, r8
jae 0x1400148a8
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Pninc_void____ptr64]
mov byte [rax], dil
mov eax, edi
jmp 0x1400149da
cmp qword [rcx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x1400149cd
mov r8, qword [rcx + 0x18]
lea rax, [rcx + 0x70]
cmp qword [r8], rax
jne 0x1400148eb
mov rdx, qword [rcx + 0x90]
mov rcx, qword [rcx + 0x88]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rbx + 0x38]
mov qword [rax], rcx
mov rax, qword [rbx + 0x50]
mov dword [rax], edx
mov rcx, qword [rbx + 0x68]
test rcx, rcx
jne 0x140014916
mov rdx, qword [rbx + 0x80]
movsx ecx, dil
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, edi
mov eax, ecx
jmp 0x1400149d2
lea rax, [rsp + 0x40]
mov byte [rsp + 0x50], dil
mov qword [rsp + 0x38], rax
lea rdx, [rbx + 0x74]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x51]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x50]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::out_struct__Mbstatet____ptr64__char_const____ptr64__char_const____ptr64__char_const____ptr64____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x140014985
sub eax, 1
je 0x140014985
cmp eax, 2
jne 0x1400149cd
movsx ecx, byte [rsp + 0x50]
mov rdx, qword [rbx + 0x80]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, edi
mov eax, ecx
jmp 0x1400149d2
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x1400149b3
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x58]
mov r8, rsi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rsi, rax
jne 0x1400149cd
lea rax, [rsp + 0x50]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x48], rax
mov ecx, 0xffffffff
cmovne ecx, edi
mov eax, ecx
jmp 0x1400149d2
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.14008f700
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x140016680
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x1400be080]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x140016753
cmp byte [rcx + 0x71], 0
je 0x140016753
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
cmp eax, 0xffffffff
je 0x14001674f
mov rcx, qword [rbx + 0x68]
lea rax, [rsp + 0x30]
lea rdx, [rbx + 0x74]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x38]
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::unshift_struct__Mbstatet____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x140016714
sub eax, 1
je 0x140016718
cmp eax, 2
jne 0x14001674f
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14008f700
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x140016746
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x38]
mov r8, rdi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rdi, rax
jne 0x14001674f
cmp byte [rbx + 0x71], 0
sete al
jmp 0x1400166fc
xor al, al
jmp 0x1400166fc
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14008f700
add rsp, 0x60
pop rbx
ret