Function at 0x14001c11c
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov r12d, 0xfffffffe
movsxd rax, ecx
mov ebx, r8d
mov dword [rsp + 0x34], r12d
mov dword [rsp + 0x40], ebx
cmp eax, r12d
jne 0x14001c168
call fcn.14000a9bc
xor edi, edi
mov dword [rax], edi
call fcn.14000a99c
mov dword [rax], 9
jmp 0x14001c868
xor edi, edi
cmp eax, edi
jl 0x14001c842
cmp eax, dword [0x14002a180]
jae 0x14001c842
mov rsi, rax
mov r14, rax
lea r9, [0x140000000]
sar r14, 5
and esi, 0x1f
mov rcx, qword [r9 + r14*8 + 0x2a1a0]
imul rsi, rsi, 0x38
mov al, byte [rcx + rsi + 8]
test al, 1
je 0x14001c842
mov ebp, edi
cmp ebx, edi
je 0x14001c83e
test al, 2
jne 0x14001c83e
cmp rdx, rdi
jne 0x14001c1d8
call fcn.14000a9bc
mov dword [rax], edi
call fcn.14000a99c
mov dword [rax], 0x16
jmp 0x14001c854
mov r15d, dword [rcx + rsi + 0xc]
mov ecx, 4
and r15d, 3
mov eax, r15d
mov dword [rsp + 0x38], r15d
sub eax, 1
je 0x14001c208
cmp eax, 1
jne 0x14001c203
mov eax, ebx
not eax
test al, 1
je 0x14001c1c1
and ebx, 0xfffffffe
mov r13, rdx
jmp 0x14001c248
mov eax, ebx
not eax
test al, 1
je 0x14001c1c1
shr ebx, 1
cmp ebx, ecx
cmovb ebx, ecx
mov ecx, ebx
call fcn.1400096f8
mov r13, rax
cmp rax, rdi
jne 0x14001c241
call fcn.14000a99c
mov dword [rax], 0xc
call fcn.14000a9bc
mov dword [rax], 8
jmp 0x14001c868
lea r9, [0x140000000]
mov rax, qword [r9 + r14*8 + 0x2a1a0]
mov rdx, r13
mov r8d, 0xa
test byte [rax + rsi + 8], 0x48
je 0x14001c300
mov cl, byte [rax + rsi + 9]
cmp cl, r8b
je 0x14001c300
cmp ebx, edi
je 0x14001c300
mov byte [r13], cl
mov rax, qword [r9 + r14*8 + 0x2a1a0]
or r10d, 0xffffffff
add ebx, r10d
lea rdx, [r13 + 1]
lea ebp, [r8 - 9]
mov byte [rax + rsi + 9], r8b
cmp r15d, edi
je 0x14001c300
mov rax, qword [r9 + r14*8 + 0x2a1a0]
mov cl, byte [rax + rsi + 0xa]
cmp cl, r8b
je 0x14001c300
cmp ebx, edi
je 0x14001c300
mov byte [rdx], cl
mov rax, qword [r9 + r14*8 + 0x2a1a0]
add ebx, r10d
inc rdx
lea ebp, [r8 - 8]
mov byte [rax + rsi + 0xa], r8b
cmp r15d, 1
jne 0x14001c300
mov rax, qword [r9 + r14*8 + 0x2a1a0]
mov cl, byte [rax + rsi + 0xb]
cmp cl, r8b
je 0x14001c300
cmp ebx, edi
je 0x14001c300
mov byte [rdx], cl
mov rax, qword [r9 + r14*8 + 0x2a1a0]
inc rdx
lea ebp, [r8 - 7]
add ebx, r10d
mov byte [rax + rsi + 0xb], r8b
mov rcx, qword [r9 + r14*8 + 0x2a1a0]
lea r9, [rsp + 0x30]
mov r8d, ebx
mov rcx, qword [rcx + rsi]
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, edi
je 0x14001c802
movsxd rdx, dword [rsp + 0x30]
cmp edx, edi
jl 0x14001c802
mov eax, ebx
cmp rdx, rax
ja 0x14001c802
lea r8, [0x140000000]
add ebp, edx
mov rax, qword [r8 + r14*8 + 0x2a1a0]
test byte [rax + rsi + 8], 0x80
je 0x14001c7e0
cmp r15d, 2
je 0x14001c60c
cmp edx, edi
je 0x14001c377
cmp byte [r13], 0xa
jne 0x14001c377
or byte [rax + rsi + 8], 4
jmp 0x14001c37c
and byte [rax + rsi + 8], 0xfb
movsxd rax, ebp
mov rbx, r13
mov r12, r13
lea r15, [rax + r13]
cmp r13, r15
jae 0x14001c4c6
mov ebp, 0xd
mov al, byte [r12]
cmp al, 0x1a
je 0x14001c4a7
cmp al, bpl
je 0x14001c3b5
mov byte [rbx], al
inc rbx
inc r12
jmp 0x14001c49c
lea rax, [r15 - 1]
cmp r12, rax
jae 0x14001c3d9
lea rax, [r12 + 1]
cmp byte [rax], 0xa
jne 0x14001c3d1
add r12, 2
jmp 0x14001c461
mov r12, rax
jmp 0x14001c496
mov rcx, qword [r8 + r14*8 + 0x2a1a0]
lea r9, [rsp + 0x30]
lea rdx, [rsp + 0xb0]
mov rcx, qword [rcx + rsi]
mov r8d, 1
inc r12
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, edi
jne 0x14001c414
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jne 0x14001c48f
cmp dword [rsp + 0x30], edi
je 0x14001c48f
lea r8, [0x140000000]
mov rax, qword [r8 + r14*8 + 0x2a1a0]
test byte [rax + rsi + 8], 0x48
je 0x14001c452
cmp byte [rsp + 0xb0], 0xa
je 0x14001c461
mov byte [rbx], bpl
mov rcx, qword [r8 + r14*8 + 0x2a1a0]
mov al, byte [rsp + 0xb0]
mov byte [rcx + rsi + 9], al
jmp 0x14001c499
cmp rbx, r13
jne 0x14001c466
cmp byte [rsp + 0xb0], 0xa
jne 0x14001c466
mov byte [rbx], 0xa
jmp 0x14001c499
mov ecx, dword [rsp + 0xa0]
mov r8d, 1
or rdx, 0xffffffffffffffff
call fcn.1400176a8
cmp byte [rsp + 0xb0], 0xa
lea r8, [0x140000000]
je 0x14001c49c
jmp 0x14001c496
lea r8, [0x140000000]
mov byte [rbx], bpl
inc rbx
cmp r12, r15
jb 0x14001c397
jmp 0x14001c4c6
mov rax, qword [r8 + r14*8 + 0x2a1a0]
test byte [rax + rsi + 8], 0x40
jne 0x14001c4bd
or byte [rax + rsi + 8], 2
jmp 0x14001c4c6
mov al, byte [r12]
mov byte [rbx], al
inc rbx
mov ebp, ebx
sub ebp, r13d
cmp dword [rsp + 0x38], 1
jne 0x14001c7db
cmp ebp, edi
je 0x14001c7db
dec rbx
test byte [rbx], 0x80
jne 0x14001c4ee
inc rbx
jmp 0x14001c5a4
mov edx, 1
jmp 0x14001c504
cmp edx, 4
jg 0x14001c511
cmp rbx, r13
jb 0x14001c511
dec rbx
inc edx
movzx eax, byte [rbx]
cmp byte [rax + r8 + 0x28e30], dil
je 0x14001c4f5
movzx ecx, byte [rbx]
movsx eax, byte [rcx + r8 + 0x28e30]
cmp eax, edi
jne 0x14001c535
call fcn.14000a99c
mov dword [rax], 0x2a
or r12d, 0xffffffff
jmp 0x14001c7e0
inc eax
cmp eax, edx
jne 0x14001c543
movsxd rax, edx
add rbx, rax
jmp 0x14001c5a4
mov rax, qword [r8 + r14*8 + 0x2a1a0]
test byte [rax + rsi + 8], 0x48
je 0x14001c58d
inc rbx
cmp edx, 2
mov byte [rax + rsi + 9], cl
jl 0x14001c56f
mov al, byte [rbx]
mov rcx, qword [r8 + r14*8 + 0x2a1a0]
inc rbx
mov byte [rcx + rsi + 0xa], al
cmp edx, 3
jne 0x14001c585
mov al, byte [rbx]
mov rcx, qword [r8 + r14*8 + 0x2a1a0]
inc rbx
mov byte [rcx + rsi + 0xb], al
movsxd rax, edx
sub rbx, rax
jmp 0x14001c5a4
mov ecx, dword [rsp + 0xa0]
neg edx
mov r8d, 1
movsxd rdx, edx
call fcn.1400176a8
mov rsi, qword [rsp + 0xa8]
mov ebp, ebx
mov ebx, dword [rsp + 0x40]
mov eax, ebx
sub ebp, r13d
mov r8, r13
shr eax, 1
xor edx, edx
mov ecx, 0xfde9
mov dword [rsp + 0x28], eax
mov r9d, ebp
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd r11, eax
cmp r11d, edi
je 0x14001c5f6
mov rcx, r11
add rcx, rcx
cmp rcx, rbx
ja 0x14001c5f6
mov r12d, dword [rsp + 0x34]
lea ebp, [r11 + r11]
jmp 0x14001c7e8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.14000a9dc
or r12d, 0xffffffff
jmp 0x14001c7e8
cmp edx, edi
mov edx, 0xa
je 0x14001c623
cmp word [r13], dx
jne 0x14001c623
or byte [rax + rsi + 8], 4
jmp 0x14001c628
and byte [rax + rsi + 8], 0xfb
movsxd rcx, ebp
mov rbx, r13
mov r12, r13
lea r15, [rcx + r13 - 1]
mov qword [rsp + 0x40], rcx
cmp r13, r15
jae 0x14001c7d6
mov ebp, 0xd
movzx eax, word [r12]
cmp ax, 0x1a
je 0x14001c7b4
cmp ax, bp
je 0x14001c66d
mov word [rbx], ax
add rbx, 2
add r12, 2
jmp 0x14001c7a9
lea rax, [rcx + r13 - 2]
cmp r12, rax
jae 0x14001c6a0
lea rax, [r12 + 2]
cmp word [rax], dx
jne 0x14001c691
add r12, 4
mov word [rbx], dx
add rbx, 2
jmp 0x14001c7a9
mov word [rbx], bp
mov r12, rax
add rbx, 2
jmp 0x14001c7a9
mov rcx, qword [r8 + r14*8 + 0x2a1a0]
lea r9, [rsp + 0x30]
lea rdx, [rsp + 0xb8]
mov rcx, qword [rcx + rsi]
mov r8d, 2
add r12, 2
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, edi
jne 0x14001c6e0
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jne 0x14001c791
cmp dword [rsp + 0x30], edi
je 0x14001c791
lea r8, [0x140000000]
mov rax, qword [r8 + r14*8 + 0x2a1a0]
test byte [rax + rsi + 8], 0x48
je 0x14001c74e
mov edx, 0xa
cmp word [rsp + 0xb8], dx
jne 0x14001c717
mov word [rbx], dx
jmp 0x14001c7a0
mov word [rbx], bp
mov al, byte [rsp + 0xb8]
mov rcx, qword [r8 + r14*8 + 0x2a1a0]
mov byte [rcx + rsi + 9], al
mov al, byte [rsp + 0xb9]
mov rcx, qword [r8 + r14*8 + 0x2a1a0]
mov byte [rcx + rsi + 0xa], al
mov rax, qword [r8 + r14*8 + 0x2a1a0]
mov byte [rax + rsi + 0xb], dl
jmp 0x14001c7a0
cmp rbx, r13
jne 0x14001c762
mov edx, 0xa
cmp word [rsp + 0xb8], dx
je 0x14001c70f
mov ecx, dword [rsp + 0xa0]
mov rdx, 0xfffffffffffffffe
lea r8d, [rdx + 3]
call fcn.1400176a8
mov edx, 0xa
lea r8, [0x140000000]
cmp word [rsp + 0xb8], dx
je 0x14001c7a4
jmp 0x14001c79d
mov edx, 0xa
lea r8, [0x140000000]
mov word [rbx], bp
add rbx, 2
mov rcx, qword [rsp + 0x40]
cmp r12, r15
jb 0x14001c649
jmp 0x14001c7d6
mov rax, qword [r8 + r14*8 + 0x2a1a0]
test byte [rax + rsi + 8], 0x40
jne 0x14001c7ca
or byte [rax + rsi + 8], 2
jmp 0x14001c7d6
movzx eax, word [r12]
mov word [rbx], ax
add rbx, 2
mov ebp, ebx
sub ebp, r13d
mov r12d, dword [rsp + 0x34]
mov rsi, qword [rsp + 0xa8]
cmp r13, rsi
je 0x14001c7f5
mov rcx, r13
call fcn.140008228
cmp r12d, 0xfffffffe
cmove r12d, ebp
mov eax, r12d
jmp 0x14001c86b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x14001c828
call fcn.14000a99c
mov dword [rax], 9
call fcn.14000a9bc
mov dword [rax], 5
jmp 0x14001c52c
cmp eax, 0x6d
jne 0x14001c832
mov r12d, edi
jmp 0x14001c7e0
mov ecx, eax
call fcn.14000a9dc
jmp 0x14001c52c
xor eax, eax
jmp 0x14001c86b
call fcn.14000a9bc
mov dword [rax], edi
call fcn.14000a99c
mov dword [rax], 9
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rdi
call fcn.140008a88
or eax, 0xffffffff
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret