Function at 0x403067
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
push ebx
push esi
xor esi, esi
push edi
mov dword [ebp - 4], esi
mov dword [ebp - 8], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, 0x42cc00
push 0x400
add eax, 0x3e8
push edi
push esi
mov dword [0x4253b0], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 3
push 0x80000000
push edi
call fcn.004062de
mov ebx, eax
cmp ebx, 0xffffffff
mov dword [ebp - 0xc], ebx
mov dword [0x40b024], ebx
jne 0x4030c4
mov eax, str.Error_launching_installer
jmp 0x40338c
mov esi, 0x42bc00
push edi
push esi
call fcn.0040674b
push esi
call fcn.004060e7
push eax
push 0x42d000
call fcn.0040674b
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
test eax, eax
mov dword [0x4208f4], eax
mov ebx, eax
jbe 0x4031ff
mov esi, dword [0x4253b8]
neg esi
sbb esi, esi
and esi, 0x7e00
add esi, 0x200
cmp ebx, esi
jae 0x403115
mov esi, ebx
push esi
push 0x40c8e8
call fcn.0040374c
test eax, eax
je 0x403346
cmp dword [0x4253b8], 0
jne 0x4031ca
push 0x24
lea eax, [ebp - 0x30]
push 0x40c8e8
push eax
call fcn.00406299
test dword [ebp - 0x30], 0xfffffe00
jne 0x4031d8
cmp dword [ebp - 0x2c], 0xdeadbeef
jne 0x4031d8
cmp dword [ebp - 0x20], 0x74736e49
jne 0x4031d8
cmp dword [ebp - 0x24], 0x74666f73
jne 0x4031d8
cmp dword [ebp - 0x28], 0x6c6c754e
jne 0x4031d8
mov edx, dword [ebp + 8]
mov eax, dword [0x4148e8]
or edx, dword [ebp - 0x30]
mov dword [0x4253b8], eax
mov ecx, edx
mov dword [ebp + 8], edx
and ecx, 2
or dword [0x425460], ecx
mov ecx, dword [ebp - 0x18]
cmp ecx, ebx
ja 0x40333f
test dl, 8
jne 0x4031a9
test dl, 4
jne 0x4031ff
inc dword [0x4208f8]
push 0x24
lea eax, [eax + ecx - 0x28]
pop ebx
mov dword [0x4148e8], eax
add eax, 0x20
push 0
push eax
mov esi, ebx
call fcn.004037bf
jmp 0x4031d8
test byte [ebp + 8], 2
jne 0x4031d8
push 0
call fcn.00403003
pop ecx
cmp ebx, dword [0x4208f4]
jae 0x4031f1
push esi
push 0x40c8e8
push dword [ebp - 4]
call fcn.00406c2a
mov dword [ebp - 4], eax
add dword [0x4148e8], esi
sub ebx, esi
jne 0x4030f9
test byte [ebp - 0x30], 1
je 0x40320b
inc dword [0x4253c4]
test byte [ebp - 0x30], 0x80
je 0x403217
inc dword [0x4253ac]
test byte [ebp - 0x2f], 1
je 0x403223
inc dword [0x4253c0]
cmp dword [0x4253ac], 0
je 0x4032a1
cmp dword [0x4253c4], 0
jne 0x4032a1
lea eax, [ebp - 0x134]
push edi
push eax
call fcn.0040674b
lea eax, [ebp - 0x134]
push eax
call fcn.0040610d
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.0040674b
lea eax, [ebp - 0x134]
push eax
lea eax, [ebp - 0x134]
push str._s.nsisbin
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x134]
push 3
push 0x80000000
push eax
call fcn.004062de
cmp eax, 0xffffffff
mov dword [0x40b028], eax
jne 0x4032a1
cmp dword [0x4253c0], 0
je 0x40333f
push 1
call fcn.00403003
xor ebx, ebx
pop ecx
cmp dword [0x4253b8], ebx
je 0x40333f
cmp dword [0x4208f8], ebx
je 0x403301
mov eax, dword [0x4148e8]
push ebx
add eax, 0xfffffffc
push eax
call fcn.004037bf
lea eax, [ebp - 8]
push 4
push eax
call fcn.0040374c
test eax, eax
je 0x40333f
lea eax, [ebp - 8]
push 4
push eax
push dword [ebp - 4]
call fcn.00406c2a
mov esi, eax
lea eax, [ebp + 8]
push 4
push eax
call fcn.0040374c
test eax, eax
je 0x40333f
cmp esi, dword [ebp + 8]
jne 0x40333f
push dword [ebp - 0x1c]
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
mov eax, dword [0x4253b8]
add eax, 0x24
push eax
call fcn.004037a8
push dword [ebp - 8]
push dword [ebp - 0x1c]
push esi
push ebx
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
call fcn.00403409
mov ecx, eax
mov eax, dword [ebp - 0x1c]
mov edi, edx
cdq
cmp ecx, eax
jne 0x40333f
cmp edi, edx
je 0x403350
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
jmp 0x40338c
push 1
call fcn.00403003
pop ecx
jmp 0x40333f
mov dword [0x4253b4], esi
mov eax, dword [esi]
push 8
mov dword [0x4253bc], eax
lea eax, [esi + 0x44]
pop ecx
sub eax, 8
add dword [eax], esi
dec ecx
jne 0x403363
push 1
push ebx
push ebx
push dword [ebp - 0xc]
call fcn.00403762
mov dword [esi + 0x3c], eax
add esi, 4
push 0x40
push esi
push 0x4253e0
call fcn.00406299
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4