Function at 0x140072790
Capabilities:
Get file size
Read file on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xe0]
sub rsp, 0x1e0
mov qword [rbp + 0x80], 0xfffffffffffffffe
mov qword [rsp + 0x230], rbx
mov rax, qword [0x14016ca00]
xor rax, rsp
mov qword [rbp + 0xd0], rax
mov r14, rdx
mov r13, rcx
mov rcx, qword [rdx]
test rcx, rcx
je 0x140072ce9
mov rcx, qword [rcx]
cmp rcx, 0xffffffffffffffff
je 0x140072ce9
lea rdx, [rbp + 0xc0]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
cmp eax, 0xffffffff
jne 0x140072810
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x140072ce9
mov edi, dword [rbp + 0xc0]
shl rdi, 0x20
add rdi, rbx
mov rcx, r14
call fcn.14006fc10
test al, al
je 0x140072ce9
call fcn.140072670
mov rsi, rax
cmp rdi, rax
jb 0x140072ce9
xor eax, eax
mov qword [rbp + 0xa8], rax
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0xb8], rax
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xa8], xmm0
xor r12d, r12d
mov qword [rbp + 0xb8], r12
mov byte [rsp + 0x30], r12b
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rbp + 0xa8]
call fcn.140075490
mov dword [rbp + 0x88], r12d
mov rcx, qword [r14]
mov r15, qword [rbp + 0xa8]
test rcx, rcx
je 0x140072cc3
test r15, r15
je 0x140072cc3
cmp qword [rcx], 0xffffffffffffffff
je 0x140072cc3
mov dword [rbp + 0x88], r12d
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0x88]
mov r8d, esi
mov rdx, r15
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140072cc3
mov eax, dword [rbp + 0x88]
cmp rax, rsi
jne 0x140072cc3
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x58], r12
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], r12
mov dword [rbp - 0x78], 0xffffffff
mov qword [rbp + 0xc0], r12
lea r8, [rsp + 0x40]
lea rdx, [rbp + 0xc0]
lea rcx, [rbp + 0xa8]
call fcn.140072270
test al, al
jne 0x14007293d
xor bl, bl
jmp 0x140072cb7
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x58], r12
movdqa xmmword [rbp - 0x50], xmm0
movdqa xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], r12
mov dword [rbp - 0x28], 0xffffffff
lea rcx, [rbp - 0x70]
call fcn.1400705e0
mov r8, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
sub r8, rcx
mov rax, qword [rbp - 0x68]
mov rdx, qword [rbp - 0x70]
sub rax, rdx
cmp r8, rax
jne 0x140072995
call fcn.1400c5390
test eax, eax
je 0x140072a58
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x30], xmm0
mov qword [rbp + 0x40], r12
mov qword [rbp + 0x48], r12
movdqa xmmword [rbp + 0x50], xmm0
movdqa xmmword [rbp + 0x60], xmm0
mov qword [rbp + 0x70], r12
mov dword [rbp + 0x78], 0xffffffff
lea rcx, [rbp + 0x30]
call fcn.140070a60
mov r8, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
sub r8, rcx
mov rax, qword [rbp + 0x38]
mov rdx, qword [rbp + 0x30]
sub rax, rdx
cmp r8, rax
jne 0x1400729e9
call fcn.1400c5390
test eax, eax
je 0x140072a4f
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], r12
mov qword [rbp - 8], r12
movdqa xmmword [rbp], xmm0
movdqa xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], r12
mov dword [rbp + 0x28], 0xffffffff
lea rcx, [rbp - 0x20]
call fcn.140070ee0
mov r8, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
sub r8, rcx
mov rax, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x20]
sub rax, rdx
cmp r8, rax
jne 0x140072c98
call fcn.1400c5390
test eax, eax
jne 0x140072c98
lea rcx, [rbp - 0x20]
call fcn.140073c80
nop
lea rcx, [rbp + 0x30]
call fcn.140073c80
mov r8, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
sub r8, rcx
mov rax, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x40]
sub rax, rdx
cmp r8, rax
jne 0x140072cab
call fcn.1400c5390
test eax, eax
jne 0x140072cab
mov eax, dword [rbp - 0x28]
cmp dword [rbp - 0x78], eax
jne 0x140072cab
lea rbx, [r13 + 0x38]
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.140075290
lea rcx, [rbx + 0x18]
lea rdx, [rsp + 0x58]
call fcn.140075290
lea rcx, [rbx + 0x30]
lea rdx, [rsp + 0x70]
call fcn.140075290
mov eax, dword [rbp - 0x78]
mov dword [rbx + 0x48], eax
cmp rdi, rsi
jne 0x140072ad1
mov bl, 1
jmp 0x140072cad
mov dword [rbp + 0x8c], r12d
mov rcx, qword [r14]
test rcx, rcx
je 0x140072cab
cmp qword [rcx], 0xffffffffffffffff
je 0x140072cab
mov dword [rbp + 0x88], r12d
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0x88]
mov r8d, 4
lea rdx, [rbp + 0x8c]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140072cab
cmp dword [rbp + 0x88], 4
jne 0x140072cab
mov ebx, dword [rbp + 0x8c]
sub rdi, rsi
cmp rbx, rdi
ja 0x140072cab
xor eax, eax
mov qword [rbp + 0x90], rax
mov qword [rbp + 0x98], rax
mov qword [rbp + 0xa0], rax
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x90], xmm0
mov qword [rbp + 0xa0], r12
mov byte [rsp + 0x30], al
lea r8, [rsp + 0x30]
mov edx, ebx
lea rcx, [rbp + 0x90]
call fcn.140075490
mov rcx, qword [r14]
mov rdi, qword [rbp + 0x90]
test rcx, rcx
je 0x140072c75
test rdi, rdi
je 0x140072c75
cmp qword [rcx], 0xffffffffffffffff
je 0x140072c75
mov dword [rbp + 0x88], r12d
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0x88]
mov r8d, ebx
mov rdx, rdi
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140072c75
mov eax, dword [rbp + 0x88]
cmp rax, rbx
jne 0x140072c75
mov rax, qword [rsp + 0x70]
cmp rax, qword [rsp + 0x78]
je 0x140072c75
cmp byte [rax], 0
jne 0x140072c75
mov rcx, qword [rbp + 0x98]
movzx eax, cl
sub al, dil
test al, 7
jne 0x140072c75
cmp rdi, rcx
je 0x140072c5a
mov rax, qword [rsp + 0x60]
sub rax, qword [rsp + 0x58]
cmp rax, 0x10
jne 0x140072c75
sub ecx, edi
lea r8, [rbp + 0xc0]
mov edx, ecx
mov rcx, rdi
call fcn.140085660
mov rdx, qword [rsp + 0x58]
lea r8, [rbp + 0xc0]
sub r8, rdx
mov r9, rdx
neg r9
movzx eax, byte [r8 + rdx]
cmp byte [rdx], al
jne 0x140072c75
inc rdx
lea rax, [r9 + rdx]
cmp rax, 0x10
jb 0x140072c44
lea rdx, [rbp + 0x90]
mov rcx, r13
call fcn.140073130
movzx ebx, al
mov rdi, qword [rbp + 0x90]
jmp 0x140072c77
xor bl, bl
test rdi, rdi
je 0x140072cad
mov rcx, rdi
call fcn.1400bd20c
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x90], xmm0
mov qword [rbp + 0xa0], r12
jmp 0x140072cad
lea rcx, [rbp - 0x20]
call fcn.140073c80
nop
lea rcx, [rbp + 0x30]
call fcn.140073c80
xor bl, bl
lea rcx, [rbp - 0x70]
call fcn.140073c80
nop
lea rcx, [rsp + 0x40]
call fcn.140073c80
jmp 0x140072cc5
xor bl, bl
test r15, r15
je 0x140072ce4
mov rcx, r15
call fcn.1400bd20c
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xa8], xmm0
mov qword [rbp + 0xb8], r12
movzx eax, bl
jmp 0x140072ceb
xor al, al
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.1400bcae0
mov rbx, qword [rsp + 0x230]
add rsp, 0x1e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret