Function at 0x40d4e0
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 0x43e6c4
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x4b0
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 byte [ebp - 0x4a1], dl
push ecx
lea ecx, [ebp - 0x440]
mov dword [ebp - 0x4a8], 0
call fcn.00406c30
push ecx
lea ecx, [ebp - 0x458]
mov dword [ebp - 4], 0
call fcn.00413cd0
add esp, 4
push 0x447ed8
lea ecx, [ebp - 0x470]
mov byte [ebp - 4], 1
call fcn.00406c30
push 0x447ed8
lea ecx, [ebp - 0x488]
mov byte [ebp - 4], 2
call fcn.00406c30
mov byte [ebp - 4], 3
lea edx, [ebp - 0x440]
cmp dword [ebp - 0x42c], 8
mov edi, dword [ebp - 0x430]
cmovae edx, dword [ebp - 0x440]
test edi, edi
je 0x40d5c5
or ecx, 0xffffffff
lea eax, [edi - 1]
cmp eax, ecx
cmovb ecx, eax
cmp word [edx + ecx*2], 0x5c
lea esi, [edx + ecx*2]
je 0x40d5bf
cmp esi, edx
je 0x40d5c5
sub esi, 2
cmp word [esi], 0x5c
jne 0x40d5b2
sub esi, edx
sar esi, 1
jmp 0x40d5c8
or esi, 0xffffffff
push 0x208
lea eax, [ebp - 0x220]
push 0
push eax
call fcn.00420150
inc esi
add esp, 0xc
cmp edi, esi
jb 0x40e042
cmp dword [ebp - 0x42c], 8
lea eax, [ebp - 0x440]
mov dword [ebp - 0x430], esi
cmovae eax, dword [ebp - 0x440]
xor ecx, ecx
mov word [eax + esi*2], cx
mov esi, bind
mov ecx, dword [ebp - 0x430]
mov eax, esi
sub eax, ecx
cmp eax, 5
jb 0x40e04c
cmp dword [ebp - 0x42c], 8
lea eax, [ebp - 0x440]
push 5
cmovae eax, dword [ebp - 0x440]
push str.patch
push ecx
push eax
push ecx
push dword [ebp - 0x4a8]
lea ecx, [ebp - 0x4c0]
call fcn.00408ad0
mov ecx, dword [ebp - 0x474]
cmp ecx, 8
jb 0x40d68e
mov edx, dword [ebp - 0x488]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40d684
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e0a6
push ecx
push edx
call fcn.0041e43c
add esp, 8
movups xmm0, xmmword [ebp - 0x4c0]
push 0x103
lea eax, [ebp - 0x220]
movups xmmword [ebp - 0x488], xmm0
push eax
movq xmm0, qword [ebp - 0x4b0]
push 0
movq qword [ebp - 0x478], xmm0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x220]
push 0x5c
push eax
call fcn.0041fadb
mov edx, eax
add esp, 8
mov ecx, edx
add edx, 2
test ecx, ecx
jne 0x40d6e2
lea edx, [ebp - 0x220]
mov ecx, edx
lea eax, [ebp - 0x220]
sub ecx, eax
mov eax, 0x103
sar ecx, 1
push 0x448004
sub eax, ecx
push eax
push edx
call fcn.0042681d
add esp, 0xc
lea eax, [ebp - 0x220]
cmp byte [ebp - 0x4a1], 0
mov ecx, 0x448468
push eax
mov eax, 0x448464
cmove eax, ecx
push eax
push str.start
push str.xbaibrowser
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov ecx, dword [ebp - 0x430]
mov eax, esi
sub eax, ecx
cmp eax, 9
jb 0x40e04c
cmp dword [ebp - 0x42c], 8
lea eax, [ebp - 0x440]
push 9
cmovae eax, dword [ebp - 0x440]
push str.local.cfg
push ecx
push eax
push ecx
push dword [ebp - 0x4a8]
lea ecx, [ebp - 0x4c0]
call fcn.00408ad0
mov ecx, dword [ebp - 0x45c]
cmp ecx, 8
jb 0x40d7b2
mov edx, dword [ebp - 0x470]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40d7a8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e0a6
push ecx
push edx
call fcn.0041e43c
add esp, 8
movups xmm0, xmmword [ebp - 0x4c0]
push 0xf
push str.xbaiservice.exe
movups xmmword [ebp - 0x470], xmm0
lea ecx, [ebp - 0x440]
movq xmm0, qword [ebp - 0x4b0]
movq qword [ebp - 0x460], xmm0
call fcn.004072d0
call fcn.00413c40
test al, al
jne 0x40d80a
cmp dword [ebp - 0x42c], 8
lea ecx, [ebp - 0x440]
cmovae ecx, dword [ebp - 0x440]
xor edx, edx
call fcn.00411c30
test al, al
je 0x40d863
cmp dword [ebp - 0x444], 8
lea ecx, [ebp - 0x458]
lea eax, [ebp - 0x440]
cmovae ecx, dword [ebp - 0x458]
cmp dword [ebp - 0x42c], 8
push ecx
cmovae eax, dword [ebp - 0x440]
push eax
call fcn.004268fd
add esp, 8
test eax, eax
je 0x40d896
lea eax, [ebp - 0x220]
push eax
push 0
push str.keepxbsvc
push str.xbaibrowser
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 1
je 0x40d896
call fcn.00413bb0
cmp dword [ebp - 0x42c], 8
lea ecx, [ebp - 0x440]
cmovae ecx, dword [ebp - 0x440]
sub esp, 8
call fcn.00413890
add esp, 8
test al, al
je 0x40d896
call fcn.00413a50
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00413c40
cmp byte [ebp - 0x4a1], 0
je 0x40def0
test al, al
jne 0x40ded7
cmp dword [ebp - 0x42c], 8
lea ecx, [ebp - 0x440]
push 0
cmovae ecx, dword [ebp - 0x440]
xor edx, edx
push 0
call fcn.00411980
test eax, eax
je 0x40da52
cmp dword [ebp - 0x42c], 8
lea ecx, [ebp - 0x440]
cmovae ecx, dword [ebp - 0x440]
xor edx, edx
call fcn.00411c30
test al, al
je 0x40da52
mov ecx, dword [ebp - 0x474]
cmp ecx, 8
jb 0x40d93a
mov edx, dword [ebp - 0x488]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40d930
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e0a6
push ecx
push edx
call fcn.0041e43c
add esp, 8
mov ecx, dword [ebp - 0x45c]
cmp ecx, 8
jb 0x40d97a
mov edx, dword [ebp - 0x470]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40d970
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e0a6
push ecx
push edx
call fcn.0041e43c
add esp, 8
mov ecx, dword [ebp - 0x444]
xor eax, eax
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x45c], 7
mov word [ebp - 0x470], ax
cmp ecx, 8
jb 0x40d9d7
mov edx, dword [ebp - 0x458]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40d9cd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e0a6
push ecx
push edx
call fcn.0041e43c
add esp, 8
mov ecx, dword [ebp - 0x42c]
xor eax, eax
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x444], 7
mov word [ebp - 0x458], ax
cmp ecx, 8
jb 0x40da34
mov edx, dword [ebp - 0x440]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40da2a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e0a6
push ecx
push edx
call fcn.0041e43c
add esp, 8
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
mov edx, 0x25
lea ecx, [ebp - 0x4c0]
call fcn.0040f790
mov ecx, dword [ebp - 0x444]
cmp ecx, 8
jb 0x40daa2
mov edx, dword [ebp - 0x458]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40da98
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e047
push ecx
push edx
call fcn.0041e43c
add esp, 8
movups xmm0, xmmword [ebp - 0x4c0]
push 0
push 0x447e7c
movups xmmword [ebp - 0x458], xmm0
lea ecx, [ebp - 0x458]
movq xmm0, qword [ebp - 0x4b0]
movq qword [ebp - 0x448], xmm0
call fcn.0040ef00
cmp eax, 0xffffffff
je 0x40db03
cmp dword [ebp - 0x448], eax
jb 0x40e042
cmp dword [ebp - 0x444], 8
lea ecx, [ebp - 0x458]
mov dword [ebp - 0x448], eax
cmovae ecx, dword [ebp - 0x458]
xor edx, edx
mov word [ecx + eax*2], dx
push 0x11
push str._snquxbaibrowser
lea ecx, [ebp - 0x458]
call fcn.004072d0
mov edi, dword [ebp - 0x42c]
lea edx, [ebp - 0x440]
mov esi, dword [ebp - 0x430]
cmp edi, 8
cmovae edx, dword [ebp - 0x440]
test esi, esi
je 0x40db96
or ecx, 0xffffffff
lea eax, [esi - 1]
cmp eax, ecx
cmovb ecx, eax
cmp word [edx + ecx*2], 0x5c
lea ecx, [edx + ecx*2]
je 0x40db5d
nop word [eax + eax]
cmp ecx, edx
je 0x40db96
sub ecx, 2
cmp word [ecx], 0x5c
jne 0x40db50
sub ecx, edx
sar ecx, 1
cmp ecx, 0xffffffff
je 0x40db96
cmp esi, ecx
jb 0x40e042
cmp edi, 8
mov dword [ebp - 0x430], ecx
lea eax, [ebp - 0x440]
cmovae eax, dword [ebp - 0x440]
xor edx, edx
mov word [eax + ecx*2], dx
mov edi, dword [ebp - 0x42c]
mov esi, dword [ebp - 0x430]
cmp edi, 8
lea edx, [ebp - 0x440]
cmovae edx, dword [ebp - 0x440]
test esi, esi
je 0x40dbfc
lea eax, [esi - 1]
mov ecx, 0xffffffff
cmp eax, 0xffffffff
cmovb ecx, eax
cmp word [edx + ecx*2], 0x5c
lea ecx, [edx + ecx*2]
je 0x40dbcf
cmp ecx, edx
je 0x40dbfc
sub ecx, 2
cmp word [ecx], 0x5c
jne 0x40dbc2
sub ecx, edx
sar ecx, 1
cmp ecx, 0xffffffff
je 0x40dbfc
cmp esi, ecx
jb 0x40e042
cmp edi, 8
mov dword [ebp - 0x430], ecx
lea eax, [ebp - 0x440]
cmovae eax, dword [ebp - 0x440]
xor edx, edx
mov word [eax + ecx*2], dx
mov ecx, dword [ebp - 0x448]
mov eax, bind
sub eax, ecx
cmp eax, 0xe
jb 0x40e04c
cmp dword [ebp - 0x444], 8
lea eax, [ebp - 0x458]
push 0xe
cmovae eax, dword [ebp - 0x458]
push 0x4484f0
push ecx
push eax
push ecx
push dword [ebp - 0x4a8]
lea ecx, [ebp - 0x4c0]
call fcn.00408ad0
mov byte [ebp - 4], 4
lea eax, [ebp - 0x4c0]
cmp dword [ebp - 0x4ac], 8
mov dword [ebp - 0x4a8], 0x1f
cmovae eax, dword [ebp - 0x4c0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
je 0x40dca7
cmp dword [ebp - 0x444], 8
lea edx, [ebp - 0x458]
lea ecx, [ebp - 0x440]
cmovae edx, dword [ebp - 0x458]
cmp dword [ebp - 0x42c], 8
cmovae ecx, dword [ebp - 0x440]
call fcn.004102a0
mov byte [ebp - 0x4a1], 1
test eax, eax
je 0x40dcae
mov byte [ebp - 0x4a1], 0
mov dword [ebp - 4], 3
mov ecx, dword [ebp - 0x4ac]
cmp ecx, 8
jb 0x40dcf5
mov edx, dword [ebp - 0x4c0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40dceb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e051
push ecx
push edx
call fcn.0041e43c
add esp, 8
cmp byte [ebp - 0x4a1], 0
jne 0x40e056
push 0x208
lea eax, [ebp - 0x428]
push 0
push eax
call fcn.00420150
add esp, 0xc
lea eax, [ebp - 0x470]
cmp dword [ebp - 0x45c], 8
cmovae eax, dword [ebp - 0x470]
push eax
push 0x103
lea eax, [ebp - 0x428]
push eax
push 0x447ed8
push str.quicklink
push 0x448410
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x428]
push str.disabled
push eax
call fcn.004268fd
add esp, 8
test eax, eax
je 0x40ded7
xor edx, edx
lea ecx, [ebp - 0x4c0]
call fcn.0040f790
push 1
push 0x447e7c
lea ecx, [ebp - 0x4c0]
mov byte [ebp - 4], 6
call fcn.004072d0
mov dword [ebp - 0x490], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x4a0], xmm0
mov dword [ebp - 0x48c], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x4a0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x490], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x4ac]
cmp ecx, 8
jb 0x40de19
mov edx, dword [ebp - 0x4c0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40de0f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e09c
push ecx
push edx
call fcn.0041e43c
add esp, 8
xor eax, eax
mov dword [ebp - 0x4b0], 0
mov word [ebp - 0x4c0], ax
lea eax, [ebp - 0x428]
push 0x103
push eax
push 0
mov dword [ebp - 0x4ac], 7
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 7
push 0x44854c
lea ecx, [ebp - 0x4a0]
call fcn.004072d0
push 4
push str..lnk
lea ecx, [ebp - 0x4a0]
call fcn.004072d0
cmp dword [ebp - 0x48c], 8
lea ecx, [ebp - 0x4a0]
lea edx, [ebp - 0x428]
cmovae ecx, dword [ebp - 0x4a0]
sub esp, 0x14
call fcn.004134e0
mov byte [ebp - 4], 3
add esp, 0x14
mov ecx, dword [ebp - 0x48c]
cmp ecx, 8
jb 0x40ded7
mov edx, dword [ebp - 0x4a0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40decd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e0a1
push ecx
push edx
call fcn.0041e43c
add esp, 8
cmp dword [ebp - 0x474], 8
lea ecx, [ebp - 0x488]
cmovae ecx, dword [ebp - 0x488]
call fcn.0040d3e0
cmp dword [ebp - 0x474], 8
lea ecx, [ebp - 0x488]
cmovae ecx, dword [ebp - 0x488]
call fcn.0040d0b0
mov ecx, dword [ebp - 0x474]
cmp ecx, 8
jb 0x40df49
mov edx, dword [ebp - 0x488]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40df3f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e0a6
push ecx
push edx
call fcn.0041e43c
add esp, 8
mov ecx, dword [ebp - 0x45c]
cmp ecx, 8
jb 0x40df89
mov edx, dword [ebp - 0x470]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40df7f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e0a6
push ecx
push edx
call fcn.0041e43c
add esp, 8
mov ecx, dword [ebp - 0x444]
xor eax, eax
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x45c], 7
mov word [ebp - 0x470], ax
cmp ecx, 8
jb 0x40dfe6
mov edx, dword [ebp - 0x458]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40dfdc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e0a6
push ecx
push edx
call fcn.0041e43c
add esp, 8
mov ecx, dword [ebp - 0x42c]
xor eax, eax
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x444], 7
mov word [ebp - 0x458], ax
cmp ecx, 8
jb 0x40da34
mov edx, dword [ebp - 0x440]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40da2a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e0a6
jmp 0x40da2a
call fcn.00407450
call fcn.004267cc
call fcn.00401320
call fcn.004267cc
push 0x4484f0
lea edx, [ebp - 0x458]
lea ecx, [ebp - 0x4c0]
call fcn.00408a60
add esp, 4
push 0
push 0
mov ecx, eax
mov byte [ebp - 4], 5
call fcn.00406bc0
mov edx, str.__poweron
mov ecx, eax
call fcn.00411980
lea ecx, [ebp - 0x4c0]
call fcn.00406bd0
push 0
call fcn.00426d39
call fcn.004267cc
call fcn.004267cc
call fcn.004267cc
int3