Function at 0x140017cf0
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x378
mov rdi, rdx
mov dword [r8], 0
xor edx, edx
mov qword [rsp + 0x3d0], r8
call sub.msvcrt.dll__open
test eax, eax
mov r12d, eax
js 0x140017fd7
lea r15, [rsp + 0x40]
mov r8d, 0x32a
mov ecx, eax
mov rdx, r15
call sub.msvcrt.dll__read
mov ecx, r12d
mov esi, eax
call sub.msvcrt.dll__close
test esi, esi
js 0x140017fd7
mov edx, 0xa
mov rcx, r15
mov byte [rsp + 0x36a], 0
call sub.msvcrt.dll_strchr
test rax, rax
je 0x140017d74
cmp rax, r15
ja 0x140017f58
mov byte [rax], 0
mov rbx, qword [sym.imp.msvcrt.dll_isspace]
lea rbp, [rsp + 0x38]
xor esi, esi
mov dword [rsp + 0x28], esi
jmp 0x140017d94
add r15, 1
movzx ecx, byte [r15]
mov r13d, ecx
call rbx
test eax, eax
mov r12d, eax
jne 0x140017d90
test r13b, r13b
je 0x140017f20
test esi, esi
jne 0x140017dbb
cmp r13b, 0x7e
je 0x140017f70
xor r8d, r8d
mov rdx, rbp
mov rcx, r15
call sub.msvcrt.dll_strtoul
mov r14, qword [rsp + 0x38]
mov r13d, eax
test r14, r14
je 0x140017f20
movsx ecx, byte [r14]
mov r15d, ecx
call rbx
test r15b, r15b
je 0x140017dfe
test eax, eax
je 0x140017f20
movsx ecx, byte [r14 + 1]
add r14, 1
mov r15d, ecx
call rbx
test eax, eax
jne 0x140017df0
test r15b, r15b
je 0x140017f20
xor r8d, r8d
mov rdx, rbp
mov rcx, r14
call sub.msvcrt.dll_strtol
mov r15, qword [rsp + 0x38]
mov dword [rsp + 0x20], eax
test r15, r15
je 0x140017f20
movsx ecx, byte [r15]
mov r14d, ecx
call rbx
test r14b, r14b
je 0x140017e56
test eax, eax
je 0x140017f20
nop dword [rax]
movsx ecx, byte [r15 + 1]
add r15, 1
mov r14d, ecx
call rbx
test eax, eax
jne 0x140017e48
test r14b, r14b
je 0x140017f20
xor r8d, r8d
mov rcx, r15
mov rdx, rbp
call sub.msvcrt.dll_strtoul
mov r15, qword [rsp + 0x38]
mov dword [rsp + 0x24], eax
test r15, r15
je 0x140017f20
movsx ecx, byte [r15]
mov r14d, ecx
call rbx
test r14b, r14b
je 0x140017eae
test eax, eax
je 0x140017f20
nop dword [rax]
movsx ecx, byte [r15 + 1]
add r15, 1
mov r14d, ecx
call rbx
test eax, eax
jne 0x140017ea0
test r14b, r14b
je 0x140017f20
xor r8d, r8d
mov rdx, rbp
mov rcx, r15
call sub.msvcrt.dll_strtoul
mov r15, qword [rsp + 0x38]
mov edx, eax
test r15, r15
je 0x140017f20
movsx ecx, byte [r15]
test cl, cl
je 0x140017ee7
mov dword [rsp + 0x2c], eax
call rbx
mov edx, dword [rsp + 0x2c]
test eax, eax
je 0x140017f20
mov ecx, dword [rsp + 0x20]
mov rax, rsi
add rsi, 1
shl rax, 4
cmp rsi, 0xa
mov dword [rdi + rax], r13d
mov dword [rdi + rax + 0xc], edx
mov dword [rdi + rax + 4], ecx
mov ecx, dword [rsp + 0x24]
mov dword [rdi + rax + 8], ecx
jne 0x140017d82
add rdi, 0xa0
jmp 0x140017f2c
movsxd rax, dword [rsp + 0x28]
shl rax, 4
add rdi, rax
mov eax, 0xffffffff
mov qword [rdi], 0xffffffffffffffff
mov qword [rdi + 8], rax
mov eax, r12d
add rsp, 0x378
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor edx, edx
cmp byte [rax - 1], 0xd
sete dl
sub rax, rdx
jmp 0x140017d71
lea rcx, [r15 + 1]
xor r8d, r8d
mov rdx, rbp
call sub.msvcrt.dll_strtoul
mov r15, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x3d0]
test r15, r15
mov dword [rdx], eax
je 0x140017f2c
movzx eax, byte [r15]
test al, al
je 0x140017fbc
movsx ecx, al
call rbx
test eax, eax
je 0x140017f2c
movzx ecx, byte [r15]
mov r13d, ecx
call rbx
test eax, eax
je 0x140017fc9
nop dword [rax]
add r15, 1
movzx ecx, byte [r15]
mov r13d, ecx
call rbx
test eax, eax
jne 0x140017fb8
test r13b, r13b
jne 0x140017dbb
jmp 0x140017f2c
mov r12d, 0xffffffff
jmp 0x140017f3c