Function at 0x403317
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x30
mov dword [ebp - 0x34], 0
mov edi, dword [ebp + 8]
mov dword [ebp - 0x38], 0
call sub.KERNEL32.dll_GetTickCount
push 0x400
add eax, 0x3e8
push 0x439c00
mov dword [0x42f990], eax
push 0
call sub.KERNEL32.dll_GetModuleFileNameA
push 3
push 0x80000000
push 0x439c00
call fcn.00405b6a
mov edx, 0x40a163
mov dword [0x409010], eax
mov dword [ebp - 0x3c], eax
inc eax
je 0x40357f
push 0x439c00
push 0x438c00
call fcn.00405d1f
push 0x438c00
call fcn.00405d99
push eax
push 0x43a000
call fcn.00405d1f
push 0
push dword [ebp - 0x3c]
call sub.KERNEL32.dll_GetFileSize
mov dword [0x420c70], eax
mov ebx, eax
test ebx, ebx
jle 0x4034b1
mov eax, dword [0x42f9c0]
test eax, eax
je 0x4033c6
cmp ebx, 0x7fff
jle 0x4033ce
jmp 0x4033d2
cmp ebx, 0x1ff
jg 0x4033db
mov esi, ebx
jmp 0x4033e0
mov esi, 0x8000
test eax, eax
jne 0x4033e0
mov esi, 0x200
push esi
push 0x418c70
call fcn.00403080
test eax, eax
je 0x403526
cmp dword [0x42f9c0], 0
jne 0x40347b
lea eax, [ebp - 0x2c]
push 0x1c
push 0x418c70
push eax
call fcn.00405a7b
mov edx, dword [ebp - 0x2c]
test edx, 0xfffffff0
jne 0x40348b
cmp dword [ebp - 0x28], 0xdeadbeef
jne 0x40348b
cmp dword [ebp - 0x1c], 0x74736e49
jne 0x40348b
cmp dword [ebp - 0x20], 0x74666f73
jne 0x40348b
cmp dword [ebp - 0x24], 0x6c6c754e
jne 0x40348b
mov eax, dword [0x420c80]
or edi, edx
mov dword [0x42f9c0], eax
mov eax, edi
and eax, 2
or dword [0x42f900], eax
mov eax, dword [ebp - 0x14]
cmp eax, ebx
jg 0x40352d
test edi, 8
jne 0x40346d
test edi, 4
jne 0x4034b1
lea ebx, [eax - 4]
inc dword [ebp - 0x38]
cmp esi, ebx
jbe 0x40348b
mov esi, ebx
jmp 0x40348b
test edi, 2
jne 0x40348b
push 0
call fcn.0040300c
pop ecx
cmp ebx, dword [0x420c70]
jge 0x4034a4
push esi
push 0x418c70
push dword [ebp - 0x34]
call fcn.00406540
mov dword [ebp - 0x34], eax
add dword [0x420c80], esi
sub ebx, esi
jmp 0x4033ab
push 1
call fcn.0040300c
pop edx
mov edx, str.The_installer_you_are_trying_to_use_is_corrupted_or_incomplete._nThis_could_be_the_result_of_a_damaged_disk__a_failed_download_or_a_virus._n_nYou_may_want_to_contact_the_author_of_this_installer_to_obtain_a_new_copy._n_nIt_may_be_possible_to_skip_this_check_using_the__NCRC_command_line_switch_n_NOT_RECOMMENDED_.
cmp dword [0x42f9c0], 0
je 0x40357f
cmp dword [ebp - 0x38], 0
je 0x4034f3
push dword [0x420c80]
call fcn.00403067
lea eax, [ebp - 0x30]
push 4
push eax
call fcn.00403080
test eax, eax
je 0x40352d
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x30]
jne 0x40352d
push dword [ebp - 0x18]
push 0x40
call sub.KERNEL32.dll_GlobalAlloc
mov esi, eax
mov eax, dword [0x42f9c0]
add eax, 0x1c
push eax
call fcn.00403067
push dword [ebp - 0x18]
push esi
push 0
push 0xffffffffffffffff
call fcn.004030b8
mov edx, str.The_installer_you_are_trying_to_use_is_corrupted_or_incomplete._nThis_could_be_the_result_of_a_damaged_disk__a_failed_download_or_a_virus._n_nYou_may_want_to_contact_the_author_of_this_installer_to_obtain_a_new_copy._n_nIt_may_be_possible_to_skip_this_check_using_the__NCRC_command_line_switch_n_NOT_RECOMMENDED_.
cmp eax, dword [ebp - 0x18]
jne 0x40357f
jmp 0x403534
push 1
call fcn.0040300c
mov edx, str.The_installer_you_are_trying_to_use_is_corrupted_or_incomplete._nThis_could_be_the_result_of_a_damaged_disk__a_failed_download_or_a_virus._n_nYou_may_want_to_contact_the_author_of_this_installer_to_obtain_a_new_copy._n_nIt_may_be_possible_to_skip_this_check_using_the__NCRC_command_line_switch_n_NOT_RECOMMENDED_.
jmp 0x40357f
mov dword [0x42f940], esi
test byte [ebp - 0x2c], 1
mov eax, dword [esi]
mov dword [0x42f9a0], eax
je 0x40354d
inc dword [0x42f9b0]
mov ebx, 7
add dword [esi + ebx*8 + 4], esi
dec ebx
cmp ebx, 0xffffffff
jne 0x403552
push 1
push 0
push 0
push dword [ebp - 0x3c]
call sub.KERNEL32.dll_SetFilePointer
mov dword [esi + 0x3c], eax
lea eax, [esi + 4]
push 0x40
push eax
push 0x42f950
call fcn.00405a7b
xor edx, edx
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret 4