Function at 0x496860
Capabilities:
Read file on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
movabs rsi, 0x100002600
mov rbx, rdx
mov rdx, qword [rdx + 0x20]
mov rdi, rcx
movzx r8d, byte [rdx]
cmp r8b, 0x20
jbe 0x496950
movabs rsi, 0x100002600
cmp r8b, 0x2f
jne 0x4969e8
cmp rdx, qword [rbx + 0x18]
jb 0x4969f1
cmp byte [rbx + 0x38], 0
je 0x496a41
cmp byte [rbx + 0x38], 0
mov ebp, 0x2f
jne 0x4968df
jmp 0x496c09
lea r10, [rdx + 1]
mov qword [rbx + 0x20], r10
movzx r8d, byte [rdx + 1]
mov rdx, r10
cmp bpl, 0xa
je 0x496b6d
mov ebp, r8d
test bpl, bpl
je 0x496c01
cmp qword [rbx + 0x18], rdx
ja 0x4968c2
cmp byte [rbx + 0x38], 0
mov r8d, ebp
jne 0x4968d2
mov r8, qword [rbx + 0x28]
add qword [rbx + 0x30], r8
mov edx, 1
mov r9, qword [rbx]
mov rcx, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
call sub.msvcrt.dll_fread
mov rdx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
mov qword [rbx + 0x28], rax
lea r9, [rdx + rax - 1]
mov qword [rbx + 0x20], rdx
mov qword [rbx + 0x18], r9
jae 0x496940
mov byte [rdx + rax], 0
add qword [rbx + 0x18], 1
mov rdx, qword [rbx + 0x20]
mov byte [rbx + 0x38], 1
movzx r8d, byte [rdx]
jmp 0x4968d2
bt rsi, r8
jae 0x4969e8
cmp qword [rbx + 0x18], rdx
ja 0x4969c0
cmp byte [rbx + 0x38], 0
jne 0x496880
mov r9, qword [rbx + 0x28]
add qword [rbx + 0x30], r9
mov edx, 1
mov rcx, qword [rbx + 8]
mov r9, qword [rbx]
mov r8, qword [rbx + 0x10]
call sub.msvcrt.dll_fread
mov rdx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
mov qword [rbx + 0x28], rax
lea r10, [rdx + rax - 1]
mov qword [rbx + 0x20], rdx
mov qword [rbx + 0x18], r10
jae 0x4969b3
mov byte [rdx + rax], 0
add qword [rbx + 0x18], 1
mov rdx, qword [rbx + 0x20]
mov byte [rbx + 0x38], 1
movzx r8d, byte [rdx]
jmp 0x496880
lea rbp, [rdx + 1]
mov qword [rbx + 0x20], rbp
movzx r8d, byte [rdx + 1]
mov rdx, rbp
jmp 0x496880
sub rcx, qword [rbx + 8]
add rcx, qword [rbx + 0x30]
mov dword [rdi + 0x30], 0x11
mov qword [rdi + 0x38], rcx
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
ret
lea rcx, [rdx + 1]
mov qword [rbx + 0x20], rcx
movzx r11d, byte [rcx]
cmp r11b, 0x2a
jne 0x496c5a
cmp qword [rbx + 0x18], rcx
ja 0x496a98
cmp byte [rbx + 0x38], 0
je 0x496ba2
test r11b, r11b
je 0x4969d5
mov rax, qword [rbx + 0x18]
cmp r11b, 0x2a
mov r9, rax
jne 0x496a8f
cmp rax, rcx
ja 0x496bf4
cmp byte [rbx + 0x38], 0
je 0x496aad
mov r9, rax
jmp 0x496a2d
mov rax, qword [rbx + 0x28]
add qword [rbx + 0x30], rax
mov edx, 1
mov rcx, qword [rbx + 8]
mov r9, qword [rbx]
mov r8, qword [rbx + 0x10]
call sub.msvcrt.dll_fread
mov rcx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
mov qword [rbx + 0x28], rax
lea rdx, [rcx + rax - 1]
mov qword [rbx + 0x20], rcx
mov qword [rbx + 0x18], rdx
jae 0x4969f9
mov byte [rcx + rax], 0
mov byte [rbx + 0x38], 1
add qword [rbx + 0x18], 1
mov rcx, qword [rbx + 0x20]
jmp 0x4969f9
cmp rcx, rax
jae 0x496a11
lea rdx, [rcx + 1]
mov qword [rbx + 0x20], rdx
movzx r11d, byte [rcx + 1]
mov rcx, rdx
jmp 0x496a1b
mov r10, qword [rbx + 0x28]
add qword [rbx + 0x30], r10
mov edx, 1
mov r9, qword [rbx]
mov rcx, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
call sub.msvcrt.dll_fread
mov rdx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
mov qword [rbx + 0x28], rax
lea r9, [rdx + rax - 1]
mov qword [rbx + 0x20], rdx
mov qword [rbx + 0x18], r9
jae 0x496afd
mov byte [rdx + rax], 0
mov rbp, qword [rbx + 0x18]
mov rdx, qword [rbx + 0x20]
mov byte [rbx + 0x38], 1
lea r9, [rbp + 1]
mov qword [rbx + 0x18], r9
movzx r11d, byte [rdx]
cmp r11b, 0x2f
jne 0x496aa5
cmp rdx, r9
jb 0x496b90
cmp byte [rbx + 0x38], 0
jne 0x49689e
nop word [rax + rax]
mov rax, qword [rbx + 0x28]
add qword [rbx + 0x30], rax
mov edx, 1
mov rcx, qword [rbx + 8]
mov r9, qword [rbx]
mov r8, qword [rbx + 0x10]
call sub.msvcrt.dll_fread
mov rdx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
mov qword [rbx + 0x28], rax
lea rcx, [rdx + rax - 1]
mov qword [rbx + 0x20], rdx
mov qword [rbx + 0x18], rcx
jae 0x496b69
mov byte [rdx + rax], 0
add qword [rbx + 0x18], 1
mov rdx, qword [rbx + 0x20]
mov byte [rbx + 0x38], 1
movzx r8d, byte [rdx]
cmp r8b, 0x20
ja 0x496894
bt rsi, r8
jae 0x496894
cmp rdx, qword [rbx + 0x18]
jb 0x496b90
cmp byte [rbx + 0x38], 0
jne 0x496b6d
jmp 0x496b20
lea r11, [rdx + 1]
mov qword [rbx + 0x20], r11
movzx r8d, byte [rdx + 1]
mov rdx, r11
jmp 0x496b6d
mov rdx, qword [rbx + 0x28]
add qword [rbx + 0x30], rdx
mov edx, 1
mov rcx, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
mov r9, qword [rbx]
call sub.msvcrt.dll_fread
mov rcx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
mov qword [rbx + 0x28], rax
lea r8, [rcx + rax - 1]
mov qword [rbx + 0x20], rcx
mov qword [rbx + 0x18], r8
jae 0x496beb
mov byte [rcx + rax], 0
add qword [rbx + 0x18], 1
mov rcx, qword [rbx + 0x20]
mov byte [rbx + 0x38], 1
movzx r11d, byte [rcx]
jmp 0x496a1b
lea rdx, [rcx + 1]
mov qword [rbx + 0x20], rdx
jmp 0x496afd
xor r8d, r8d
jmp 0x496b6d
mov rcx, qword [rbx + 0x28]
add qword [rbx + 0x30], rcx
mov edx, 1
mov rcx, qword [rbx + 8]
mov r9, qword [rbx]
mov r8, qword [rbx + 0x10]
call sub.msvcrt.dll_fread
mov rdx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
mov qword [rbx + 0x28], rax
lea rbp, [rdx + rax - 1]
mov qword [rbx + 0x20], rdx
mov qword [rbx + 0x18], rbp
jae 0x496c52
mov byte [rdx + rax], 0
add qword [rbx + 0x18], 1
mov rdx, qword [rbx + 0x20]
mov byte [rbx + 0x38], 1
movzx ebp, byte [rdx]
jmp 0x4968df
cmp r11b, 0x2f
jne 0x4969d5
cmp qword [rbx + 0x18], rcx
jbe 0x496c7b
lea rdx, [rcx + 1]
mov qword [rbx + 0x20], rdx
movzx ebp, byte [rcx + 1]
jmp 0x4968df
mov rdx, rcx
jmp 0x4968b2