Function at 0x401e60
Capabilities:
Get file size

Disassembly:
mov eax, 0x42201a
call fcn.00414d1c
sub esp, 0x50
push ebx
push ebp
mov ebx, ecx
push esi
test dword [ebx], 0x1000000
push edi
mov edi, dword [esp + 0x74]
je 0x402148
xor esi, esi
xor eax, eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov ebp, esi
mov dword [esp + 0x2c], 7
mov dword [esp + 0x28], esi
mov word [esp + 0x18], ax
mov dword [esp + 0x68], esi
lea eax, [esp + 0x48]
push edi
push eax
call fcn.004042ff
mov byte [esp + 0x70], 1
lea ecx, [esp + 0x20]
push ecx
push eax
lea eax, [esp + 0x40]
push eax
call fcn.00407366
add esp, 0x14
mov byte [esp + 0x68], 3
push esi
push 1
lea ecx, [esp + 0x50]
call fcn.00401ab9
mov byte [esp + 0x68], 4
push esi
push 1
lea ecx, [esp + 0x20]
call fcn.00401ab9
lea eax, [esp + 0x30]
push esi
push eax
call fcn.00407a7d
pop ecx
pop ecx
test al, al
je 0x402137
cmp dword [esp + 0x44], 8
lea eax, [ebx + 0x394]
push eax
lea esi, [esp + 0x34]
cmovae esi, dword [esp + 0x34]
push 1
mov ecx, ebx
call fcn.004049a8
push ebp
push 0x80
push 3
push ebp
push 1
push 0x80000000
push esi
call dword [eax]
mov ecx, dword [section..data]
and dword [esp + 0x10], ebp
mov edx, ecx
not edx
and edx, 0x2b2
neg edx
sbb edx, edx
mov dword [esp + 0x74], eax
mov eax, dword [0x42f004]
neg edx
lea esi, [ecx + ecx]
or esi, edx
shl eax, 0x14
or eax, 0xaf
mov dword [section..data], esi
mov dword [0x42f004], eax
jne 0x401f80
push ebp
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [section..data]
mov eax, dword [0x42f004]
inc eax
mov ecx, 0x359
cmove eax, ecx
mov ecx, esi
not ecx
and ecx, 0x2b2
neg ecx
sbb ecx, ecx
mov dword [0x42f004], eax
neg ecx
lea eax, [esi + esi]
mov esi, dword [esp + 0x74]
or eax, ecx
mov dword [section..data], eax
cmp esi, 0xffffffff
je 0x402105
lea eax, [ebx + 0x334]
push eax
push 1
mov ecx, ebx
call fcn.004049a8
xor ecx, ecx
push ecx
push ecx
push ecx
push 2
push ecx
push esi
call dword [eax]
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
je 0x40210f
lea eax, [ebx + 0x21c]
push eax
push 1
mov ecx, ebx
call fcn.004049a8
xor ecx, ecx
push ecx
push ecx
push ecx
push 4
push dword [esp + 0x20]
call dword [eax]
mov edx, dword [0x42f004]
mov ebx, eax
inc edx
mov eax, 0x1e8
cmove edx, eax
or edx, 0x15d
mov dword [0x42f004], edx
jne 0x402027
push 0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [0x42f004]
mov ecx, dword [section..data]
mov eax, ecx
not eax
and eax, 0x2b2
neg eax
sbb eax, eax
and eax, 0x80000000
add eax, 0x80000000
shl edx, 0x13
shr ecx, 1
or ecx, eax
or edx, 0x1b580001
inc edx
mov eax, 0x3ac
cmove edx, eax
mov eax, 0x226
cmp edx, eax
cmove edx, eax
mov eax, ecx
not eax
and eax, 0x2b2
neg eax
sbb eax, eax
mov dword [0x42f004], edx
mov edx, 0x80000000
and eax, edx
add eax, edx
shr ecx, 1
push 0
or ecx, eax
push esi
mov dword [section..data], ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push 0x164
mov esi, eax
call fcn.00413c1a
pop ecx
mov dword [esp + 0x14], eax
mov byte [esp + 0x68], 5
test eax, eax
je 0x4020bc
push 0
push esi
push ebx
mov ecx, eax
call fcn.00404add
mov esi, eax
jmp 0x4020be
xor esi, esi
mov byte [esp + 0x68], 4
test byte [esi], 0x80
jne 0x4020de
cmp dword [esi + 4], 0
je 0x4020de
mov ecx, esi
call fcn.00404b83
push esi
call fcn.00413c69
pop ecx
jmp 0x4020f6
mov ebp, dword [esi + 0xc]
lea eax, [esp + 0x14]
push eax
mov ecx, 0x431acc
mov dword [esp + 0x18], ebp
call fcn.004015dd
mov dword [eax], esi
test ebx, ebx
je 0x402101
push ebx
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov esi, dword [esp + 0x74]
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, 0xffffffff
je 0x40211b
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebp, ebp
je 0x402135
or dword [esp + 0x68], 0xffffffff
push 0
push 1
lea ecx, [esp + 0x38]
call fcn.00401ab9
mov eax, ebp
jmp 0x402157
xor esi, esi
or dword [esp + 0x68], 0xffffffff
push esi
push 1
lea ecx, [esp + 0x38]
call fcn.00401ab9
cmp dword [edi + 0x14], 0x10
jb 0x402150
mov edi, dword [edi]
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ecx, dword [esp + 0x60]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
leave
ret 4