Function at 0x44c540
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x138
movaps xmmword [rsp + 0x120], xmm6
mov rbp, rdx
mov r15, rcx
mov rcx, qword [rdx + 0x18]
cmp qword [rdx + 0x10], 0
mov qword [rdx + 0x10], 0
je 0x44c579
call sub.KERNEL32.dll_CloseHandle
mov qword [rsp + 0x80], 1
xorps xmm0, xmm0
movups xmmword [rsp + 0x88], xmm0
mov qword [rsp + 0x98], 1
movups xmmword [rsp + 0xa0], xmm0
mov rbx, qword [rbp + 0x28]
cmp qword [rbp + 0x20], 0
mov rax, qword [rbp + 0x30]
mov qword [rbp + 0x20], 0
mov rdi, qword [rbp + 0x38]
mov qword [rbp + 0x30], 0
je 0x44c86c
test rax, rax
je 0x44caff
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x80]
mov rdx, rbx
call fcn.0045d210
cmp qword [rsp + 0x30], 0
mov rbx, qword [rsp + 0x38]
jne 0x44d01c
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x110], rax
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movups xmmword [rsp + 0x100], xmm1
movups xmmword [rsp + 0xf0], xmm0
mov qword [rsp + 0xe8], rbx
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x98]
mov rdx, rdi
call fcn.0045d210
cmp qword [rsp + 0x30], 0
mov rbx, qword [rsp + 0x38]
jne 0x44ce1a
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xd8], rax
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movups xmmword [rsp + 0xc8], xmm1
movups xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xb0], rbx
mov rax, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0xb8]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rcx
lea rsi, [rsp + 0x70]
lea rdi, [rsp + 0x30]
lea r12, [rsp + 0xb0]
lea r14, [rsp + 0xe8]
nop word cs:[rax + rax]
nop dword [rax]
mov ecx, 2
mov rdx, rsi
xor r8d, r8d
mov r9d, 0xffffffff
call sub.KERNEL32.dll_WaitForMultipleObjects
cmp eax, 1
je 0x44c740
test eax, eax
jne 0x44cdfe
mov rax, qword [rsp + 0x108]
test rax, rax
je 0x44c7fe
cmp eax, 1
jne 0x44c7d5
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xf8]
mov dword [rsp + 0x30], 0
mov r8, rdi
mov r9d, 1
call sub.KERNEL32.dll_GetOverlappedResult
test eax, eax
je 0x44c843
mov eax, dword [rsp + 0x30]
jmp 0x44c7dd
mov rax, qword [rsp + 0xd0]
test rax, rax
je 0x44c7af
cmp eax, 1
jne 0x44c786
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0xc0]
mov dword [rsp + 0x30], 0
mov r8, rdi
mov r9d, 1
call sub.KERNEL32.dll_GetOverlappedResult
test eax, eax
je 0x44c824
mov eax, dword [rsp + 0x30]
jmp 0x44c78e
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0xd0], 0
mov rcx, qword [rsp + 0xc8]
add qword [rcx + 0x10], rax
test rax, rax
je 0x44cdec
mov rcx, rdi
mov rdx, r12
call fcn.0045d2f0
cmp byte [rsp + 0x30], 0
jne 0x44cdd6
test byte [rsp + 0x31], 1
jne 0x44c6c0
jmp 0x44cdec
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x108], 0
mov rcx, qword [rsp + 0x100]
add qword [rcx + 0x10], rax
test rax, rax
je 0x44cddd
mov rcx, rdi
mov rdx, r14
call fcn.0045d2f0
cmp byte [rsp + 0x30], 0
jne 0x44cdd6
test byte [rsp + 0x31], 1
jne 0x44c6c0
jmp 0x44cddd
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x6d
je 0x44c85e
mov ebx, eax
mov eax, 0
cmp ebx, 0x26
je 0x44c78e
jmp 0x44ce05
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x6d
je 0x44c865
mov ebx, eax
mov eax, 0
cmp ebx, 0x26
je 0x44c7dd
jmp 0x44ce05
xor eax, eax
jmp 0x44c78e
xor eax, eax
jmp 0x44c7dd
test rax, rax
je 0x44ce30
mov qword [rsp + 0x118], r15
mov qword [rsp + 0x28], rbp
mov esi, 0xffffffff
xor r12d, r12d
xorps xmm6, xmm6
lea r14, [rsp + 0xb0]
lea r15, [rsp + 0x30]
xor ebp, ebp
xor r13d, r13d
jmp 0x44c8c6
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
mov ecx, ebx
call fcn.004631d0
cmp al, 0x23
jne 0x44c9c1
mov rdx, r12
sub rdx, rbp
jne 0x44c900
cmp rdx, 0x20
jae 0x44c900
mov r8d, 0x20
lea rcx, [rsp + 0x98]
mov rdx, rbp
call fcn.004245b0
mov r12, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0xa8]
mov rdx, r12
sub rdx, rbp
mov rax, qword [rsp + 0x98]
add rax, rbp
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xf8], 0
mov qword [rsp + 0x100], r13
lea rcx, [rsp + 0xe8]
call fcn.0043bef0
mov r8, rdx
cmp rdx, rsi
cmovae r8d, esi
mov dword [rsp + 0xb0], 0
movaps xmmword [rsp + 0x30], xmm6
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], r14
lea rcx, [0x0045d1f0]
mov qword [rsp + 0x20], rcx
mov rcx, rdi
mov rdx, rax
mov r9, r15
call sub.KERNEL32.dll_ReadFileEx
test eax, eax
je 0x44c8b0
nop word cs:[rax + rax]
mov ecx, 0xffffffff
mov edx, 1
call sub.KERNEL32.dll_SleepEx
cmp dword [rsp + 0xb0], 1
jne 0x44c990
mov ebx, dword [rsp + 0xb4]
test ebx, ebx
jne 0x44c8b7
mov ebx, dword [rsp + 0xb8]
jmp 0x44c9cb
cmp al, 0xb
jne 0x44cf6f
xor ebx, ebx
add rbx, qword [rsp + 0xf8]
mov r13, qword [rsp + 0x100]
sub r13, rbx
jb 0x44d002
test rbx, rbx
je 0x44cdb2
add rbx, rbp
mov qword [rsp + 0xa8], rbx
mov rax, r12
or rax, rbx
je 0x44ca08
mov rbp, rbx
jmp 0x44c8c6
movaps xmmword [rsp + 0xc0], xmm6
movaps xmmword [rsp + 0xb0], xmm6
lea rbp, [rsp + 0x70]
jmp 0x44ca36
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
mov ecx, ebx
call fcn.004631d0
cmp al, 0x23
jne 0x44cdaa
mov dword [rsp + 0x70], 0
movaps xmmword [rsp + 0x30], xmm6
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], rbp
lea rax, [0x0045d1f0]
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov rdx, r14
mov r8d, 0x20
mov r9, r15
call sub.KERNEL32.dll_ReadFileEx
test eax, eax
je 0x44ca20
nop word cs:[rax + rax]
nop
mov ecx, 0xffffffff
mov edx, 1
call sub.KERNEL32.dll_SleepEx
cmp dword [rsp + 0x70], 1
jne 0x44ca80
mov ebx, dword [rsp + 0x74]
test ebx, ebx
jne 0x44ca27
mov ebp, dword [rsp + 0x78]
test rbp, rbp
je 0x44cdb2
cmp ebp, 0x21
jae 0x44d059
lea rcx, [rsp + 0x98]
xor edx, edx
mov r8, rbp
call fcn.004245b0
mov r12, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x98]
add rcx, rbx
mov rdx, r14
mov r8, rbp
call sub.msvcrt.dll_memcpy
add rbx, rbp
mov qword [rsp + 0xa8], rbx
mov rbp, rbx
jmp 0x44c8c6
mov qword [rsp + 0x118], r15
mov qword [rsp + 0x28], rbp
mov r15d, 0xffffffff
xor r12d, r12d
lea rdi, [rsp + 0x80]
xorps xmm6, xmm6
lea rsi, [rsp + 0x30]
xor ebp, ebp
xor r13d, r13d
mov rdx, r12
sub rdx, rbp
je 0x44cb60
jmp 0x44cb8d
call sub.KERNEL32.dll_GetLastError
mov r14d, eax
mov ecx, r14d
call fcn.004631d0
cmp al, 0x23
jne 0x44cc53
mov rdx, r12
sub rdx, rbp
jne 0x44cb8d
cmp rdx, 0x20
jae 0x44cb8d
mov r8d, 0x20
mov rcx, rdi
mov rdx, rbp
call fcn.004245b0
mov r12, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x90]
mov rdx, r12
sub rdx, rbp
mov rax, qword [rsp + 0x80]
add rax, rbp
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xf8], 0
mov qword [rsp + 0x100], r13
lea rcx, [rsp + 0xe8]
call fcn.0043bef0
mov r8, rdx
cmp rdx, r15
cmovae r8d, r15d
mov dword [rsp + 0xb0], 0
movaps xmmword [rsp + 0x30], xmm6
mov qword [rsp + 0x40], 0
lea rcx, [rsp + 0xb0]
mov qword [rsp + 0x48], rcx
lea rcx, [0x0045d1f0]
mov qword [rsp + 0x20], rcx
mov rcx, rbx
mov rdx, rax
mov r9, rsi
call sub.KERNEL32.dll_ReadFileEx
test eax, eax
je 0x44cb40
nop dword [rax + rax]
mov ecx, 0xffffffff
mov edx, 1
call sub.KERNEL32.dll_SleepEx
cmp dword [rsp + 0xb0], 1
jne 0x44cc20
mov r14d, dword [rsp + 0xb4]
test r14d, r14d
jne 0x44cb48
mov edi, dword [rsp + 0xb8]
jmp 0x44cc5d
cmp al, 0xb
jne 0x44cfaa
xor edi, edi
add rdi, qword [rsp + 0xf8]
mov r13, qword [rsp + 0x100]
sub r13, rdi
jb 0x44cfe5
test rdi, rdi
je 0x44cdbf
add rdi, rbp
mov qword [rsp + 0x90], rdi
mov rax, r12
or rax, rdi
je 0x44ccae
mov rbp, rdi
lea rdi, [rsp + 0x80]
mov rdx, r12
sub rdx, rbp
je 0x44cb60
jmp 0x44cb8d
movaps xmmword [rsp + 0xc0], xmm6
movaps xmmword [rsp + 0xb0], xmm6
lea rdi, [rsp + 0x80]
lea rbp, [rsp + 0x70]
jmp 0x44cce8
call sub.KERNEL32.dll_GetLastError
mov r14d, eax
mov ecx, r14d
call fcn.004631d0
cmp al, 0x23
jne 0x44cdb7
mov dword [rsp + 0x70], 0
movaps xmmword [rsp + 0x30], xmm6
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], rbp
lea rax, [0x0045d1f0]
mov qword [rsp + 0x20], rax
mov rcx, rbx
lea rdx, [rsp + 0xb0]
mov r8d, 0x20
mov r9, rsi
call sub.KERNEL32.dll_ReadFileEx
test eax, eax
je 0x44ccd0
nop dword [rax]
mov ecx, 0xffffffff
mov edx, 1
call sub.KERNEL32.dll_SleepEx
cmp dword [rsp + 0x70], 1
jne 0x44cd30
mov r14d, dword [rsp + 0x74]
test r14d, r14d
jne 0x44ccd8
mov ebp, dword [rsp + 0x78]
test rbp, rbp
je 0x44cdbf
cmp ebp, 0x21
jae 0x44d06f
mov rcx, rdi
xor edx, edx
mov r8, rbp
call fcn.004245b0
mov r12, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x80]
add rcx, rdi
lea rdx, [rsp + 0xb0]
mov r8, rbp
call sub.msvcrt.dll_memcpy
add rdi, rbp
mov qword [rsp + 0x90], rdi
jmp 0x44cc92
cmp al, 0xb
jne 0x44cf6f
mov rbx, rdi
jmp 0x44cdbf
cmp al, 0xb
jne 0x44cfaa
mov rcx, rbx
call sub.KERNEL32.dll_CloseHandle
mov rbp, qword [rsp + 0x28]
mov r15, qword [rsp + 0x118]
jmp 0x44ce30
mov rbx, qword [rsp + 0x38]
jmp 0x44ce0d
lea rcx, [rsp + 0xb0]
call fcn.0045d420
jmp 0x44cdf9
lea rcx, [rsp + 0xe8]
call fcn.0045d420
mov rbx, rax
jmp 0x44ce0d
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
shl rbx, 0x20
or rbx, 2
lea rcx, [rsp + 0xb0]
call fcn.00419ae0
lea rcx, [rsp + 0xe8]
call fcn.00419ae0
test rbx, rbx
jne 0x44d024
mov qword [rbp + 0x10], 0
mov rsi, qword [rbp]
mov rcx, rsi
mov edx, 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
test eax, eax
je 0x44ceb6
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [r15 + 8], rax
mov qword [r15], 1
mov rdx, qword [rsp + 0xa0]
test rdx, rdx
jle 0x44ce89
mov rcx, qword [rsp + 0x98]
mov r8, rdx
not r8
shr r8, 0x3f
call fcn.0040a2d0
mov rdx, qword [rsp + 0x88]
test rdx, rdx
jle 0x44cf3f
mov rcx, qword [rsp + 0x80]
mov r8, rdx
not r8
shr r8, 0x3f
call fcn.0040a2d0
jmp 0x44cf3f
mov dword [rsp + 0x30], 0
lea rdx, [rsp + 0x30]
mov rcx, rsi
call sub.KERNEL32.dll_GetExitCodeProcess
test eax, eax
je 0x44ce4d
mov eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x40], rcx
movups xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x30], xmm0
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0x58], rcx
movups xmm1, xmmword [rsp + 0x98]
movups xmmword [rsp + 0x48], xmm1
movups xmmword [r15 + 8], xmm0
mov rcx, qword [rsp + 0x50]
mov qword [r15 + 0x28], rcx
mov rcx, qword [rsp + 0x58]
mov qword [r15 + 0x30], rcx
mov rcx, qword [rsp + 0x40]
mov qword [r15 + 0x18], rcx
mov rcx, qword [rsp + 0x48]
mov qword [r15 + 0x20], rcx
mov dword [r15 + 0x38], eax
mov qword [r15], 0
mov rcx, rsi
call sub.KERNEL32.dll_CloseHandle
mov rcx, qword [rbp + 8]
call sub.KERNEL32.dll_CloseHandle
mov rax, r15
movaps xmm6, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
shl rbx, 0x20
or rbx, 2
mov qword [rsp + 0x30], rbx
lea rax, str.library_std_srcprocess.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x009069d8]
lea r9, fcn.004194a0
lea r8, [rsp + 0x30]
mov edx, 0x2b
call fcn.004a4520
jmp 0x44d083
shl r14, 0x20
or r14, 2
mov qword [rsp + 0x30], r14
lea rax, str.library_std_srcprocess.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x009069d8]
lea r9, fcn.004194a0
lea r8, [rsp + 0x30]
mov edx, 0x2b
call fcn.004a4520
jmp 0x44d083
lea rcx, str.assertion_failed:_n___self.initialized
lea r8, [0x00909038]
mov edx, 0x27
call fcn.004a3ff0
jmp 0x44d083
lea rcx, str.assertion_failed:_n___self.initialized
lea r8, [0x00909038]
mov edx, 0x27
call fcn.004a3ff0
jmp 0x44d083
mov rcx, rdi
call sub.KERNEL32.dll_CloseHandle
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x30], rbx
lea rax, str.library_std_srcprocess.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x009069d8]
lea r9, fcn.004194a0
lea r8, [rsp + 0x30]
mov edx, 0x2b
call fcn.004a4520
jmp 0x44d083
lea r8, [0x00909090]
mov edx, 0x20
mov rcx, rbp
call fcn.004ab1c0
jmp 0x44d083
lea r8, [0x00909090]
mov edx, 0x20
mov rcx, rbp
call fcn.004ab1c0
ud2