Function at 0x140010860
Capabilities:
Read file on windows

Disassembly:
push rbp
push rbx
push rsi
push r15
lea rbp, [rsp - 0x3f]
sub rsp, 0x98
mov rax, qword [0x14005bed0]
xor rax, rsp
mov qword [rbp + 0x17], rax
xor esi, esi
xor eax, eax
mov r15, rdx
mov dword [rdx], esi
xor edx, edx
mov qword [rbp - 0x11], r8
mov rbx, rcx
mov qword [rbp - 1], rsi
mov word [rbp + 7], si
mov qword [rbp + 9], rax
mov byte [rbp + 0x11], al
mov qword [rbp - 0x21], rsi
mov qword [rbp - 0x19], rsi
call fcn.140021788
test eax, eax
je 0x1400108c4
call fcn.14001e770
mov ecx, dword [rax]
lea eax, [rsi + 2]
mov dword [r15], ecx
jmp 0x140010c33
mov qword [rsp + 0x90], r12
mov r12d, 0x40
mov edx, 0x8000
mov r8d, r12d
mov rcx, rbx
call fcn.140021690
mov ebx, eax
cmp eax, 0xffffffff
jne 0x1400108fb
call fcn.14001e770
mov ecx, dword [rax]
lea eax, [rbx + 4]
mov dword [r15], ecx
jmp 0x140010c2b
mov ecx, eax
mov qword [rsp + 0xd8], rdi
call fcn.1400200fc
mov edi, eax
mov dword [rbp - 9], eax
cmp eax, 0xffffffff
je 0x140010c8d
test eax, eax
je 0x140010c8d
mov edx, 0x9040
mov ecx, 1
mov qword [rsp + 0x80], r14
call fcn.140021b94
mov r14, rax
test rax, rax
jne 0x140010959
call fcn.14001e770
mov ecx, dword [rax]
mov dword [r15], ecx
mov ecx, ebx
call fcn.140020b00
lea eax, [r14 + 4]
jmp 0x140010c1b
mov r8d, 2
or edx, 0xffffffff
mov ecx, ebx
call fcn.140020c5c
lea rdx, [rbp - 0x29]
mov r8d, 1
mov ecx, ebx
call fcn.140020928
cmp eax, 1
je 0x14001099e
call fcn.14001e770
mov ecx, dword [rax]
mov dword [r15], ecx
mov ecx, ebx
call fcn.140020b00
mov rcx, r14
or ebx, 0xffffffff
call fcn.14001ccf0
mov r14, rsi
movzx eax, byte [rbp - 0x29]
cmp al, 0x42
je 0x1400109cd
cmp al, 0x54
je 0x1400109cd
cmp ebx, 0xffffffff
je 0x1400109b6
mov ecx, ebx
call fcn.140020b00
test r14, r14
je 0x1400109c3
mov rcx, r14
call fcn.14001ccf0
mov eax, 5
jmp 0x140010c1b
xor r8d, r8d
xor edx, edx
mov ecx, ebx
mov qword [rsp + 0x88], r13
call fcn.140020c5c
xor r8d, r8d
cmp byte [rbp - 0x29], 0x42
mov ecx, ebx
jne 0x140010a1b
lea edx, [rdi - 0x101]
call fcn.140020c5c
lea r13, [r14 + 0x400]
mov r8d, 0x100
mov rdx, r13
mov ecx, ebx
call fcn.140020928
cmp eax, 0x100
je 0x140010b5f
jmp 0x140010a44
lea edx, [rdi - 0x201]
call fcn.140020c5c
lea rdi, [r14 + 0x800]
mov r8d, 0x200
mov rdx, rdi
mov ecx, ebx
call fcn.140020928
cmp eax, 0x200
je 0x140010a71
call fcn.14001e770
mov ecx, dword [rax]
mov dword [r15], ecx
cmp ebx, 0xffffffff
je 0x140010a5a
mov ecx, ebx
call fcn.140020b00
test r14, r14
je 0x140010a67
mov rcx, r14
call fcn.14001ccf0
mov eax, 1
jmp 0x140010c13
lea r13, [r14 + 0x400]
mov word [rbp + 7], 0x7830
mov rsi, r13
mov rax, qword [rdi]
lea rdx, [rbp + 0x10]
lea r8, [rbp + 9]
mov qword [rbp + 9], rax
mov byte [rbp + 0x11], 0
nop word [rax + rax]
movzx eax, byte [r8]
movzx ecx, byte [rdx]
inc r8
mov byte [rdx], al
mov byte [r8 - 1], cl
dec rdx
cmp rdx, r8
ja 0x140010aa0
lea rdx, [rbp + 0xa]
lea r8, [rbp + 9]
movzx eax, byte [r8]
movzx ecx, byte [rdx]
inc r8
mov byte [rdx], al
mov byte [r8 - 1], cl
dec rdx
cmp rdx, r8
ja 0x140010ac0
lea rdx, [rbp + 0xc]
lea r8, [rbp + 0xb]
movzx eax, byte [r8]
movzx ecx, byte [rdx]
inc r8
mov byte [rdx], al
mov byte [r8 - 1], cl
dec rdx
cmp rdx, r8
ja 0x140010ae0
lea rdx, [rbp + 0xe]
lea r8, [rbp + 0xd]
movzx eax, byte [r8]
movzx ecx, byte [rdx]
inc r8
mov byte [rdx], al
mov byte [r8 - 1], cl
dec rdx
cmp rdx, r8
ja 0x140010b00
lea rdx, [rbp + 0x10]
lea r8, [rbp + 0xf]
movzx eax, byte [r8]
movzx ecx, byte [rdx]
inc r8
mov byte [rdx], al
mov byte [r8 - 1], cl
dec rdx
cmp rdx, r8
ja 0x140010b20
lea rdx, [rbp - 1]
lea rcx, [rbp + 7]
mov r8d, 0x10
call fcn.140021b38
add rsi, 4
add rdi, 8
dec r12
mov dword [rsi - 4], eax
jne 0x140010a81
mov rcx, qword [rbp - 0x11]
lea rax, [r14 + 0x1000]
lea r8, [0x14004f340]
mov qword [rsp + 0x28], rcx
mov r9d, 0x800
mov rdx, r14
mov rcx, r13
mov qword [rsp + 0x20], rax
call fcn.1400127d0
xor r8d, r8d
xor edx, edx
mov ecx, ebx
call fcn.140020c5c
mov r11d, dword [r14 + 0x14]
mov r13d, dword [r14 + 0x20]
mov r12d, dword [r14 + 0x24]
mov esi, dword [r14 + 0x28]
mov edi, dword [r14 + 0x2c]
mov dword [rbp - 0x25], r11d
xor byte [rbp - 0x25], 0x97
xor byte [rbp - 0x24], 0x1f
xor byte [rbp - 0x23], 0x62
xor byte [rbp - 0x22], 0xc1
xor r8d, r8d
xor edx, edx
mov ecx, ebx
call fcn.140020c5c
cmp byte [rbp - 0x29], 0x42
mov rax, qword [rbp - 0x11]
mov qword [rsp + 0x20], rax
mov r9d, 0x10
lea r8, [rbp - 0x21]
mov ecx, ebx
mov edx, 0x101
je 0x140010bf1
mov edx, 0x201
call fcn.1400105c0
test eax, eax
je 0x140010c4c
cmp ebx, 0xffffffff
je 0x140010c06
mov ecx, ebx
call fcn.140020b00
mov rcx, r14
call fcn.14001ccf0
mov eax, 7
mov r13, qword [rsp + 0x88]
mov r14, qword [rsp + 0x80]
mov rdi, qword [rsp + 0xd8]
mov r12, qword [rsp + 0x90]
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.14001d550
add rsp, 0x98
pop r15
pop rsi
pop rbx
pop rbp
ret
mov ecx, ebx
call fcn.140020b00
mov rcx, r14
call fcn.14001ccf0
mov r11d, dword [rbp - 9]
cmp r11d, dword [rbp - 0x25]
jne 0x140010c86
cmp dword [rbp - 0x21], r13d
jne 0x140010c86
cmp dword [rbp - 0x1d], r12d
jne 0x140010c86
cmp dword [rbp - 0x19], esi
jne 0x140010c86
cmp dword [rbp - 0x15], edi
jne 0x140010c86
mov dword [r15], 2
xor eax, eax
jmp 0x140010c13
mov eax, 5
jmp 0x140010c13
call fcn.14001e770
mov ecx, dword [rax]
mov dword [r15], ecx
mov ecx, ebx
call fcn.140020b00
mov eax, 1
jmp 0x140010c23