Function at 0x496aa0
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
movaps xmmword [rsp + 0xb0], xmm6
mov rbx, r8
mov r14, rdx
mov qword [rsp + 0x28], rcx
mov rbp, qword [r8]
mov r15, qword [r8 + 0x10]
xor edi, edi
xorps xmm6, xmm6
lea rsi, [0x00496e2c]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x48], r15
jmp 0x496b00
mov rax, r13
shr rax, 0x20
cmp eax, 0x23
jne 0x496d3b
cmp r15, rbp
je 0x496be0
mov rax, qword [rbx + 8]
add rax, r15
mov rcx, rbp
sub rcx, r15
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], rdi
mov rcx, r14
xor edx, edx
lea r8, [rsp + 0x50]
call fcn.004dd3d0
test rax, rax
je 0x496bfd
mov r13, rax
mov r12d, r13d
and r12d, 3
movsxd rax, dword [rsi + r12*4]
add rax, rsi
jmp rax
movzx eax, byte [r13 + 0x10]
cmp al, 0x23
je 0x496b94
jmp 0x496d3b
cmp byte [r13 + 0xf], 0x23
je 0x496b9e
jmp 0x496d3b
mov rcx, r13
shr rcx, 0x20
call fcn.004be5e0
cmp al, 0x23
jne 0x496d3b
cmp r12d, 1
jne 0x496b00
mov r12, r13
dec r12
mov rcx, qword [r13 - 1]
mov rax, qword [r13 + 7]
call qword [rax]
mov rax, qword [r13 + 7]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x496bc8
mov r8, qword [rax + 0x10]
mov rcx, qword [r12]
call fcn.00422030
mov edx, 0x18
mov r8d, 8
mov rcx, r12
call fcn.00422030
jmp 0x496b00
mov r8d, 0x20
mov rcx, rbx
mov rdx, rbp
call fcn.004eb240
mov rbp, qword [rbx]
mov r15, qword [rbx + 0x10]
jmp 0x496b09
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x496da4
mov rax, qword [rsp + 0x68]
mov rdi, rax
sub rdi, rcx
jb 0x496dd1
mov rdx, qword [rsp + 0x58]
cmp rax, rdx
ja 0x496de2
cmp rcx, rdx
ja 0x496df3
add r15, rcx
mov qword [rbx + 0x10], r15
cmp rbp, r15
jne 0x496b00
cmp rbp, qword [rsp + 0x30]
jne 0x496b00
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x70], xmm6
mov r13, qword [r14]
lea r15, [rsp + 0x38]
lea rbp, [0x004dd660]
jmp 0x496c88
call sub.kernel32.dll_GetLastError
mov r12d, eax
mov ecx, r12d
call fcn.004be5e0
cmp al, 0x23
jne 0x496d67
mov dword [rsp + 0x38], 0
movaps xmmword [rsp + 0x90], xmm6
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0x20], rbp
mov rcx, r13
lea rdx, [rsp + 0x70]
mov r8d, 0x20
lea r9, [rsp + 0x90]
call sub.kernel32.dll_ReadFileEx
test eax, eax
je 0x496c70
mov ecx, 0xffffffff
mov edx, 1
call sub.kernel32.dll_SleepEx
cmp dword [rsp + 0x38], 0
je 0x496cd0
mov r12d, dword [rsp + 0x3c]
test r12d, r12d
jne 0x496c78
mov r12d, dword [rsp + 0x40]
test r12, r12
je 0x496d6f
cmp r12d, 0x21
jae 0x496dbb
mov rcx, rbx
mov rdx, qword [rsp + 0x30]
mov r8, r12
call fcn.004eb240
mov rbp, qword [rbx]
mov r15, qword [rbx + 0x10]
mov rcx, qword [rbx + 8]
add rcx, r15
lea rdx, [rsp + 0x70]
mov r8, r12
call sub.msvcrt.dll_memcpy
add r15, r12
mov qword [rbx + 0x10], r15
jmp 0x496b00
mov rax, qword [rsp + 0x28]
mov qword [rax + 8], r13
mov qword [rax], 1
movaps xmm6, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, al
cmp eax, 0xb
jne 0x496d89
mov rcx, qword [rsp + 0x30]
sub rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x28]
mov qword [rax + 8], rcx
xor ecx, ecx
mov qword [rax], rcx
jmp 0x496d4b
shl r12, 0x20
or r12, 2
mov rax, qword [rsp + 0x28]
mov qword [rax + 8], r12
mov ecx, 1
mov qword [rax], rcx
jmp 0x496d4b
sub r15, qword [rsp + 0x48]
mov rax, qword [rsp + 0x28]
mov qword [rax + 8], r15
mov qword [rax], 0
jmp 0x496d4b
lea r8, [0x006424f0]
mov edx, 0x20
mov rcx, r12
call fcn.0053de60
ud2
lea r8, [0x006424c0]
mov rdx, rax
call fcn.0053def0
ud2
lea r8, [0x006424c0]
mov rcx, rax
call fcn.0053de60
ud2
lea r8, [0x006424d8]
call fcn.0053de60
ud2