Function at 0x40e448
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42750c
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
mov eax, dword [0x4351f0]
xor eax, esp
mov dword [esp + 0xa0], eax
push ebx
push esi
push edi
mov eax, dword [0x4351f0]
xor eax, esp
push eax
lea eax, [esp + 0xb8]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x28], ebx
lea ecx, [esp + 0x4c]
call fcn.00407a78
xor edi, edi
lea ecx, [esp + 0x68]
push str.params.json
mov edx, eax
mov dword [esp + 0xc4], edi
call fcn.0040e9ae
pop ecx
push edi
push 1
lea ecx, [esp + 0x54]
mov byte [esp + 0xc8], 2
call fcn.004065b8
cmp dword [esp + 0x7c], 8
lea eax, [esp + 0x68]
push edi
cmovae eax, dword [esp + 0x6c]
push 0x80
push 3
push edi
push edi
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x40e51d
lea eax, [esp + 0x2c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
push esi
setne bl
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test bl, bl
mov ebx, dword [esp + 0x28]
je 0x40e51d
cmp byte [ebx + 0xd0], 1
jne 0x40e8eb
mov dword [esp + 0x4c], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov byte [esp + 0xc0], 3
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
call fcn.00403c37
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
mov byte [esp + 0xc0], 4
push eax
lea ecx, [esp + 0x50]
call fcn.004014d1
lea ecx, [esp + 0x2c]
mov byte [esp + 0xc0], 3
call fcn.0040300e
mov esi, dword [ebx + 0xd4]
mov edi, dword [ebx + 0xd8]
cmp esi, edi
je 0x40e5fd
mov ecx, dword [esi]
mov dword [esp + 0x2c], ecx
cmp dword [ecx + 4], 0
jne 0x40e5f2
mov al, byte [ecx + 0x68]
and dword [esp + 0x1c], 0
and dword [esp + 0x20], 0
mov dword [esp + 0x14], 1
mov byte [esp + 0x1c], al
lea eax, [esp + 0x14]
mov byte [esp + 0xc0], 5
lea ebx, [ecx + 8]
push eax
push ebx
lea ecx, [esp + 0x54]
call fcn.00401454
mov ecx, eax
call fcn.004057d5
mov ecx, eax
call fcn.004013ac
lea ecx, [esp + 0x14]
mov byte [esp + 0xc0], 3
call fcn.00401269
cmp dword [ebx + 0x14], 0x10
jb 0x40e5e3
mov ebx, dword [ebx]
mov eax, dword [esp + 0x2c]
mov ecx, ebx
movzx edx, byte [eax + 0x68]
call fcn.0040809e
add esi, 4
cmp esi, edi
jne 0x40e57d
mov ebx, dword [esp + 0x28]
call fcn.004018ab
push 0x42e860
lea ecx, [esp + 0x38]
mov esi, eax
call fcn.00405f0d
push ecx
lea eax, [esp + 0x9c]
mov byte [esp + 0xc4], 6
push eax
lea ecx, [esi + 0x80]
call fcn.00406886
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xc4], 7
call fcn.004011ea
push eax
lea eax, [esp + 0x38]
mov byte [esp + 0xc4], 8
push eax
lea ecx, [esp + 0x54]
call fcn.00401454
mov ecx, eax
call fcn.00402fb5
mov ecx, eax
call fcn.004013ac
lea ecx, [esp + 0x14]
call fcn.00401269
xor edi, edi
lea ecx, [esp + 0x98]
xor esi, esi
push edi
inc esi
push esi
call fcn.004062d8
push edi
push esi
lea ecx, [esp + 0x3c]
mov byte [esp + 0xc8], 3
call fcn.004062d8
push 0x42e850
lea ecx, [esp + 0x38]
call fcn.00405f0d
lea eax, [ebx + 0x7c]
mov byte [esp + 0xc0], 9
push eax
lea ecx, [esp + 0x18]
call fcn.0040115c
push eax
lea eax, [esp + 0x38]
mov byte [esp + 0xc4], 0xa
push eax
lea ecx, [esp + 0x54]
call fcn.00401454
mov ecx, eax
call fcn.00402fb5
mov ecx, eax
call fcn.004013ac
lea ecx, [esp + 0x14]
call fcn.00401269
push edi
push esi
lea ecx, [esp + 0x3c]
mov byte [esp + 0xc8], 3
call fcn.004062d8
push 0x42e878
lea ecx, [esp + 0x38]
call fcn.00405f0d
lea eax, [ebx + 0x64]
mov byte [esp + 0xc0], 0xb
push eax
lea ecx, [esp + 0x18]
call fcn.0040115c
mov byte [esp + 0xc0], 0xc
push eax
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x54]
call fcn.00401454
mov ecx, eax
call fcn.00402fb5
mov ecx, eax
call fcn.004013ac
lea ecx, [esp + 0x14]
call fcn.00401269
push edi
push esi
lea ecx, [esp + 0x3c]
mov byte [esp + 0xc8], 3
call fcn.004062d8
push str.easy_install
lea ecx, [esp + 0x38]
call fcn.00405f0d
mov al, byte [ebx + 2]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], edi
mov byte [esp + 0x1c], al
lea eax, [esp + 0x14]
mov byte [esp + 0xc0], 0xe
push eax
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x54]
call fcn.00401454
mov ecx, eax
call fcn.00402fb5
mov ecx, eax
call fcn.004013ac
lea ecx, [esp + 0x14]
call fcn.00401269
push edi
push esi
lea ecx, [esp + 0x3c]
mov byte [esp + 0xc8], 3
call fcn.004062d8
push str.silent_install
lea ecx, [esp + 0x38]
call fcn.00405f0d
mov al, byte [ebx + 1]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], edi
mov byte [esp + 0x1c], al
lea eax, [esp + 0x14]
mov byte [esp + 0xc0], 0x10
push eax
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x54]
call fcn.00401454
mov ecx, eax
call fcn.00402fb5
mov ecx, eax
call fcn.004013ac
lea ecx, [esp + 0x14]
call fcn.00401269
push edi
push esi
lea ecx, [esp + 0x3c]
mov byte [esp + 0xc8], 3
call fcn.004062d8
push str.installer_version
lea ecx, [esp + 0x38]
call fcn.00405f0d
push str.1.1.13
lea ecx, [esp + 0x18]
mov byte [esp + 0xc4], 0x11
call fcn.00401222
mov byte [esp + 0xc0], 0x12
push eax
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x54]
call fcn.00401454
mov ecx, eax
call fcn.00402fb5
mov ecx, eax
call fcn.004013ac
lea ecx, [esp + 0x14]
call fcn.00401269
push edi
push esi
lea ecx, [esp + 0x3c]
mov byte [esp + 0xc8], 3
call fcn.004062d8
push ecx
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x54]
call fcn.0040172f
cmp dword [esp + 0x7c], 8
lea eax, [esp + 0x68]
mov edx, dword [esp + 0x90]
lea ecx, [esp + 0x80]
cmovae eax, dword [esp + 0x68]
cmp dword [esp + 0x94], 0x10
push eax
cmovae ecx, dword [esp + 0x84]
call fcn.0040850b
pop ecx
push edi
push esi
lea ecx, [esp + 0x88]
call fcn.004062d8
lea ecx, [esp + 0x4c]
call fcn.00401269
jmp 0x40e8ee
xor esi, esi
inc esi
push edi
push esi
lea ecx, [esp + 0x70]
call fcn.004065b8
mov ecx, dword [esp + 0xb8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.0041453f
mov esp, ebp
pop ebp
ret