Function at 0x4094f3
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
and dword [ebp - 0x14], 0
or dword [ebp - 4], 0xffffffff
or dword [ebp - 8], 0xffffffff
push esi
push 0x3ea
push 0x2e18
call fcn.0040107a
mov esi, eax
test esi, esi
je 0x4099e1
push ebx
push edi
push esi
lea edi, [esi + 0x2800]
push edi
push dword [ebp + 0x10]
lea ebx, [edi + 0x30c]
mov dword [ebp - 0x18], ebx
call fcn.00402a8c
push esi
push ebx
push dword [ebp + 0xc]
call fcn.00402a8c
push ebx
push 0x40cfb8
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push esi
push 0x64
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x10]
call fcn.00405821
mov dword [ebp - 0x10], eax
test eax, eax
jge 0x40959b
push eax
call fcn.00405a5a
push eax
push edi
push 0x40cfa8
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4098db
cmp dword [ebp - 0xc], 0
jle 0x4098db
push dword [ebp + 0x10]
call fcn.004042fc
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
jne 0x4095c0
push edi
push 0x40cf88
jmp 0x4098d1
push dword [ebp + 0xc]
call fcn.004042de
mov edi, eax
mov dword [ebp - 4], edi
cmp edi, 0xffffffff
jne 0x4095dd
push ebx
push 0x40cf68
jmp 0x4098d1
cmp byte [ebp + 0x28], 0
jne 0x409618
push 0x2800
push dword [ebp - 0x10]
call fcn.004013ee
push eax
push esi
push dword [ebp - 8]
call fcn.00402e09
mov ebx, eax
test ebx, ebx
jle 0x409630
push 3
push 0x40c678
push esi
call sub.ntdll.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x409630
push ebx
push esi
jmp 0x40962a
mov ebx, dword [ebp + 0x24]
test ebx, ebx
je 0x409630
push ebx
call fcn.00405419
push dword [ebx + 4]
push dword [ebx]
push edi
call fcn.00402e31
or dword [ebp + 0x10], 0xffffffff
cmp byte [ebp + 0x1c], 1
jne 0x40965f
mov eax, dword [ebp + 0x14]
xor ebx, ebx
cmp eax, ebx
jne 0x40964b
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x14], eax
jmp 0x409662
mov ecx, dword [ebp + 0x18]
mov dword [ebp + 0x14], ebx
cmp ecx, ebx
mov dword [ebp + 0x18], eax
mov ebx, eax
je 0x409662
mov dword [ebp + 0x10], ecx
jmp 0x409662
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp - 0xc]
imul edi, edi, 5
sar edi, 2
mov eax, edi
imul eax, dword [ebp + 0x14]
add eax, dword [ebp - 0x10]
push 0
cdq
push edx
push eax
push dword [ebp - 8]
call fcn.00402dda
mov dword [ebp + 0x1c], eax
test ebx, ebx
jne 0x40969a
push ebx
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
sub eax, dword [ebp + 0x1c]
mov dword [ebp + 0x1c], eax
jmp 0x4096a3
sub ebx, dword [ebp + 0x14]
imul ebx, edi
mov dword [ebp + 0x1c], ebx
and dword [ebp + 0x18], 0
mov ebx, dword [ebp + 0x18]
mov eax, 0x2800
sub eax, ebx
push eax
lea eax, [ebx + esi]
push eax
push dword [ebp - 8]
call fcn.00402e09
mov edi, eax
cmp edi, 0xffffffff
je 0x4098c5
add edi, ebx
cmp edi, 4
jl 0x40989f
lea eax, [edi - 4]
xor ebx, ebx
test eax, eax
jl 0x4096f7
push dword [ebx + esi]
call fcn.004013ff
push eax
call fcn.004057c6
test eax, eax
jne 0x40970f
inc ebx
lea eax, [edi - 4]
cmp ebx, eax
jle 0x4096dd
sub edi, ebx
mov dword [ebp + 0x18], edi
test edi, edi
jle 0x4096a7
push edi
add ebx, esi
push ebx
push esi
call sub.ntdll.dll_memcpy
add esp, 0xc
jmp 0x4096a7
mov eax, edi
sub eax, ebx
push eax
push dword [ebp + 0x1c]
call fcn.004013ee
push eax
mov dword [ebp + 0x18], eax
lea eax, [ebx + esi]
push eax
push dword [ebp - 4]
call fcn.00402e31
mov eax, dword [ebp + 0x18]
sub dword [ebp + 0x1c], eax
sub edi, eax
sub edi, ebx
test edi, edi
jle 0x409749
add eax, ebx
push edi
add eax, esi
push eax
push esi
call sub.ntdll.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 0x1c]
and dword [ebp + 0x18], 0
mov dword [ebp + 0xc], eax
test eax, eax
jle 0x409806
push 0x2800
push esi
push dword [ebp - 8]
call fcn.00402e09
mov edi, eax
mov dword [ebp + 0x14], edi
cmp edi, 0xffffffff
je 0x4098c5
test edi, edi
je 0x409804
push edi
push dword [ebp + 0x1c]
call fcn.004013ee
mov ebx, eax
push ebx
push esi
push dword [ebp - 4]
call fcn.00402e31
cmp eax, 0xffffffff
je 0x4098a6
cmp eax, ebx
jne 0x4098b0
sub dword [ebp + 0x1c], ebx
add dword [ebp + 0x18], ebx
sub edi, ebx
test edi, edi
jle 0x4097be
push edi
add ebx, esi
push ebx
push esi
call sub.ntdll.dll_memcpy
add esp, 0xc
cmp dword [ebp + 0x14], 0x2800
jl 0x409806
push 0
push dword [ebp + 0xc]
push 0x64
push dword [ebp + 0x18]
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push 0x402
push 0x65
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push dword [ebp + 8]
call fcn.00402c93
test eax, eax
je 0x4098b7
cmp dword [ebp + 0x1c], 0
jg 0x40975b
jmp 0x409806
xor edi, edi
mov eax, 0x2800
sub eax, edi
push eax
lea eax, [edi + esi]
push eax
push dword [ebp - 8]
call fcn.00402e09
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4098c5
add ebx, edi
cmp ebx, 4
jl 0x409879
xor edi, edi
lea eax, [ebx - 4]
mov dword [ebp + 0x1c], edi
test eax, eax
jl 0x409855
push dword [edi + esi]
call fcn.004013ff
push eax
call fcn.004057c6
test eax, eax
jne 0x40987c
inc edi
lea eax, [ebx - 4]
cmp edi, eax
mov dword [ebp + 0x1c], edi
jle 0x409838
push edi
push esi
push dword [ebp - 4]
call fcn.00402e31
sub ebx, edi
mov edi, ebx
test edi, edi
jle 0x409806
mov eax, dword [ebp + 0x1c]
push edi
add eax, esi
push eax
push esi
call sub.ntdll.dll_memcpy
add esp, 0xc
jmp 0x409806
push ebx
jmp 0x40987d
push edi
push esi
push dword [ebp - 4]
call fcn.00402e31
mov eax, dword [ebp + 0x10]
or ebx, 0xffffffff
cmp eax, ebx
je 0x4098ec
and dword [ebp + 0x18], 0
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x10], ebx
jmp 0x40965f
push 0x40cf44
jmp 0x4098bc
push dword [ebp - 0x18]
push 0x40cf28
jmp 0x4098d1
push 0x40cf08
jmp 0x4098bc
push 0x40cb7c
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x4098db
lea eax, [esi + 0x2800]
push eax
push 0x40ceec
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push esi
push 0x64
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
jmp 0x4099df
cmp byte [ebp + 0x28], 0
push 2
push ebx
push 0xffffffffffffff80
jne 0x409975
push dword [ebp - 8]
call fcn.00402dda
mov edi, 0x80
push edi
push esi
push dword [ebp - 8]
call fcn.00402e09
cmp eax, edi
jne 0x4099d8
push 3
push 0x40ce00
push esi
call sub.ntdll.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4099d8
push 2
push ebx
push 0xffffffffffffff80
push dword [ebp - 4]
call fcn.00402dda
push edi
lea ebx, [esi + 0x80]
push ebx
push dword [ebp - 4]
call fcn.00402e09
cmp eax, edi
jne 0x409963
push 3
push 0x40ce00
push ebx
call sub.ntdll.dll_memcmp
add esp, 0xc
test eax, eax
je 0x4099d8
push 2
push 0
push 0
push dword [ebp - 4]
call fcn.00402dda
push edi
push esi
jmp 0x4099d0
push dword [ebp - 4]
call fcn.00402dda
mov edi, 0x80
push edi
push esi
push dword [ebp - 4]
call fcn.00402e09
cmp eax, edi
jne 0x4099c6
push 3
push 0x40ce00
push esi
call sub.ntdll.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4099c6
push 2
push ebx
push 0xffffffffffffff80
push dword [ebp - 4]
call fcn.00402dda
cmp dword [ebp + 0x20], 0
jne 0x4099cc
push 0
push 0x40c338
push dword [ebp - 4]
call fcn.00402e31
cmp dword [ebp + 0x20], 0
je 0x4099d8
push edi
push dword [ebp + 0x20]
push dword [ebp - 4]
call fcn.00402e31
mov dword [ebp - 0x14], 1
pop edi
pop ebx
push dword [ebp - 8]
call fcn.00402dc1
push dword [ebp - 4]
call fcn.00402dc1
push esi
call fcn.0040315f
mov eax, dword [ebp - 0x14]
pop esi
leave
ret 0x24