Function at 0x41ba60
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x46a352
mov eax, dword fs:[0]
push eax
sub esp, 0x120
mov eax, dword [0x48b270]
xor eax, esp
mov dword [esp + 0x11c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48b270]
xor eax, esp
push eax
lea eax, [esp + 0x134]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x20], 0
mov eax, dword [ebx + 0xc]
lea edi, [ebx + 0xc]
push eax
mov dword [esp + 0x28], ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov ebp, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
test eax, eax
jne 0x41bd9e
push str.TQWB_update.exe
lea esi, [ebx + 8]
lea eax, [esp + 0x20]
push esi
push eax
call fcn.00401d80
push 0x46eab8
lea ecx, [esp + 0x38]
push esi
push ecx
mov dword [esp + 0x154], 0
call fcn.00401d80
push str.clientNet_BarClient.exe
lea edx, [ebx + 0x10]
push edx
lea eax, [esp + 0x40]
push eax
mov byte [esp + 0x160], 1
call fcn.00401d80
push 0xfe
lea ecx, [esp + 0x59]
push 0
push ecx
mov byte [esp + 0x16c], 2
mov byte [esp + 0x60], 0
call fcn.00451390
mov eax, dword [edi]
add esp, 0x2c
sub eax, 0x10
mov dword [esp + 0x30], esp
mov esi, esp
push eax
call fcn.00401290
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0042d4b0
push str.TQWB_Config.ini
lea edx, [esp + 0x20]
push edi
push edx
call fcn.00401d80
mov eax, dword [eax]
add esp, 0x10
push eax
push 0x471484
push str.vlaue
push str.File_Delete
call ebp
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 0x41bb93
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.TQWB_Config.ini
lea ecx, [esp + 0x1c]
push edi
push ecx
call fcn.00401d80
mov eax, dword [eax]
add esp, 0xc
push eax
push str.000000
push str.VERSION
push str.MANAGER_VERSION
call ebp
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41bbda
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
mov esi, 1
cmp dword [eax - 4], esi
jle 0x41bbf9
mov ecx, dword [eax - 0xc]
push ecx
lea ecx, [esp + 0x20]
call fcn.00401720
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x30]
push edx
push eax
call fcn.0042d3b0
push 0x471360
lea eax, [esp + 0x24]
push edi
push eax
call fcn.00401d80
mov eax, dword [eax]
add esp, 0x14
push eax
lea ecx, [esp + 0x34]
push ecx
push str.updver
push str.NBupdateset
call ebp
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41bc4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
cmp dword [eax - 4], esi
jle 0x41bc65
mov ecx, dword [eax - 0xc]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00401720
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x30]
push edx
push eax
call fcn.0042d3b0
push 0x471360
lea eax, [esp + 0x24]
push edi
push eax
call fcn.00401d80
mov eax, dword [eax]
add esp, 0x14
push eax
lea ecx, [esp + 0x34]
push ecx
push 0x471450
push str.NBupdateset
call ebp
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41bcb7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
cmp dword [eax - 4], esi
jle 0x41bcd1
mov ecx, dword [eax - 0xc]
push ecx
lea ecx, [esp + 0x24]
call fcn.00401720
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x30]
push edx
push eax
call fcn.0042d3b0
push 0x471360
lea eax, [esp + 0x24]
push edi
push eax
call fcn.00401d80
mov eax, dword [eax]
add esp, 0x14
push eax
lea ecx, [esp + 0x34]
push ecx
push 0x471448
push str.NBupdateset
call ebp
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41bd23
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x13c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bd4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x13c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bd73
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov dword [esp + 0x13c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bd9e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebx + 0x10]
lea esi, [ebx + 0x10]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x41bdd1
mov eax, dword [esi]
push ecx
sub eax, 0x10
mov dword [esp + 0x1c], esp
mov ebx, esp
push eax
call fcn.00401290
add eax, 0x10
add esp, 4
mov dword [ebx], eax
call fcn.0042d4b0
add esp, 4
push str.client
lea ecx, [esp + 0x1c]
push esi
push ecx
call fcn.00401d80
mov eax, dword [eax]
add esp, 0xc
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
mov eax, dword [esp + 0x18]
sete bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41be12
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x41be34
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.client
push esi
push ecx
call fcn.00401d80
add esp, 0xc
call fcn.0042d4b0
add esp, 4
push str.clientNet_BarClient.exe
lea edx, [esp + 0x20]
push esi
push edx
call fcn.00401d80
add esp, 0xc
mov eax, dword [eax]
mov ebx, 1
push eax
mov dword [esp + 0x140], 3
mov dword [esp + 0x24], ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x41be92
push str.clientNet_BarClient.bak
lea eax, [esp + 0x1c]
push esi
push eax
call fcn.00401d80
mov eax, dword [eax]
add esp, 0xc
push eax
mov ebx, 3
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov byte [esp + 0x17], 1
test eax, eax
je 0x41be97
mov byte [esp + 0x17], 0
test bl, 2
je 0x41bec3
mov eax, dword [esp + 0x18]
and ebx, 0xfffffffd
add eax, 0xfffffff0
mov dword [esp + 0x20], ebx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bec3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x13c], 0xffffffff
test bl, 1
je 0x41bef6
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
and ebx, 0xfffffffe
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bef6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
je 0x41bf5c
push 0x471360
lea ecx, [esp + 0x1c]
push edi
push ecx
call fcn.00401d80
mov edx, dword [eax]
add esp, 0xc
push edx
push 0x46eb20
push 0x471448
push str.NBupdateset
call ebp
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 0x41bf44
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x68]
push edx
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, 1
jmp 0x41c3ec
push str._notice
lea eax, [esp + 0x1c]
push esi
push eax
call fcn.00401d80
mov eax, dword [eax]
add esp, 0xc
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
mov eax, dword [esp + 0x18]
sete byte [esp + 0x17]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bf9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
je 0x41bfc1
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x80]
push edx
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, 2
jmp 0x41c3ec
push str.update
lea eax, [esp + 0x1c]
push esi
push eax
call fcn.00401d80
mov eax, dword [eax]
add esp, 0xc
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
mov eax, dword [esp + 0x18]
sete byte [esp + 0x17]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c004
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
je 0x41c029
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.update
push esi
push ecx
call fcn.00401d80
add esp, 0xc
call fcn.0042d4b0
add esp, 4
push str.update_show.ini
lea edx, [esp + 0x1c]
push esi
push edx
call fcn.00401d80
mov eax, dword [eax]
add esp, 0xc
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
mov eax, dword [esp + 0x18]
sete byte [esp + 0x17]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c06c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
je 0x41c18a
call fcn.00432e51
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41c091
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x118]
push edx
push str.set_delay
lea eax, [esp + 0x24]
push str._s_d
push eax
mov dword [esp + 0x14c], 4
call fcn.00401f50
push str.update_show.ini
lea ecx, [esp + 0x2c]
push esi
push ecx
call fcn.00401d80
mov eax, dword [eax]
mov edx, dword [esp + 0x40]
mov ecx, dword [edx + 0x114]
add esp, 0x1c
push eax
push ecx
push str.tc_active
push str.Server_tc_active
call ebp
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 0x41c118
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.update_show.ini
lea ecx, [esp + 0x1c]
push esi
push ecx
call fcn.00401d80
mov eax, dword [eax]
mov edx, dword [esp + 0x28]
add esp, 0xc
push eax
push edx
push str.detail
push str.Server_delay
call ebp
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 0x41c15f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov dword [esp + 0x13c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c18a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str._show
lea ecx, [esp + 0x20]
push esi
push ecx
call fcn.00401d80
add esp, 0xc
mov eax, dword [eax]
or ebx, 4
push eax
mov dword [esp + 0x140], 5
mov dword [esp + 0x24], ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x41c1e4
push str._tmp.zip
lea edx, [esp + 0x1c]
push esi
push edx
call fcn.00401d80
mov eax, dword [eax]
add esp, 0xc
push eax
or ebx, 8
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov byte [esp + 0x17], 1
test eax, eax
je 0x41c1e9
mov byte [esp + 0x17], 0
test bl, 8
je 0x41c215
mov eax, dword [esp + 0x18]
and ebx, 0xfffffff7
add eax, 0xfffffff0
mov dword [esp + 0x20], ebx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c215
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x13c], 0xffffffff
test bl, 4
je 0x41c248
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
and ebx, 0xfffffffb
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c248
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
je 0x41c2f9
push str.TQWB_Config.ini
lea ecx, [esp + 0x1c]
push edi
push ecx
call fcn.00401d80
mov edx, dword [eax]
add esp, 0xc
push edx
push 0x471484
push str.vlaue
push str.File_Delete
call ebp
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 0x41c29a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.TQWB_Config.ini
lea ecx, [esp + 0x1c]
push edi
push ecx
call fcn.00401d80
mov edx, dword [eax]
add esp, 0xc
push edx
push str.000000
push str.VERSION
push str.MANAGER_VERSION
call ebp
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 0x41c2e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x78]
push edx
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, 3
jmp 0x41c3ec
mov esi, dword [esp + 0x24]
push str.TQWB_update.exe
add esi, 8
lea eax, [esp + 0x20]
push esi
push eax
call fcn.00401d80
add esp, 0xc
mov eax, dword [eax]
or ebx, 0x10
push eax
mov dword [esp + 0x140], 6
mov dword [esp + 0x24], ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x41c35a
push str.TQWB_update.bak
lea ecx, [esp + 0x1c]
push esi
push ecx
call fcn.00401d80
mov eax, dword [eax]
add esp, 0xc
push eax
or ebx, 0x20
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov byte [esp + 0x17], 1
test eax, eax
je 0x41c35f
mov byte [esp + 0x17], 0
test bl, 0x20
je 0x41c370
lea ecx, [esp + 0x18]
and ebx, 0xffffffdf
call fcn.004018a0
mov dword [esp + 0x13c], 0xffffffff
test bl, 0x10
je 0x41c389
lea ecx, [esp + 0x1c]
call fcn.004018a0
cmp byte [esp + 0x17], 0
je 0x41c3d5
push 0x471360
lea edx, [esp + 0x30]
push edi
push edx
call fcn.00401d80
mov eax, dword [eax]
add esp, 0xc
push eax
push 0x46eb20
push str.updver
push str.NBupdateset
call ebp
lea ecx, [esp + 0x2c]
call fcn.004018a0
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x68]
push edx
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, 4
jmp 0x41c3ec
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x5c]
cmp dword [ecx + 0x24], 0
jne 0x41c3e7
call fcn.00403d30
mov eax, 5
mov ecx, dword [esp + 0x134]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x11c]
xor ecx, esp
call fcn.004517f0
add esp, 0x12c
ret