Function at 0x140020b5c
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.1400616e0
lea rcx, [rsp + 0x78]
lea rdx, str._SystemRoot_INF_
mov r8d, 0x24
call fcn.1400fa420
xor r11d, r11d
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x78]
lea rcx, [0x1401330e0]
xor r9d, r9d
mov dword [rsp + 0x9c], r11d
mov byte [rsp + 0x20], 1
call fcn.140076e04
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.1400037a8
mov rbx, qword [rsp + 0xf0]
cmp rbx, r14
je 0x14002101f
mov rcx, rbx
call fcn.1400deaf0
xor r8d, r8d
xor edx, edx
mov rcx, rbx
mov rdi, rax
call fcn.14005a608
lea r11d, [rdi + 0xc]
lea rcx, [rsp + 0x70]
movsxd rdx, r11d
call fcn.1400613f4
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 0x140021006
mov ecx, dword [rsp + 0xf8]
lea r8d, [r14 + 6]
xor edx, edx
add rcx, rsi
call fcn.1400f97d0
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 0x140020ce9
mov r12d, edx
lea eax, [rdx - 1]
mov r13d, r8d
mov ecx, 0xfffe
cmp word [rsi], cx
jne 0x140020cfc
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 0x140021006
mov r10d, 0x100
lea r11d, [rcx + 0x3b]
xor r9d, r9d
mov rdx, r9
mov r8, rsi
cmp r15, 3
jne 0x140020d53
movzx eax, byte [r8]
movzx ecx, byte [r8 + 1]
imul ax, r10w
add cx, ax
mov word [rsp + rdx*2 + 0x40], cx
jmp 0x140020d60
movzx eax, r13w
and ax, word [r8]
mov word [rsp + rdx*2 + 0x40], ax
inc rdx
add r8, r14
cmp rdx, 9
jl 0x140020d35
movzx eax, word [rsp + 0x40]
mov rdi, r9
or word [rsp + rdi*2 + 0x40], 0x20
inc rdi
cmp rdi, 6
jl 0x140020d74
mov word [rsp + 0xf0], r9w
cmp dword [rsp + 0x68], r9d
je 0x140020ea2
cmp word [rsp + 0x40], 0x63
jne 0x140020dfb
cmp word [rsp + 0x42], 0x6f
jne 0x140020fbf
cmp word [rsp + 0x44], 0x70
jne 0x140020fbf
cmp word [rsp + 0x46], 0x79
jne 0x140020fbf
cmp word [rsp + 0x48], 0x66
jne 0x140020fbf
cmp word [rsp + 0x4a], 0x69
jne 0x140020fbf
cmp word [rsp + 0x4c], 0x6c
jne 0x140020fbf
cmp word [rsp + 0x4e], 0x65
jne 0x140020fbf
cmp word [rsp + 0x50], 0x73
je 0x140020e5b
cmp word [rsp + 0x40], 0x64
jne 0x140020fbf
cmp word [rsp + 0x42], 0x65
jne 0x140020fbf
cmp word [rsp + 0x44], 0x6c
jne 0x140020fbf
cmp word [rsp + 0x46], 0x66
jne 0x140020fbf
cmp word [rsp + 0x48], 0x69
jne 0x140020fbf
cmp word [rsp + 0x4a], 0x6c
jne 0x140020fbf
cmp word [rsp + 0x4c], 0x65
jne 0x140020fbf
cmp word [rsp + 0x4e], 0x73
jne 0x140020fbf
mov rdx, rsi
xor r8d, r8d
mov rcx, rbx
sub rdx, qword [rsp + 0x60]
call fcn.14005a608
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 0x140020fb2
cmp ax, r11w
jne 0x140020fbf
cmp word [rsp + 0x42], 0x6f
jne 0x140020f32
cmp word [rsp + 0x44], 0x70
jne 0x140020fbf
cmp word [rsp + 0x46], 0x79
jne 0x140020fbf
cmp word [rsp + 0x48], 0x66
jne 0x140020fbf
cmp word [rsp + 0x4a], 0x69
jne 0x140020fbf
cmp word [rsp + 0x4c], 0x6c
jne 0x140020fbf
cmp word [rsp + 0x4e], 0x65
jne 0x140020fbf
cmp word [rsp + 0x50], 0x73
jne 0x140020fbf
mov rdx, rsi
xor r8d, r8d
mov rcx, rbx
sub rdx, qword [rsp + 0x60]
call fcn.14005a608
and dword [rsp + 0xf8], 0
mov eax, 0x43
mov word [rsp + 0xf0], ax
jmp 0x140020f90
cmp word [rsp + 0x42], 0x65
jne 0x140020fbf
cmp word [rsp + 0x44], 0x6c
jne 0x140020fbf
cmp word [rsp + 0x46], 0x66
jne 0x140020fbf
cmp word [rsp + 0x48], 0x69
jne 0x140020fbf
cmp word [rsp + 0x4a], 0x6c
jne 0x140020fbf
cmp word [rsp + 0x4c], 0x65
jne 0x140020fbf
cmp word [rsp + 0x4e], 0x73
jne 0x140020fbf
mov rdx, rsi
xor r8d, r8d
mov rcx, rbx
sub rdx, qword [rsp + 0x60]
call fcn.14005a608
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 0x140021006
movzx edx, r9w
cmp r15, 3
jne 0x140020fe4
movzx ecx, byte [rsi]
movzx eax, byte [rsi + 1]
imul cx, r10w
add cx, ax
mov word [rsp + rdi*2 + 0x40], cx
jmp 0x140020feb
mov dx, word [rsi]
and dx, r13w
mov eax, 0xa
add rsi, r14
cmp ax, dx
je 0x140020ffd
cmp rsi, rbp
jb 0x140020fc4
cmp rsi, rbp
jb 0x140020d2f
lea rcx, [rsp + 0x70]
call fcn.1400590a4
cmp rbx, 0xffffffffffffffff
je 0x14002101f
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rsp + 0x58]
call fcn.1400590a4
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret