Function at 0x14003ed58
Capabilities:
Read 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, 0x20
mov r14, rcx
xor r13d, r13d
mov ecx, 0x4000
mov qword [rsp + 0x70], r13
mov edi, r13d
call fcn.1400c799c
mov rbx, rax
cmp rax, r13
jne 0x14003ed95
lea eax, [r13 + 4]
jmp 0x14003f21a
cmp dword [0x140136060], 2
jne 0x14003edbe
cmp r14, 0xfffffffffffffffe
jne 0x14003edbe
mov rcx, qword [0x1401360d0]
call fcn.1400c9edc
mov dword [rsp + 0x68], r13d
lea edi, [r14 + 3]
mov qword [rsp + 0x70], rax
mov esi, 4
movsxd rbp, edi
mov dword [0x140136084], r13d
lea r15d, [rsi - 1]
mov r12, r13
mov qword [rsp + 0x78], rbp
cmp rbp, r13
jne 0x14003eded
cmp r14, 0xffffffffffffffff
je 0x14003eded
cmp r12, r14
jae 0x14003f210
call fcn.140053a58
cmp byte [0x140134b98], r13b
je 0x14003ee08
cmp byte [0x14014aa58], r13b
jne 0x14003f3e5
cmp rbp, r13
jne 0x14003ee2a
cmp r14, 0xffffffffffffffff
je 0x14003ee2a
mov ecx, 0x4000
mov rax, r14
sub rax, r12
mov rbp, rcx
cmp rax, rcx
cmovb rbp, rax
jmp 0x14003ee2f
mov ebp, 0x4000
mov rcx, qword [0x1401360d0]
call fcn.1400c9edc
mov r9, qword [0x1401360d0]
mov r8, rbp
mov edx, 1
mov rcx, rbx
mov r13, rax
call fcn.1400c9ab0
mov rdi, rax
xor eax, eax
cmp rdi, rax
je 0x14003f441
mov rbp, qword [rsp + 0x78]
cmp rbp, rax
je 0x14003f204
mov dword [0x140136088], eax
mov qword [0x140136090], rax
mov qword [0x140136098], rax
cmp byte [rbx], 0x50
jne 0x14003f159
cmp byte [rbx + 1], 0x4b
jne 0x14003f159
cmp byte [rbx + 2], 7
jne 0x14003f159
cmp byte [rbx + 3], 8
jne 0x14003f159
mov dword [0x140136084], eax
cmp dword [0x1401360ac], eax
je 0x14003f041
cmp rdi, 0x18
jb 0x14003f22f
movzx eax, byte [rbx + 7]
shl ax, 8
movzx edx, ax
movzx eax, byte [rbx + 6]
or edx, eax
movzx eax, byte [rbx + 5]
shl ax, 8
shl edx, 0x10
movzx ecx, ax
movzx eax, byte [rbx + 4]
or edx, ecx
or edx, eax
mov dword [0x140136088], edx
movzx eax, byte [rbx + 0xf]
shl ax, 8
movzx edi, ax
movzx eax, byte [rbx + 0xe]
or edi, eax
movzx eax, byte [rbx + 0xd]
shl ax, 8
shl edi, 0x10
movzx eax, ax
or rdi, rax
movzx eax, byte [rbx + 0xc]
or rdi, rax
movzx eax, byte [rbx + 0xb]
shl ax, 8
shl rdi, 0x20
movzx ecx, ax
movzx eax, byte [rbx + 0xa]
or eax, ecx
shl eax, 0x10
or rdi, rax
movzx eax, byte [rbx + 9]
shl ax, 8
movzx ecx, ax
movzx eax, byte [rbx + 8]
or rdi, rcx
or rdi, rax
mov qword [0x140136090], rdi
movzx eax, byte [rbx + 0x17]
shl ax, 8
movzx edx, ax
movzx eax, byte [rbx + 0x16]
or edx, eax
movzx eax, byte [rbx + 0x15]
shl ax, 8
shl edx, 0x10
movzx eax, ax
or rdx, rax
movzx eax, byte [rbx + 0x14]
or rdx, rax
movzx eax, byte [rbx + 0x13]
shl ax, 8
shl rdx, 0x20
movzx ecx, ax
movzx eax, byte [rbx + 0x12]
or eax, ecx
shl eax, 0x10
or rdx, rax
movzx eax, byte [rbx + 0x11]
shl ax, 8
movzx ecx, ax
movzx eax, byte [rbx + 0x10]
or rdx, rcx
mov rcx, qword [0x1401360d0]
or rdx, rax
mov rax, r13
sub rax, qword [rsp + 0x70]
mov qword [0x140136098], rdx
cmp rax, rdi
je 0x14003f024
lea rdx, [r13 + 4]
xor r8d, r8d
call fcn.1400c9b9c
xor r13d, r13d
cmp eax, r13d
je 0x14003f001
mov ecx, 0x205
call fcn.140076080
mov r8, qword [0x140134c50]
xor ecx, ecx
mov rdx, rax
call fcn.1400b1ef4
lea ecx, [r13 + 0xb]
call fcn.1400bd484
xor r9d, r9d
mov r8, rsi
mov rcx, rbx
lea edx, [r9 + 1]
call fcn.14003e65c
cmp rax, rsi
jne 0x14003f3ef
add r12, rsi
jmp 0x14003edd9
mov dword [0x140136084], 1
mov edi, 0x18
call fcn.1400c9edc
lea rdx, [r13 + 0x18]
jmp 0x14003f108
cmp rdi, 0x10
jb 0x14003f22f
movzx eax, byte [rbx + 7]
shl ax, 8
movzx edx, ax
movzx eax, byte [rbx + 6]
or edx, eax
movzx eax, byte [rbx + 5]
shl ax, 8
shl edx, 0x10
movzx ecx, ax
movzx eax, byte [rbx + 4]
or edx, ecx
mov rcx, qword [0x1401360d0]
or edx, eax
mov dword [0x140136088], edx
movzx eax, byte [rbx + 0xb]
shl ax, 8
movzx edi, ax
movzx eax, byte [rbx + 0xa]
or edi, eax
movzx eax, byte [rbx + 9]
shl ax, 8
shl edi, 0x10
movzx eax, ax
or rdi, rax
movzx eax, byte [rbx + 8]
or rdi, rax
mov qword [0x140136090], rdi
movzx eax, byte [rbx + 0xf]
shl ax, 8
movzx edx, ax
movzx eax, byte [rbx + 0xe]
or edx, eax
movzx eax, byte [rbx + 0xd]
shl ax, 8
shl edx, 0x10
movzx eax, ax
or rdx, rax
movzx eax, byte [rbx + 0xc]
or rdx, rax
mov rax, r13
sub rax, qword [rsp + 0x70]
mov qword [0x140136098], rdx
cmp rax, rdi
jne 0x14003efc9
mov dword [0x140136084], 1
call fcn.1400c9edc
mov edi, 0x10
lea rdx, [r13 + 0x10]
mov rcx, qword [0x1401360d0]
xor r8d, r8d
call fcn.1400c9b9c
xor r13d, r13d
cmp eax, r13d
je 0x14003f143
mov ecx, 0x205
call fcn.140076080
mov r8, qword [0x140134c50]
xor ecx, ecx
mov rdx, rax
call fcn.1400b1ef4
lea ecx, [r13 + 0xb]
call fcn.1400bd484
mov rcx, qword [0x1401360d0]
call fcn.1400c9edc
mov qword [rsp + 0x70], rax
jmp 0x14003f207
xor r13d, r13d
mov rbp, r13
cmp rdi, r13
jbe 0x14003f1fd
mov r8b, byte [rbx + rbp]
lea rdx, [rsp + 0x69]
mov al, byte [rdx]
mov byte [rsp + 0x68], al
mov cl, byte [rdx + 1]
mov byte [rsp + 0x69], cl
mov dl, byte [rdx + 2]
mov byte [rsp + 0x6b], r8b
mov byte [rsp + 0x6a], dl
cmp al, 0x50
jne 0x14003f19e
cmp cl, 0x4b
jne 0x14003f19e
cmp dl, 7
jne 0x14003f19e
cmp r8b, 8
je 0x14003f1a8
inc rbp
cmp rbp, rdi
jae 0x14003f1fd
jmp 0x14003f168
mov rdx, qword [0x140136150]
mov rcx, qword [0x1401360d0]
sub rbp, r15
add rdx, rbp
xor r8d, r8d
call fcn.1400c9b9c
cmp eax, r13d
je 0x14003f1ee
mov ecx, 0x205
call fcn.140076080
mov r8, qword [0x140134c50]
xor ecx, ecx
mov rdx, rax
call fcn.1400b1ef4
mov ecx, 0xb
call fcn.1400bd484
mov rcx, qword [0x1401360d0]
call fcn.1400c9edc
mov rdi, rbp
mov rbp, qword [rsp + 0x78]
jmp 0x14003f207
xor r13d, r13d
cmp dword [0x140136084], r13d
je 0x14003f232
mov rcx, rbx
call fcn.1400c7040
xor eax, eax
mov rbx, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
xor r13d, r13d
xor r9d, r9d
mov r8, rdi
mov rcx, rbx
lea edx, [r9 + 1]
call fcn.14003e65c
cmp rax, rdi
jne 0x14003f3ef
add r12, rdi
cmp dword [0x140136084], r13d
jne 0x14003f210
cmp rbp, r13
jne 0x14003eded
cmp r14, 0xffffffffffffffff
je 0x14003edd9
cmp r12, r14
jae 0x14003edd9
mov rcx, qword [0x1401360d0]
call fcn.1400c9724
cmp eax, r13d
je 0x14003edd9
mov edx, dword [0x1401360f8]
mov eax, dword [0x1401360f4]
inc edx
mov dword [0x1401360f8], edx
cmp edx, eax
jae 0x14003f210
dec eax
cmp edx, eax
jne 0x14003f328
mov rdi, qword [0x1401360d8]
or rcx, 0xffffffffffffffff
xor eax, eax
repne scasw ax, word [rdi]
not rcx
lea rcx, [rcx + rcx + 8]
call fcn.1400c799c
mov rdi, rax
cmp rax, r13
je 0x14003f321
mov rax, qword [0x1401360d8]
mov rdx, rdi
movzx ecx, word [rax]
add rax, 2
mov word [rdx], cx
add rdx, 2
cmp cx, r13w
jne 0x14003f2db
lea rdx, [0x1400e0b78]
mov rcx, rdi
call fcn.140062a4c
mov rcx, qword [0x1401360d8]
call fcn.1400c7040
mov rcx, rdi
mov qword [0x1401360d8], rdi
call fcn.1400c8250
mov rdi, rax
cmp rax, r13
jne 0x14003f337
mov eax, esi
jmp 0x14003f21a
mov rcx, qword [0x1401360d8]
call fcn.14003e3c8
mov rdi, rax
mov rcx, qword [0x1401360d0]
call fcn.1400c8d40
mov rcx, rdi
jmp 0x14003f3ae
cmp dword [0x140136060], 1
jne 0x14003f35e
cmp dword [0x140136080], r13d
jne 0x14003f429
mov ecx, dword [0x1401360f8]
call fcn.14003ec84
cmp eax, 9
je 0x14003f423
cmp eax, 2
je 0x14003f41b
cmp dword [0x140136060], 2
jne 0x14003f393
cmp dword [0x140136080], r13d
je 0x14003f393
inc dword [0x1401360f8]
mov rcx, qword [0x1401360d8]
call fcn.1400c8250
mov rdi, rax
cmp rax, r13
je 0x14003f321
mov rcx, rax
lea rdx, [0x1400e3698]
call fcn.1400c9638
mov qword [0x1401360d0], rax
cmp rax, r13
je 0x14003f348
cmp dword [0x140136060], 2
jne 0x14003f3d8
cmp dword [0x140136080], r13d
jne 0x14003f429
mov rcx, rdi
call fcn.1400c7040
jmp 0x14003edd9
mov eax, 9
jmp 0x14003f21a
mov rcx, rbx
call fcn.1400c7040
mov r8, qword [0x1401360c0]
cmp r8, r13
je 0x14003f411
lea rcx, [0x140134b90]
xor edx, edx
call fcn.1400335e0
mov eax, 0xa
jmp 0x14003f21a
mov r15d, 2
jmp 0x14003f429
mov r15d, 9
mov rcx, rdi
call fcn.1400c7040
mov rcx, rbx
call fcn.1400c7040
mov eax, r15d
jmp 0x14003f21a
mov rcx, qword [0x1401360d0]
call fcn.1400c9724
test eax, eax
jne 0x14003f210
cmp dword [0x140136060], 2
jne 0x14003f475
test rbp, rbp
je 0x14003f475
mov rcx, rbx
call fcn.1400c7040
mov eax, 0xb
jmp 0x14003f21a
mov rcx, qword [0x1401360d0]
call fcn.1400c975c
test eax, eax
je 0x14003f210
mov rcx, rbx
call fcn.1400c7040
mov rdx, qword [0x140134c50]
lea rcx, [0x140134b90]
call fcn.140033674
jmp 0x14003f46b