Function at 0x4039f7
Capabilities:
Get file size

Disassembly:
sub esp, 0x200
push ebx
push ebp
push esi
xor ebx, ebx
push edi
mov dword [esp + 0x14], ebx
mov ebp, ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x400
mov esi, 0x7d0800
add eax, 0x3e8
push esi
push ebx
mov dword [0x7c2180], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 3
push SysReAllocString
push esi
call fcn.00406dc8
mov edi, eax
mov dword [esp + 0x10], edi
mov dword [0x423010], edi
cmp edi, 0xffffffff
jne 0x403a53
mov eax, str.Error_launching_installer
jmp 0x403eba
push esi
mov esi, 0x7ce800
push esi
call fcn.00406fc7
push esi
call fcn.004071bc
push eax
push 0x7d1000
call fcn.00406fc7
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
mov dword [0x4264a8], esi
test esi, esi
je 0x403b8c
cmp dword [0x7c2188], ebx
mov eax, 0x8000
mov edi, 0x200
cmovne edi, eax
cmp esi, edi
cmovb edi, esi
push edi
push 0x7a4d80
call fcn.00403747
test eax, eax
je 0x403ead
cmp dword [0x7c2188], ebx
jne 0x403b4d
push 0x1c
push 0x7a4d80
lea eax, [esp + 0x38]
push eax
call fcn.00406b61
test dword [esp + 0x30], 0xfffffff0
jne 0x403b5e
cmp dword [esp + 0x34], 0xdeadbeef
jne 0x403b5e
cmp dword [esp + 0x40], 0x74736e49
jne 0x403b5e
cmp dword [esp + 0x3c], 0x74666f73
jne 0x403b5e
cmp dword [esp + 0x38], 0x6c6c754e
jne 0x403b5e
mov ecx, dword [esp + 0x214]
or ecx, dword [esp + 0x30]
mov eax, dword [0x4264ac]
mov edx, dword [esp + 0x48]
mov dword [0x7c2188], eax
mov eax, ecx
and eax, 2
mov dword [esp + 0x214], ecx
or dword [0x7c2260], eax
cmp edx, esi
ja 0x403eb5
mov eax, ecx
and al, 0xc
cmp al, 4
je 0x403b88
lea esi, [edx - 4]
inc ebp
cmp edi, esi
jbe 0x403b5e
mov edi, esi
jmp 0x403b5e
test byte [esp + 0x214], 2
jne 0x403b5e
push ebx
call fcn.00403993
pop ecx
cmp esi, dword [0x4264a8]
jae 0x403b7a
mov eax, dword [esp + 0x14]
push edi
push 0x7a4d80
push eax
call fcn.0040868b
mov dword [esp + 0x14], eax
add dword [0x4264ac], edi
sub esi, edi
jne 0x403a88
mov edi, dword [esp + 0x10]
push 1
call fcn.00403993
pop ecx
cmp dword [0x7c2188], ebx
je 0x403eb5
test ebp, ebp
je 0x403bd7
push dword [0x4264ac]
call fcn.0040375d
push 4
lea eax, [esp + 0x1c]
push eax
push dword [0x423010]
call fcn.00406df5
test eax, eax
je 0x403eb5
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x18]
jne 0x403eb5
push dword [esp + 0x44]
mov ebp, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push 0x40
call ebp
mov ecx, dword [0x7c2188]
mov esi, eax
add ecx, 0x1c
push ecx
call fcn.0040375d
push dword [esp + 0x44]
push esi
push ebx
push 0xffffffffffffffff
call fcn.00403774
cmp eax, dword [esp + 0x44]
jne 0x403eb5
test byte [esp + 0x30], 1
mov dword [0x7c2190], esi
mov eax, dword [esi]
mov dword [0x7c218c], eax
je 0x403c27
inc dword [0x7c2184]
push 8
pop ecx
lea eax, [esi + 0x44]
lea eax, [eax - 8]
add dword [eax], esi
sub ecx, 1
jne 0x403c2d
push 1
push ebx
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [esi + 0x3c], eax
lea eax, [esi + 4]
push 0x40
push eax
push 0x7c21a0
call fcn.00406b61
call fcn.004172a0
call fcn.00417230
test eax, eax
je 0x403ea9
call fcn.00416a40
test eax, eax
jne 0x403ea9
call fcn.00417290
test eax, eax
je 0x403ea9
call fcn.00416df0
test eax, eax
je 0x403ea9
call fcn.004169f0
test eax, eax
jne 0x403ea9
call fcn.00416fd0
test eax, eax
je 0x403ea9
push 0x18
push 4
pop eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 2
push 0x20a0
call fcn.00407dac
add esp, 0x28
test eax, eax
jne 0x403ea9
push 8
pop ecx
push dword [0x4264a8]
lea edi, [esp + 0x70]
rep stosd dword es:[edi], eax
push 0x40
call ebp
push ebx
mov esi, eax
call fcn.0040375d
push dword [0x4264a8]
push esi
call fcn.00403747
lea eax, [esp + 0x130]
push eax
call fcn.0040844d
push dword [0x4264a8]
lea eax, [esp + 0x138]
push esi
push eax
call fcn.00408643
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x144]
push eax
call fcn.0040833c
add esp, 0x18
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push 0x41
lea eax, [esp + 0xf0]
push ebx
push eax
call fcn.00409441
add esp, 0xc
lea edi, [esp + 0xec]
mov esi, ebx
movzx eax, byte [esp + esi + 0x6c]
push eax
push str._02x
push 0x41
push edi
call fcn.004094a2
add esp, 0x10
add edi, eax
inc esi
cmp esi, 0x20
jl 0x403d4b
mov ebp, dword [0x7c2188]
add ebp, dword [esp + 0x48]
mov eax, dword [0x4264a8]
sub eax, ebp
je 0x403ea9
push 8
pop esi
xor eax, eax
mov dword [esp + 0x18], ebx
mov ecx, esi
mov dword [esp + 0x14], ebx
lea edi, [esp + 0x8c]
rep stosd dword es:[edi], eax
push ebp
call fcn.0040375d
push 4
lea eax, [esp + 0x18]
push eax
push dword [0x423010]
call fcn.00406df5
add ebp, 4
xorps xmm0, xmm0
push ebp
movlpd qword [esp + 0x28], xmm0
call fcn.0040375d
push esi
lea eax, [esp + 0x28]
push eax
push dword [0x423010]
call fcn.00406df5
xor eax, eax
lea edi, [esp + 0x4c]
add ebp, esi
mov ecx, esi
rep stosd dword es:[edi], eax
push ebp
call fcn.0040375d
push 0x20
lea eax, [esp + 0x50]
push eax
push dword [0x423010]
call fcn.00406df5
movzx esi, byte [esp + 0x17]
add ebp, 0x20
movzx eax, byte [esp + 0x16]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
shl esi, 8
add esi, eax
mov eax, dword [esp + 0x14]
shl esi, 8
movzx ecx, ah
add esi, ecx
movzx eax, al
shl esi, 8
add esi, eax
push esi
push 0x40
call edi
mov dword [esp + 0x10], eax
test eax, eax
je 0x403ea9
push ebp
call fcn.0040375d
push esi
push dword [esp + 0x14]
call fcn.00403747
lea eax, [esp + 0x24]
add ebp, esi
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.00407d4f
push esi
push dword [esp + 0x20]
lea eax, [esp + 0xc0]
push eax
call fcn.00407ceb
add esp, 0x18
lea eax, [esi + esi]
mov dword [esp + 0x20], eax
push eax
push 0x40
call edi
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x20]
push ebx
push ecx
push eax
push esi
push edi
mov dword [esp + 0x30], eax
call fcn.00407f7a
add esp, 0x14
mov esi, eax
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GlobalFree]
call edi
test esi, esi
mov esi, dword [esp + 0x1c]
je 0x403ec7
push esi
call edi
xor eax, eax
jmp 0x403eba
push 1
call fcn.00403993
pop ecx
mov eax, 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
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x200
ret 4
push dword [esp + 0x20]
push esi
call fcn.00407890
mov dword [esp + 0x34], eax
pop ecx
pop ecx
test eax, eax
je 0x403f73
push str.GetKey
push eax
call fcn.004077f0
mov dword [esp + 0x24], eax
pop ecx
pop ecx
test eax, eax
je 0x403f69
push 0x80
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push 0x80
push eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0xf4]
push eax
call dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x18], eax
cmp eax, 1
jne 0x403f63
lea eax, [esp + 0x1a0]
push eax
call fcn.0040844d
push dword [esp + 0x14]
call fcn.0040a2f0
push eax
push dword [esp + 0x1c]
lea eax, [esp + 0x1b0]
push eax
call fcn.00408643
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x1b8]
push eax
call fcn.0040833c
add esp, 0x1c
push dword [esp + 0x10]
call edi
push dword [esp + 0x2c]
call fcn.00407772
pop ecx
push esi
call edi
cmp dword [esp + 0x18], ebx
je 0x403ea9
push ebp
call fcn.0040375d
push 4
lea eax, [esp + 0x18]
push eax
push dword [0x423010]
call fcn.00406df5
add ebp, 4
push ebp
call fcn.0040375d
push 8
lea eax, [esp + 0x28]
push eax
push dword [0x423010]
call fcn.00406df5
add ebp, 8
push ebp
call fcn.0040375d
push 0x20
lea eax, [esp + 0x50]
push eax
push dword [0x423010]
call fcn.00406df5
movzx esi, byte [esp + 0x17]
movzx eax, byte [esp + 0x16]
shl esi, 8
add esi, eax
mov eax, dword [esp + 0x14]
shl esi, 8
movzx ecx, ah
add esi, ecx
movzx eax, al
shl esi, 8
add esi, eax
push esi
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [esp + 0x10], eax
test eax, eax
je 0x403ea9
lea ecx, [ebp + 0x20]
push ecx
call fcn.0040375d
mov ebp, dword [esp + 0x10]
push esi
push ebp
call fcn.00403747
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.00407d4f
push esi
lea eax, [esp + 0xbc]
push ebp
push eax
call fcn.00407ceb
add esp, 0x18
lea eax, [esi + esi]
mov dword [esp + 0x18], eax
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebp, eax
lea eax, [esp + 0x18]
push ebx
push eax
push ebp
push esi
push dword [esp + 0x20]
call fcn.00407f7a
add esp, 0x14
mov esi, eax
push dword [esp + 0x10]
call edi
test esi, esi
je 0x40407e
push ebp
jmp 0x403ea7
push dword [esp + 0x18]
push ebp
call fcn.00407890
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4040ac
push 0x41a5e8
push esi
call fcn.004077f0
pop ecx
pop ecx
test eax, eax
je 0x4040a5
call eax
mov ebx, eax
push esi
call fcn.00407772
pop ecx
push ebp
call edi
test ebx, ebx
je 0x403ea9
mov eax, 0x41a5ec
jmp 0x403eba