Function at 0x140001a30
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
xor eax, eax
mov byte [rsp + 0x2a], r9b
mov rsi, rcx
mov ebx, edx
mov rdi, r8
mov ebp, r9d
mov dl, byte [rsi + rax + 6]
lea r12, [rsp + 0x3d]
mov byte [rsp + rax + 0x3d], dl
inc rax
cmp rax, 0x32
jne 0x140001a52
lea rcx, str.PPF3.0_patch_information:_n
mov byte [rsp + 0x6f], 0
call sym.printf
mov rdx, r12
lea rcx, str.Description_:__s_n
call sym.printf
lea rcx, str.File_id.diz_:
call sym.printf
mov r8d, 3
mov edx, ebx
mov rcx, rsi
call sym.ShowFileId
mov r12d, eax
test eax, eax
jne 0x140001ab7
lea rcx, str.not_available_n
call sym.printf
mov r15b, byte [rsi + 0x39]
mov r13b, byte [rsi + 0x3a]
cmp bpl, 2
jne 0x140001ad5
lea rcx, str.Error:_no_undo_data_available_n
test r13b, r13b
je 0x140001cf8
test r15b, r15b
mov rbp, qword [dbg.__acrt_iob_func]
je 0x140001baf
xor ecx, ecx
mov r14b, byte [rsi + 0x38]
call rbp
mov rcx, rax
call sym.fflush
xor eax, eax
lea rcx, [0x1400d0a60]
mov r8b, byte [rsi + rax + 0x3c]
mov byte [rcx + rax], r8b
inc rax
cmp rax, 0x400
jne 0x140001afe
xor r8d, r8d
mov edx, 0x80a0
test r14b, r14b
jne 0x140001b24
mov edx, 0x9320
mov rcx, rdi
call dbg.fseeko64
lea rcx, [0x1400d0e60]
mov r9, rdi
mov r8d, 0x400
mov edx, 1
call sym.fread
lea rcx, str.Error:_Can_not_read_bin_block_n
cmp rax, 0x400
jne 0x140001cf8
mov r8d, 0x400
lea rdx, [0x1400d0e60]
lea rcx, [0x1400d0a60]
call sym.memcmp
test al, al
je 0x140001baf
lea rcx, str.Binblock_Patchvalidation_failed._continue____y_n_:
call sym.printf
mov ecx, 1
call rbp
mov rcx, rax
call sym.fflush
xor ecx, ecx
call rbp
mov rcx, rax
call sym.getc
lea rcx, str.Aborted..._n
and eax, 0xffffffdf
cmp al, 0x59
jne 0x140001cf8
mov ebx, ebx
test r15b, r15b
je 0x140001bc5
sub rbx, 0x43c
mov r14d, 0x43c
jmp 0x140001bcf
sub rbx, 0x3c
mov r14d, 0x3c
test r12d, r12d
je 0x140001bde
add r12d, 0x24
movsxd r12, r12d
sub rbx, r12
lea rcx, str.Patching_...
lea r15, str.reading..._b_b_b_b_b_b_b_b_b_b
call sym.printf
lea r12, [0x1400d0860]
mov rcx, r15
call sym.printf
mov ecx, 1
call rbp
mov rcx, rax
call sym.fflush
mov eax, r14d
cmp byte [rsp + 0x2a], 1
lea r11d, [r14 + 9]
mov rdx, qword [rsi + rax]
lea eax, [r14 + 8]
mov r9b, byte [rsi + rax]
movzx r14d, r9b
jne 0x140001cbe
xor eax, eax
cmp r14d, eax
jle 0x140001c48
lea ecx, [r11 + rax]
mov cl, byte [rsi + rcx]
mov byte [r12 + rax], cl
inc rax
jmp 0x140001c33
lea rcx, str.writing..._b_b_b_b_b_b_b_b_b_b
mov dword [rsp + 0x2c], r11d
mov byte [rsp + 0x2b], r9b
mov qword [rsp + 0x20], rdx
call sym.printf
mov ecx, 1
call rbp
mov rcx, rax
call sym.fflush
mov rdx, qword [rsp + 0x20]
xor r8d, r8d
mov rcx, rdi
call dbg.fseeko64
mov r9, rdi
mov edx, 1
mov rcx, r12
movzx r8d, byte [rsp + 0x2b]
mov qword [rsp + 0x20], r8
call sym.fwrite
lea eax, [r14 + 9]
mov r8, qword [rsp + 0x20]
mov r11d, dword [rsp + 0x2c]
cdqe
sub rbx, rax
test r13b, r13b
je 0x140001ce5
lea r14d, [r11 + r14*2]
sub rbx, r8
jmp 0x140001ce8
cmp byte [rsp + 0x2a], 2
jne 0x140001c48
xor eax, eax
lea ecx, [r11 + r14]
cmp r14d, eax
jle 0x140001c48
lea r8d, [rcx + rax]
mov r8b, byte [rsi + r8]
mov byte [r12 + rax], r8b
inc rax
jmp 0x140001ccb
add r14d, r11d
test rbx, rbx
jne 0x140001bf8
lea rcx, str.successful._n
call sym.printf
nop
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret