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

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
mov rbx, rcx
lea rcx, [rsp + 0x58]
mov edx, 0x209
call fcn.1400619b4
lea rcx, [rsp + 0x78]
lea rdx, str._SystemRoot_INF_
mov r8d, 0x24
call fcn.1400fafa0
xor r11d, r11d
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x78]
lea rcx, [0x1401340d0]
xor r9d, r9d
mov dword [rsp + 0x9c], r11d
mov byte [rsp + 0x20], 1
call fcn.1400770b4
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rdx, qword [rsp + 0x58]
mov rcx, rbx
mov r8d, eax
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
xor r14d, r14d
mov r8d, 0xc0000000
mov ecx, r14d
mov qword [rsp + 0x38], r14
cmp eax, r14d
sete cl
lea r15d, [r14 + 3]
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x68], ecx
lea rcx, [rsp + 0xf0]
mov rdx, rbx
mov r9d, r15d
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0xf0], r14
mov qword [rsp + 0x20], r14
call fcn.1400037a0
mov rbx, qword [rsp + 0xf0]
cmp rbx, r14
je 0x1400212c7
mov rcx, rbx
call fcn.1400df220
xor r8d, r8d
xor edx, edx
mov rcx, rbx
mov rdi, rax
call fcn.14005a8d8
lea r11d, [rdi + 0xc]
lea rcx, [rsp + 0x70]
movsxd rdx, r11d
call fcn.1400616c8
mov rsi, qword [rsp + 0x70]
lea r9, [rsp + 0xf8]
mov rdx, rsi
mov r8d, edi
mov rcx, rbx
mov qword [rsp + 0x60], rsi
mov dword [rsp + 0xf8], r14d
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0xf8], r15d
jbe 0x1400212ae
mov ecx, dword [rsp + 0xf8]
lea r8d, [r14 + 6]
xor edx, edx
add rcx, rsi
call fcn.1400fa350
mov ebp, dword [rsp + 0xf8]
mov ecx, 0xfeff
add rbp, rsi
lea r12d, [r14 + 1]
mov eax, r14d
lea edx, [r14 + 2]
mov r13d, 0xff
mov r8d, 0xffff
cmp word [rsi], cx
jne 0x140020f91
mov r12d, edx
lea eax, [rdx - 1]
mov r13d, r8d
mov ecx, 0xfffe
cmp word [rsi], cx
jne 0x140020fa4
mov r12d, edx
mov eax, r15d
mov r13d, r8d
xor ecx, ecx
mov word [rsp + 0x40], r14w
movsxd r15, eax
movsxd r14, r12d
mov qword [rsp + 0x42], rcx
mov qword [rsp + 0x4a], rcx
mov word [rsp + 0x52], cx
cmp rsi, rbp
jae 0x1400212ae
mov r10d, 0x100
lea r11d, [rcx + 0x3b]
xor r9d, r9d
mov rdx, r9
mov r8, rsi
cmp r15, 3
jne 0x140020ffb
movzx eax, byte [r8]
movzx ecx, byte [r8 + 1]
imul ax, r10w
add cx, ax
mov word [rsp + rdx*2 + 0x40], cx
jmp 0x140021008
movzx eax, r13w
and ax, word [r8]
mov word [rsp + rdx*2 + 0x40], ax
inc rdx
add r8, r14
cmp rdx, 9
jl 0x140020fdd
movzx eax, word [rsp + 0x40]
mov rdi, r9
or word [rsp + rdi*2 + 0x40], 0x20
inc rdi
cmp rdi, 6
jl 0x14002101c
mov word [rsp + 0xf0], r9w
cmp dword [rsp + 0x68], r9d
je 0x14002114a
cmp word [rsp + 0x40], 0x63
jne 0x1400210a3
cmp word [rsp + 0x42], 0x6f
jne 0x140021267
cmp word [rsp + 0x44], 0x70
jne 0x140021267
cmp word [rsp + 0x46], 0x79
jne 0x140021267
cmp word [rsp + 0x48], 0x66
jne 0x140021267
cmp word [rsp + 0x4a], 0x69
jne 0x140021267
cmp word [rsp + 0x4c], 0x6c
jne 0x140021267
cmp word [rsp + 0x4e], 0x65
jne 0x140021267
cmp word [rsp + 0x50], 0x73
je 0x140021103
cmp word [rsp + 0x40], 0x64
jne 0x140021267
cmp word [rsp + 0x42], 0x65
jne 0x140021267
cmp word [rsp + 0x44], 0x6c
jne 0x140021267
cmp word [rsp + 0x46], 0x66
jne 0x140021267
cmp word [rsp + 0x48], 0x69
jne 0x140021267
cmp word [rsp + 0x4a], 0x6c
jne 0x140021267
cmp word [rsp + 0x4c], 0x65
jne 0x140021267
cmp word [rsp + 0x4e], 0x73
jne 0x140021267
mov rdx, rsi
xor r8d, r8d
mov rcx, rbx
sub rdx, qword [rsp + 0x60]
call fcn.14005a8d8
and qword [rsp + 0x20], 0
mov eax, 0x3b
lea r9, [rsp + 0xf8]
lea rdx, [rsp + 0xf0]
mov r8d, r12d
mov rcx, rbx
mov word [rsp + 0xf0], ax
call qword [sym.imp.KERNEL32.dll_ReadFile]
jmp 0x14002125a
cmp ax, r11w
jne 0x140021267
cmp word [rsp + 0x42], 0x6f
jne 0x1400211da
cmp word [rsp + 0x44], 0x70
jne 0x140021267
cmp word [rsp + 0x46], 0x79
jne 0x140021267
cmp word [rsp + 0x48], 0x66
jne 0x140021267
cmp word [rsp + 0x4a], 0x69
jne 0x140021267
cmp word [rsp + 0x4c], 0x6c
jne 0x140021267
cmp word [rsp + 0x4e], 0x65
jne 0x140021267
cmp word [rsp + 0x50], 0x73
jne 0x140021267
mov rdx, rsi
xor r8d, r8d
mov rcx, rbx
sub rdx, qword [rsp + 0x60]
call fcn.14005a8d8
and dword [rsp + 0xf8], 0
mov eax, 0x43
mov word [rsp + 0xf0], ax
jmp 0x140021238
cmp word [rsp + 0x42], 0x65
jne 0x140021267
cmp word [rsp + 0x44], 0x6c
jne 0x140021267
cmp word [rsp + 0x46], 0x66
jne 0x140021267
cmp word [rsp + 0x48], 0x69
jne 0x140021267
cmp word [rsp + 0x4a], 0x6c
jne 0x140021267
cmp word [rsp + 0x4c], 0x65
jne 0x140021267
cmp word [rsp + 0x4e], 0x73
jne 0x140021267
mov rdx, rsi
xor r8d, r8d
mov rcx, rbx
sub rdx, qword [rsp + 0x60]
call fcn.14005a8d8
mov r11d, 0x44
mov word [rsp + 0xf0], r11w
and qword [rsp + 0x20], 0
lea r9, [rsp + 0xf8]
lea rdx, [rsp + 0xf0]
mov r8d, r12d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
xor r9d, r9d
mov r10d, 0x100
lea r11d, [r9 + 0x3b]
cmp rsi, rbp
jae 0x1400212ae
movzx edx, r9w
cmp r15, 3
jne 0x14002128c
movzx ecx, byte [rsi]
movzx eax, byte [rsi + 1]
imul cx, r10w
add cx, ax
mov word [rsp + rdi*2 + 0x40], cx
jmp 0x140021293
mov dx, word [rsi]
and dx, r13w
mov eax, 0xa
add rsi, r14
cmp ax, dx
je 0x1400212a5
cmp rsi, rbp
jb 0x14002126c
cmp rsi, rbp
jb 0x140020fd7
lea rcx, [rsp + 0x70]
call fcn.140059370
cmp rbx, 0xffffffffffffffff
je 0x1400212c7
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rsp + 0x58]
call fcn.140059370
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret