Function at 0x140021900
Capabilities:
Move file
Read file on windows

Disassembly:
push rdi
sub rsp, 0xa0
mov rdx, qword [0x140082038]
lea r8, [0x140085388]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rcx], xmm0
mov rdi, rcx
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm0
mov qword [rcx + 0x30], rax
lea rcx, [rsp + 0xb0]
call fcn.14004ccec
mov rcx, qword [rsp + 0xb0]
test rcx, rcx
je 0x140021d76
mov qword [rsp + 0x98], rbx
xor edx, edx
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x78], r13
lea r8d, [rdx + 2]
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x68], r15
call fcn.14004ca98
mov rcx, qword [rsp + 0xb0]
call fcn.14004c5f8
mov rcx, qword [rsp + 0xb0]
movsxd rbx, eax
call fcn.14004caa0
test ebx, ebx
jle 0x140021d35
mov rcx, rbx
mov r15, rbx
call fcn.1400462e4
mov r14, rax
test rax, rax
je 0x140021d35
mov r9, qword [rsp + 0xb0]
mov r8, rbx
mov edx, 1
mov rcx, rax
call fcn.14004d02c
cmp rax, rbx
jne 0x140021d20
lea r9, [rsp + 0xb8]
mov qword [rsp + 0xb8], 0
xor r8d, r8d
mov rdx, rbx
mov rcx, r14
call fcn.140014420
test rax, rax
je 0x140021d82
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0xc8], rax
test rax, rax
je 0x140021d82
lea rdx, [0x140085390]
mov rcx, rax
call fcn.140045648
mov r13, rax
test rax, rax
je 0x140021d82
lea rdx, [0x140085394]
mov rcx, rax
call fcn.140045648
mov r12, rax
test rax, rax
je 0x140021d82
lea rdx, [0x14008539c]
mov rcx, rax
call fcn.140045648
mov qword [rsp + 0x50], rax
mov rbx, rax
test rax, rax
je 0x140021d82
lea rdx, [0x1400853a4]
mov rcx, rax
call fcn.140045648
mov qword [rsp + 0x58], rax
mov rsi, rax
test rax, rax
je 0x140021d82
lea rdx, [0x1400853ac]
mov rcx, rax
call fcn.140045648
mov qword [rsp + 0x48], rax
test rax, rax
je 0x140021d82
lea rdx, [0x1400853b4]
mov rcx, rax
call fcn.140045648
mov rbp, rax
test rax, rax
je 0x140021d82
mov rdx, qword [rsp + 0x48]
mov rax, r12
sub rax, r13
sub rdx, rsi
sub rax, 4
sub rdx, 5
mov qword [rsp + 0xc0], rax
mov rcx, r13
sub rcx, qword [rsp + 0xc8]
mov rax, rbx
sub rax, r12
mov qword [rsp + 0x38], rdx
sub rax, 5
sub rcx, 5
mov qword [rsp + 0x28], rax
mov rdx, rbp
sub rdx, qword [rsp + 0x48]
mov rax, rsi
sub rax, rbx
mov qword [rsp + 0x20], rcx
sub rax, 5
mov rbx, 0xffffffffffffffff
sub rdx, 5
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x40], rdx
mov rsi, rbx
cmp byte [rsi + rbp + 1], 0
lea rsi, [rsi + 1]
jne 0x140021b45
call fcn.1400462e4
mov rcx, qword [rsp + 0xc0]
mov qword [rdi], rax
call fcn.1400462e4
mov rcx, qword [rsp + 0x28]
mov qword [rdi + 8], rax
call fcn.1400462e4
mov rcx, qword [rsp + 0x30]
mov qword [rdi + 0x10], rax
call fcn.1400462e4
mov rcx, qword [rsp + 0x38]
mov qword [rdi + 0x18], rax
call fcn.1400462e4
mov rcx, qword [rsp + 0x40]
mov qword [rdi + 0x20], rax
call fcn.1400462e4
lea rcx, [rsi - 4]
mov qword [rdi + 0x28], rax
call fcn.1400462e4
mov rcx, qword [rdi]
mov qword [rdi + 0x30], rax
test rcx, rcx
je 0x140021cf3
cmp qword [rdi + 8], 0
je 0x140021cf3
cmp qword [rdi + 0x10], 0
je 0x140021cf3
cmp qword [rdi + 0x18], 0
je 0x140021cf3
cmp qword [rdi + 0x20], 0
je 0x140021cf3
cmp qword [rdi + 0x28], 0
je 0x140021cf3
test rax, rax
je 0x140021cf3
mov r8, qword [rsp + 0x20]
mov rdx, qword [rsp + 0xc8]
dec r8
add rdx, 5
call fcn.14004f870
mov rax, qword [rdi]
lea rdx, [r13 + 4]
mov rcx, qword [rsp + 0x20]
mov r8, qword [rsp + 0xc0]
dec r8
mov byte [rax + rcx - 1], 0
mov rcx, qword [rdi + 8]
call fcn.14004f870
mov rax, qword [rdi + 8]
lea rdx, [r12 + 5]
mov rcx, qword [rsp + 0xc0]
mov r13, qword [rsp + 0x28]
mov byte [rax + rcx - 1], 0
mov rcx, qword [rdi + 0x10]
lea r8, [r13 - 1]
call fcn.14004f870
mov rax, qword [rdi + 0x10]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rdi + 0x18]
add rdx, 5
mov byte [rax + r13 - 1], 0
mov r13, qword [rsp + 0x30]
lea r8, [r13 - 1]
call fcn.14004f870
mov rax, qword [rdi + 0x18]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rdi + 0x20]
add rdx, 5
mov byte [rax + r13 - 1], 0
mov r13, qword [rsp + 0x38]
lea r8, [r13 - 1]
call fcn.14004f870
mov rax, qword [rdi + 0x20]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rdi + 0x28]
add rdx, 5
mov byte [rax + r13 - 1], 0
mov r13, qword [rsp + 0x40]
lea r8, [r13 - 1]
call fcn.14004f870
mov rax, qword [rdi + 0x28]
lea r8, [rsi - 5]
mov rcx, qword [rdi + 0x30]
lea rdx, [rbp + 5]
mov byte [rax + r13 - 1], 0
call fcn.14004f870
mov rax, qword [rdi + 0x30]
mov byte [rax + rsi - 5], 0
mov rcx, qword [rsp + 0xb8]
test rcx, rcx
je 0x140021d20
inc rbx
cmp byte [rcx + rbx], 0
jne 0x140021d00
mov r8, rbx
xor edx, edx
call fcn.1400452a0
mov rcx, qword [rsp + 0xb8]
call fcn.1400462d0
mov r8, r15
xor edx, edx
mov rcx, r14
call fcn.1400452a0
mov rcx, r14
call fcn.1400462d0
mov rcx, qword [rsp + 0xb0]
test rcx, rcx
je 0x140021d47
call fcn.14004c82c
mov r14, qword [rsp + 0x70]
mov r13, qword [rsp + 0x78]
mov r12, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x98]
mov r15, qword [rsp + 0x68]
mov rax, rdi
add rsp, 0xa0
pop rdi
ret
mov rcx, qword [rsp + 0xb0]
call fcn.14004c82c
mov rax, qword [0x140082038]
mov rbx, 0xffffffffffffffff
mov rcx, rbx
inc rcx
cmp word [rax + rcx*2], 0
jne 0x140021da0
add rcx, 4
mov edx, 2
call fcn.1400462ec
mov rsi, rax
test rax, rax
je 0x140021d47
mov rdx, qword [0x140082038]
sub rax, rdx
nop word [rax + rax]
movzx ecx, word [rdx]
mov word [rax + rdx], cx
lea rdx, [rdx + 2]
test cx, cx
jne 0x140021dd0
lea rax, [rsi - 2]
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140021de4
movsd xmm0, qword [0x1400853c0]
mov rdx, rsi
movsd qword [rax], xmm0
mov rcx, qword [0x140082038]
call fcn.140050194
nop word [rax + rax]
cmp word [rsi + rbx*2 + 2], 0
lea rbx, [rbx + 1]
jne 0x140021e10
lea r8, [rbx + rbx]
xor edx, edx
mov rcx, rsi
call fcn.1400452a0
mov rcx, rsi
call fcn.1400462d0
jmp 0x140021d47