Function at 0x4057c0
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x421887
mov eax, dword fs:[0]
push eax
sub esp, 0x148
mov eax, dword [0x42c070]
xor eax, esp
mov dword [esp + 0x140], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x42c070]
xor eax, esp
push eax
lea eax, [esp + 0x15c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x16c]
push str.Parse_PatchList_enter...
mov dword [esp + 0x24], eax
call fcn.00412950
add esp, 4
lea ecx, [esp + 0xa0]
call fcn.00410080
push 0x17
xor ebx, ebx
push str.Xp_patchPatchList.dat
lea eax, [esp + 0xa8]
mov dword [esp + 0x16c], ebx
call fcn.00407630
mov eax, dword [esp + 0xa4]
mov esi, 0x10
cmp dword [esp + 0xb8], esi
jae 0x405857
lea eax, [esp + 0xa4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x40588f
push str.the_patchList_is_not_exist...
call fcn.004129d0
add esp, 4
cmp dword [esp + 0xb8], esi
jb 0x405888
mov ecx, dword [esp + 0xa4]
push ecx
call fcn.0041300c
add esp, 4
xor eax, eax
jmp 0x4061fb
push 6
mov esi, 0xf
push str.PATCH1
lea ecx, [esp + 0x8c]
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
call fcn.00407f80
mov eax, 1
mov byte [esp + 0x164], al
push ebx
push 0x424da5
lea ecx, [esp + 0x70]
mov dword [esp + 0x24], eax
mov dword [esp + 0x88], esi
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
call fcn.00407f80
lea edx, [esp + 0xbc]
push edx
mov byte [esp + 0x168], 2
call fcn.00401340
mov byte [esp + 0x164], 3
lea ebx, [ebx]
mov ebx, dword [esp + 0x88]
mov edi, 0x10
cmp dword [esp + 0x9c], edi
jae 0x40592c
lea ebx, [esp + 0x88]
mov esi, dword [esp + 0xa4]
cmp dword [esp + 0xb8], edi
jae 0x405943
lea esi, [esp + 0xa4]
push 0x425c08
lea ecx, [esp + 0x6c]
call fcn.004118a0
add esp, 4
cmp eax, 1
jne 0x40616a
push 0x74
lea eax, [esp + 0xc0]
push 0
push eax
call fcn.00418e90
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x78]
add esp, 0xc
cmp ecx, edi
jb 0x4060fc
mov esi, edx
mov dword [esp + 0x18], esi
test edx, edx
je 0x4059b0
mov eax, edx
cmp ecx, edi
jae 0x405998
lea eax, [esp + 0x6c]
cmp eax, esi
ja 0x4059b0
mov eax, edx
cmp ecx, edi
jae 0x4059a6
lea eax, [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
add eax, ebp
cmp esi, eax
jbe 0x4059c4
call fcn.00414207
mov ecx, dword [esp + 0x80]
mov ebp, dword [esp + 0x7c]
mov edx, dword [esp + 0x6c]
mov eax, edx
cmp ecx, edi
jae 0x4059ce
lea eax, [esp + 0x6c]
lea edi, [eax + ebp]
test edi, edi
je 0x4059f5
mov eax, edx
cmp ecx, 0x10
jae 0x4059e0
lea eax, [esp + 0x6c]
cmp eax, edi
ja 0x4059f5
mov eax, edx
cmp ecx, 0x10
jae 0x4059ef
lea eax, [esp + 0x6c]
add eax, ebp
cmp edi, eax
jbe 0x405a09
call fcn.00414207
mov ecx, dword [esp + 0x80]
mov ebp, dword [esp + 0x7c]
mov edx, dword [esp + 0x6c]
lea ebx, [esp + 0x68]
cmp ecx, 0x10
jb 0x406109
mov esi, edx
test edx, edx
je 0x405a3c
mov eax, edx
cmp ecx, 0x10
jae 0x405a27
lea eax, [esp + 0x6c]
cmp eax, esi
ja 0x405a3c
mov eax, edx
cmp ecx, 0x10
jae 0x405a36
lea eax, [esp + 0x6c]
add ebp, eax
cmp esi, ebp
jbe 0x405a41
call fcn.00414207
mov ecx, dword [esp + 0x18]
push ecx
lea eax, [esp + 0x6c]
mov ecx, eax
push ecx
push edi
push ebx
push esi
push eax
lea edx, [esp + 0x78]
push edx
call fcn.00408ee0
add esp, 0x1c
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0xc8]
call fcn.004077d0
mov ebx, dword [esp + 0x88]
mov edi, 0x10
cmp dword [esp + 0x9c], edi
jae 0x405a8f
lea ebx, [esp + 0x88]
mov esi, dword [esp + 0xa4]
cmp dword [esp + 0xb8], edi
jae 0x405aa6
lea esi, [esp + 0xa4]
push 0x425c14
lea ecx, [esp + 0x6c]
call fcn.004118a0
add esp, 4
test eax, eax
jne 0x405ac8
push str.read_os_type_fail
call fcn.004129d0
add esp, 4
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x6c]
cmp edx, edi
jb 0x406112
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x405b09
mov eax, ecx
cmp edx, edi
jae 0x405aed
lea eax, [esp + 0x6c]
cmp eax, dword [esp + 0x18]
ja 0x405b09
mov eax, ecx
cmp edx, edi
jae 0x405afd
lea eax, [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
add eax, ebp
cmp dword [esp + 0x18], eax
jbe 0x405b1d
call fcn.00414207
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
mov eax, ecx
cmp edx, edi
jae 0x405b27
lea eax, [esp + 0x6c]
lea edi, [eax + ebp]
test edi, edi
je 0x405b4e
mov eax, ecx
cmp edx, 0x10
jae 0x405b39
lea eax, [esp + 0x6c]
cmp eax, edi
ja 0x405b4e
mov eax, ecx
cmp edx, 0x10
jae 0x405b48
lea eax, [esp + 0x6c]
add eax, ebp
cmp edi, eax
jbe 0x405b62
call fcn.00414207
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
lea ebx, [esp + 0x68]
cmp edx, 0x10
jb 0x40611f
mov esi, ecx
test ecx, ecx
je 0x405b95
mov eax, ecx
cmp edx, 0x10
jae 0x405b80
lea eax, [esp + 0x6c]
cmp eax, esi
ja 0x405b95
mov eax, ecx
cmp edx, 0x10
jae 0x405b8f
lea eax, [esp + 0x6c]
add eax, ebp
cmp esi, eax
jbe 0x405b9a
call fcn.00414207
mov ecx, dword [esp + 0x18]
push ecx
lea eax, [esp + 0x6c]
mov ecx, eax
push ecx
push edi
push ebx
push esi
push eax
lea edx, [esp + 0x68]
push edx
call fcn.00408ee0
add esp, 0x1c
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0xe4]
call fcn.004077d0
mov ebx, dword [esp + 0x88]
mov edi, 0x10
cmp dword [esp + 0x9c], edi
jae 0x405be8
lea ebx, [esp + 0x88]
mov esi, dword [esp + 0xa4]
cmp dword [esp + 0xb8], edi
jae 0x405bff
lea esi, [esp + 0xa4]
push 0x425c30
lea ecx, [esp + 0x6c]
call fcn.004118a0
add esp, 4
test eax, eax
jne 0x405c21
push str.read_url_fail
call fcn.004129d0
add esp, 4
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x6c]
cmp edx, edi
jb 0x406128
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x405c62
mov eax, ecx
cmp edx, edi
jae 0x405c46
lea eax, [esp + 0x6c]
cmp eax, dword [esp + 0x18]
ja 0x405c62
mov eax, ecx
cmp edx, edi
jae 0x405c56
lea eax, [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
add eax, ebp
cmp dword [esp + 0x18], eax
jbe 0x405c76
call fcn.00414207
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
mov eax, ecx
cmp edx, edi
jae 0x405c80
lea eax, [esp + 0x6c]
lea edi, [eax + ebp]
test edi, edi
je 0x405ca7
mov eax, ecx
cmp edx, 0x10
jae 0x405c92
lea eax, [esp + 0x6c]
cmp eax, edi
ja 0x405ca7
mov eax, ecx
cmp edx, 0x10
jae 0x405ca1
lea eax, [esp + 0x6c]
add eax, ebp
cmp edi, eax
jbe 0x405cbb
call fcn.00414207
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
lea ebx, [esp + 0x68]
cmp edx, 0x10
jb 0x406135
mov esi, ecx
test ecx, ecx
je 0x405cee
mov eax, ecx
cmp edx, 0x10
jae 0x405cd9
lea eax, [esp + 0x6c]
cmp eax, esi
ja 0x405cee
mov eax, ecx
cmp edx, 0x10
jae 0x405ce8
lea eax, [esp + 0x6c]
add ebp, eax
cmp esi, ebp
jbe 0x405cf3
call fcn.00414207
mov ecx, dword [esp + 0x18]
push ecx
lea eax, [esp + 0x6c]
mov ecx, eax
push ecx
push edi
push ebx
push esi
push eax
lea edx, [esp + 0x70]
push edx
call fcn.00408ee0
add esp, 0x1c
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x100]
call fcn.004077d0
mov ebx, dword [esp + 0x88]
mov edi, 0x10
cmp dword [esp + 0x9c], edi
jae 0x405d41
lea ebx, [esp + 0x88]
mov esi, dword [esp + 0xa4]
cmp dword [esp + 0xb8], edi
jae 0x405d58
lea esi, [esp + 0xa4]
push 0x425c44
lea ecx, [esp + 0x6c]
call fcn.004118a0
add esp, 4
test eax, eax
jne 0x405d7a
push str.read_parameter_fail
call fcn.004129d0
add esp, 4
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x6c]
cmp edx, edi
jb 0x40613e
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x405dbb
mov eax, ecx
cmp edx, edi
jae 0x405d9f
lea eax, [esp + 0x6c]
cmp eax, dword [esp + 0x18]
ja 0x405dbb
mov eax, ecx
cmp edx, edi
jae 0x405daf
lea eax, [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
add eax, ebp
cmp dword [esp + 0x18], eax
jbe 0x405dcf
call fcn.00414207
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
mov eax, ecx
cmp edx, edi
jae 0x405dd9
lea eax, [esp + 0x6c]
lea edi, [eax + ebp]
test edi, edi
je 0x405e00
mov eax, ecx
cmp edx, 0x10
jae 0x405deb
lea eax, [esp + 0x6c]
cmp eax, edi
ja 0x405e00
mov eax, ecx
cmp edx, 0x10
jae 0x405dfa
lea eax, [esp + 0x6c]
add eax, ebp
cmp edi, eax
jbe 0x405e14
call fcn.00414207
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
lea ebx, [esp + 0x68]
cmp edx, 0x10
jb 0x40614b
mov esi, ecx
test ecx, ecx
je 0x405e47
mov eax, ecx
cmp edx, 0x10
jae 0x405e32
lea eax, [esp + 0x6c]
cmp eax, esi
ja 0x405e47
mov eax, ecx
cmp edx, 0x10
jae 0x405e41
lea eax, [esp + 0x6c]
add ebp, eax
cmp esi, ebp
jbe 0x405e4c
call fcn.00414207
mov ecx, dword [esp + 0x18]
push ecx
lea eax, [esp + 0x6c]
mov ecx, eax
push ecx
push edi
push ebx
push esi
push eax
lea edx, [esp + 0x58]
push edx
call fcn.00408ee0
add esp, 0x1c
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x11c]
call fcn.004077d0
mov ebx, dword [esp + 0x88]
mov edi, 0x10
cmp dword [esp + 0x9c], edi
jae 0x405e9a
lea ebx, [esp + 0x88]
mov esi, dword [esp + 0xa4]
cmp dword [esp + 0xb8], edi
jae 0x405eb1
lea esi, [esp + 0xa4]
push 0x425c64
lea ecx, [esp + 0x6c]
call fcn.004118a0
add esp, 4
test eax, eax
jne 0x405ed3
push str.read_isInstall_fail
call fcn.004129d0
add esp, 4
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x6c]
cmp edx, edi
jb 0x406154
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x405f14
mov eax, ecx
cmp edx, edi
jae 0x405ef8
lea eax, [esp + 0x6c]
cmp eax, dword [esp + 0x18]
ja 0x405f14
mov eax, ecx
cmp edx, edi
jae 0x405f08
lea eax, [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
add eax, ebp
cmp dword [esp + 0x18], eax
jbe 0x405f28
call fcn.00414207
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
mov eax, ecx
cmp edx, edi
jae 0x405f32
lea eax, [esp + 0x6c]
lea edi, [eax + ebp]
test edi, edi
je 0x405f59
mov eax, ecx
cmp edx, 0x10
jae 0x405f44
lea eax, [esp + 0x6c]
cmp eax, edi
ja 0x405f59
mov eax, ecx
cmp edx, 0x10
jae 0x405f53
lea eax, [esp + 0x6c]
add eax, ebp
cmp edi, eax
jbe 0x405f6d
call fcn.00414207
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
lea ebx, [esp + 0x68]
cmp edx, 0x10
jb 0x406161
mov esi, ecx
test ecx, ecx
je 0x405fa0
mov eax, ecx
cmp edx, 0x10
jae 0x405f8b
lea eax, [esp + 0x6c]
cmp eax, esi
ja 0x405fa0
mov eax, ecx
cmp edx, 0x10
jae 0x405f9a
lea eax, [esp + 0x6c]
add ebp, eax
cmp esi, ebp
jbe 0x405fa5
call fcn.00414207
mov ecx, dword [esp + 0x18]
push ecx
lea eax, [esp + 0x6c]
mov ecx, eax
push ecx
push edi
push ebx
push esi
push eax
lea edx, [esp + 0x60]
push edx
call fcn.00408ee0
mov eax, dword [esp + 0x88]
mov ebp, 0x10
add esp, 0x1c
cmp dword [esp + 0x80], ebp
jae 0x405fdb
lea eax, [esp + 0x6c]
push eax
call fcn.00413d09
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x130], eax
add esp, 4
lea eax, [esp + 0xbc]
push eax
add ebx, 0x94
call fcn.00407440
lea edi, [esp + 0x84]
call fcn.00407050
mov esi, dword [esp + 0x1c]
push 5
inc esi
push str.PATCH
mov ecx, edi
mov dword [esp + 0x24], esi
call fcn.00407f80
xor eax, eax
push 0xa
push 0x20
lea ecx, [esp + 0x13c]
push ecx
xor ebx, ebx
push esi
mov byte [esp + 0x144], bl
mov dword [esp + 0x145], eax
mov dword [esp + 0x149], eax
mov dword [esp + 0x14d], eax
mov dword [esp + 0x151], eax
mov dword [esp + 0x155], eax
mov dword [esp + 0x159], eax
mov dword [esp + 0x15d], eax
mov word [esp + 0x161], ax
mov byte [esp + 0x163], al
call fcn.004134ba
lea eax, [esp + 0x144]
add esp, 0x10
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x4060a0
sub eax, ecx
push eax
lea edx, [esp + 0x138]
push edx
lea ecx, [esp + 0x2c]
call fcn.00407f80
push ebx
lea eax, [esp + 0x28]
push eax
or eax, 0xffffffff
lea esi, [esp + 0x8c]
mov byte [esp + 0x16c], 4
call fcn.00407540
mov byte [esp + 0x164], 3
cmp dword [esp + 0x3c], ebp
jb 0x405910
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0041300c
add esp, 4
jmp 0x405910
lea esi, [esp + 0x6c]
mov dword [esp + 0x18], esi
jmp 0x40598e
lea esi, [esp + 0x6c]
jmp 0x405a1c
lea eax, [esp + 0x6c]
mov dword [esp + 0x18], eax
jmp 0x405ae3
lea esi, [esp + 0x6c]
jmp 0x405b75
lea eax, [esp + 0x6c]
mov dword [esp + 0x18], eax
jmp 0x405c3c
lea esi, [esp + 0x6c]
jmp 0x405cce
lea eax, [esp + 0x6c]
mov dword [esp + 0x18], eax
jmp 0x405d95
lea esi, [esp + 0x6c]
jmp 0x405e27
lea eax, [esp + 0x6c]
mov dword [esp + 0x18], eax
jmp 0x405eee
lea esi, [esp + 0x6c]
jmp 0x405f80
push str.Parse_PatchList_leave...
call fcn.00412950
add esp, 4
lea esi, [esp + 0xbc]
call fcn.00406230
cmp dword [esp + 0x80], edi
jb 0x406199
mov edx, dword [esp + 0x6c]
push edx
call fcn.0041300c
add esp, 4
xor ebx, ebx
mov esi, 0xf
mov dword [esp + 0x80], esi
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x6c], bl
cmp dword [esp + 0x9c], edi
jb 0x4061c8
mov eax, dword [esp + 0x88]
push eax
call fcn.0041300c
add esp, 4
mov dword [esp + 0x9c], esi
mov dword [esp + 0x98], ebx
mov byte [esp + 0x88], bl
cmp dword [esp + 0xb8], edi
jb 0x4061f6
mov ecx, dword [esp + 0xa4]
push ecx
call fcn.0041300c
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x15c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x140]
xor ecx, esp
call fcn.00413017
add esp, 0x154
ret 4