Function at 0x405ac2
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x348
push ebx
push esi
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
push edi
mov edi, 0x3ea
push edi
push dword [ebp + 8]
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x3c]
push eax
push edi
push dword [ebp + 8]
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [0x415b5c]
xor edi, edi
push edi
mov dword [0x415b54], edi
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x14], eax
mov eax, dword [0x4193f0]
not eax
shr eax, 1
push 0x424050
push dword [0x415b5c]
and eax, 1
mov dword [ebp - 0xc], eax
call fcn.00402ab9
test eax, eax
pop ecx
pop ecx
jne 0x405e44
mov ebx, 0x424068
call fcn.00402b4d
test eax, eax
jne 0x405e44
push 0x416032
lea eax, [ebp - 0x140]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x140]
push eax
call fcn.0040878e
pop ecx
call fcn.00402117
test eax, eax
je 0x405baa
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebx
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x244]
mov dword [0x415fd4], eax
mov dword [0x415fd8], ebx
mov dword [ebp - 4], edi
call fcn.00402117
test eax, eax
je 0x405be4
push ebx
push 0x423e20
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x405bcd
mov dword [ebp - 4], 1
push ebx
push 0x423f24
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x405be4
mov dword [ebp - 4], 1
test byte [0x4193f0], 0x20
je 0x405c04
push ebx
push 0x416442
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x405c04
mov dword [ebp - 4], 1
test byte [0x4193f0], 0x80
je 0x405c24
push ebx
push 0x416f5a
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x405c24
mov dword [ebp - 4], 1
test byte [0x4193f1], 0x10
je 0x405c44
push ebx
push 0x423a05
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x405c44
mov dword [ebp - 4], 1
test byte [0x4193f1], 0x80
je 0x405c64
push ebx
push 0x423d18
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x405c64
mov dword [ebp - 4], 1
cmp dword [ebp - 4], edi
jne 0x405cbf
push ebx
lea eax, [ebp - 0x140]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x348]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push edi
push 0x14000
lea eax, [ebp - 0x3c]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x348]
push eax
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_DrawTextExA]
lea eax, [ebp - 0x348]
push eax
push 0x3ea
push dword [ebp + 8]
call esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
call fcn.00402117
test eax, eax
je 0x405ce8
cmp byte [0x424050], 0x63
je 0x405ce8
mov dword [0x415fc0], 0x3ed
call fcn.0040217c
test eax, eax
jne 0x405e44
cmp dword [ebp - 0xc], edi
mov dword [ebp - 8], 1
jne 0x405d3c
cmp dword [ebp - 4], edi
jne 0x405d3c
lea eax, [ebp - 0x140]
push eax
call fcn.00408b7d
test eax, eax
pop ecx
je 0x405d3c
push edi
push 0x408147
push dword [ebp + 8]
push 0x68
push dword [0x415b68]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
dec eax
je 0x405d39
dec eax
je 0x405d30
dec eax
je 0x405e3a
jmp 0x405d3c
mov dword [ebp - 0xc], 1
jmp 0x405d3c
mov dword [ebp - 8], edi
cmp dword [0x42427c], edi
jne 0x405e44
cmp dword [ebp - 0xc], edi
jne 0x405d52
cmp dword [ebp - 8], edi
je 0x405d63
cmp dword [ebp - 4], edi
jne 0x405d63
push dword [0x415b5c]
call fcn.00402b60
pop ecx
call fcn.00402b4d
test eax, eax
jne 0x405e44
call fcn.00402117
test eax, eax
je 0x405d99
cmp byte [0x424050], 0x63
je 0x405d99
mov dword [0x415fc0], 0x3ee
call fcn.0040217c
test eax, eax
jne 0x405e44
push 0x424050
push dword [0x415b5c]
call fcn.00402af4
pop ecx
pop ecx
push 1
push edi
mov dword [ebp - 4], eax
mov eax, dword [0x415b5c]
push edi
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 8], eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
push eax
push dword [0x415b5c]
call fcn.00403348
mov eax, dword [ebp - 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], edi
fild qword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edi
add esp, 0xc
fmul qword [0x410368]
fild qword [ebp - 0x1c]
fdivp st(1)
call fcn.0040a054
push edi
push edi
push 0x3f2
push dword [ebp + 8]
mov dword [0x415b54], eax
call esi
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
push 0x3f2
push dword [ebp + 8]
call esi
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
push dword [ebp + 8]
call fcn.00405a6f
cmp dword [ebp - 4], edi
pop ecx
jne 0x405e44
jmp 0x405b42
mov dword [0x42427c], 1
push dword [ebp - 0x10]
mov dword [0x415fd4], edi
push dword [ebp + 8]
mov dword [0x415fd8], edi
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp dword [0x42427c], edi
pop edi
pop esi
pop ebx
je 0x405e6c
or eax, 0xffffffff
leave
ret
call fcn.00402b4d
neg eax
sbb eax, eax
inc eax
leave
ret