Function at 0x180016318
Capabilities:
Delete file
Read file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0x90
mov rax, qword [0x180052d00]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov rsi, qword [rbp + 0x7f]
mov eax, 0x5143
mov r14, r9
mov r15, rdx
mov rbx, rcx
cmp r8d, eax
ja 0x180016b4a
je 0x180016b27
mov eax, 0x214
cmp r8d, eax
ja 0x180016a22
je 0x180016aee
sub r8d, 2
je 0x180016948
sub r8d, 3
je 0x180016aee
sub r8d, 1
je 0x180016880
sub r8d, 0x48
je 0x18001641c
cmp r8d, 0xc2
jne 0x180016ca3
mov rcx, qword [rcx + 0x18]
mov edx, 0x4e21
call qword [sym.imp.USER32.dll_GetDlgItem]
mov qword [rbx + 0x60], rax
call fcn.18000a3d0
mov rcx, rbx
mov dword [rbx + 0x130], eax
call fcn.180009010
mov rcx, qword [rbx + 0x60]
mov edx, 0xffffffeb
movsxd r8, ebx
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
mov rcx, qword [rbx + 0x60]
lea rax, [0x180016cc4]
movsxd r8, eax
mov edx, 0xfffffffc
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
mov qword [rbx + 0xb0], rax
mov r8d, 0x40
mov edx, 0x1036
mov rcx, qword [rbx + 0x60]
mov r9, r8
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x180016ca3
mov rax, qword [rcx + 0x60]
cmp qword [rsi], rax
jne 0x180016ca3
cmp dword [rsi + 0x10], 0xffffff4f
je 0x180016828
cmp dword [rsi + 0x10], 0xfffffff4
jne 0x180016ca3
mov rdx, qword [rcx + 0x108]
xor edi, edi
test rdx, rdx
je 0x180016ca3
mov ecx, dword [rsi + 0x18]
xorps xmm0, xmm0
xorps xmm1, xmm1
movups xmmword [rbp - 0x19], xmm0
movups xmmword [rbp + 7], xmm1
sub ecx, 1
je 0x180016711
sub ecx, 1
je 0x180016678
cmp ecx, 0xffff
jne 0x180016ca3
mov r14, qword [rdx + 0x268]
test r14, r14
je 0x180016549
movsx r8d, word [rdx + 0x21c]
mov r9d, 0x1800
mov ecx, r8d
imul ecx, dword [rsi + 0x38]
cmp dword [r14 + 0x21c], edi
je 0x1800164c7
mov edx, dword [r14 + 0x218]
cmp ecx, edx
jl 0x1800164c7
mov eax, ecx
sub eax, edx
cmp eax, r9d
jl 0x180016549
mov eax, ecx
mov dword [rbp - 0x21], edi
cdq
mov r12d, 0x2000
idiv r8d
mov dword [r14 + 0x21c], r12d
sub ecx, edx
sub ecx, r9d
cmovs ecx, edi
xor r9d, r9d
mov dword [r14 + 0x218], ecx
mov edx, ecx
mov rcx, qword [r14 + 0x210]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov rcx, qword [r14 + 0x210]
lea rdx, [r14 + 0x220]
lea r9, [rbp - 0x21]
mov qword [rsp + 0x20], rdi
mov r8d, r12d
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x18001653f
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
je 0x18001653f
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.180008f0c
jmp 0x180016549
mov eax, dword [rbp - 0x21]
mov dword [r14 + 0x21c], eax
movsxd r8, dword [rsi + 0x38]
lea r9, [rbp - 0x19]
mov rcx, qword [rbx + 0x60]
mov edx, 0x100e
call qword [sym.imp.USER32.dll_SendMessageW]
mov rax, qword [rbx + 0x108]
mov ecx, dword [rax + 0x250]
cmp qword [rsi + 0x38], rcx
mov ecx, 8
je 0x18001657d
mov ecx, 1
call fcn.18000a348
mov ecx, eax
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov qword [rbx + 0xe8], rax
cmp dword [rbx + 0xc4], edi
jne 0x1800165d7
movups xmm0, xmmword [rbp - 0x19]
mov rcx, qword [rbx + 0x68]
lea rdx, [rbp - 9]
xorps xmm1, xmm1
movdqu xmmword [rbx + 0xb8], xmm0
movups xmmword [rbp - 9], xmm1
call qword [sym.imp.USER32.dll_GetWindowRect]
mov rcx, qword [rbx + 0x68]
lea rdx, [rbp - 9]
call fcn.180008ea0
mov eax, dword [rbp + 3]
cmp eax, dword [rbp - 0x15]
jle 0x1800165e0
mov dword [rbx + 0xbc], eax
jmp 0x1800165e0
mov eax, dword [rbp - 0xd]
mov dword [rbx + 0xc4], eax
mov rcx, qword [rbx + 0xc8]
mov edx, 1
call qword [sym.imp.GDI32.dll_SetBkMode]
mov r8, qword [rbx + 0xe8]
lea rdx, [rbp - 0x19]
mov rcx, qword [rbx + 0xc8]
call qword [sym.imp.USER32.dll_FillRect]
mov r8d, dword [rsi + 0x38]
mov rcx, rbx
mov rdx, qword [rbx + 0xc8]
call fcn.18000de70
mov edi, dword [rbx + 0xf0]
jmp 0x180016658
mov rax, qword [rbx + 0x108]
mov r9d, edi
mov r8d, dword [rsi + 0x38]
mov rdx, qword [rbx + 0xc8]
movsx ecx, word [rax + 0x21c]
inc ecx
cmp edi, ecx
mov rcx, rbx
jne 0x180016651
call fcn.18000e0b4
jmp 0x180016656
call fcn.18000e58c
inc edi
cmp edi, dword [rbx + 0xf4]
jbe 0x180016625
mov rcx, qword [rbx + 0xe8]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov r8d, 4
jmp 0x18001681b
mov r8d, dword [rbx + 0xbc]
mov ecx, dword [rbx + 0xc4]
mov edx, dword [rbx + 0xb8]
sub ecx, r8d
mov rax, qword [rbx + 0xc8]
mov r9d, dword [rbx + 0xc0]
mov dword [rsp + 0x40], 0xcc0020
sub r9d, edx
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x30], edx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
mov rcx, qword [rsi + 0x20]
call qword [sym.imp.GDI32.dll_BitBlt]
mov rdx, qword [rbx + 0xe0]
mov rcx, qword [rbx + 0xc8]
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, qword [rbx + 0xd8]
mov rcx, qword [rbx + 0xc8]
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [rbx + 0xd0]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, qword [rbx + 0xc8]
call qword [sym.imp.GDI32.dll_DeleteDC]
mov qword [rbx + 0xf0], rdi
jmp 0x18001666d
xor edx, edx
lea rcx, [rbx + 0xb8]
lea r8d, [rdx + 0x10]
call fcn.18003b660
mov rcx, qword [rbx + 0x60]
lea rdx, [rbp - 0x19]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov rcx, qword [rsi + 0x20]
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov r8d, dword [rbp - 0xd]
mov edx, dword [rbp - 0x11]
sub r8d, dword [rbp - 0x15]
sub edx, dword [rbp - 0x19]
mov qword [rbx + 0xc8], rax
mov rcx, qword [rsi + 0x20]
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov rcx, qword [rbx + 0xc8]
mov rdx, rax
mov qword [rbx + 0xd0], rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, qword [rbx + 0x70]
mov rcx, qword [rbx + 0xc8]
mov qword [rbx + 0xd8], rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [rbx + 0x60]
lea rdx, [rbp - 0x19]
mov qword [rbx + 0xe0], rax
call qword [sym.imp.USER32.dll_GetClientRect]
mov rax, qword [rbx + 0x108]
mov r14d, 1
movsx ecx, word [rax + 0x21c]
inc ecx
cmp ecx, r14d
jb 0x180016815
movsxd r8, dword [rsi + 0x38]
lea r9, [rbp + 7]
mov rcx, qword [rbx + 0x60]
mov edx, 0x1038
mov dword [rbp + 0xb], r14d
mov dword [rbp + 7], edi
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [rbp + 0xf]
cmp dword [rbp - 0x19], eax
jg 0x1800167fd
mov eax, dword [rbp + 7]
cmp dword [rbp - 0x11], eax
jl 0x1800167fd
cmp dword [rbx + 0xf0], edi
jne 0x1800167f6
mov dword [rbx + 0xf0], r14d
mov dword [rbx + 0xf4], r14d
mov rax, qword [rbx + 0x108]
inc r14d
movsx ecx, word [rax + 0x21c]
inc ecx
cmp r14d, ecx
jbe 0x1800167b9
mov r8d, 0x30
xor edx, edx
mov rcx, r15
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
jmp 0x180016876
test byte [rsi + 0x18], 1
je 0x180016876
mov rax, qword [rcx + 0x108]
lea r14, [0x180057620]
test rax, rax
je 0x180016872
mov r9d, dword [rsi + 0x20]
mov rdx, r14
mov r8d, dword [rsi + 0x1c]
test r9d, r9d
jne 0x180016858
call fcn.180012200
jmp 0x180016872
movsx eax, word [rax + 0x21c]
inc eax
cmp r9d, eax
jne 0x18001686d
call fcn.1800122cc
jmp 0x180016872
call fcn.1800123a8
mov qword [rsi + 0x30], r14
mov eax, 1
jmp 0x180016ca5
mov rax, qword [rcx + 0x108]
xor edi, edi
test rax, rax
je 0x180016ca3
cmp r14, 1
jne 0x1800168fb
cmp dword [rax + 0x210], r14d
jne 0x1800168e7
mov dword [rcx + 0x12c], r14d
mov edx, 0x1015
movsxd r8, dword [rax + 0x250]
mov rcx, qword [rcx + 0x60]
mov r9, r8
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rbx + 0x18]
lea r9, [0x18001536c]
mov edx, 0x4e22
mov r8d, 0x1f4
call qword [sym.imp.USER32.dll_SetTimer]
mov rcx, qword [rbx + 0x60]
call qword [sym.imp.USER32.dll_SetFocus]
mov rcx, qword [rbx + 0x108]
mov ecx, dword [rcx + 0x210]
call fcn.18000a214
jmp 0x180016930
mov dword [rcx + 0x12c], edi
mov edx, 0x4e22
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.USER32.dll_KillTimer]
mov rax, qword [rbx + 0x108]
mov edx, 0x1015
mov rcx, qword [rbx + 0x60]
movsxd r8, dword [rax + 0x250]
mov r9, r8
call qword [sym.imp.USER32.dll_SendMessageW]
mov rax, qword [rbx + 0x108]
mov edx, 0x1015
movsxd r8, dword [rax + 0x250]
jmp 0x18001640a
mov r14, qword [rcx + 0x118]
xor edi, edi
mov rsi, qword [rcx + 0x110]
movabs rax, 0x6906906906906907
mov rcx, r14
mov r12d, edi
sub rcx, rsi
imul rcx
sar rdx, 8
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x1800169f2
mov r15d, edi
mov rcx, qword [r15 + rsi + 0x268]
test rcx, rcx
je 0x1800169b4
mov rcx, qword [rcx + 0x210]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbx + 0x110]
mov rcx, qword [r15 + rax + 0x268]
add rcx, 8
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov r14, qword [rbx + 0x118]
movabs rax, 0x6906906906906907
mov rsi, qword [rbx + 0x110]
mov rcx, r14
sub rcx, rsi
inc r12
imul rcx
add r15, 0x270
sar rdx, 8
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r12, rdx
jb 0x180016981
cmp rsi, r14
je 0x180016ca3
mov rcx, rsi
call fcn.180007338
add rsi, 0x270
cmp rsi, r14
jne 0x1800169fb
mov rax, qword [rbx + 0x110]
mov qword [rbx + 0x118], rax
jmp 0x180016ca3
sub r8d, 0x216
je 0x180016aee
sub r8d, 0x1b
je 0x180016aee
sub r8d, 1
je 0x180016aee
sub r8d, 0x4f0f
je 0x180016a6d
cmp r8d, 1
jne 0x180016ca3
call fcn.18000f660
mov dword [r14], eax
mov rcx, rbx
call fcn.18000f6fc
mov dword [rsi], eax
jmp 0x180016ca3
mov rax, qword [rcx + 0x108]
xor edi, edi
test rax, rax
je 0x180016ca3
movsx ecx, word [rax + 0x21e]
movsx eax, word [rax + 0x21c]
imul ecx, eax
mov eax, esi
cdq
idiv ecx
test edx, edx
jne 0x180016aa1
lea eax, [rdi + 1]
cmp r14d, esi
jne 0x180016aa3
mov eax, edi
xor r9d, r9d
mov dword [rsp + 0x20], eax
mov r8d, esi
mov edx, r14d
mov rcx, rbx
call fcn.180012ed4
mov rdx, qword [rbx + 0x108]
mov rcx, rbx
cmp dword [rdx + 0x228], edi
jne 0x180016ad3
mov r8d, dword [rdx + 0x254]
jmp 0x180016ade
movsx r8d, word [rdx + 0x21c]
inc r8d
mov edx, dword [rdx + 0x250]
call fcn.180008364
jmp 0x180016ca3
mov rax, qword [rcx]
lea rdx, [rbp - 9]
call qword [rax + 0x38]
mov eax, dword [rbp + 3]
xor edx, edx
mov r9d, dword [rbp - 5]
mov r8d, dword [rbp - 9]
mov rcx, qword [rbx + 0x60]
mov dword [rsp + 0x30], 0x44
mov dword [rsp + 0x28], eax
mov eax, dword [rbp - 1]
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_SetWindowPos]
jmp 0x180016ca3
mov r8, qword [rcx + 0x108]
test r8, r8
je 0x180016ca3
mov r8d, dword [r8 + 0x224]
mov edx, esi
call fcn.180012d74
jmp 0x180016ca3
mov eax, 0x5149
cmp r8d, eax
ja 0x180016c28
je 0x180016bfa
sub r8d, 0x5144
je 0x180016a61
sub r8d, 1
je 0x180016bc4
sub r8d, 1
je 0x180016bb0
sub r8d, 1
je 0x180016ba4
cmp r8d, 1
jne 0x180016ca3
mov rax, qword [rcx + 0x108]
xor edi, edi
test rax, rax
je 0x180016ca1
mov edi, dword [rax + 0x250]
jmp 0x180016ca1
mov edx, esi
call fcn.180012c64
jmp 0x180016ca3
mov rdx, qword [rcx + 0x108]
mov rcx, rsi
call fcn.1800075fc
jmp 0x180016ca3
mov rax, qword [rcx + 0x108]
xor edx, edx
movsx ecx, word [rax + 0x21e]
movsx eax, word [rax + 0x21c]
imul ecx, eax
mov rax, r14
movsxd r8, ecx
mov rcx, rbx
div r8
mov r8d, esi
mov rdx, rax
call fcn.180012cd0
jmp 0x180016ca3
xor edi, edi
cmp qword [rcx + 0x108], rdi
je 0x180016ca3
call fcn.18000f7bc
mov rax, qword [rbx + 0x108]
xor edx, edx
mov rcx, rbx
mov word [rax + 0x21c], si
call fcn.180014968
jmp 0x180016ca3
sub r8d, 0x514a
je 0x180016c7e
sub r8d, 1
je 0x180016c71
sub r8d, 1
je 0x180016c5a
cmp r8d, 3
jne 0x180016ca3
mov rax, qword [rcx + 0x108]
test rax, rax
je 0x180016ca3
mov eax, dword [rax + 0x208]
jmp 0x180016a66
mov rcx, qword [rcx + 0x50]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x7d6
call qword [rbx + 0x48]
jmp 0x180016a66
mov r8d, esi
mov edx, r14d
call fcn.18001400c
jmp 0x180016ca3
xor edi, edi
cmp qword [rcx + 0x108], rdi
je 0x180016ca1
mov rcx, qword [rcx + 0x60]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1004
call qword [sym.imp.USER32.dll_SendMessageW]
lea edi, [rax - 1]
mov dword [rsi], edi
xor eax, eax
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.180020620
add rsp, 0x90
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret