Function at 0x1400a7004
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 0x1400a704e
cmp dword [0x1400ecb4c], r15d
jne 0x1400a704e
call fcn.1400a67e4
jmp 0x1400a7b91
mov rcx, qword [0x1400ec6e8]
mov dword [0x1400ec6d8], r15d
mov qword [0x1400ecb50], r15
mov qword [0x1400ec6c8], r15
cmp rcx, r15
je 0x1400a7b8f
cmp byte [rcx], r15b
je 0x1400a7b8f
mov rdx, qword [0x1400ec6e0]
lea r8, [0x1400c378c]
xor r9d, r9d
call fcn.1400318d0
mov rsi, rax
cmp rax, r15
je 0x1400a7b8f
mov ecx, 0x1004
call fcn.1400a879c
mov rdi, rax
cmp rax, r15
je 0x1400a7334
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.1400aa484
lea r13d, [r14 - 1]
cmp eax, r15d
jne 0x1400a71cb
mov rcx, rsi
call fcn.1400aa368
add eax, 0x1000
mov dword [0x1400ec6d8], eax
cmp eax, 0x1000
jb 0x1400a71d6
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.1400aa184
mov r8d, r13d
mov edx, 0xffffe000
mov rcx, rsi
call fcn.1400aa484
lea rbx, [rdi + 0xfff]
jmp 0x1400a7190
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 0x1400a7197
sub rbx, r13
cmp rbx, rdi
jae 0x1400a7167
jmp 0x1400a71ba
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.1400aa484
mov eax, dword [0x1400ec6d8]
cmp ebp, r15d
je 0x1400a7109
jmp 0x1400a71d6
mov eax, 0x1000
mov dword [0x1400ec6d8], eax
cmp ebp, r15d
jne 0x1400a726e
cmp eax, r15d
jbe 0x1400a726e
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.1400aa484
mov r8d, dword [0x1400ec6d8]
mov r9, rsi
mov rdx, r13
mov rcx, rdi
call fcn.1400aa184
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 0x1400a724e
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 0x1400a7255
sub rdx, r13
cmp rdx, rdi
jae 0x1400a7225
jmp 0x1400a726e
sub edx, edi
xor r8d, r8d
mov rcx, rsi
mov dword [0x1400ec6d8], edx
add edx, 4
mov ebp, r13d
call fcn.1400aa484
mov rcx, rdi
call fcn.1400a8854
cmp ebp, r15d
jne 0x1400a7285
mov ebx, 3
jmp 0x1400a7b1b
lea rcx, [rsp + 0x20]
mov r9, rsi
mov r8, r13
mov edx, 0x12
call fcn.1400aa184
cmp rax, r13
je 0x1400a72b7
mov rcx, rsi
call fcn.1400abc04
neg eax
sbb ecx, ecx
and ecx, 9
lea ebx, [r14 + rcx]
jmp 0x1400a7b1b
movzx ecx, byte [rsp + 0x25]
movzx eax, byte [rsp + 0x24]
mov edx, 0xffff
shl ecx, 8
or ecx, eax
cmp ecx, edx
jne 0x1400a7307
movzx ecx, byte [rsp + 0x27]
movzx eax, byte [rsp + 0x26]
shl ecx, 8
or ecx, eax
cmp ecx, edx
jne 0x1400a7307
mov ecx, 0x3b7
call fcn.140061d94
mov rcx, qword [0x1400ec6e0]
mov rdx, rax
call fcn.14009666c
lea rcx, [0x1400c3786]
call fcn.1400a3c30
movzx eax, byte [rsp + 0x31]
shl eax, 8
movsxd rcx, eax
movzx eax, byte [rsp + 0x30]
or rcx, rax
mov qword [0x1400ec6c8], rcx
je 0x1400a7370
call fcn.1400a879c
mov qword [0x1400ecb58], rax
cmp rax, r15
jne 0x1400a733e
mov ebx, 4
jmp 0x1400a7b1b
mov rdx, qword [0x1400ec6c8]
mov r9, rsi
mov r8, r13
mov rcx, rax
call fcn.1400aa184
cmp rax, r13
je 0x1400a7370
mov rcx, qword [0x1400ecb58]
call fcn.1400a8854
mov qword [0x1400ecb58], r15
jmp 0x1400a729f
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.1400aa484
cmp eax, r15d
jne 0x1400a727b
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.1400aa184
cmp rax, r13
jne 0x1400a729f
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 0x1400a756c
mov rdi, qword [0x1400ecb50]
mov rcx, rsi
cmp rdi, r15
je 0x1400a7b27
mov edx, dword [rdi + 0x44]
xor r8d, r8d
call fcn.1400aa484
cmp eax, r15d
jne 0x1400a7b09
lea rcx, [rsp + 0x20]
mov r9, rsi
mov r8, r13
mov rdx, rbx
call fcn.1400aa184
cmp rax, r13
jne 0x1400a7b09
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 0x1400a727b
lea rcx, [rsp + 0x20]
mov r9, rsi
mov r8, r13
mov edx, 0x1a
call fcn.1400aa184
cmp rax, r13
jne 0x1400a7b09
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 0x1400a727b
call fcn.1400a879c
mov rbp, rax
cmp rax, r15
je 0x1400a7b23
mov rdx, qword [rdi + 0x18]
mov r9, rsi
mov r8, r13
mov rcx, rax
call fcn.1400aa184
cmp rax, r13
jne 0x1400a7b01
mov r14, qword [rdi + 0x18]
mov r12, qword [rdi + 0x68]
mov r13, rbp
jmp 0x1400a782b
lea rcx, [rsp + 0x20]
mov r9, rsi
mov r8, r13
mov edx, 0x2a
call fcn.1400aa184
cmp rax, r13
jne 0x1400a729f
mov ecx, 0x88
call fcn.1400a879c
mov rdi, rax
cmp rax, r15
je 0x1400a7b1b
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 0x1400a75c6
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 0x1400a76bc
mov ecx, 0x3b7
call fcn.140061d94
mov rcx, qword [0x1400ec6e0]
mov rdx, rax
call fcn.14009666c
lea rcx, [0x1400c3786]
call fcn.1400a3c30
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 0x1400a727b
cmp rcx, 0x400
jae 0x1400a727b
inc rcx
call fcn.1400a879c
mov qword [rdi + 0x68], rax
cmp rax, r15
je 0x1400a7b1b
mov rcx, qword [rdi + 0x28]
cmp rcx, r15
je 0x1400a772d
call fcn.1400a879c
mov qword [rdi + 0x58], rax
cmp rax, r15
je 0x1400a7b1b
mov rcx, qword [rdi + 0x30]
cmp rcx, r15
je 0x1400a7748
call fcn.1400a879c
mov qword [rdi + 0x60], rax
cmp rax, r15
je 0x1400a7b1b
mov rdx, qword [rdi + 0x18]
mov rcx, qword [rdi + 0x68]
mov r9, rsi
mov r8, r13
call fcn.1400aa184
cmp rax, r13
jne 0x1400a729f
mov rdx, qword [rdi + 0x28]
cmp rdx, r15
je 0x1400a7785
mov rcx, qword [rdi + 0x58]
mov r9, rsi
mov r8, r13
call fcn.1400aa184
cmp rax, r13
jne 0x1400a729f
mov rdx, qword [rdi + 0x30]
cmp rdx, r15
je 0x1400a77a6
mov rcx, qword [rdi + 0x60]
mov r9, rsi
mov r8, r13
call fcn.1400aa184
cmp rax, r13
jne 0x1400a729f
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 0x1400a77e6
mov eax, dword [0x1400ec6d8]
cmp dword [rdi + 0x44], eax
cmovb eax, dword [rdi + 0x44]
add qword [0x1400ec6d0], r13
mov dword [0x1400ec6d8], eax
jmp 0x1400a7409
mov eax, 3
jmp 0x1400a7b91
movsx ecx, byte [r13]
dec r14
call fcn.14005256c
cmp al, r15b
je 0x1400a7811
movsx ecx, byte [r12]
call fcn.14005256c
cmp al, r15b
jne 0x1400a7825
mov al, byte [r12]
cmp byte [r13], al
jl 0x1400a7ae1
jg 0x1400a7ae1
inc r13
inc r12
cmp r14d, r15d
jg 0x1400a77f0
mov rcx, rbp
call fcn.1400a8854
mov rcx, qword [rdi + 0x20]
cmp rcx, r15
je 0x1400a78a3
call fcn.1400a879c
mov qword [rdi + 0x50], rax
cmp rax, r15
je 0x1400a7b1b
mov rdx, qword [rdi + 0x20]
mov r13d, 1
mov r9, rsi
mov r8, r13
mov rcx, rax
call fcn.1400aa184
cmp rax, r13
jne 0x1400a7aee
mov r8, qword [rdi + 0x20]
cmp r8, qword [rdi + 0x28]
jne 0x1400a78a9
mov rdx, qword [rdi + 0x58]
mov rcx, qword [rdi + 0x50]
call fcn.1400ab168
cmp eax, r15d
jne 0x1400a78a9
mov rcx, qword [rdi + 0x50]
call fcn.1400a8854
mov r11, qword [rdi + 0x58]
mov qword [rdi + 0x50], r11
jmp 0x1400a78a9
mov r13d, 1
test byte [rdi + 0x3c], 8
je 0x1400a797a
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 0x1400a78f7
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.1400aa484
cmp eax, r15d
jne 0x1400a7b09
lea rcx, [rsp + 0x50]
mov r9, rsi
mov r8, r13
mov edx, 0x10
call fcn.1400aa184
cmp rax, r13
jne 0x1400a7b09
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 0x1400a727b
lea rdx, [rsp + 0x54]
lea rcx, [rsp + 0x2a]
mov r8d, 0xc
call fcn.1400a8fe0
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 0x1400a79c0
cmp edx, r15d
cmove edx, r13d
add r8, r13
cmp r8, 0x16
jb 0x1400a79ac
cmp edx, r15d
je 0x1400a79db
cmp dword [0x1400ecb4c], r15d
je 0x1400a727b
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 0x1400a7abf
movzx edx, word [rdi]
mov ecx, edx
shr ecx, 8
call fcn.1400a5728
cmp al, r15b
je 0x1400a7abf
mov rcx, qword [rdi + 0x68]
mov rdx, rcx
call sub.USER32.dll_OemToCharA
mov rcx, qword [rdi + 0x68]
call fcn.1400ba440
mov qword [rdi + 0x70], rax
cmp rax, r15
je 0x1400a7b1b
mov qword [rdi + 0x48], rax
mov rdi, qword [rdi + 0x80]
jmp 0x1400a745b
mov rcx, rbp
call fcn.1400a8854
jmp 0x1400a727b
mov rcx, qword [rdi + 0x50]
call fcn.1400a8854
mov qword [rdi + 0x20], r15
mov qword [rdi + 0x50], r15
jmp 0x1400a7b09
mov rcx, rbp
call fcn.1400a8854
mov rcx, rsi
call fcn.1400abc04
neg eax
sbb ecx, ecx
and ecx, 9
lea ebx, [rcx + 2]
mov rcx, rsi
call fcn.1400aa5c0
mov eax, ebx
jmp 0x1400a7b91
call fcn.1400aa5c0
mov rcx, qword [0x1400ec6d0]
cmp rcx, r15
je 0x1400a7b8f
shl rcx, 3
call fcn.1400a879c
mov qword [0x1400ec6c0], rax
cmp rax, r15
je 0x1400a7b23
mov rcx, qword [0x1400ecb50]
cmp rcx, r15
je 0x1400a7b73
mov qword [rax], rcx
mov rcx, qword [rcx + 0x80]
add rax, 8
cmp rcx, r15
jne 0x1400a7b59
mov rax, qword [0x1400ec6c0]
mov rdx, qword [0x1400ec6d0]
lea r9, [0x1400a5750]
mov r8d, 8
mov rcx, rax
call fcn.1400ab900
xor eax, eax
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1400a86e0
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