Function at 0x40a822
Capabilities:
Get file size

Disassembly:
mov eax, 0x6016c4
call fcn.00474a88
sub esp, 0x14
push ebx
push esi
mov esi, ecx
xor ebx, ebx
cmp dword [esi + 0xc0], ebx
jne 0x40a844
xor eax, eax
jmp 0x40aa64
push ebx
mov ecx, esi
call fcn.0040a326
lea eax, [esi + 0x1a0]
lea ecx, [ebp - 0x14]
push eax
call fcn.005e34c5
push ebx
push ebx
push 0x1042
mov dword [ebp - 4], ebx
push dword [esi + 0xad4]
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esi + 0x74]
lea eax, [esi + 0x74]
cmp dword [ecx - 8], ebx
je 0x40a8a3
push 0x69da70
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.005e39e5
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 1
call fcn.005e3b68
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], bl
call fcn.005e3750
mov eax, dword [ebp - 0x14]
cmp dword [eax - 8], ebx
jne 0x40a8f7
push 0x796570
lea ecx, [esi + 0x9bc]
call fcn.005e38d9
lea eax, [ebp - 0x20]
lea ecx, [esi + 0xb4]
push eax
call fcn.0040c665
lea ecx, [ebp - 0x20]
call fcn.005e3750
push 1
mov ecx, esi
call fcn.0040a326
push 0x30
push 0x69daec
push 0x69db2c
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_MessageBoxA]
xor esi, esi
jmp 0x40aa56
mov eax, dword [esi + 0xb8]
push edi
lea edi, [esi + 0x80]
add eax, 8
push eax
mov ecx, edi
call fcn.005e3889
push edi
lea ecx, [ebp - 0x10]
call fcn.005e34c5
push dword [ebp - 0x14]
mov eax, dword [esi + 0x9bc]
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 2
push eax
call fcn.005db743
lea eax, [ebp - 0x10]
lea ecx, [esi + 0x6c]
push eax
call fcn.005e3889
push eax
lea ecx, [esi + 0x84]
call fcn.005e3889
mov eax, dword [esi + 0x78]
cmp eax, 0xffffffff
je 0x40a955
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push 0x80
push 3
push ebx
push 1
push bind
push ebx
mov ecx, edi
call fcn.005e3b80
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [esi + 0x78], eax
jne 0x40a983
xor esi, esi
jmp 0x40aa4a
lea ecx, [ebp - 0x18]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push 1
push ebx
push ebx
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x18]
call fcn.004757a0
xor ecx, ecx
add eax, dword [ebp - 0x1c]
mov dword [esi + 0x88], eax
mov eax, dword [ebp - 0x10]
adc edx, ecx
mov dword [esi + 0x8c], edx
mov eax, dword [eax - 8]
add eax, 0xa
push eax
push 0x40
mov dword [ebp - 0x20], eax
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push dword [ebp - 0x20]
mov edi, eax
push ebx
push edi
call fcn.00473f70
lea eax, [ebp - 0x18]
push 4
push eax
lea eax, [edi + 1]
push eax
mov byte [edi], 3
call fcn.00473fd0
lea eax, [ebp - 0x1c]
push 4
push eax
lea eax, [edi + 5]
push eax
call fcn.00473fd0
mov eax, dword [ebp - 0x10]
add esp, 0x24
lea ecx, [ebp - 0x10]
mov eax, dword [eax - 8]
inc eax
push eax
push ebx
call fcn.005e3b80
push eax
lea eax, [edi + 9]
push eax
call fcn.00473fd0
add esp, 0xc
mov ecx, dword [esi + 0x9ac]
push ebx
push dword [ebp - 0x20]
push edi
push dword [esi + 0x9a8]
call fcn.0040ef7d
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea eax, [ebp - 0x20]
lea ecx, [esi + 0xb4]
push eax
call fcn.0040c665
lea ecx, [ebp - 0x20]
call fcn.005e3750
push 1
pop esi
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], bl
call fcn.005e3750
pop edi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.005e3750
mov eax, esi
mov ecx, dword [ebp - 0xc]
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret