Function at 0x4080a0
Capabilities:
Check if file exists
Read .ini file

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43e068
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x12e0
call fcn.0043b670
mov eax, dword [0x44d010]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xorps xmm0, xmm0
mov dword [ebp - 0x1270], 0
mov edi, 7
xor eax, eax
movups xmmword [ebp - 0x1280], xmm0
mov dword [ebp - 0x126c], edi
mov word [ebp - 0x1280], ax
push 0x1000
push eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x1220]
push eax
call fcn.00420150
add esp, 0xc
lea ecx, [ebp - 0x1238]
push esi
call fcn.00407f90
mov byte [ebp - 4], 1
cmp dword [ebp - 0x1228], 0
jne 0x4084da
push 0x208
lea eax, [ebp - 0x220]
push 0
push eax
call fcn.00420150
add esp, 0xc
lea eax, [ebp - 0x220]
push 0x103
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x220]
push 0x5c
push eax
call fcn.0041fadb
mov ecx, eax
add esp, 8
add eax, 2
test ecx, ecx
jne 0x40818e
lea eax, [ebp - 0x220]
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x12d8]
call fcn.00406c30
push 0xb
push 0x448004
lea ecx, [ebp - 0x12d8]
mov byte [ebp - 4], 2
call fcn.004072d0
mov dword [ebp - 0x1240], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x1250], xmm0
mov dword [ebp - 0x123c], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1250], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1240], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x12c4]
cmp ecx, 8
jb 0x408247
mov edx, dword [ebp - 0x12d8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40823d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40899c
push ecx
push edx
call fcn.0041e43c
add esp, 8
xor eax, eax
mov dword [ebp - 0x12c8], 0
cmp dword [ebp - 0x123c], 8
mov word [ebp - 0x12d8], ax
lea eax, [ebp - 0x1250]
cmovae eax, dword [ebp - 0x1250]
push eax
push 0x800
lea eax, [ebp - 0x1220]
mov dword [ebp - 0x12c4], 7
push eax
push 0x447ed8
push str.cur_ver
push str.xbaibrowser
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp word [ebp - 0x1220], 0
je 0x408506
lea eax, [ebp - 0x1220]
push eax
lea ecx, [ebp - 0x12f0]
call fcn.00406c30
lea ecx, [ebp - 0x1280]
cmp ecx, eax
je 0x4082f4
movups xmm0, xmmword [eax]
xor ecx, ecx
movups xmmword [ebp - 0x1280], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1270], xmm0
mov edi, dword [ebp - 0x126c]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov ecx, dword [ebp - 0x12dc]
cmp ecx, 8
jb 0x408334
mov edx, dword [ebp - 0x12f0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40832a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089a1
push ecx
push edx
call fcn.0041e43c
add esp, 8
mov esi, dword [ebp - 0x1270]
test esi, esi
je 0x408506
push 0x208
lea eax, [ebp - 0x220]
push 0
push eax
call fcn.00420150
add esp, 0xc
lea eax, [ebp - 0x220]
push 0x103
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x220]
push 0x5c
push eax
call fcn.0041fadb
mov ecx, eax
add esp, 8
add eax, 2
test ecx, ecx
jne 0x40838c
lea eax, [ebp - 0x220]
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x12f0]
call fcn.00406c30
cmp edi, 8
mov byte [ebp - 4], 5
lea eax, [ebp - 0x1280]
cmovae eax, dword [ebp - 0x1280]
lea ecx, [ebp - 0x12f0]
push esi
push eax
call fcn.004072d0
xor ecx, ecx
movups xmm0, xmmword [eax]
movq xmm1, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov ecx, dword [ebp - 0x1224]
movq qword [ebp - 0x12c0], xmm1
movups xmmword [ebp - 0x12d0], xmm0
cmp ecx, 8
jb 0x40843d
mov edx, dword [ebp - 0x1238]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x408424
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089a6
push ecx
push edx
call fcn.0041e43c
movups xmm0, xmmword [ebp - 0x12d0]
add esp, 8
movq xmm1, qword [ebp - 0x12c0]
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x12dc]
movq qword [ebp - 0x1228], xmm1
movups xmmword [ebp - 0x1238], xmm0
cmp ecx, 8
jb 0x408490
mov edx, dword [ebp - 0x12f0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x408486
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089a6
push ecx
push edx
call fcn.0041e43c
add esp, 8
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x123c]
cmp ecx, 8
jb 0x4084d4
mov edx, dword [ebp - 0x1250]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4084ca
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089ab
push ecx
push edx
call fcn.0041e43c
add esp, 8
mov edi, dword [ebp - 0x126c]
cmp dword [ebp - 0x1224], 8
lea eax, [ebp - 0x1238]
cmovae eax, dword [ebp - 0x1238]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
je 0x408552
mov byte [ebp - 0x12b1], 0
jmp 0x4088e5
mov ecx, dword [ebp - 0x123c]
cmp ecx, 8
jb 0x4084fa
mov edx, dword [ebp - 0x1250]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40853c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089ab
push ecx
push edx
call fcn.0041e43c
add esp, 8
mov byte [ebp - 0x12b1], 0
jmp 0x4088e5
mov ecx, dword [ebp - 0x1228]
mov esi, bind
mov eax, esi
sub eax, ecx
cmp eax, 1
jb 0x4089b0
cmp dword [ebp - 0x1224], 8
lea eax, [ebp - 0x1238]
push 1
cmovae eax, dword [ebp - 0x1238]
push 0x447e7c
push ecx
push eax
push ecx
push dword [ebp - 0x12bc]
lea ecx, [ebp - 0x1250]
call fcn.00408ad0
push 9
push str.local.cfg
lea ecx, [ebp - 0x1250]
mov byte [ebp - 4], 6
call fcn.004072d0
mov dword [ebp - 0x1258], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x1268], xmm0
mov dword [ebp - 0x1254], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1268], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1258], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x123c]
cmp ecx, 8
jb 0x40863b
mov edx, dword [ebp - 0x1250]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x408631
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089b5
push ecx
push edx
call fcn.0041e43c
add esp, 8
xor eax, eax
mov dword [ebp - 0x1240], 0
cmp dword [ebp - 0x1254], 8
mov word [ebp - 0x1250], ax
lea eax, [ebp - 0x1268]
cmovae eax, dword [ebp - 0x1268]
push eax
mov dword [ebp - 0x123c], 7
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
jne 0x408881
push 0x1000
lea eax, [ebp - 0x1220]
push 0
push eax
call fcn.00420150
add esp, 0xc
lea eax, [ebp - 0x1268]
cmp dword [ebp - 0x1254], 8
cmovae eax, dword [ebp - 0x1268]
push eax
push 0x800
lea eax, [ebp - 0x1220]
push eax
push 0x447ed8
push str.update_installer
push str.config
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp word [ebp - 0x1220], 0
je 0x408881
lea eax, [ebp - 0x1220]
push eax
lea ecx, [ebp - 0x12b0]
call fcn.00406c30
mov byte [ebp - 4], 9
cmp dword [ebp - 0x12a0], 0
je 0x40881b
cmp dword [ebp - 0x129c], 8
lea eax, [ebp - 0x12b0]
cmovae eax, dword [ebp - 0x12b0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
jne 0x40881b
mov ecx, dword [ebp - 0x1228]
sub esi, ecx
cmp esi, 0xd
jb 0x4089ba
cmp dword [ebp - 0x1224], 8
lea eax, [ebp - 0x1238]
push 0xd
cmovae eax, dword [ebp - 0x1238]
push str.xbupdate.exe
push ecx
push eax
push ecx
push dword [ebp - 0x12bc]
lea ecx, [ebp - 0x1298]
call fcn.00408ad0
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x1298]
cmp dword [ebp - 0x1284], 8
cmovae eax, dword [ebp - 0x1298]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
jne 0x4087b5
cmp dword [ebp - 0x1284], 8
lea ecx, [ebp - 0x1298]
push eax
cmovae ecx, dword [ebp - 0x1298]
mov edx, str.__local
push eax
call fcn.00411980
test eax, eax
je 0x4087b5
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 0x12b1], 1
jmp 0x4087bc
mov byte [ebp - 0x12b1], 0
mov ecx, dword [ebp - 0x1284]
cmp ecx, 8
jb 0x4087fc
mov edx, dword [ebp - 0x1298]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4087f2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089bf
push ecx
push edx
call fcn.0041e43c
add esp, 8
xor eax, eax
mov dword [ebp - 0x1288], 0
mov dword [ebp - 0x1284], 7
mov word [ebp - 0x1298], ax
jmp 0x408822
mov byte [ebp - 0x12b1], 0
mov ecx, dword [ebp - 0x129c]
cmp ecx, 8
jb 0x408862
mov edx, dword [ebp - 0x12b0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x408858
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089bf
push ecx
push edx
call fcn.0041e43c
add esp, 8
xor eax, eax
mov dword [ebp - 0x12a0], 0
mov dword [ebp - 0x129c], 7
mov word [ebp - 0x12b0], ax
jmp 0x408888
mov byte [ebp - 0x12b1], 0
mov ecx, dword [ebp - 0x1254]
cmp ecx, 8
jb 0x4088c8
mov edx, dword [ebp - 0x1268]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4088be
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089bf
push ecx
push edx
call fcn.0041e43c
add esp, 8
xor eax, eax
mov dword [ebp - 0x1258], 0
mov dword [ebp - 0x1254], 7
mov word [ebp - 0x1268], ax
mov ecx, dword [ebp - 0x1224]
cmp ecx, 8
jb 0x408925
mov edx, dword [ebp - 0x1238]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40891b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089bf
push ecx
push edx
call fcn.0041e43c
add esp, 8
xor eax, eax
mov dword [ebp - 0x1228], 0
mov dword [ebp - 0x1224], 7
mov word [ebp - 0x1238], ax
cmp edi, 8
jb 0x408978
mov edx, dword [ebp - 0x1280]
lea ecx, [edi*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40896e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089bf
push ecx
push edx
call fcn.0041e43c
add esp, 8
mov al, byte [ebp - 0x12b1]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0041e3f9
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.004267cc
call fcn.004267cc
call fcn.004267cc
call fcn.004267cc
call fcn.00401320
call fcn.004267cc
call fcn.00401320
call fcn.004267cc
int3