Function at 0x455a60
Capabilities:
Check for time delay via gettickcount
Check if file exists
Move file
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45d444
mov eax, dword fs:[0]
push eax
sub esp, 0x150
push ebx
push esi
push edi
mov eax, dword [0x47b5b0]
xor eax, esp
push eax
lea eax, [esp + 0x160]
mov dword fs:[0], eax
mov edi, ecx
push edi
mov dword [esp + 0x2c], edi
call fcn.00453bc0
push 0x468fc8
push str.FS3Online_Class
call dword [sym.imp.USER32.dll_FindWindowW]
push eax
call fcn.00417cb1
test eax, eax
je 0x455af5
push 0x46902c
push 0x3ee
mov ecx, edi
call fcn.00424678
push 0x469058
push 0x3ed
mov ecx, edi
call fcn.00424678
mov eax, 0x12
mov ecx, dword [esp + 0x160]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0xc68]
push eax
lea eax, [esp + 0x150]
push eax
lea ecx, [esp + 0x7c]
xor ebx, ebx
push ecx
mov dword [esp + method.CStatusCallback.virtual_0], vtable.CStatusCallback.0
mov dword [esp + 0x160], ebx
mov dword [esp + 0x164], ebx
mov dword [esp + 0x15c], edi
call fcn.00408930
mov dword [esp + 0x168], ebx
mov edx, dword [0x47ffd0]
push edx
lea ecx, [esp + 0x18]
call fcn.00401860
mov eax, 1
mov byte [esp + 0x168], al
mov dword [esp + 0x58], eax
mov dword [esp + 0x6c], ebx
call fcn.00414a0e
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x455b75
push 0x80004005
call fcn.00402190
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x168], 2
call fcn.00414a0e
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x455ba7
push 0x80004005
call fcn.00402190
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x168], 3
call fcn.00414a0e
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x455bd9
push 0x80004005
call fcn.00402190
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov byte [esp + 0x168], 4
fldz
fst dword [edi + 0xc54]
push ebx
lea ecx, [edi + 0x1090]
fst dword [edi + 0xc58]
push 0x469054
fstp dword [edi + 0xc5c]
mov byte [esp + 0x4f], bl
mov dword [edi + 0xc50], ebx
mov dword [edi + 0xc60], ebx
mov dword [edi + 0xc64], ebx
mov dword [edi + 0xc70], ebx
mov dword [edi + 0xc74], ebx
mov dword [edi + 0xc78], ebx
mov dword [edi + 0xc7c], ebx
mov dword [edi + 0xc80], ebx
mov dword [edi + 0xc84], ebx
mov dword [edi + 0xc88], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x34], ecx
call fcn.00401f90
push ebx
lea ecx, [edi + 0x1094]
push 0x4690ac
call fcn.00401f90
push 0x4690b0
push 0x3ee
mov ecx, edi
call fcn.00424678
push 0x4690e8
push 0x3ed
mov ecx, edi
call fcn.00424678
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
cmp eax, ebx
jl 0x4561f1
push 0x469130
push ecx
call fcn.00432b24
add esp, 8
cmp eax, ebx
je 0x4561f1
mov ecx, dword [esp + 0x14]
sub eax, ecx
sar eax, 1
jne 0x4561f1
cmp dword [ecx - 0xc], ebx
jl 0x4561f1
push str.CSMGameAU
push ecx
call fcn.00432b24
add esp, 8
cmp eax, ebx
je 0x4561f1
sub eax, dword [esp + 0x14]
sar eax, 1
cmp eax, 8
jle 0x4561f1
lea esi, [esp + 0x11c]
call fcn.00403030
mov byte [esp + 0x168], 5
lea esi, [esp + 0x1c]
lea eax, [esp + 0x74]
mov dword [esp + 0x144], ebx
mov dword [esp + 0x11c], ebx
call fcn.00403130
push 0x469154
push eax
lea ecx, [esp + 0x20]
mov bl, 6
push ecx
mov byte [esp + 0x174], bl
call fcn.00403810
add esp, 0xc
push eax
lea ecx, [esp + 0x124]
mov byte [esp + 0x16c], 7
call fcn.00401940
mov byte [esp + 0x168], bl
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 0x455d79
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 5
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x455da1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x469174
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00403810
add esp, 0xc
push eax
lea ecx, [esp + 0x128]
mov byte [esp + 0x16c], 8
call fcn.00401940
mov byte [esp + 0x168], 5
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 0x455df5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi + 0xc68]
push eax
lea ecx, [esp + 0x4c]
push 0x50
push ecx
lea ebx, [esp + 0x128]
call fcn.00406920
add esp, 0xc
test eax, eax
jne 0x455ece
push 0x469194
push 0x3ee
mov ecx, edi
call fcn.00424678
push 0x4691d0
push 0x3ed
mov ecx, edi
call fcn.00424678
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x20]
push 0x469230
push eax
call fcn.004038f0
add esp, 0xc
push 0x469218
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x174], 9
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
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 0x455e95
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 5
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x455ebd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x11c]
call fcn.004032e0
jmp 0x459100
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x20]
push 0x469280
push edx
call fcn.004038f0
add esp, 0xc
push 0x469264
push eax
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x174], 0xa
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
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 0x455f27
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 5
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x455f4f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x50]
lea eax, [esp + 0x74]
call fcn.00403130
push 0x4692b4
push eax
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x174], 0xb
call fcn.00403810
add esp, 0xc
mov ebx, eax
lea esi, [esp + 0x1c]
lea eax, [esp + 0x74]
mov byte [esp + 0x168], 0xc
call fcn.00403130
push 0x4692d4
push eax
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x174], 0xd
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0xe
mov ebx, dword [ebx]
mov eax, dword [eax]
push ebx
call fcn.00405bd0
add esp, 4
test eax, eax
mov byte [esp + 0x168], 0xd
mov eax, dword [esp + 0x18]
sete bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x455feb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0xc
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456013
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0xb
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45603b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 5
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456063
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x4560c8
push 0x4692f8
push 0x3ee
mov ecx, edi
call fcn.00424678
push 0x469340
push 0x3ed
mov ecx, edi
call fcn.00424678
mov esi, str.Unpack_server_list__csmaus.sls____Failed
call fcn.00405780
lea esi, [esp + 0x11c]
call fcn.004032e0
lea ecx, [esp + 0x38]
call fcn.00402140
lea ecx, [esp + 0x24]
call fcn.00402140
lea ecx, [esp + 0x20]
call fcn.00402140
lea ecx, [esp + 0x14]
call fcn.00402140
jmp 0x4591a0
lea ecx, [esp + 0x34]
call fcn.00402160
lea esi, [esp + 0x1c]
lea eax, [esp + 0x74]
mov byte [esp + 0x168], 0xf
call fcn.00403130
push 0x469414
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x174], 0x10
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x11
mov eax, dword [eax]
lea edx, [esp + 0x34]
push edx
mov ebx, 0x4693e4
mov edi, 0x4693f8
mov esi, eax
call fcn.004074d0
add esp, 4
lea ecx, [esp + 0x18]
call fcn.00402140
mov bl, 0xf
lea ecx, [esp + 0x1c]
mov byte [esp + 0x168], bl
call fcn.00402140
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00403750
add esp, 0xc
mov byte [esp + 0x168], 0x12
mov ecx, dword [eax]
test ecx, ecx
jne 0x456168
xor eax, eax
jmp 0x45617f
mov eax, ecx
lea esi, [eax + 2]
lea ecx, [ecx]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x456170
sub eax, esi
sar eax, 1
push eax
push ecx
lea ecx, [esp + 0xc0]
call fcn.00401f90
lea ecx, [esp + 0x18]
mov byte [esp + 0x168], bl
call fcn.00402140
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0xc6c]
push eax
push edx
push 0x469434
lea eax, [esp + 0x44]
push str._s_s__s
push eax
call fcn.00401e30
add esp, 0x14
lea ecx, [esp + 0x34]
mov byte [esp + 0x47], 1
call fcn.00402140
lea esi, [esp + 0x11c]
mov byte [esp + 0x168], 4
call fcn.004032e0
mov edi, dword [esp + 0x28]
xor ebx, ebx
jmp 0x456362
mov ecx, dword [edi + 0xc6c]
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x78]
push eax
call fcn.00408e40
test eax, eax
jne 0x45625f
push 0x469488
push 0x3ee
mov ecx, edi
call fcn.00424678
push 0x4694e0
push 0x3ed
mov ecx, edi
call fcn.00424678
mov esi, 0x469528
call fcn.00405780
mov ecx, dword [esp + 0x48]
push ecx
xor ecx, ecx
mov edx, edi
call fcn.00453370
lea edx, [esp + 0x24]
push edx
push ebx
push ebx
push 0x46956c
push edi
lea ebx, [esp + 0x34]
call fcn.00453500
jmp 0x459100
lea ecx, [esp + 0x18]
push ecx
call fcn.0045a080
add esp, 4
lea ecx, [edi + 0x1084]
push eax
mov byte [esp + 0x16c], 0x13
call fcn.00401940
mov byte [esp + 0x168], 4
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 0x4562a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x34]
lea eax, [esp + 0x74]
call fcn.00403170
push eax
lea ecx, [esp + 0x20]
push str.Connect_to_patch_server__
push ecx
mov byte [esp + 0x174], 0x14
call fcn.004038f0
add esp, 0xc
push 0x4694c4
push eax
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x174], 0x15
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
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 0x456312
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x14
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45633a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456362
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4695b0
push 0x3ee
mov ecx, edi
call fcn.00424678
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x78]
push edx
call fcn.00409880
test eax, eax
jne 0x4563fa
push 0x469610
push 0x3ee
mov ecx, edi
call fcn.00424678
push 0x469658
push 0x3ed
mov ecx, edi
call fcn.00424678
mov esi, 0x4696a0
call fcn.00405780
mov eax, dword [esp + 0x48]
push eax
mov ecx, 0x4696fc
mov edx, edi
call fcn.00453370
lea ecx, [esp + 0x24]
push ecx
push ebx
push ebx
push 0x46971c
push edi
lea ebx, [esp + 0x34]
call fcn.00453500
mov byte [esp + 0x168], 3
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x45911c
mov esi, str.Get_description_update_information___Success
call fcn.00405780
mov ecx, dword [edi + 0x1f8]
add ecx, dword [edi + 0x1f4]
lea esi, [edi + 0x1a0]
push ecx
mov dword [esp + 0x6c], esi
call fcn.0044a870
lea esi, [esp + 0x18]
lea eax, [esp + 0x74]
call fcn.00403150
lea ecx, [edi + 0x1088]
push eax
mov byte [esp + 0x16c], 0x16
call fcn.00401940
mov byte [esp + 0x168], 4
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 0x456469
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x1c]
lea eax, [esp + 0x74]
call fcn.00403130
push 0x4697c4
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x174], 0x17
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x18
mov eax, dword [eax]
add edi, 0x1098
push edi
mov ebx, str.ShortcutFile
mov edi, 0x4697a8
mov esi, eax
call fcn.004074d0
mov byte [esp + 0x16c], 0x17
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4564de
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456506
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x1c]
lea eax, [esp + 0x74]
call fcn.00403130
push 0x469814
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x174], 0x19
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x1a
mov edx, dword [esp + 0x28]
mov eax, dword [eax]
add edx, 0xc40
push edx
mov ebx, 0x4697e0
mov edi, 0x4697f8
mov esi, eax
call fcn.004074d0
mov byte [esp + 0x16c], 0x19
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45657f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4565a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x1c]
lea eax, [esp + 0x74]
call fcn.00403130
push 0x469860
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x174], 0x1b
call fcn.00403810
mov eax, dword [eax]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
add esp, 0xc
push eax
push 0
push 0x469830
push 0x469844
call ebx
mov edi, dword [esp + 0x28]
mov dword [edi + 0xc44], eax
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 0x456610
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456638
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x1c]
lea eax, [esp + 0x74]
call fcn.00403130
push 0x4698ac
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x174], 0x1c
call fcn.00403810
mov eax, dword [eax]
add esp, 0xc
push eax
push 0
push 0x46987c
push 0x469890
call ebx
mov dword [edi + 0xc48], eax
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 0x456697
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4566bf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x1c]
lea eax, [esp + 0x74]
call fcn.00403130
push 0x4698f8
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x174], 0x1d
call fcn.00403810
mov eax, dword [eax]
add esp, 0xc
push eax
push 0
push 0x4698c8
push 0x4698dc
call ebx
mov dword [edi + 0xc4c], eax
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 0x45671e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456746
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x1c]
lea eax, [esp + 0x74]
call fcn.00403130
push 0x469948
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x174], 0x1e
call fcn.00403810
mov eax, dword [eax]
add esp, 0xc
push eax
push 0
push str.UseCSMTalk
push 0x46992c
call ebx
test eax, eax
mov eax, dword [esp + 0x18]
setne dl
add eax, 0xfffffff0
mov byte [edi + 0x109c], dl
lea ecx, [eax + 0xc]
mov edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4567ac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4567d4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x1c]
lea eax, [esp + 0x74]
call fcn.00403130
push 0x46999c
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x174], 0x1f
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x20
mov eax, dword [eax]
add edi, 0x10a4
push edi
mov ebx, str.CSMTalkLinkDL
mov edi, 0x469980
mov esi, eax
call fcn.004074d0
mov byte [esp + 0x16c], 0x1f
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x456849
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456871
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x1c]
lea eax, [esp + 0x74]
call fcn.00403130
push 0x4699ec
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x174], 0x21
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x22
mov edx, dword [esp + 0x28]
mov eax, dword [eax]
add edx, 0xc34
push edx
mov ebx, str.DefaultSite
mov edi, 0x4699d0
mov esi, eax
call fcn.004074d0
mov byte [esp + 0x16c], 0x21
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4568ea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456912
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x1c]
lea eax, [esp + 0x74]
call fcn.00403130
push 0x469a4c
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x174], 0x23
call fcn.00403810
mov eax, dword [eax]
add esp, 0xc
push eax
push 0
push str.DefaultCheckBoxSite
push 0x469a30
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov esi, eax
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 0x456971
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456999
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 1
push 0
test esi, esi
je 0x4569cb
mov edi, dword [esp + 0x30]
mov ecx, dword [edi + 0xbe8]
push ecx
mov dword [edi + 0xc1c], 1
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [edi + 0xbe8]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
jmp 0x4569f5
mov esi, dword [esp + 0x30]
mov eax, dword [esi + 0xbe8]
push eax
mov dword [esi + 0xc1c], 0
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esi + 0xbe8]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov edi, esi
lea esi, [esp + 0x1c]
lea eax, [esp + 0x74]
call fcn.00403130
push 0x469a68
push eax
lea edx, [esp + 0x20]
mov bl, 0x24
push edx
mov byte [esp + 0x174], bl
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x25
mov eax, dword [eax]
push eax
call fcn.00407720
dec eax
mov dword [edi + 0x28c], eax
mov byte [esp + 0x16c], bl
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
add esp, 4
mov dword [edi + 0x290], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456a69
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456a91
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x2c]
push ecx
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x7c]
push eax
mov dword [edi + 0x288], 1
call fcn.00409e10
test eax, eax
jne 0x456b0a
push 0x469a88
push 0x3ee
mov ecx, edi
call fcn.00424678
push 0x469ad0
push 0x3ed
mov ecx, edi
call fcn.00424678
mov esi, str.Check_description_update_information___Failed
call fcn.00405780
mov ecx, dword [esp + 0x48]
push ecx
xor ecx, ecx
mov edx, edi
call fcn.00453370
lea edx, [esp + 0x24]
push edx
push 0
push 0
push 0x469b80
push edi
lea ebx, [esp + 0x34]
call fcn.00453500
jmp 0x45609f
mov esi, str.Check_description_update_information___Success
call fcn.00405780
mov esi, dword [esp + 0x68]
mov eax, dword [esi + 0x58]
add eax, dword [esi + 0x54]
push eax
call fcn.0044a870
mov ebx, dword [esp + 0x98]
xor eax, eax
test ebx, ebx
jle 0x456b62
mov edx, dword [esp + 0x94]
test eax, eax
jl 0x456c62
cmp eax, ebx
jge 0x456c62
mov ecx, dword [edx + eax*4]
mov esi, dword [ecx + 0x20]
add dword [edi + 0xc70], esi
mov ecx, dword [ecx + 0x24]
adc dword [edi + 0xc74], ecx
inc eax
cmp eax, ebx
jl 0x456b38
mov esi, dword [esp + 0xac]
xor eax, eax
test esi, esi
jle 0x456ba0
test eax, eax
jl 0x456c62
cmp eax, esi
jge 0x456c62
mov edx, dword [esp + 0xa8]
mov ecx, dword [edx + eax*4]
mov edx, dword [ecx + 0x20]
add dword [edi + 0xc70], edx
mov ecx, dword [ecx + 0x24]
adc dword [edi + 0xc74], ecx
inc eax
cmp eax, esi
jl 0x456b6f
mov edx, dword [esp + 0x84]
xor eax, eax
test edx, edx
jle 0x456be5
test eax, eax
jl 0x456c62
cmp eax, edx
jge 0x456c62
mov ecx, dword [esp + 0x80]
mov ecx, dword [ecx + eax*4]
mov ebx, dword [ecx + 0x20]
add dword [edi + 0xc70], ebx
mov ecx, dword [ecx + 0x24]
adc dword [edi + 0xc74], ecx
inc eax
cmp eax, edx
jl 0x456bad
mov ebx, dword [esp + 0x98]
lea eax, [edx + esi]
add eax, ebx
mov dword [edi + 0xc80], eax
test edx, edx
jne 0x45702f
test ebx, ebx
jne 0x45702f
test esi, esi
jne 0x45702f
lea ebx, [edi + 0x230]
mov dword [ebx + 0x60], esi
push 1
mov esi, ebx
mov dword [ebx + 0x5c], 1
call fcn.0044a870
mov esi, dword [esp + 0x68]
push 1
mov dword [esi + 0x5c], 1
mov dword [esi + 0x60], 0
call fcn.0044a870
lea ecx, [esp + 0x24]
push ecx
call fcn.00454920
mov dword [esp + 0x34], eax
call fcn.00414a0e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x456c67
push 0x80004005
call fcn.00402190
call fcn.0041492f
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov byte [esp + 0x168], 0x42
call fcn.00414a0e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x456c99
push 0x80004005
call fcn.00402190
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x168], 0x43
cmp byte [edi + 0x109c], 0
je 0x456cc0
push edi
call fcn.00455950
mov edi, 1
push edi
mov esi, ebx
mov dword [ebx + 0x5c], edi
mov dword [ebx + 0x60], 0
call fcn.0044a870
mov esi, dword [esp + 0x68]
push edi
mov dword [esi + 0x5c], edi
mov dword [esi + 0x60], 0
call fcn.0044a870
lea esi, [esp + 0x2c]
call fcn.00407c40
mov ecx, dword [esp + 0x2c]
lea edi, [esp + 0x1c]
call fcn.00407a00
lea esi, [esp + 0x18]
lea eax, [esp + 0x74]
call fcn.00403150
push 0
push 0
push 0
mov byte [esp + 0x174], 0x44
mov ecx, dword [esp + 0x28]
mov edx, dword [eax]
mov eax, dword [esp + 0x44]
push ecx
push edx
push 0x469bf0
push eax
lea ecx, [esp + 0x48]
push 0x469c0c
push ecx
call fcn.00401e30
mov byte [esp + 0x18c], 0x43
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
add esp, 0x24
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x456d68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x47], 0
je 0x456d7f
push 9
push 0x469c40
lea ecx, [esp + 0x34]
call fcn.00402630
cmp dword [esp + 0x34], 0
mov edi, dword [esp + 0x28]
je 0x456db6
mov eax, dword [edi + 0xc6c]
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call fcn.00407b60
add esp, 8
lea edx, [esp + 0x24]
push edx
push 0
push 0
push 0x469c58
push edi
lea ebx, [esp + 0x34]
call fcn.00453500
lea esi, [esp + 0x50]
lea eax, [esp + 0x74]
call fcn.00403150
push eax
lea eax, [esp + 0x38]
push 0x469c7c
push eax
mov byte [esp + 0x174], 0x46
call fcn.004038f0
add esp, 0xc
push 0x469c60
push eax
lea ecx, [esp + 0x20]
mov bl, 0x47
push ecx
mov byte [esp + 0x174], bl
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x48
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, edi
call fcn.00424678
mov byte [esp + 0x168], bl
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 0x456e38
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x46
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456e60
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x43
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456e88
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x469cc0
push 0x3ed
mov ecx, edi
call fcn.00424678
lea esi, [esp + 0x34]
lea eax, [esp + 0x74]
call fcn.00403150
push eax
lea ecx, [esp + 0x1c]
push 0x469d20
push ecx
mov byte [esp + 0x174], 0x49
call fcn.004038f0
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
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 0x456ee8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x43
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456f10
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x42
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456f38
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456f60
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 3
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456f88
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 2
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456fb0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 1
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456fd8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457000
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x74]
mov dword [esp + 0x168], 0xffffffff
call fcn.00408bd0
mov eax, 0x12
mov ecx, dword [esp + 0x160]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea esi, [edi + 0x230]
mov ebx, 0x64
push 0
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], 0
call fcn.0044a870
mov esi, dword [esp + 0x84]
mov dword [esp + 0x34], esi
test esi, esi
jle 0x457a72
call fcn.00414a0e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x457078
push 0x80004005
call fcn.00402190
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0x168], 0x4a
mov dword [esp + 0x1c], 0
test esi, esi
jle 0x4573a7
cmp dword [edi + 0xc3c], 0
jne 0x457543
mov eax, dword [esp + 0x1c]
test eax, eax
jl 0x456c62
cmp eax, dword [esp + 0x84]
jge 0x456c62
mov ecx, dword [esp + 0x80]
mov ebx, dword [ecx + eax*4]
lea esi, [esp + 0x50]
lea eax, [esp + 0x74]
mov dword [esp + 0x2c], ebx
call fcn.00403130
mov byte [esp + 0x168], 0x4b
mov edx, dword [eax]
mov eax, dword [edx - 0xc]
push eax
lea eax, [esp + 0x1c]
lea ecx, [ebx + 4]
push eax
call fcn.004035f0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x16c], 0x4c
call fcn.00401940
mov byte [esp + 0x168], 0x4b
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 0x457136
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x4a
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45715e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x5c]
push 0x469d84
push edx
call fcn.004038f0
add esp, 0xc
push 0x469cb4
push eax
lea eax, [esp + 0x74]
mov bl, 0x4d
push eax
mov byte [esp + 0x174], bl
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x4e
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, edi
call fcn.00424678
mov byte [esp + 0x168], bl
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4571cf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x4a
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4571f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi + 0xc68]
mov ebx, dword [esp + 0x2c]
push eax
lea ecx, [esp + 0x4c]
push 0x50
push ecx
call fcn.00406920
add esp, 0xc
test eax, eax
je 0x4573f0
mov esi, ebx
push 0x469e8c
add esi, 4
lea edx, [esp + 0x60]
push esi
push edx
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x52
mov eax, dword [eax]
mov ecx, dword [esi]
push eax
mov eax, ecx
call fcn.00405bd0
add esp, 4
test eax, eax
mov byte [esp + 0x168], 0x4a
mov eax, dword [esp + 0x5c]
sete bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457275
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
jne 0x457557
push 0x469f70
lea ecx, [esp + 0x64]
push esi
push ecx
call fcn.00403810
mov esi, dword [esi]
mov eax, dword [eax]
add esp, 0xc
push 1
push esi
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
mov eax, dword [esp + 0x60]
sete bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4572c3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
jne 0x4576c8
push 0x46a060
lea ecx, [esp + 0x2c]
call fcn.00403390
mov ebx, dword [esp + 0x2c]
mov eax, dword [ebx + 4]
mov ecx, dword [eax - 0xc]
add ebx, 4
push ecx
push eax
lea ecx, [esp + 0x30]
call fcn.00402630
mov esi, dword [esp + 0x68]
mov ecx, dword [esi + 0x58]
add ecx, dword [esi + 0x54]
push ecx
call fcn.0044a870
mov eax, dword [ebx]
mov edx, dword [esp + 0x2c]
mov edx, dword [edx + 0xc]
push eax
call fcn.00405df0
add esp, 4
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x44]
push str.Download_selfupdate_file__
push ecx
call fcn.004038f0
add esp, 0xc
push 0x46a064
push eax
lea edx, [esp + 0x44]
push edx
mov byte [esp + 0x174], 0x59
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45736c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x4a
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457394
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
jl 0x4570a0
lea esi, [esp + 0x3c]
lea eax, [esp + 0x74]
call fcn.00403130
push 0x46a0b8
push eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0x174], 0x5a
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
push 0x46a0d0
push 0xb9
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
jne 0x457839
jmp 0x457842
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push 0x469dc4
push edx
call fcn.004038f0
add esp, 0xc
push 0x469dac
push eax
lea eax, [esp + 0x48]
mov bl, 0x4f
push eax
mov byte [esp + 0x174], bl
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x50
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, edi
call fcn.00424678
mov byte [esp + 0x168], bl
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457461
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov bl, 0x4a
mov byte [esp + 0x168], bl
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45748a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x469de0
push 0x3ed
mov ecx, edi
call fcn.00424678
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push 0x469e44
push edx
call fcn.004038f0
add esp, 0xc
push 0x469e2c
push eax
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x174], 0x51
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4574f4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], bl
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45751b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x18]
mov edx, edi
call fcn.00453370
lea edx, [esp + 0x24]
push edx
push 0
push 0
push 0x469e7c
push edi
lea ebx, [esp + 0x34]
call fcn.00453500
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
jmp 0x4590e7
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push 0x469eb4
push edx
call fcn.004038f0
add esp, 0xc
push 0x469e98
push eax
lea eax, [esp + 0x48]
mov bl, 0x53
push eax
mov byte [esp + 0x174], bl
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x54
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, edi
call fcn.00424678
mov byte [esp + 0x168], bl
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4575c8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x4a
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4575f0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x469ec8
push 0x3ed
mov ecx, edi
call fcn.00424678
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push str.Unpack_selfupdate_file__
push edx
call fcn.004038f0
add esp, 0xc
push 0x469f14
push eax
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x174], 0x55
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45765a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x4a
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457682
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push 0x19
mov edx, edi
call fcn.00453370
lea ecx, [esp + 0x24]
push ecx
push 0
push 0
push 0x469f60
push edi
lea ebx, [esp + 0x34]
call fcn.00453500
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x4590f4
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push 0x469f94
push edx
call fcn.004038f0
add esp, 0xc
push str.__th
push eax
lea eax, [esp + 0x48]
mov bl, 0x56
push eax
mov byte [esp + 0x174], bl
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x57
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, edi
call fcn.00424678
mov byte [esp + 0x168], bl
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457739
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x4a
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457761
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x469fb8
push 0x3ed
mov ecx, edi
call fcn.00424678
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push str.Rename_selfupdate_file__
push edx
call fcn.004038f0
add esp, 0xc
push 0x46a004
push eax
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x174], 0x58
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4577cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x4a
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4577f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push 5
mov edx, edi
call fcn.00453370
lea ecx, [esp + 0x24]
push ecx
push 0
push 0
push 0x46a050
push edi
lea ebx, [esp + 0x34]
call fcn.00453500
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x4590f4
push esi
call fcn.00406050
add esp, 4
test eax, eax
mov eax, dword [esp + 0x40]
sete bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x457867
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x4a
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45788f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x457906
push 0x46a0e0
push 0x3ee
mov ecx, edi
call fcn.00424678
push 0x46a128
push 0x3ed
mov ecx, edi
call fcn.00424678
mov esi, str.Extract_selfupdate_file__engine.dat____Failed
call fcn.00405780
push 6
mov ecx, 0x46a1d8
mov edx, edi
call fcn.00453370
lea ecx, [esp + 0x24]
push ecx
push 0
push 0
push 0x46a1f0
push edi
lea ebx, [esp + 0x34]
call fcn.00453500
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x4590f4
mov esi, dword [esp + 0x28]
push esi
lea ecx, [esp + 0x78]
push ecx
call fcn.0040b7b0
test eax, eax
jne 0x45797f
push 0x46a200
push 0x3ee
mov ecx, edi
call fcn.00424678
push 0x46a250
push 0x3ed
mov ecx, edi
call fcn.00424678
mov esi, str.Execute_selfupdate_file__engine.dat____Failed
call fcn.00405780
push 7
mov ecx, 0x46a300
mov edx, edi
call fcn.00453370
lea edx, [esp + 0x24]
push edx
push 0
push 0
push str.FAILED
push edi
lea ebx, [esp + 0x34]
call fcn.00453500
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
jmp 0x4590e7
lea eax, [esi - 0x10]
mov byte [esp + 0x168], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4579a3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 3
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4579cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 2
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4579f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 1
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457a1b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457a43
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x74]
mov dword [esp + 0x168], 0xffffffff
call fcn.00408bd0
mov eax, 0x10
mov ecx, dword [esp + 0x160]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
call fcn.00454bf0
cmp eax, 0x10
je 0x4579a3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x98]
shr edx, 6
xor esi, esi
cmp ecx, esi
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xac]
mov dword [eax + 0x5c], ebx
mov dword [eax + 0x60], esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], ecx
mov dword [eax + 0x58], esi
mov dword [esp + 0x18], esi
jle 0x457ea0
jmp 0x457ad7
mov ecx, dword [esp + 0x98]
cmp dword [edi + 0xc3c], 0
jne 0x4563d9
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x456c62
cmp eax, ecx
jge 0x456c62
mov ecx, dword [esp + 0x94]
mov edx, dword [ecx + eax*4]
lea esi, [esp + 0x3c]
lea eax, [esp + 0x74]
mov dword [esp + 0x2c], edx
call fcn.00403130
mov bl, 0x5b
mov byte [esp + 0x168], bl
mov eax, dword [eax]
mov eax, dword [eax - 0xc]
mov ecx, dword [esp + 0x2c]
push eax
lea edx, [esp + 0x44]
add ecx, 4
push edx
mov dword [esp + 0x58], ecx
call fcn.004035f0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x16c], 0x5c
call fcn.00401940
mov byte [esp + 0x168], bl
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457b70
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457b98
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x60]
push 0x46a334
push edx
call fcn.004038f0
add esp, 0xc
push 0x46a328
push eax
lea eax, [esp + 0x68]
mov bl, 0x5d
push eax
mov byte [esp + 0x174], bl
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x5e
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, edi
call fcn.00424678
mov byte [esp + 0x168], bl
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457c09
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457c31
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x74], esp
mov esi, esp
push eax
call fcn.004020d0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00452200
mov ecx, dword [esp + 0x14]
push 0x46a35c
push ecx
call fcn.00432a46
add esp, 8
test eax, eax
jne 0x457c89
mov eax, dword [edi + 0x10b8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x457c89
mov eax, dword [edi + 0x10b8]
test eax, eax
je 0x457c89
push eax
call fcn.00452d10
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [esp + 0x2c]
mov dword [edi + 0xc50], eax
mov eax, dword [edi + 0xc68]
push eax
lea edx, [esp + 0x4c]
push 0x50
push edx
call fcn.00406920
add esp, 0xc
test eax, eax
je 0x457dce
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0xc50]
mov dword [esp + 0x70], eax
fild dword [esp + 0x70]
test eax, eax
jge 0x457cd5
fadd dword [0x46e8f0]
lea eax, [esp + 0x14]
fstp dword [edi + 0xc54]
push eax
lea ecx, [esp + 0x58]
push 0x46a394
push ecx
call fcn.004038f0
add esp, 0xc
push 0x46a378
push eax
lea edx, [esp + 0x6c]
push edx
mov byte [esp + 0x174], 0x5f
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457d34
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457d5c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx]
test eax, eax
jne 0x457d6a
xor ecx, ecx
jmp 0x457d88
lea edx, [esp + 0x11c]
push edx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
mov ecx, eax
neg ecx
sbb ecx, ecx
and ecx, dword [esp + 0x13c]
fldz
add dword [esp + 0x6c], ecx
fcomp dword [edi + 0xc54]
mov dword [edi + 0xc60], ecx
fnstsw ax
test ah, 5
jp 0x457e6e
mov dword [esp + 0x70], ecx
fild dword [esp + 0x70]
test ecx, ecx
jge 0x457db7
fadd dword [0x46e8f0]
fdiv dword [edi + 0xc54]
inc dword [edi + 0xc64]
fstp dword [edi + 0xc58]
jmp 0x457e6e
cmp dword [esp + 0x58], 0
je 0x457ded
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
push eax
mov edx, edi
call fcn.00453370
mov dword [esp + 0x58], 0
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x34]
push str.Download_update_file__
push edx
call fcn.004038f0
add esp, 0xc
push 0x46a3c4
push eax
lea eax, [esp + 0x54]
push eax
mov byte [esp + 0x174], 0x60
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457e46
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457e6e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx]
call fcn.00405f80
add dword [edi + 0xc78], eax
mov eax, dword [esp + 0x18]
adc dword [edi + 0xc7c], edx
inc dword [edi + 0xc84]
inc eax
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
jl 0x457ad0
xor esi, esi
cmp dword [esp + 0x28], esi
mov dword [esp + 0x18], esi
jle 0x4581ea
cmp dword [edi + 0xc3c], 0
jne 0x4563d9
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x456c62
cmp eax, dword [esp + 0xac]
jge 0x456c62
mov ecx, dword [esp + 0xa8]
mov ebx, dword [ecx + eax*4]
lea esi, [esp + 0x4c]
lea eax, [esp + 0x74]
call fcn.00403130
mov byte [esp + 0x168], 0x61
mov edx, dword [eax]
mov eax, dword [edx - 0xc]
push eax
lea eax, [esp + 0x34]
lea ecx, [ebx + 4]
push eax
mov dword [esp + 0x58], ecx
call fcn.004035f0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x16c], 0x62
call fcn.00401940
mov byte [esp + 0x168], 0x61
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457f44
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457f6c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x68]
push 0x46a418
push edx
call fcn.004038f0
add esp, 0xc
push 0x46a40c
push eax
lea eax, [esp + 0x5c]
push eax
mov byte [esp + 0x174], 0x63
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x64
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, edi
call fcn.00424678
mov byte [esp + 0x168], 0x63
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457fdd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458005
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi + 0xc68]
push eax
lea ecx, [esp + 0x4c]
push 0x50
push ecx
call fcn.00406920
add esp, 0xc
test eax, eax
je 0x4580dc
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x40]
push 0x46a45c
push eax
call fcn.004038f0
add esp, 0xc
push 0x46a440
push eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0x174], 0x65
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45807c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4580a4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx]
test eax, eax
jne 0x4580b7
add dword [esp + 0x6c], eax
jmp 0x45817c
lea edx, [esp + 0x11c]
push edx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
neg eax
sbb eax, eax
and eax, dword [esp + 0x13c]
add dword [esp + 0x6c], eax
jmp 0x45817c
cmp dword [esp + 0x58], 0
je 0x4580fb
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
push eax
mov edx, edi
call fcn.00453370
mov dword [esp + 0x58], 0
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x60]
push str.Download_patch_file__
push edx
call fcn.004038f0
add esp, 0xc
push 0x46a488
push eax
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x174], 0x66
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458154
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45817c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx]
test eax, eax
jne 0x45818a
xor edx, edx
jmp 0x4581c3
lea edx, [esp + 0x11c]
push edx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
jne 0x4581a3
xor edx, edx
jmp 0x4581c3
mov eax, dword [esp + 0x138]
push 1
push 0
push 0
push eax
call fcn.00435ee0
mov ecx, dword [esp + 0x13c]
xor esi, esi
add eax, ecx
adc edx, esi
add dword [edi + 0xc78], eax
mov eax, dword [esp + 0x18]
adc dword [edi + 0xc7c], edx
inc dword [edi + 0xc84]
inc eax
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
jl 0x457eae
xor esi, esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
push 0x46a4d8
shr edx, 6
push 0x3ed
mov ecx, edi
mov dword [esp + 0x50], edx
call fcn.00424678
cmp dword [esp + 0x28], esi
jle 0x458501
mov ebx, dword [esp + 0x28]
lea esi, [edi + 0x230]
push 0
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], 0
call fcn.0044a870
xor eax, eax
mov dword [esi + 0x58], 1
mov dword [esp + 0x50], eax
test ebx, ebx
jle 0x4584f1
jmp 0x458254
mov eax, dword [esp + 0x50]
cmp dword [edi + 0xc3c], 0
jne 0x4563d9
test eax, eax
jl 0x456c62
cmp eax, dword [esp + 0xac]
jge 0x456c62
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x50]
mov ebx, dword [edx + eax*4]
cmp dword [ebx], 0
je 0x4584c6
lea esi, [esp + 0x4c]
lea eax, [esp + 0x74]
call fcn.00403130
mov byte [esp + 0x168], 0x67
mov ecx, dword [eax]
mov eax, dword [ecx - 0xc]
push eax
lea edx, [esp + 0x34]
push edx
lea ecx, [ebx + 4]
call fcn.004035f0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x16c], 0x68
call fcn.00401940
mov byte [esp + 0x168], 0x67
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4582ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458317
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x68]
push 0x46a520
push edx
call fcn.004038f0
add esp, 0xc
push 0x46a4cc
push eax
lea eax, [esp + 0x5c]
push eax
mov byte [esp + 0x174], 0x69
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x6a
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, edi
call fcn.00424678
mov byte [esp + 0x168], 0x69
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458388
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4583b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ebx
lea ecx, [esp + 0x78]
push ecx
call fcn.0040b670
test eax, eax
je 0x458429
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x40]
push 0x46a56c
push eax
call fcn.004038f0
add esp, 0xc
push 0x46a550
push eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0x174], 0x6b
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x458418
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x3c]
jmp 0x4584aa
cmp dword [esp + 0x58], 0
je 0x458445
mov ecx, dword [esp + 0x14]
push 0x18
mov edx, edi
call fcn.00453370
mov dword [esp + 0x58], 0
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x60]
push str.Rebuild_patch_file__
push edx
call fcn.004038f0
add esp, 0xc
push 0x46a598
push eax
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x174], 0x6c
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45849e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4584c6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [edi + 0x288]
add ecx, dword [edi + 0x284]
lea esi, [edi + 0x230]
push ecx
call fcn.0044a870
mov eax, dword [esp + 0x50]
inc eax
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x50], eax
jl 0x458250
mov esi, dword [esp + 0x68]
mov ecx, dword [esi + 0x58]
add ecx, dword [esi + 0x54]
push ecx
call fcn.0044a870
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
lea esi, [edi + 0x230]
add edx, ebx
push 0
mov dword [esi + 0x5c], edx
mov dword [esi + 0x60], 0
call fcn.0044a870
mov dword [esi + 0x58], 1
mov dword [esp + 0x18], 0
test ebx, ebx
jle 0x45881a
lea esp, [esp]
cmp dword [edi + 0xc3c], 0
jne 0x4563d9
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x456c62
cmp eax, dword [esp + 0x98]
jge 0x456c62
mov ecx, dword [esp + 0x94]
mov ebx, dword [ecx + eax*4]
cmp dword [ebx], 0
je 0x4587ef
lea esi, [esp + 0x4c]
lea eax, [esp + 0x74]
call fcn.00403130
mov byte [esp + 0x168], 0x6d
mov edx, dword [eax]
mov eax, dword [edx - 0xc]
push eax
lea eax, [esp + 0x34]
push eax
lea ecx, [ebx + 4]
call fcn.004035f0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x16c], 0x6e
call fcn.00401940
mov byte [esp + 0x168], 0x6d
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4585db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458603
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x68]
push 0x46a5e8
push edx
call fcn.004038f0
add esp, 0xc
push 0x46a5dc
push eax
lea eax, [esp + 0x5c]
push eax
mov byte [esp + 0x174], 0x6f
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x70
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, edi
call fcn.00424678
mov byte [esp + 0x168], 0x6f
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458674
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45869c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x74], esp
mov esi, esp
push eax
call fcn.004020d0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00452200
push ebx
lea ecx, [esp + 0x78]
push ecx
mov bl, 1
call fcn.0040b510
test eax, eax
je 0x458738
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x40]
push 0x46a634
push eax
call fcn.004038f0
add esp, 0xc
push 0x46a618
push eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0x174], 0x71
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x458727
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x3c]
jmp 0x4587d3
mov ecx, dword [esp + 0x14]
push 0x46a65c
push ecx
call fcn.00432a46
add esp, 8
test eax, eax
je 0x4587ef
cmp dword [esp + 0x58], 0
je 0x45876e
mov ecx, dword [esp + 0x14]
push 0x1b
mov edx, edi
call fcn.00453370
mov dword [esp + 0x58], 0
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x60]
push str.Apply_update_file__
push eax
call fcn.004038f0
add esp, 0xc
push 0x46a670
push eax
lea ecx, [esp + 0x68]
push ecx
mov byte [esp + 0x174], 0x72
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4587c7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4587ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [edi + 0x288]
add ecx, dword [edi + 0x284]
lea esi, [edi + 0x230]
push ecx
call fcn.0044a870
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
jl 0x458540
cmp dword [esp + 0x28], 0
mov dword [esp + 0x18], 0
jle 0x458ad7
lea ecx, [ecx]
cmp dword [edi + 0xc3c], 0
jne 0x4563d9
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x456c62
cmp eax, dword [esp + 0xac]
jge 0x456c62
mov ecx, dword [esp + 0xa8]
mov eax, dword [ecx + eax*4]
cmp dword [eax], 0
mov dword [esp + 0x2c], eax
je 0x458aac
lea esi, [esp + 0x4c]
lea eax, [esp + 0x74]
call fcn.00403130
mov bl, 0x73
mov byte [esp + 0x168], bl
mov edx, dword [eax]
mov eax, dword [edx - 0xc]
mov esi, dword [esp + 0x2c]
push eax
lea eax, [esp + 0x34]
push eax
lea ecx, [esi + 4]
call fcn.004035f0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x16c], 0x74
call fcn.00401940
mov byte [esp + 0x168], bl
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4588d3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4588fb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x68]
push 0x46a6bc
push edx
call fcn.004038f0
add esp, 0xc
push 0x46a6b0
push eax
lea eax, [esp + 0x5c]
mov bl, 0x75
push eax
mov byte [esp + 0x174], bl
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x76
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, edi
call fcn.00424678
mov byte [esp + 0x168], bl
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45896c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458994
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
lea ecx, [esp + 0x78]
push ecx
mov bl, 2
call fcn.0040b510
test eax, eax
je 0x458a0f
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x40]
push 0x46a708
push eax
call fcn.004038f0
add esp, 0xc
push str.____Success
push eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0x174], 0x77
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4589fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x3c]
jmp 0x458a90
cmp dword [esp + 0x58], 0
je 0x458a2b
mov ecx, dword [esp + 0x14]
push 8
mov edx, edi
call fcn.00453370
mov dword [esp + 0x58], 0
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x60]
push str.Apply_patch_file__
push edx
call fcn.004038f0
add esp, 0xc
push 0x46a730
push eax
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x174], 0x78
call fcn.00403810
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458a84
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458aac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [edi + 0x288]
add ecx, dword [edi + 0x284]
lea esi, [edi + 0x230]
push ecx
call fcn.0044a870
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
jl 0x458830
mov esi, dword [esp + 0x68]
mov ecx, dword [esi + 0x58]
add ecx, dword [esi + 0x54]
push ecx
call fcn.0044a870
call fcn.00414a0e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x458b01
push 0x80004005
call fcn.00402190
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov byte [esp + 0x168], 0x79
call fcn.00414a0e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x458b33
push 0x80004005
call fcn.00402190
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
mov byte [esp + 0x168], 0x7a
cmp dword [esp + 0x58], 0
je 0x458e40
cmp byte [edi + 0x109c], 0
je 0x458b65
push edi
call fcn.00455950
lea esi, [edi + 0x230]
mov ebx, 1
push ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], 0
call fcn.0044a870
mov esi, dword [esp + 0x68]
push ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], 0
call fcn.0044a870
lea esi, [esp + 0x54]
lea eax, [esp + 0x74]
call fcn.00403150
push eax
lea ecx, [esp + 0x50]
push 0x46a78c
push ecx
mov byte [esp + 0x174], 0x7b
call fcn.004038f0
add esp, 0xc
push 0x46a770
push eax
lea edx, [esp + 0x38]
mov bl, 0x7c
push edx
mov byte [esp + 0x174], bl
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x7d
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, edi
call fcn.00424678
mov byte [esp + 0x168], bl
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458c16
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x7b
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458c3e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x7a
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458c66
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x46a7e0
push 0x3ed
mov ecx, edi
call fcn.00424678
lea esi, [esp + 0x4c]
lea eax, [esp + 0x74]
call fcn.00403150
push eax
lea ecx, [esp + 0x34]
push 0x46a840
push ecx
mov byte [esp + 0x174], 0x7e
call fcn.004038f0
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x458cc6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x7a
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458cee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x30]
lea eax, [esp + 0x74]
call fcn.00403150
mov byte [esp + 0x168], 0x7f
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x1c]
push ebx
push ecx
mov ecx, dword [esp + 0x3c]
push edx
mov edx, dword [eax]
mov eax, dword [esp + 0x44]
push ecx
push edx
push 0x46a7c4
push eax
lea ecx, [esp + 0x48]
push str._s_s__s_OK__s__lu__lu__lu
push ecx
call fcn.00401e30
mov byte [esp + 0x18c], 0x7a
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
add esp, 0x24
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x458d5e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x47], 0
je 0x458d75
push 9
push 0x46a8c4
lea ecx, [esp + 0x34]
call fcn.00402630
mov ecx, dword [esp + 0x20]
cmp dword [ecx - 0xc], 0
je 0x458dd6
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x34]
push 0x46a8d8
push eax
call fcn.004038f0
add esp, 0xc
mov byte [esp + 0x168], 0x80
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x34]
call fcn.00402630
mov byte [esp + 0x168], 0x7a
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458dd6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi + 0xc6c]
mov esi, dword [esp + 0x2c]
push eax
push esi
call fcn.00407b60
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x24]
add esp, 8
lea ecx, [esp + 0x24]
push ecx
push ebx
push eax
push 0x46a8dc
push edi
lea ebx, [esp + 0x34]
call fcn.00453500
mov byte [esp + 0x168], 0x79
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x458e30
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
lea eax, [esi - 0x10]
jmp 0x456f47
lea esi, [esp + 0x54]
lea eax, [esp + 0x74]
call fcn.00403150
push eax
lea ecx, [esp + 0x50]
push 0x46a8fc
push ecx
mov byte [esp + 0x174], 0x81
call fcn.004038f0
add esp, 0xc
push 0x46a8e4
push eax
lea edx, [esp + 0x38]
mov bl, 0x82
push edx
mov byte [esp + 0x174], bl
call fcn.00403810
add esp, 0xc
mov byte [esp + 0x168], 0x83
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, edi
call fcn.00424678
mov byte [esp + 0x168], bl
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458ec2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x81
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458eea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x7a
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458f12
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x46a950
push 0x3ed
mov ecx, edi
call fcn.00424678
lea esi, [esp + 0x4c]
lea eax, [esp + 0x74]
call fcn.00403150
push eax
lea ecx, [esp + 0x34]
push str.Cannot_update_to_the_newest_version
push ecx
mov byte [esp + 0x174], 0x84
call fcn.004038f0
mov esi, dword [eax]
add esp, 0xc
call fcn.00405780
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x458f72
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0x7a
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458f9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x30]
lea eax, [esp + 0x74]
call fcn.00403150
mov byte [esp + 0x168], 0x85
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x1c]
push ebx
push ecx
mov ecx, dword [esp + 0x3c]
push edx
mov edx, dword [eax]
mov eax, dword [esp + 0x44]
push ecx
push edx
push 0x46a934
push eax
lea ecx, [esp + 0x48]
push 0x46a9a4
push ecx
call fcn.00401e30
mov byte [esp + 0x18c], 0x7a
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
add esp, 0x24
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45900a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x47], 0
je 0x459021
push 9
push str._LocalCSM
lea ecx, [esp + 0x34]
call fcn.00402630
mov ecx, dword [esp + 0x20]
cmp dword [ecx - 0xc], 0
je 0x459082
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x34]
push 0x46aa40
push eax
call fcn.004038f0
add esp, 0xc
mov byte [esp + 0x168], 0x86
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x34]
call fcn.00402630
mov byte [esp + 0x168], 0x7a
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x459082
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi + 0xc6c]
mov esi, dword [esp + 0x2c]
push eax
push esi
call fcn.00407b60
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x24]
add esp, 8
lea ecx, [esp + 0x24]
push ecx
push ebx
push eax
push 0x46aa44
push edi
lea ebx, [esp + 0x34]
call fcn.00453500
mov byte [esp + 0x168], 0x79
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4590dc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 4
lea eax, [esi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x459100
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 3
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x459128
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 2
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x459150
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 1
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x459178
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0
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 0x4591a0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x74]
mov dword [esp + 0x168], 0xffffffff
call fcn.00408bd0
mov eax, 0x11
mov ecx, dword [esp + 0x160]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret