Function at 0x4a9fe0
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 0x4aa0d0
movabs rsi, 0x100002600
cmp r8b, 0x2f
jne 0x4aa168
cmp rdx, qword [rbx + 0x18]
jb 0x4aa171
cmp byte [rbx + 0x38], 0
je 0x4aa1c1
cmp byte [rbx + 0x38], 0
mov ebp, 0x2f
jne 0x4aa05f
jmp 0x4aa389
lea r10, [rdx + 1]
mov qword [rbx + 0x20], r10
movzx r8d, byte [rdx + 1]
mov rdx, r10
cmp bpl, 0xa
je 0x4aa2ed
mov ebp, r8d
test bpl, bpl
je 0x4aa381
cmp qword [rbx + 0x18], rdx
ja 0x4aa042
cmp byte [rbx + 0x38], 0
mov r8d, ebp
jne 0x4aa052
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 0x4aa0c0
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 0x4aa052
bt rsi, r8
jae 0x4aa168
cmp qword [rbx + 0x18], rdx
ja 0x4aa140
cmp byte [rbx + 0x38], 0
jne 0x4aa000
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 0x4aa133
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 0x4aa000
lea rbp, [rdx + 1]
mov qword [rbx + 0x20], rbp
movzx r8d, byte [rdx + 1]
mov rdx, rbp
jmp 0x4aa000
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 0x4aa3da
cmp qword [rbx + 0x18], rcx
ja 0x4aa218
cmp byte [rbx + 0x38], 0
je 0x4aa322
test r11b, r11b
je 0x4aa155
mov rax, qword [rbx + 0x18]
cmp r11b, 0x2a
mov r9, rax
jne 0x4aa20f
cmp rax, rcx
ja 0x4aa374
cmp byte [rbx + 0x38], 0
je 0x4aa22d
mov r9, rax
jmp 0x4aa1ad
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 0x4aa179
mov byte [rcx + rax], 0
mov byte [rbx + 0x38], 1
add qword [rbx + 0x18], 1
mov rcx, qword [rbx + 0x20]
jmp 0x4aa179
cmp rcx, rax
jae 0x4aa191
lea rdx, [rcx + 1]
mov qword [rbx + 0x20], rdx
movzx r11d, byte [rcx + 1]
mov rcx, rdx
jmp 0x4aa19b
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 0x4aa27d
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 0x4aa225
cmp rdx, r9
jb 0x4aa310
cmp byte [rbx + 0x38], 0
jne 0x4aa01e
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 0x4aa2e9
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 0x4aa014
bt rsi, r8
jae 0x4aa014
cmp rdx, qword [rbx + 0x18]
jb 0x4aa310
cmp byte [rbx + 0x38], 0
jne 0x4aa2ed
jmp 0x4aa2a0
lea r11, [rdx + 1]
mov qword [rbx + 0x20], r11
movzx r8d, byte [rdx + 1]
mov rdx, r11
jmp 0x4aa2ed
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 0x4aa36b
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 0x4aa19b
lea rdx, [rcx + 1]
mov qword [rbx + 0x20], rdx
jmp 0x4aa27d
xor r8d, r8d
jmp 0x4aa2ed
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 0x4aa3d2
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 0x4aa05f
cmp r11b, 0x2f
jne 0x4aa155
cmp qword [rbx + 0x18], rcx
jbe 0x4aa3fb
lea rdx, [rcx + 1]
mov qword [rbx + 0x20], rdx
movzx ebp, byte [rcx + 1]
jmp 0x4aa05f
mov rdx, rcx
jmp 0x4aa032