Function at 0x140003be6
Capabilities:
Get file size

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
movdqa xmmword [rsp + 0x50], xmm6
mov ebp, ecx
call qword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x3e8
mov dword [0x14001aa40], eax
mov rax, qword [0x14000b058]
mov rdi, qword [rax]
lea r14, [rdi + 0xd800]
xor ebx, ebx
xor ecx, ecx
mov rdx, r14
mov r8d, 0x400
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov rcx, r14
mov edx, 0x80000000
mov r8d, 3
call fcn.140007db8
mov qword [0x140018020], rax
cmp rax, 0xffffffffffffffff
je 0x140003ed0
mov rsi, rax
lea r15, [rdi + 0xb800]
mov rcx, r15
mov rdx, r14
call fcn.140007a2e
add rdi, 0xe000
mov rcx, r15
call fcn.140007a42
mov rcx, rdi
mov rdx, rax
call fcn.140007a2e
mov rcx, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [0x14001aa34], eax
mov r15d, 0
test eax, eax
je 0x140003da5
mov r12d, eax
xor r15d, r15d
mov edi, 0x200
lea r14, [0x14001aa50]
movdqa xmm6, xmmword [0x14000b090]
xor ebx, ebx
cmp dword [0x140022a50], 0
mov r13d, 0x8000
cmove r13d, edi
cmp r12d, r13d
cmovb r13d, r12d
mov rcx, qword [0x140018020]
mov rdx, r14
mov r8d, r13d
call fcn.140007e8f
test eax, eax
je 0x140003ed9
cmp dword [0x140022a50], 0
je 0x140003d0b
test bpl, 2
jne 0x140003d7d
xor ecx, ecx
call fcn.140003b5a
jmp 0x140003d7d
mov r8d, 0x1c
lea rcx, [rsp + 0x30]
mov rdx, r14
call fcn.140007da0
movdqu xmm0, xmmword [rsp + 0x34]
pcmpeqd xmm0, xmm6
movmskps eax, xmm0
cmp eax, 0xf
jne 0x140003d7d
mov eax, dword [rsp + 0x30]
cmp eax, 0xf
ja 0x140003d7d
or ebp, eax
mov eax, ebp
and eax, 2
mov rcx, qword [0x14000b2b8]
or dword [rcx + 0x20], eax
mov eax, dword [0x14001aa30]
mov dword [0x140022a50], eax
mov eax, dword [rsp + 0x48]
cmp eax, r12d
ja 0x140003ef6
mov ecx, ebp
and ecx, 0xc
cmp ecx, 4
je 0x140003da5
inc r15d
add eax, 0xfffffffc
cmp r13d, eax
cmovae r13d, eax
mov r12d, eax
cmp r12d, dword [0x14001aa34]
jae 0x140003d95
mov r8d, r13d
mov ecx, ebx
mov rdx, r14
call fcn.140008750
mov ebx, eax
add dword [0x14001aa30], r13d
sub r12d, r13d
jne 0x140003cc1
mov rcx, qword [0x14001aa38]
test rcx, rcx
je 0x140003db7
call qword [sym.imp.USER32.dll_DestroyWindow]
mov qword [0x14001aa38], 0
lea rdi, str.Installer_integrity_check_has_failed._Common_causes_include_nincomplete_download_and_damaged_media._Contact_the_ninstallers_author_to_obtain_a_new_copy._n_nMore_information_at:_nhttp:__nsis.sf.net_NSIS_Error
cmp dword [0x140022a50], 0
je 0x140003efd
test r15d, r15d
je 0x140003e1d
mov edx, dword [0x14001aa30]
mov rcx, qword [0x140018020]
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov rcx, qword [0x140018020]
lea rdx, [rsp + 0x2c]
mov r8d, 4
call fcn.140007e8f
test eax, eax
je 0x140003efd
cmp ebx, dword [rsp + 0x2c]
jne 0x140003efd
movsxd rdx, dword [rsp + 0x44]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rbx, rax
mov edx, dword [0x140022a50]
add edx, 0x1c
mov rcx, qword [0x140018020]
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov r9d, dword [rsp + 0x44]
mov ecx, 0xffffffff
xor edx, edx
mov r8, rbx
call fcn.140003f3e
cmp eax, dword [rsp + 0x44]
jne 0x140003efd
mov qword [0x140022a58], rbx
mov eax, dword [rbx]
mov dword [0x140022a60], eax
test byte [rsp + 0x30], 1
je 0x140003e86
inc dword [0x140022a64]
mov eax, 0x58
add qword [rbx + rax], rbx
add rax, 0xfffffffffffffff4
cmp rax, 0xfffffffffffffff8
jne 0x140003e8b
xor edi, edi
mov rcx, rsi
xor edx, edx
xor r8d, r8d
mov r9d, 1
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, eax
mov rdx, rbx
add rdx, 4
mov qword [rbx + 0x58], rax
lea rcx, [0x140022a70]
mov r8d, 0x60
call fcn.140007da0
jmp 0x140003efd
lea rdi, [0x14000b0d4]
jmp 0x140003efd
mov rcx, qword [0x14001aa38]
test rcx, rcx
je 0x140003eeb
call qword [sym.imp.USER32.dll_DestroyWindow]
mov qword [0x14001aa38], 0
lea rdi, str.Installer_integrity_check_has_failed._Common_causes_include_nincomplete_download_and_damaged_media._Contact_the_ninstallers_author_to_obtain_a_new_copy._n_nMore_information_at:_nhttp:__nsis.sf.net_NSIS_Error
mov rax, rdi
movaps xmm6, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret