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

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x50], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov r14, rdx
mov r13, rcx
xor edi, edi
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], rdi
lea rcx, [rbp - 0x28]
call fcn.18005d2c0
nop
lea rdx, [0x180281194]
lea rcx, [rbp - 0x28]
call fcn.18005d0bc
lea esi, [rdi + 0x20]
lea r15d, [rdi + 7]
cmp rax, 0xffffffffffffffff
je 0x18005ba1d
lea r8, [rax + 1]
or r9, 0xffffffffffffffff
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x28]
call fcn.18005d018
mov rbx, rax
lea rax, [rbp - 0x28]
cmp rax, rbx
je 0x18005ba14
lea rcx, [rbp - 0x28]
call fcn.18005e40c
mov r8d, esi
mov rdx, rbx
lea rcx, [rbp - 0x28]
call fcn.1801c2370
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], r15
mov word [rbx], di
lea rcx, [rbp - 0x48]
call fcn.18005e40c
lea rdx, [0x180281198]
lea rcx, [rbp - 0x28]
call fcn.18005d0bc
cmp rax, 0xffffffffffffffff
je 0x18005ba7e
mov r9, rax
xor r8d, r8d
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x28]
call fcn.18005d018
mov rbx, rax
lea rax, [rbp - 0x28]
cmp rax, rbx
je 0x18005ba75
lea rcx, [rbp - 0x28]
call fcn.18005e40c
mov r8, rsi
mov rdx, rbx
lea rcx, [rbp - 0x28]
call fcn.1801c2370
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], r15
mov word [rbx], di
lea rcx, [rbp - 0x48]
call fcn.18005e40c
lea rcx, [rbp - 0x28]
call fcn.18005af4c
cmp qword [rbp - 0x18], rdi
je 0x18005beba
lea rdx, [rbp - 0x28]
mov rcx, r13
call fcn.18005b7c4
test al, al
jne 0x18005beba
mov qword [rbp - 0x48], rdi
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x40], xmm0
mov byte [rbp + 0x50], 2
lea r8, [rbp + 0x50]
xor edx, edx
lea rcx, [rbp - 0x48]
call fcn.18005d810
mov edx, dword [rbp - 0x18]
lea edx, [rdx*4 + 0x314]
lea rcx, [rbp - 0x48]
call fcn.18005d774
mov byte [rbp + 0x50], sil
mov r12d, 1
mov rdx, qword [rbp - 0x40]
cmp qword [rbp - 0x38], rdx
je 0x18005baf7
mov byte [rdx], sil
add rdx, r12
mov qword [rbp - 0x40], rdx
jmp 0x18005bb04
lea r8, [rbp + 0x50]
lea rcx, [rbp - 0x48]
call fcn.18005d810
mov edx, 4
lea rcx, [rbp - 0x48]
call fcn.18005d774
mov edx, r12d
lea rcx, [rbp - 0x48]
call fcn.18005d774
mov edx, 0x21000000
lea rcx, [rbp - 0x48]
call fcn.18005d774
mov rax, qword [rbp - 0x18]
mov byte [rbp + 0x50], al
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x40]
cmp rcx, rdx
je 0x18005bb4b
mov byte [rdx], al
add rdx, r12
mov qword [rbp - 0x40], rdx
jmp 0x18005bb60
lea r8, [rbp + 0x50]
lea rcx, [rbp - 0x48]
call fcn.18005d810
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x40]
mov rbx, rdi
cmp qword [rbp - 0x18], rdi
jbe 0x18005bba8
lea rax, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae rax, qword [rbp - 0x28]
lea r8, [rax + rbx*2]
cmp rcx, rdx
je 0x18005bb8e
mov al, byte [r8]
mov byte [rdx], al
add rdx, r12
mov qword [rbp - 0x40], rdx
jmp 0x18005bb9f
lea rcx, [rbp - 0x48]
call fcn.18005d810
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x40]
add rbx, r12
cmp rbx, qword [rbp - 0x18]
jb 0x18005bb69
mov byte [rbp + 0x50], 0x22
cmp rcx, rdx
je 0x18005bbbd
mov byte [rdx], 0x22
add rdx, r12
mov qword [rbp - 0x40], rdx
jmp 0x18005bbca
lea r8, [rbp + 0x50]
lea rcx, [rbp - 0x48]
call fcn.18005d810
mov edx, dword [rbp - 0x18]
add edx, 0x1a
lea rcx, [rbp - 0x48]
call fcn.18005d774
mov eax, 0x3018
movzx edx, word [rbp - 0x18]
add dx, ax
lea rcx, [rbp - 0x48]
call fcn.18005d7c0
mov edx, 0x310b3009
lea rcx, [rbp - 0x48]
call fcn.18005d774
mov ebx, 0x6035504
mov edx, ebx
lea rcx, [rbp - 0x48]
call fcn.18005d774
mov edx, 0x6130245
lea rcx, [rbp - 0x48]
call fcn.18005d774
mov byte [rbp + 0x50], 0x4e
mov rdx, qword [rbp - 0x40]
cmp qword [rbp - 0x38], rdx
je 0x18005bc34
mov byte [rdx], 0x4e
add rdx, r12
mov qword [rbp - 0x40], rdx
jmp 0x18005bc41
lea r8, [rbp + 0x50]
lea rcx, [rbp - 0x48]
call fcn.18005d810
mov eax, 0x3109
movzx edx, word [rbp - 0x18]
add dx, ax
lea rcx, [rbp - 0x48]
call fcn.18005d7c0
mov eax, 0x3007
movzx edx, word [rbp - 0x18]
add dx, ax
lea rcx, [rbp - 0x48]
call fcn.18005d7c0
mov edx, ebx
lea rcx, [rbp - 0x48]
call fcn.18005d774
mov edx, 0x313
lea rcx, [rbp - 0x48]
call fcn.18005d7c0
mov rax, qword [rbp - 0x18]
mov byte [rbp + 0x50], al
mov rbx, qword [rbp - 0x40]
cmp qword [rbp - 0x38], rbx
je 0x18005bca0
mov byte [rbx], al
add rbx, r12
mov qword [rbp - 0x40], rbx
jmp 0x18005bcb4
lea r8, [rbp + 0x50]
mov rdx, rbx
lea rcx, [rbp - 0x48]
call fcn.18005d810
mov rbx, qword [rbp - 0x40]
mov rsi, rdi
cmp qword [rbp - 0x18], rdi
jbe 0x18005bcfc
lea rax, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae rax, qword [rbp - 0x28]
lea r8, [rax + rsi*2]
cmp qword [rbp - 0x38], rbx
je 0x18005bce3
mov al, byte [r8]
mov byte [rbx], al
add rbx, r12
mov qword [rbp - 0x40], rbx
jmp 0x18005bcf3
mov rdx, rbx
lea rcx, [rbp - 0x48]
call fcn.18005d810
mov rbx, qword [rbp - 0x40]
add rsi, r12
cmp rsi, qword [rbp - 0x18]
jb 0x18005bcbd
mov byte [rbp + 0x50], 0x23
cmp qword [rbp - 0x38], rbx
je 0x18005bd12
mov byte [rbx], 0x23
add rbx, r12
mov qword [rbp - 0x40], rbx
jmp 0x18005bd26
lea r8, [rbp + 0x50]
mov rdx, rbx
lea rcx, [rbp - 0x48]
call fcn.18005d810
mov rbx, qword [rbp - 0x40]
mov r15, rbx
mov rsi, qword [rbp - 0x48]
sub r15, rsi
cmp qword [r14 + 0x18], 8
jb 0x18005bd3a
mov r14, qword [r14]
lea rdx, [0x180281238]
mov rcx, r14
call fcn.1801c91e8
mov r14, rax
test rax, rax
je 0x18005be36
xor edx, edx
lea r8d, [rdx + 2]
mov rcx, rax
call fcn.1801c9b24
mov rcx, r14
call fcn.1801ca07c
mov ebx, eax
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1801c9b24
mov edx, ebx
lea rcx, [rbp - 0x48]
call fcn.18005d774
mov r9, r14
mov r8, r12
mov rdx, r12
lea rcx, [rbp + 0x48]
call fcn.1801c9490
mov rbx, qword [rbp - 0x40]
test rax, rax
je 0x18005bddc
cmp qword [rbp - 0x38], rbx
je 0x18005bdb4
mov al, byte [rbp + 0x48]
mov byte [rbx], al
add rbx, r12
mov qword [rbp - 0x40], rbx
jmp 0x18005bdc8
lea r8, [rbp + 0x48]
mov rdx, rbx
lea rcx, [rbp - 0x48]
call fcn.18005d810
mov rbx, qword [rbp - 0x40]
mov r9, r14
mov r8, r12
mov rdx, r12
lea rcx, [rbp + 0x48]
call fcn.1801c9490
jmp 0x18005bd9b
mov rcx, r14
call fcn.1801c95dc
mov dword [rbp + 0x50], 0x4550306
mov byte [rbp + 0x54], 3
mov r14d, r15d
mov r15, rbx
mov rsi, qword [rbp - 0x48]
sub r15, rsi
lea r12, [r15 - 5]
jmp 0x18005be1c
lea rcx, [rsi + r14]
mov r8d, 5
lea rdx, [rbp + 0x50]
call fcn.1801c2c00
test eax, eax
je 0x18005be23
inc r14
cmp r14, r12
jb 0x18005be02
jmp 0x18005be30
mov cl, byte [rsi + r14 + 5]
mov rax, qword [rbp - 0x18]
mov byte [rsi + rax + 0x30], cl
mov r12d, 1
lea eax, [r15 - 5]
bswap eax
mov dword [rsi + 1], eax
cmp qword [r13 + 0x18], 8
jb 0x18005be4a
mov r13, qword [r13]
lea rdx, [0x180281240]
mov rcx, r13
call fcn.1801c91e8
mov r14, rax
test rax, rax
je 0x18005be89
cmp rbx, rsi
je 0x18005be80
lea rcx, [rsi + rdi]
mov r9, r14
mov r8, r12
mov rdx, r12
call fcn.1801c9890
add rdi, r12
cmp rdi, r15
jb 0x18005be66
mov rcx, r14
call fcn.1801c95dc
nop
mov rdx, qword [rbp - 0x38]
sub rdx, rsi
mov rax, rsi
cmp rdx, 0x1000
jb 0x18005beb1
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005bedb
mov rcx, rsi
call fcn.18009e42c
nop
lea rcx, [rbp - 0x28]
call fcn.18005e40c
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1801c897c
nop
int3