Function at 0x4018f0
Capabilities:
Check if file exists
Get disk size

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
push esi
push edi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx esi, ax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x40]
push edx
push 0x410e88
mov dword [esp + 0x34], esi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov ecx, eax
and eax, 0x7fffffff
mov dword [esp + 0x1c], eax
fild qword [esp + 0x18]
and ecx, 0x80000000
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], 0
fild qword [esp + 0x18]
fchs
faddp st(1)
fld qword [0x411048]
fmul st(1), st(0)
fmulp st(1)
fcomp qword [0x411040]
fnstsw ax
test ah, 5
jp 0x4019a3
mov edx, esi
and edx, 0x3ff
mov eax, 4
push 0x30
cmp ax, dx
jne 0x401991
push 0x410e90
push 0x410e98
jmp 0x40199b
push str.Warning
push str.C_disk_space_will_cause_the_software_can_not_be_used_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov byte [esp + 0x13], 1
call fcn.004014e0
test al, al
jne 0x4019b8
xor bl, bl
jmp 0x401a90
push str.zlib1.dll
lea edi, [esp + 0x1c]
call fcn.00401150
mov eax, dword [eax]
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
add esp, 4
push eax
call esi
mov dword [ebx], eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4019f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00401610
test al, al
jne 0x401a0d
mov byte [esp + 0x13], al
jmp 0x401a7f
push str.AndroidAssistHelper.dll
lea edi, [esp + 0x1c]
call fcn.00401150
mov eax, dword [eax]
add esp, 4
push eax
call esi
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401a46
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.RootGenius.dll
lea edi, [esp + 0x1c]
call fcn.00401150
mov eax, dword [eax]
add esp, 4
push eax
call esi
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401a7f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.00401780
mov bl, byte [esp + 0x13]
test bl, bl
jne 0x401ac0
mov esi, dword [esp + 0x24]
and esi, 0x3ff
mov ecx, 4
push 0x30
cmp cx, si
jne 0x401aae
push 0x410fa0
push str.Root
jmp 0x401ab8
push str.Error
push str.Root_Genius_failed_to_initialize_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push str.DataTextAuthList
lea edi, [esp + 0x18]
call fcn.00401150
mov edx, dword [esp + 0x18]
add esp, 4
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x401af0
mov eax, edi
push eax
push 0xcc
call fcn.00401440
add esp, 8
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401b10
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret