Function at 0x1400a6630
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xe00
mov rax, qword [0x1400e0920]
xor rax, rsp
mov qword [rsp + 0xdf0], rax
mov rcx, qword [0x1400ec6e8]
xor r15d, r15d
mov dword [rsp + 0x24], r15d
mov dword [0x1400ec6d8], r15d
mov qword [0x1400ecb50], r15
mov qword [0x1400ec6c8], r15
cmp rcx, r15
je 0x1400a6e1b
cmp byte [rcx], r15b
je 0x1400a6e1b
mov rdx, qword [0x1400ec6e0]
lea r8, [0x1400c378c]
xor r9d, r9d
call fcn.140031874
mov rsi, rax
cmp rax, r15
je 0x1400a6e1b
mov rcx, qword [0x1400ec6e8]
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x24]
call fcn.14007cd20
lea r13, [0x1400ecb50]
mov ebp, r15d
mov qword [0x1400ec6d0], r15
lea ebx, [r15 + 1]
mov edi, 0x4034b50
jmp 0x1400a66f2
cmp eax, 0x50
je 0x1400a66ff
add ebp, ebx
mov rcx, rsi
call fcn.1400ac32c
cmp eax, 0xffffffff
jne 0x1400a66eb
lea rcx, [rsp + 0x29]
mov r9, rsi
mov r8, rbx
mov edx, 3
mov byte [rsp + 0x28], al
call fcn.1400a9fd4
cmp rax, rbx
jne 0x1400a677c
movzx eax, byte [rsp + 0x2a]
movzx ecx, byte [rsp + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x29]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x28]
or ecx, eax
mov dword [rsp + 0x20], ecx
cmp ecx, edi
je 0x1400a677c
cmp ecx, 0x6054b50
je 0x1400a677c
mov r8d, ebx
mov edx, 0xfffffffd
mov rcx, rsi
call fcn.1400aa2d4
cmp eax, r15d
je 0x1400a66f0
mov rcx, rsi
call fcn.1400aba54
neg eax
sbb eax, eax
and eax, 9
add eax, 2
jmp 0x1400a6e1d
movzx eax, byte [rsp + 0x2a]
movzx ecx, byte [rsp + 0x2b]
mov dword [0x1400ec6d8], ebp
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x29]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x28]
or ecx, eax
cmp ecx, edi
jne 0x1400a6d7d
mov ecx, 0x88
call fcn.1400a85ec
mov rdi, rax
cmp rax, r15
je 0x1400a6dfb
lea rcx, [rsp + 0x28]
mov r9, rsi
mov r8, rbx
mov edx, 0x1a
call fcn.1400a9fd4
cmp rax, rbx
jne 0x1400a6d75
movzx ecx, byte [rsp + 0x29]
movzx eax, byte [rsp + 0x28]
shl cx, 8
or cx, ax
mov eax, 0x14
mov word [rdi + 2], cx
mov word [rdi], ax
movzx eax, byte [rsp + 0x2a]
movzx r14d, byte [rsp + 0x2b]
shl r14w, 8
or r14w, ax
mov word [rdi + 0x3c], r14w
mov word [rdi + 4], r14w
movzx ecx, byte [rsp + 0x2d]
movzx eax, byte [rsp + 0x2c]
shl cx, 8
or cx, ax
mov word [rdi + 6], cx
movzx eax, byte [rsp + 0x30]
movzx ecx, byte [rsp + 0x31]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x2f]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x2e]
or ecx, eax
mov dword [rdi + 8], ecx
movzx eax, byte [rsp + 0x34]
movzx ecx, byte [rsp + 0x35]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x33]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x32]
or ecx, eax
mov dword [rdi + 0xc], ecx
movzx eax, byte [rsp + 0x38]
movzx ecx, byte [rsp + 0x39]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x37]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x36]
or ecx, eax
mov dword [rdi + 0x10], ecx
movzx eax, byte [rsp + 0x3c]
movzx ecx, byte [rsp + 0x3d]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x3b]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x3a]
or ecx, eax
mov dword [rdi + 0x14], ecx
movzx eax, byte [rsp + 0x3f]
shl eax, 8
movsxd r12, eax
movzx eax, byte [rsp + 0x3e]
or r12, rax
mov qword [rdi + 0x18], r12
movzx eax, byte [rsp + 0x41]
shl eax, 8
movsxd rcx, eax
movzx eax, byte [rsp + 0x40]
mov qword [rdi + 0x30], r15
or rcx, rax
mov word [rdi + 0x38], r15w
mov word [rdi + 0x3a], r15w
mov qword [rdi + 0x20], rcx
mov qword [rdi + 0x28], rcx
mov eax, dword [rsp + 0x24]
mov dword [rdi + 0x40], eax
mov dword [rdi + 0x78], r15d
mov dword [rdi + 0x7c], r15d
cmp dword [0x1400ecb44], ebx
jle 0x1400a6927
mov dword [rsp + 0x20], r15d
jmp 0x1400a692e
mov eax, dword [rdi + 0x10]
mov dword [rsp + 0x20], eax
mov qword [rdi + 0x60], r15
mov qword [rdi + 0x58], r15
mov qword [rdi + 0x50], r15
mov qword [rdi + 0x68], r15
mov qword [rdi + 0x48], r15
mov qword [rdi + 0x70], r15
mov qword [r13], rdi
lea r13, [rdi + 0x80]
mov qword [r13], r15
cmp r12, r15
je 0x1400a6d6b
lea rcx, [r12 + 1]
call fcn.1400a85ec
mov qword [rdi + 0x68], rax
cmp rax, r15
je 0x1400a6dfb
mov rcx, qword [rdi + 0x20]
cmp rcx, r15
je 0x1400a6990
call fcn.1400a85ec
mov qword [rdi + 0x50], rax
cmp rax, r15
je 0x1400a6dfb
mov rcx, qword [rdi + 0x68]
mov r9, rsi
mov r8, rbx
mov rdx, r12
call fcn.1400a9fd4
cmp rax, rbx
jne 0x1400a6765
mov rdx, qword [rdi + 0x20]
cmp rdx, r15
je 0x1400a69cc
mov rcx, qword [rdi + 0x50]
mov r9, rsi
mov r8, rbx
call fcn.1400a9fd4
cmp rax, rbx
jne 0x1400a6765
mov edx, dword [rsp + 0x20]
cmp edx, r15d
je 0x1400a69e9
mov r8d, ebx
mov rcx, rsi
call fcn.1400aa2d4
cmp eax, r15d
jne 0x1400a6765
mov eax, 0x3ff
mov rcx, r12
cmp r12, 0x400
cmovae rcx, rax
mov rax, qword [rdi + 0x68]
mov dl, bl
mov byte [rcx + rax], r15b
mov rcx, qword [rdi + 0x68]
call fcn.140053a98
mov rcx, qword [rdi + 0x68]
call fcn.1400ba290
mov r11, rax
mov qword [rdi + 0x70], rax
cmp rax, r15
je 0x1400a6dfb
mov rcx, qword [rdi + 0x50]
mov qword [rdi + 0x48], rax
mov qword [rdi + 0x58], rcx
lea rcx, [rsp + 0x60]
mov al, byte [r11]
add r11, rbx
mov byte [rcx], al
add rcx, rbx
cmp al, r15b
jne 0x1400a6a39
mov eax, 0x800
test word [rdi + 4], ax
jne 0x1400a6a75
movzx edx, word [rdi]
mov ecx, edx
shr ecx, 8
call fcn.1400a5574
cmp al, r15b
je 0x1400a6a75
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x60]
call sub.USER32.dll_OemToCharA
lea rcx, [rsp + 0x60]
call fcn.14006b6a8
mov ecx, 0x268
mov rbx, rax
call fcn.140061d2c
lea rcx, [rsp + 0x460]
mov r9, rbx
mov edx, 0x4c8
mov r8, rax
call fcn.14005b860
lea rcx, [rsp + 0x460]
call fcn.140087804
call fcn.1400474ec
cmp byte [0x1400ffcf0], r15b
jne 0x1400a6d59
mov eax, dword [rdi + 0x20]
mov dword [rdi + 0x44], ebp
mov ecx, dword [rsp + 0x20]
add eax, r12d
mov ebx, 1
add qword [0x1400ec6d0], rbx
add eax, ecx
lea ebp, [rbp + rax + 0x1e]
test r14b, 8
je 0x1400a6ca8
cmp ecx, r15d
jne 0x1400a6ba3
mov rcx, rsi
call fcn.1400ac32c
cmp eax, 0xffffffff
je 0x1400a6b07
cmp eax, 0x50
jne 0x1400a6af5
lea rcx, [rsp + 0x29]
mov r9, rsi
mov r8, rbx
mov edx, 0xf
mov byte [rsp + 0x28], al
call fcn.1400a9fd4
cmp rax, rbx
jne 0x1400a6b6b
movzx eax, byte [rsp + 0x2a]
movzx ecx, byte [rsp + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x29]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x28]
or ecx, eax
cmp ecx, 0x8074b50
je 0x1400a6b6b
mov r8d, ebx
mov edx, 0xfffffff1
mov rcx, rsi
call fcn.1400aa2d4
cmp eax, r15d
jne 0x1400a6765
jmp 0x1400a6af5
movzx ecx, byte [rsp + 0x33]
movzx eax, byte [rsp + 0x32]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x31]
shl ecx, 0x10
shl eax, 8
or ecx, eax
movzx eax, byte [rsp + 0x30]
or ecx, eax
mov dword [rsp + 0x20], ecx
add ebp, ecx
mov rcx, rsi
call fcn.1400aa1b8
lea ecx, [rbp + 0x10]
cmp eax, ecx
jmp 0x1400a6c00
xor r8d, r8d
mov edx, ebp
mov rcx, rsi
call fcn.1400aa2d4
cmp eax, r15d
jne 0x1400a6765
lea rcx, [rsp + 0x28]
mov r9, rsi
mov r8, rbx
mov edx, 0x10
call fcn.1400a9fd4
cmp rax, rbx
jne 0x1400a6765
movzx eax, byte [rsp + 0x2a]
movzx ecx, byte [rsp + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x29]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x28]
or ecx, eax
cmp ecx, 0x8074b50
jne 0x1400a6d6b
movzx eax, byte [rsp + 0x2e]
movzx ecx, byte [rsp + 0x2f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x2d]
shl ecx, 0x10
shl eax, 8
or ecx, eax
movzx eax, byte [rsp + 0x2c]
or ecx, eax
mov dword [rdi + 0xc], ecx
mov eax, dword [rsp + 0x20]
mov dword [rdi + 0x10], eax
movzx eax, byte [rsp + 0x36]
movzx ecx, byte [rsp + 0x37]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x35]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x34]
or ecx, eax
add ebp, 0x10
mov dword [rdi + 0x14], ecx
lea rcx, [rsp + 0x28]
mov r9, rsi
mov r8, rbx
mov edx, 4
call fcn.1400a9fd4
cmp rax, rbx
jne 0x1400a6d7d
movzx eax, byte [rsp + 0x2a]
movzx ecx, byte [rsp + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x29]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x28]
or ecx, eax
cmp ecx, 0x4034b50
jmp 0x1400a67a7
cmp dword [0x1400ecb44], ebx
jle 0x1400a6c5c
jmp 0x1400a6cb9
cmp eax, 0x50
je 0x1400a6cc6
add ebp, ebx
mov rcx, rsi
call fcn.1400ac32c
cmp eax, 0xffffffff
jne 0x1400a6cb2
lea rcx, [rsp + 0x29]
mov r9, rsi
mov r8, rbx
mov edx, 3
mov byte [rsp + 0x28], al
call fcn.1400a9fd4
cmp rax, rbx
jne 0x1400a6d36
movzx eax, byte [rsp + 0x2a]
movzx ecx, byte [rsp + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x29]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x28]
or ecx, eax
mov dword [rsp + 0x20], ecx
cmp ecx, 0x4034b50
je 0x1400a6d36
cmp ecx, 0x2014b50
je 0x1400a6d36
mov r8d, ebx
mov edx, 0xfffffffd
mov rcx, rsi
call fcn.1400aa2d4
cmp eax, r15d
jne 0x1400a6765
jmp 0x1400a6cb7
mov eax, ebp
sub eax, dword [rdi + 0x20]
sub eax, dword [rdi + 0x44]
sub eax, r12d
sub eax, 0x1e
mov dword [rsp + 0x20], eax
cmp eax, dword [rdi + 0x10]
je 0x1400a6c7a
mov dword [rdi + 0x10], eax
jmp 0x1400a6c7a
mov rcx, rsi
call fcn.1400aa410
mov eax, 9
jmp 0x1400a6e1d
mov eax, 3
jmp 0x1400a6e1d
mov rcx, rdi
call fcn.1400a86a4
mov rcx, rsi
mov dword [rsp + 0x20], ebp
mov dword [0x1400ec6bc], ebp
mov qword [0x1400ec6c8], r15
call fcn.1400aa410
mov rcx, qword [0x1400ec6d0]
cmp rcx, r15
je 0x1400a6e02
shl rcx, 3
call fcn.1400a85ec
mov qword [0x1400ec6c0], rax
cmp rax, r15
je 0x1400a6dfb
mov rcx, qword [0x1400ecb50]
cmp rcx, r15
je 0x1400a6ddd
mov qword [rax], rcx
mov rcx, qword [rcx + 0x80]
add rax, 8
cmp rcx, r15
jne 0x1400a6dc3
mov rax, qword [0x1400ec6c0]
mov rdx, qword [0x1400ec6d0]
lea r9, [0x1400a559c]
mov r8d, 8
mov rcx, rax
call fcn.1400ab750
jmp 0x1400a6e1b
mov eax, 4
jmp 0x1400a6e1d
mov ecx, 0x274
call fcn.140061d2c
mov rcx, qword [0x1400ec6e0]
mov rdx, rax
call fcn.1400964ac
xor eax, eax
mov rcx, qword [rsp + 0xdf0]
xor rcx, rsp
call fcn.1400a8530
lea r11, [rsp + 0xe00]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret