Function at 0x180026890
Capabilities:
Delete file
Get file size
Read file on windows
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x100
mov rax, qword [0x180039000]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0x160]
mov rbx, rcx
lea rcx, [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x168]
mov dword [rsp + 0x58], r9d
mov qword [rsp + 0x68], r8
mov rsi, rdx
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x78], rax
or r13, 0xffffffffffffffff
xor r12d, r12d
xor r15d, r15d
xor ebp, ebp
xor edi, edi
call sym.dcapi.dll_dc_load_config
test eax, eax
jne 0x18002691e
mov ecx, dword [rsp + 0x8c]
and ecx, 0x80
call fcn.18001ea80
jmp 0x18002697b
lea rax, [0x1800024b0]
mov qword [0x18003ba58], rax
lea rax, [0x180005370]
mov qword [0x18003ba68], rax
call fcn.18000d4c0
test eax, eax
je 0x18002695f
lea rax, [0x180008290]
mov qword [0x18003ba58], rax
lea rax, [0x18000ab90]
mov qword [0x18003ba68], rax
lea rax, [0x18001e970]
mov qword [0x18003ba70], rax
lea rax, [0x18001e860]
mov qword [0x18003ba60], rax
xor r9d, r9d
mov qword [rsp + 0x30], rdi
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov rcx, rbx
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x1800269f0
lea rdx, [rsp + 0x50]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x1800269f0
xor eax, eax
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], eax
mov edx, 0x40000000
mov rcx, rsi
mov dword [rsp + 0x20], 1
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r13, rax
cmp rax, 0xffffffffffffffff
jne 0x1800269fd
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x180026c43
mov ecx, 0x2930
call sym.dcapi.dll_secure_alloc
mov rsi, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x180026d9e
mov ecx, 0x2930
call sym.dcapi.dll_secure_alloc
mov r12, rax
test rax, rax
je 0x180026d9e
mov ecx, pe_nt_image_headers64
call sym.dcapi.dll_secure_alloc
mov rdi, rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x180026d9b
mov ecx, 0x800
call sym.dcapi.dll_secure_alloc
mov r15, rax
test rax, rax
je 0x180026d91
xor ecx, ecx
mov edx, 0x100000
mov r8d, 0x3000
lea r9d, [rcx + 4]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbp, rax
test rax, rax
je 0x180026d91
xor edx, edx
mov r8d, 0x800
mov rcx, r15
call fcn.180011ff0
lea r9, [rsp + 0xb0]
xor r8d, r8d
xor edx, edx
mov ecx, 0x22004e
mov dword [rsp + 0x20], 0x40
call sym.dcapi.dll_dc_device_control
mov ebx, eax
test eax, eax
jne 0x180026bf2
lea r9, [r15 + 0x4e]
xor r8d, r8d
xor edx, edx
mov ecx, 0x22004e
mov dword [rsp + 0x20], 4
call sym.dcapi.dll_dc_device_control
mov ebx, eax
test eax, eax
jne 0x180026bf2
lea r9, [r15 + 0x56]
xor r8d, r8d
xor edx, edx
mov ecx, 0x22004e
mov dword [rsp + 0x20], pe_nt_image_headers64
call sym.dcapi.dll_dc_device_control
mov ebx, eax
test eax, eax
jne 0x180026bf2
mov ebx, 8
lea rcx, [r15 + 0x48]
mov eax, 2
mov dword [r15 + 0x4a], ebx
mov ebx, dword [rsp + 0x58]
mov dword [r15 + 0x40], 0x50524344
mov word [rcx], ax
mov qword [r15 + 0x25a], 0x800
mov dword [r15 + 0x52], ebx
call fcn.18001f030
lea r8, [rsp + 0xb0]
mov r9, rdi
mov dword [r15 + 0x44], eax
mov rax, qword [rsp + 0x68]
movsxd rdx, dword [rax]
lea rcx, [rax + 4]
call fcn.180026540
lea rcx, [r15 + 0x56]
mov r8, r12
mov edx, ebx
call fcn.18001edd0
mov r8, rsi
mov edx, ebx
mov rcx, rdi
call fcn.18001edd0
xor r9d, r9d
mov r8d, 0x800
mov rdx, r15
mov rcx, r15
mov qword [rsp + 0x20], rsi
call qword [rsi + 0x2920]
lea r9, [rsp + 0x48]
mov r8d, 0x800
movaps xmm0, xmmword [rsp + 0xb0]
mov rdx, r15
mov rcx, r13
mov qword [rsp + 0x20], 0
movups xmmword [r15], xmm0
movaps xmm1, xmmword [rsp + 0xc0]
movups xmmword [r15 + 0x10], xmm1
movaps xmm0, xmmword [rsp + 0xd0]
movups xmmword [r15 + 0x20], xmm0
movaps xmm1, xmmword [rsp + 0xe0]
movups xmmword [r15 + 0x30], xmm1
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x180026c9b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test rbp, rbp
je 0x180026c08
xor edx, edx
mov r8d, 0x8000
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualFree]
test r15, r15
je 0x180026c15
mov rcx, r15
call sym.dcapi.dll_secure_free
test rdi, rdi
je 0x180026c22
mov rcx, rdi
call sym.dcapi.dll_secure_free
test r12, r12
je 0x180026c2f
mov rcx, r12
call sym.dcapi.dll_secure_free
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x180026c3e
call sym.dcapi.dll_secure_free
mov rsi, qword [rsp + 0x60]
cmp r14, 0xffffffffffffffff
je 0x180026c52
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp r13, 0xffffffffffffffff
je 0x180026c6e
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x180026c6e
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, ebx
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.18000eda0
mov rbx, qword [rsp + 0x158]
add rsp, 0x100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rax, qword [rsp + 0x50]
xor ebx, ebx
test rax, rax
jle 0x180026d64
nop dword [rax + rax]
sub rax, rbx
mov esi, 0x100000
lea r9, [rsp + 0x48]
cmp rax, rsi
mov rdx, rbp
mov rcx, r14
cmovl esi, eax
mov qword [rsp + 0x20], 0
lea edi, [rsi + 0x7ff]
mov r8d, esi
and edi, 0xfffff800
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180026d7f
cmp dword [rsp + 0x48], esi
jb 0x180026d7f
mov r9, rbx
mov r8d, edi
mov rdx, rbp
mov rcx, rbp
mov esi, edi
mov qword [rsp + 0x20], r12
call qword [r12 + 0x2920]
lea r9, [rsp + 0x48]
mov r8d, edi
mov rdx, rbp
mov rcx, r13
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x180026d7f
cmp dword [rsp + 0x48], edi
jb 0x180026d7f
mov r8, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x50]
add rbx, rsi
mov rdx, rbx
call qword [rsp + 0x80]
test eax, eax
je 0x180026d70
mov rax, qword [rsp + 0x50]
cmp rbx, rax
jl 0x180026cb0
mov rdi, qword [rsp + 0x40]
xor ebx, ebx
jmp 0x180026bf2
mov rdi, qword [rsp + 0x40]
mov ebx, 0x3e3
jmp 0x180026bf2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rdi, qword [rsp + 0x40]
mov ebx, eax
jmp 0x180026bf2
mov ebx, 8
jmp 0x180026bf2
mov rdi, rax
mov ebx, 8
jmp 0x180026bf2