Function at 0x1400a6e50
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, 0x70
mov rax, qword [0x1400e0920]
xor rax, rsp
mov qword [rsp + 0x60], rax
xor r15d, r15d
cmp dword [0x1400ecb44], r15d
je 0x1400a6e9a
cmp dword [0x1400ecb4c], r15d
jne 0x1400a6e9a
call fcn.1400a6630
jmp 0x1400a79dd
mov rcx, qword [0x1400ec6e8]
mov dword [0x1400ec6d8], r15d
mov qword [0x1400ecb50], r15
mov qword [0x1400ec6c8], r15
cmp rcx, r15
je 0x1400a79db
cmp byte [rcx], r15b
je 0x1400a79db
mov rdx, qword [0x1400ec6e0]
lea r8, [0x1400c378c]
xor r9d, r9d
call fcn.140031874
mov rsi, rax
cmp rax, r15
je 0x1400a79db
mov ecx, 0x1004
call fcn.1400a85ec
mov rdi, rax
cmp rax, r15
je 0x1400a7180
mov r14d, 2
mov edx, 0xfffff000
mov rcx, rsi
mov r8d, r14d
mov ebp, r15d
lea rbx, [rax + 0x1000]
mov byte [rax + 0x1001], r15b
mov byte [rax + 0x1002], r15b
mov byte [rax + 0x1003], r15b
call fcn.1400aa2d4
lea r13d, [r14 - 1]
cmp eax, r15d
jne 0x1400a7017
mov rcx, rsi
call fcn.1400aa1b8
add eax, 0x1000
mov dword [0x1400ec6d8], eax
cmp eax, 0x1000
jb 0x1400a7022
add eax, 0xfffff000
mov r9, rsi
mov r8d, 0x1000
mov dword [0x1400ec6d8], eax
mov al, byte [rbx + 1]
mov rdx, r13
mov byte [rdi + 0x1000], al
mov al, byte [rbx + 2]
mov rcx, rdi
mov byte [rdi + 0x1001], al
mov al, byte [rbx + 3]
mov byte [rdi + 0x1002], al
call fcn.1400a9fd4
mov r8d, r13d
mov edx, 0xffffe000
mov rcx, rsi
call fcn.1400aa2d4
lea rbx, [rdi + 0xfff]
jmp 0x1400a6fdc
movzx eax, byte [rbx + 2]
movzx ecx, byte [rbx + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 1]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rbx]
or ecx, eax
cmp ecx, 0x6054b50
je 0x1400a6fe3
sub rbx, r13
cmp rbx, rdi
jae 0x1400a6fb3
jmp 0x1400a7006
mov edx, dword [0x1400ec6d8]
mov eax, ebx
xor r8d, r8d
sub eax, edi
mov rcx, rsi
mov ebp, r13d
add edx, eax
mov dword [0x1400ec6d8], edx
add edx, 4
call fcn.1400aa2d4
mov eax, dword [0x1400ec6d8]
cmp ebp, r15d
je 0x1400a6f55
jmp 0x1400a7022
mov eax, 0x1000
mov dword [0x1400ec6d8], eax
cmp ebp, r15d
jne 0x1400a70ba
cmp eax, r15d
jbe 0x1400a70ba
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.1400aa2d4
mov r8d, dword [0x1400ec6d8]
mov r9, rsi
mov rdx, r13
mov rcx, rdi
call fcn.1400a9fd4
mov cl, byte [rbx + 1]
mov byte [rax + rdi], cl
mov cl, byte [rbx + 2]
lea rdx, [rax + rdi - 1]
mov byte [rax + rdi + 1], cl
mov cl, byte [rbx + 3]
mov byte [rax + rdi + 2], cl
jmp 0x1400a709a
movzx eax, byte [rdx + 2]
movzx ecx, byte [rdx + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 1]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rdx]
or ecx, eax
cmp ecx, 0x6054b50
je 0x1400a70a1
sub rdx, r13
cmp rdx, rdi
jae 0x1400a7071
jmp 0x1400a70ba
sub edx, edi
xor r8d, r8d
mov rcx, rsi
mov dword [0x1400ec6d8], edx
add edx, 4
mov ebp, r13d
call fcn.1400aa2d4
mov rcx, rdi
call fcn.1400a86a4
cmp ebp, r15d
jne 0x1400a70d1
mov ebx, 3
jmp 0x1400a7967
lea rcx, [rsp + 0x20]
mov r9, rsi
mov r8, r13
mov edx, 0x12
call fcn.1400a9fd4
cmp rax, r13
je 0x1400a7103
mov rcx, rsi
call fcn.1400aba54
neg eax
sbb ecx, ecx
and ecx, 9
lea ebx, [r14 + rcx]
jmp 0x1400a7967
movzx ecx, byte [rsp + 0x25]
movzx eax, byte [rsp + 0x24]
mov edx, 0xffff
shl ecx, 8
or ecx, eax
cmp ecx, edx
jne 0x1400a7153
movzx ecx, byte [rsp + 0x27]
movzx eax, byte [rsp + 0x26]
shl ecx, 8
or ecx, eax
cmp ecx, edx
jne 0x1400a7153
mov ecx, 0x3b7
call fcn.140061d2c
mov rcx, qword [0x1400ec6e0]
mov rdx, rax
call fcn.1400964ac
lea rcx, [0x1400c3786]
call fcn.1400a3a78
movzx eax, byte [rsp + 0x31]
shl eax, 8
movsxd rcx, eax
movzx eax, byte [rsp + 0x30]
or rcx, rax
mov qword [0x1400ec6c8], rcx
je 0x1400a71bc
call fcn.1400a85ec
mov qword [0x1400ecb58], rax
cmp rax, r15
jne 0x1400a718a
mov ebx, 4
jmp 0x1400a7967
mov rdx, qword [0x1400ec6c8]
mov r9, rsi
mov r8, r13
mov rcx, rax
call fcn.1400a9fd4
cmp rax, r13
je 0x1400a71bc
mov rcx, qword [0x1400ecb58]
call fcn.1400a86a4
mov qword [0x1400ecb58], r15
jmp 0x1400a70eb
movzx ecx, byte [rsp + 0x2b]
movzx eax, byte [rsp + 0x2a]
mov edx, dword [0x1400ec6d8]
mov r8d, dword [0x1400ecb4c]
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
movzx eax, byte [rsp + 0x2e]
sub edx, ecx
movzx ecx, byte [rsp + 0x2f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x2d]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x2c]
or ecx, eax
mov eax, edx
sub eax, ecx
neg r8d
mov rcx, rsi
sbb r12d, r12d
and r12d, eax
lea eax, [rdx + 0x13]
cmp eax, 0x12
cmovbe edx, r15d
xor r8d, r8d
mov dword [0x1400ec6bc], edx
call fcn.1400aa2d4
cmp eax, r15d
jne 0x1400a70c7
lea rbp, [0x1400ecb50]
mov qword [0x1400ec6d0], r15
mov ebx, 4
lea rcx, [rsp + 0x20]
mov r9, rsi
mov r8, r13
mov rdx, rbx
call fcn.1400a9fd4
cmp rax, r13
jne 0x1400a70eb
movzx eax, byte [rsp + 0x22]
movzx ecx, byte [rsp + 0x23]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x21]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x20]
or ecx, eax
cmp ecx, 0x2014b50
je 0x1400a73b8
mov rdi, qword [0x1400ecb50]
mov rcx, rsi
cmp rdi, r15
je 0x1400a7973
mov edx, dword [rdi + 0x44]
xor r8d, r8d
call fcn.1400aa2d4
cmp eax, r15d
jne 0x1400a7955
lea rcx, [rsp + 0x20]
mov r9, rsi
mov r8, r13
mov rdx, rbx
call fcn.1400a9fd4
cmp rax, r13
jne 0x1400a7955
movzx eax, byte [rsp + 0x22]
movzx ecx, byte [rsp + 0x23]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x21]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x20]
or ecx, eax
cmp ecx, 0x4034b50
jne 0x1400a70c7
lea rcx, [rsp + 0x20]
mov r9, rsi
mov r8, r13
mov edx, 0x1a
call fcn.1400a9fd4
cmp rax, r13
jne 0x1400a7955
movzx eax, byte [rsp + 0x22]
movzx ecx, byte [rsp + 0x23]
shl cx, 8
or cx, ax
mov word [rdi + 0x3c], cx
movzx eax, byte [rsp + 0x37]
shl eax, 8
movsxd rdx, eax
movzx eax, byte [rsp + 0x36]
or rdx, rax
movzx eax, byte [rsp + 0x39]
shl eax, 8
movsxd rcx, eax
movzx eax, byte [rsp + 0x38]
or rcx, rax
mov qword [rdi + 0x20], rcx
mov rcx, qword [rdi + 0x18]
cmp rdx, rcx
jne 0x1400a70c7
call fcn.1400a85ec
mov rbp, rax
cmp rax, r15
je 0x1400a796f
mov rdx, qword [rdi + 0x18]
mov r9, rsi
mov r8, r13
mov rcx, rax
call fcn.1400a9fd4
cmp rax, r13
jne 0x1400a794d
mov r14, qword [rdi + 0x18]
mov r12, qword [rdi + 0x68]
mov r13, rbp
jmp 0x1400a7677
lea rcx, [rsp + 0x20]
mov r9, rsi
mov r8, r13
mov edx, 0x2a
call fcn.1400a9fd4
cmp rax, r13
jne 0x1400a70eb
mov ecx, 0x88
call fcn.1400a85ec
mov rdi, rax
cmp rax, r15
je 0x1400a7967
movzx edx, byte [rsp + 0x21]
movzx ecx, byte [rsp + 0x20]
mov r8d, 0x16
shl dx, 8
or dx, cx
lea rcx, [rax + 2]
mov word [rax], dx
lea rdx, [rsp + 0x22]
sub rdx, rcx
mov al, byte [rdx + rcx]
mov byte [rcx], al
add rcx, r13
sub r8, r13
jne 0x1400a7412
movzx eax, byte [rsp + 0x39]
shl eax, 8
movsxd rcx, eax
movzx eax, byte [rsp + 0x38]
or rcx, rax
mov qword [rdi + 0x18], rcx
movzx eax, byte [rsp + 0x3b]
shl eax, 8
movsxd rcx, eax
movzx eax, byte [rsp + 0x3a]
or rcx, rax
mov qword [rdi + 0x28], rcx
movzx eax, byte [rsp + 0x3d]
shl eax, 8
movsxd rcx, eax
movzx eax, byte [rsp + 0x3c]
or rcx, rax
mov qword [rdi + 0x30], rcx
movzx ecx, byte [rsp + 0x3f]
movzx eax, byte [rsp + 0x3e]
shl cx, 8
or cx, ax
mov word [rdi + 0x38], cx
movzx ecx, byte [rsp + 0x41]
movzx eax, byte [rsp + 0x40]
shl cx, 8
or cx, ax
mov word [rdi + 0x3a], cx
movzx eax, byte [rsp + 0x44]
movzx ecx, byte [rsp + 0x45]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x43]
shl ecx, 0x10
shl eax, 8
or ecx, eax
movzx eax, byte [rsp + 0x42]
or ecx, eax
mov dword [rdi + 0x40], ecx
movzx eax, byte [rsp + 0x48]
movzx ecx, byte [rsp + 0x49]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x47]
shl ecx, 0x10
shl eax, 8
or ecx, eax
movzx eax, byte [rsp + 0x46]
or ecx, eax
add ecx, r12d
cmp dword [rdi + 0x14], 0xffffffff
mov dword [rdi + 0x44], ecx
jne 0x1400a7508
mov ecx, 0x3b7
call fcn.140061d2c
mov rcx, qword [0x1400ec6e0]
mov rdx, rax
call fcn.1400964ac
lea rcx, [0x1400c3786]
call fcn.1400a3a78
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 [rbp], rdi
mov rcx, qword [rdi + 0x18]
lea rbp, [rdi + 0x80]
mov qword [rbp], r15
cmp rcx, r15
je 0x1400a70c7
cmp rcx, 0x400
jae 0x1400a70c7
inc rcx
call fcn.1400a85ec
mov qword [rdi + 0x68], rax
cmp rax, r15
je 0x1400a7967
mov rcx, qword [rdi + 0x28]
cmp rcx, r15
je 0x1400a7579
call fcn.1400a85ec
mov qword [rdi + 0x58], rax
cmp rax, r15
je 0x1400a7967
mov rcx, qword [rdi + 0x30]
cmp rcx, r15
je 0x1400a7594
call fcn.1400a85ec
mov qword [rdi + 0x60], rax
cmp rax, r15
je 0x1400a7967
mov rdx, qword [rdi + 0x18]
mov rcx, qword [rdi + 0x68]
mov r9, rsi
mov r8, r13
call fcn.1400a9fd4
cmp rax, r13
jne 0x1400a70eb
mov rdx, qword [rdi + 0x28]
cmp rdx, r15
je 0x1400a75d1
mov rcx, qword [rdi + 0x58]
mov r9, rsi
mov r8, r13
call fcn.1400a9fd4
cmp rax, r13
jne 0x1400a70eb
mov rdx, qword [rdi + 0x30]
cmp rdx, r15
je 0x1400a75f2
mov rcx, qword [rdi + 0x60]
mov r9, rsi
mov r8, r13
call fcn.1400a9fd4
cmp rax, r13
jne 0x1400a70eb
mov rcx, qword [rdi + 0x18]
mov eax, 0x3ff
lea edx, [rax + 1]
cmp rcx, rdx
cmovae rcx, rax
mov rax, qword [rdi + 0x68]
mov byte [rcx + rax], r15b
cmp qword [rdi + 0x18], rdx
jae 0x1400a7632
mov eax, dword [0x1400ec6d8]
cmp dword [rdi + 0x44], eax
cmovb eax, dword [rdi + 0x44]
add qword [0x1400ec6d0], r13
mov dword [0x1400ec6d8], eax
jmp 0x1400a7255
mov eax, 3
jmp 0x1400a79dd
movsx ecx, byte [r13]
dec r14
call fcn.140052530
cmp al, r15b
je 0x1400a765d
movsx ecx, byte [r12]
call fcn.140052530
cmp al, r15b
jne 0x1400a7671
mov al, byte [r12]
cmp byte [r13], al
jl 0x1400a792d
jg 0x1400a792d
inc r13
inc r12
cmp r14d, r15d
jg 0x1400a763c
mov rcx, rbp
call fcn.1400a86a4
mov rcx, qword [rdi + 0x20]
cmp rcx, r15
je 0x1400a76ef
call fcn.1400a85ec
mov qword [rdi + 0x50], rax
cmp rax, r15
je 0x1400a7967
mov rdx, qword [rdi + 0x20]
mov r13d, 1
mov r9, rsi
mov r8, r13
mov rcx, rax
call fcn.1400a9fd4
cmp rax, r13
jne 0x1400a793a
mov r8, qword [rdi + 0x20]
cmp r8, qword [rdi + 0x28]
jne 0x1400a76f5
mov rdx, qword [rdi + 0x58]
mov rcx, qword [rdi + 0x50]
call fcn.1400aafb8
cmp eax, r15d
jne 0x1400a76f5
mov rcx, qword [rdi + 0x50]
call fcn.1400a86a4
mov r11, qword [rdi + 0x58]
mov qword [rdi + 0x50], r11
jmp 0x1400a76f5
mov r13d, 1
test byte [rdi + 0x3c], 8
je 0x1400a77c6
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
jne 0x1400a7743
movzx eax, byte [rdi + 0x12]
movzx ecx, byte [rdi + 0x13]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0x11]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rdi + 0x10]
or ecx, eax
mov eax, dword [rdi + 0x20]
xor r8d, r8d
add eax, dword [rdi + 0x18]
add eax, dword [rdi + 0x44]
lea edx, [rax + rcx + 0x1e]
mov rcx, rsi
call fcn.1400aa2d4
cmp eax, r15d
jne 0x1400a7955
lea rcx, [rsp + 0x50]
mov r9, rsi
mov r8, r13
mov edx, 0x10
call fcn.1400a9fd4
cmp rax, r13
jne 0x1400a7955
movzx eax, byte [rsp + 0x52]
movzx ecx, byte [rsp + 0x53]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x51]
shl eax, 8
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x50]
or ecx, eax
cmp ecx, 0x8074b50
jne 0x1400a70c7
lea rdx, [rsp + 0x54]
lea rcx, [rsp + 0x2a]
mov r8d, 0xc
call fcn.1400a8e30
movzx ecx, byte [rdi + 5]
movzx eax, byte [rdi + 4]
lea r11, [rdi + 2]
movzx r10d, cx
and cl, 0x1f
mov edx, r15d
shl r10w, 8
mov byte [rdi + 5], cl
and byte [rsp + 0x23], 0x1f
or r10w, ax
lea rax, [rsp + 0x20]
mov r8, r15
sub r11, rax
lea rcx, [rsp + r8 + 0x20]
mov al, byte [rcx + r11]
cmp byte [rcx], al
je 0x1400a780c
cmp edx, r15d
cmove edx, r13d
add r8, r13
cmp r8, 0x16
jb 0x1400a77f8
cmp edx, r15d
je 0x1400a7827
cmp dword [0x1400ecb4c], r15d
je 0x1400a70c7
movzx eax, byte [rdi + 0x16]
movzx ecx, byte [rdi + 0x17]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0x15]
shl ecx, 0x10
shl eax, 8
or ecx, eax
movzx eax, byte [rdi + 0x14]
or ecx, eax
mov dword [rdi + 0x14], ecx
movzx eax, byte [rdi + 0x12]
movzx ecx, byte [rdi + 0x13]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0x11]
shl ecx, 0x10
shl eax, 8
or ecx, eax
movzx eax, byte [rdi + 0x10]
or ecx, eax
mov dword [rdi + 0x10], ecx
movzx eax, byte [rdi + 0xe]
movzx ecx, byte [rdi + 0xf]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0xd]
shl ecx, 0x10
shl eax, 8
or ecx, eax
movzx eax, byte [rdi + 0xc]
or ecx, eax
mov dword [rdi + 0xc], ecx
movzx eax, byte [rdi + 0xa]
movzx ecx, byte [rdi + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 9]
shl ecx, 0x10
shl eax, 8
or ecx, eax
movzx eax, byte [rdi + 8]
or ecx, eax
mov dword [rdi + 8], ecx
movzx ecx, byte [rdi + 7]
movzx eax, byte [rdi + 6]
shl cx, 8
mov word [rdi + 4], r10w
or cx, ax
mov word [rdi + 6], cx
movzx eax, byte [rdi + 2]
movzx ecx, byte [rdi + 3]
shl cx, 8
mov dword [rdi + 0x78], r15d
mov dword [rdi + 0x7c], r15d
or cx, ax
mov eax, 0x800
mov word [rdi + 2], cx
test ax, r10w
jne 0x1400a790b
movzx edx, word [rdi]
mov ecx, edx
shr ecx, 8
call fcn.1400a5574
cmp al, r15b
je 0x1400a790b
mov rcx, qword [rdi + 0x68]
mov rdx, rcx
call sub.USER32.dll_OemToCharA
mov rcx, qword [rdi + 0x68]
call fcn.1400ba290
mov qword [rdi + 0x70], rax
cmp rax, r15
je 0x1400a7967
mov qword [rdi + 0x48], rax
mov rdi, qword [rdi + 0x80]
jmp 0x1400a72a7
mov rcx, rbp
call fcn.1400a86a4
jmp 0x1400a70c7
mov rcx, qword [rdi + 0x50]
call fcn.1400a86a4
mov qword [rdi + 0x20], r15
mov qword [rdi + 0x50], r15
jmp 0x1400a7955
mov rcx, rbp
call fcn.1400a86a4
mov rcx, rsi
call fcn.1400aba54
neg eax
sbb ecx, ecx
and ecx, 9
lea ebx, [rcx + 2]
mov rcx, rsi
call fcn.1400aa410
mov eax, ebx
jmp 0x1400a79dd
call fcn.1400aa410
mov rcx, qword [0x1400ec6d0]
cmp rcx, r15
je 0x1400a79db
shl rcx, 3
call fcn.1400a85ec
mov qword [0x1400ec6c0], rax
cmp rax, r15
je 0x1400a796f
mov rcx, qword [0x1400ecb50]
cmp rcx, r15
je 0x1400a79bf
mov qword [rax], rcx
mov rcx, qword [rcx + 0x80]
add rax, 8
cmp rcx, r15
jne 0x1400a79a5
mov rax, qword [0x1400ec6c0]
mov rdx, qword [0x1400ec6d0]
lea r9, [0x1400a559c]
mov r8d, 8
mov rcx, rax
call fcn.1400ab750
xor eax, eax
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1400a8530
lea r11, [rsp + 0x70]
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