Function at 0x40606c
Capabilities:
Get file size

Disassembly:
mov eax, 0x429148
call fcn.0041bd3c
sub esp, 0x6c
push ebx
mov ebx, dword [esp + 0x84]
push ebp
push edi
mov edi, ecx
test dword [edi], 0x1000000
je 0x40666c
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x44], 7
mov dword [esp + 0x40], ecx
mov word [esp + 0x30], ax
mov dword [esp + 0x80], ecx
lea eax, [esp + 0x60]
push ebx
push eax
call fcn.00406c93
mov byte [esp + 0x88], 1
lea ecx, [esp + 0x38]
push ecx
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0040b292
add esp, 0x14
mov byte [esp + 0x80], 3
xor ebp, ebp
push ebp
push 1
lea ecx, [esp + 0x68]
call fcn.00401bb0
mov byte [esp + 0x80], 4
push ebp
push 1
lea ecx, [esp + 0x38]
call fcn.00401bb0
lea eax, [esp + 0x48]
push ebp
push eax
call fcn.0040ba53
pop ecx
pop ecx
test al, al
je 0x406658
cmp dword [esp + 0x5c], 8
push esi
lea eax, [edi + 0x60]
push eax
lea esi, [esp + 0x50]
cmovae esi, dword [esp + 0x50]
push 1
mov ecx, edi
call fcn.004013b5
push ebp
push 0x80
push 3
push ebp
push 1
push SysReAllocString
push esi
call dword [eax]
and dword [esp + 0x18], ebp
mov dword [esp + 0x14], eax
call fcn.00406c75
cmp eax, 2
jae 0x406176
push ebp
push 1
push 1
push ebp
call dword [sym.imp.KERNEL32.dll_CreateEventA]
test eax, eax
je 0x406176
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [esp + 0x90], 0
cmp byte [esp + 0x90], 0
je 0x4061b5
mov ebp, 0x311
mov esi, ebp
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push ebp
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
dec esi
jne 0x40618f
call fcn.00406c75
cmp eax, 3
jae 0x4061dc
push str.Global544
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x4061dc
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
call fcn.00406c75
mov ebp, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
cmp eax, 2
jae 0x4061fb
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x20], 0
call ebp
call fcn.00406c75
cmp eax, 2
jae 0x40621c
push 2
call fcn.0041a976
pop ecx
test eax, eax
je 0x40621c
push eax
mov byte [eax + 1], 0x27
call fcn.0040c4f8
pop ecx
xor ecx, ecx
mov byte [esp + 0x90], cl
cmp byte [esp + 0x90], cl
je 0x406244
push ecx
push ecx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_SetDlgItemInt]
xor ecx, ecx
call fcn.00406c75
cmp eax, 3
jae 0x40625b
push str.Local250
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
xor eax, eax
mov byte [esp + 0x90], al
cmp byte [esp + 0x90], al
je 0x40629b
mov esi, 0x208
jmp 0x406276
xor eax, eax
push eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push 0x208
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
dec esi
jne 0x406274
mov esi, dword [esp + 0x14]
cmp esi, 0xffffffff
je 0x40661d
lea eax, [edi + 0x58]
push eax
push 1
mov ecx, edi
call fcn.004013b5
xor ecx, ecx
push ecx
push ecx
push ecx
push 2
push ecx
push esi
call dword [eax]
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
je 0x406627
lea ecx, [edi + 0xfc]
push ecx
push 1
mov ecx, edi
call fcn.004013b5
xor ecx, ecx
push ecx
push ecx
push ecx
push 4
push dword [esp + 0x28]
call dword [eax]
push 0
mov edi, eax
push esi
mov dword [esp + 0x38], edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push 0x164
mov esi, eax
call fcn.0041ac3a
pop ecx
mov dword [esp + 0x90], eax
mov byte [esp + 0x84], 5
test eax, eax
je 0x406328
push 0
push esi
push edi
mov ecx, eax
call fcn.004074ea
mov edi, eax
jmp 0x40632a
xor edi, edi
mov byte [esp + 0x84], 4
call fcn.00406c75
push 2
pop esi
cmp eax, esi
jae 0x406354
push esi
call fcn.0041a976
pop ecx
test eax, eax
je 0x406354
push eax
mov byte [eax + 1], 0xee
call fcn.0040c4f8
pop ecx
call fcn.00406c75
cmp eax, 3
jae 0x40637b
push 0x42b358
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x40637b
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
call fcn.00406c75
cmp eax, esi
jae 0x406393
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x24], 0
call ebp
call fcn.00406c75
cmp eax, esi
jae 0x4063b2
push esi
call fcn.0041a976
pop ecx
test eax, eax
je 0x4063b2
push eax
mov byte [eax + 1], 0xca
call fcn.0040c4f8
pop ecx
call fcn.00406c75
cmp eax, 3
jae 0x4063d9
push str.Global985
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x4063d9
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
call fcn.00406c75
cmp eax, esi
jae 0x4063f8
push esi
call fcn.0041a976
pop ecx
test eax, eax
je 0x4063f8
push eax
mov byte [eax + 1], 0xf3
call fcn.0040c4f8
pop ecx
xor eax, eax
mov byte [esp + 0x90], al
cmp byte [esp + 0x90], al
je 0x40641e
push eax
push eax
call dword [sym.imp.USER32.dll_IsDialogMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_SetDlgItemInt]
call fcn.00406c75
cmp eax, esi
jae 0x40643d
push esi
call fcn.0041a976
pop ecx
test eax, eax
je 0x40643d
push eax
mov byte [eax + 1], 0xe2
call fcn.0040c4f8
pop ecx
call fcn.00406c75
cmp eax, 3
jae 0x406464
push str.Global611
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x406464
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
xor eax, eax
mov byte [esp + 0x90], al
cmp byte [esp + 0x90], al
je 0x4064a6
mov esi, 0x197
push eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push 0x197
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
pop eax
dec esi
jne 0x40647b
push 2
pop esi
mov byte [esp + 0x90], al
cmp byte [esp + 0x90], 0
je 0x4064cb
push eax
push eax
call dword [sym.imp.USER32.dll_IsDialogMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_SetDlgItemInt]
test byte [edi], 0x80
jne 0x4064e6
cmp dword [edi + 4], 0
je 0x4064e6
mov ecx, edi
call fcn.0040768e
push edi
call fcn.0040c4f8
pop ecx
jmp 0x4064fe
mov eax, dword [edi + 0xc]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push eax
mov ecx, 0x43a06c
call fcn.004016fc
mov dword [eax], edi
call fcn.00406c75
cmp eax, esi
jae 0x406516
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], 0
call ebp
call fcn.00406c75
mov edi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
cmp eax, esi
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
jae 0x406539
push str.905905
call edi
test eax, eax
je 0x406539
push eax
call esi
call fcn.00406c75
cmp eax, 3
jae 0x406552
push str.Local175
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
call fcn.00406c75
cmp eax, 2
jae 0x406573
push 2
call fcn.0041a976
pop ecx
test eax, eax
je 0x406573
push eax
mov byte [eax + 1], 0x50
call fcn.0040c4f8
pop ecx
call fcn.00406c75
cmp eax, 2
jae 0x40658c
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x2c], 0
call ebp
call fcn.00406c75
cmp eax, 3
jae 0x4065b3
push str.Global33
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x4065b3
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
call fcn.00406c75
cmp eax, 2
jae 0x4065cc
lea eax, [esp + 0x2c]
push eax
mov dword [esp + 0x30], 0
call ebp
call fcn.00406c75
cmp eax, 2
jae 0x4065e4
push str.158158
call edi
test eax, eax
je 0x4065e4
push eax
call esi
xor eax, eax
mov byte [esp + 0x90], al
cmp byte [esp + 0x90], al
je 0x40660a
push eax
push eax
call dword [sym.imp.USER32.dll_IsDialogMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_SetDlgItemInt]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x406619
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov esi, dword [esp + 0x14]
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, 0xffffffff
je 0x406633
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x10], 0
pop esi
je 0x406656
or dword [esp + 0x80], 0xffffffff
push 0
push 1
lea ecx, [esp + 0x50]
call fcn.00401bb0
mov eax, dword [esp + 0xc]
jmp 0x40667b
xor ebp, ebp
or dword [esp + 0x80], 0xffffffff
push ebp
push 1
lea ecx, [esp + 0x50]
call fcn.00401bb0
cmp dword [ebx + 0x14], 0x10
jb 0x406674
mov ebx, dword [ebx]
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ecx, dword [esp + 0x78]
pop edi
pop ebp
pop ebx
mov dword fs:[0], ecx
leave
ret 4