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.00406dcc
mov edi, eax
mov dword [esp + 0x10], edi
mov dword [0x423010], edi
cmp edi, 0xffffffff
jne 0x403a53
mov eax, str.Error_launching_installer
jmp 0x403ebe
push esi
mov esi, 0x7ce800
push esi
call fcn.00406fcb
push esi
call fcn.004071c0
push eax
push 0x7d1000
call fcn.00406fcb
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 0x403eb1
cmp dword [0x7c2188], ebx
jne 0x403b4d
push 0x1c
push 0x7a4d80
lea eax, [esp + 0x38]
push eax
call fcn.00406b65
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 0x403eb9
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.00408526
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 0x403eb9
test ebp, ebp
je 0x403bd7
push dword [0x4264ac]
call fcn.0040375d
push 4
lea eax, [esp + 0x1c]
push eax
push dword [0x423010]
call fcn.00406df9
test eax, eax
je 0x403eb9
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x18]
jne 0x403eb9
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 0x403eb9
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.00406b65
call fcn.00417140
call fcn.004170d0
test eax, eax
je 0x403ead
call fcn.004168e0
test eax, eax
jne 0x403ead
call fcn.00417130
test eax, eax
je 0x403ead
call fcn.00416c90
test eax, eax
je 0x403ead
call fcn.00416890
test eax, eax
jne 0x403ead
call fcn.00416e70
test eax, eax
je 0x403ead
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.00407db0
add esp, 0x28
test eax, eax
jne 0x403ead
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.004082e8
push dword [0x4264a8]
lea eax, [esp + 0x138]
push esi
push eax
call fcn.004084de
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x144]
push eax
call fcn.004081d7
add esp, 0x18
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push 0x41
lea eax, [esp + 0xf0]
push ebx
push eax
call fcn.004092dc
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.0040933d
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 0x403ead
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.00406df9
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.00406df9
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.00406df9
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 0x4040bb
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.00407d53
push esi
push dword [esp + 0x20]
lea eax, [esp + 0xc0]
push eax
call fcn.00407cef
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.00407f7e
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 0x403ecb
push esi
call edi
xor eax, eax
jmp 0x403ebe
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.00407894
mov dword [esp + 0x34], eax
pop ecx
pop ecx
test eax, eax
je 0x403f77
push str.GetKey
push eax
call fcn.004077f4
mov dword [esp + 0x24], eax
pop ecx
pop ecx
test eax, eax
je 0x403f6d
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 0x403f67
lea eax, [esp + 0x1a0]
push eax
call fcn.004082e8
push dword [esp + 0x14]
call fcn.0040a190
push eax
push dword [esp + 0x1c]
lea eax, [esp + 0x1b0]
push eax
call fcn.004084de
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x1b8]
push eax
call fcn.004081d7
add esp, 0x1c
push dword [esp + 0x10]
call edi
push dword [esp + 0x2c]
call fcn.00407776
pop ecx
push esi
call edi
cmp dword [esp + 0x18], ebx
je 0x4040bb
push ebp
call fcn.0040375d
push 4
lea eax, [esp + 0x18]
push eax
push dword [0x423010]
call fcn.00406df9
add ebp, 4
push ebp
call fcn.0040375d
push 8
lea eax, [esp + 0x28]
push eax
push dword [0x423010]
call fcn.00406df9
add ebp, 8
push ebp
call fcn.0040375d
push 0x20
lea eax, [esp + 0x50]
push eax
push dword [0x423010]
call fcn.00406df9
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 0x403ead
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.00407d53
push esi
lea eax, [esp + 0xbc]
push ebp
push eax
call fcn.00407cef
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.00407f7e
add esp, 0x14
mov esi, eax
push dword [esp + 0x10]
call edi
test esi, esi
je 0x404082
push ebp
jmp 0x403eab
push dword [esp + 0x18]
push ebp
call fcn.00407894
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4040b0
push 0x41a5ec
push esi
call fcn.004077f4
pop ecx
pop ecx
test eax, eax
je 0x4040a9
call eax
mov ebx, eax
push esi
call fcn.00407776
pop ecx
push ebp
call edi
test ebx, ebx
je 0x403ead
mov eax, 0x41a5e8
jmp 0x403ebe