Function at 0x4a8c40
Capabilities:
Create http request

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4eea92
mov eax, dword fs:[0]
push eax
sub esp, 0x48
push ebx
push esi
push edi
mov eax, dword [0x53d100]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x18], ebx
call fcn.004bc4b7
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4a8c8a
push 0x80004005
call fcn.00422000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x38], ebx
call fcn.004bc4b7
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4a8cb9
push 0x80004005
call fcn.00422000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x14], eax
lea ecx, [edi + 0x60]
push ecx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
mov esi, 1
mov dword [edi + 0x188], ebx
call fcn.00424f10
push 7
lea edx, [ebp - 0x40]
push edx
lea ecx, [ebp - 0x14]
call fcn.004249d9
mov byte [ebp - 4], 2
mov eax, dword [eax]
push str.http:__
push eax
mov dword [ebp - 0x18], esi
call fcn.004cb830
add esp, 8
cmp eax, ebx
sete al
test al, al
jne 0x4a8d43
push 8
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x14]
call fcn.004249d9
mov eax, dword [eax]
push str.https:__
push eax
mov dword [ebp - 0x18], 3
call fcn.004cb830
add esp, 8
cmp eax, ebx
sete al
mov byte [ebp - 0xd], 0
test al, al
je 0x4a8d47
mov byte [ebp - 0xd], 1
test byte [ebp - 0x18], 2
je 0x4a8d70
mov eax, dword [ebp - 0x44]
and dword [ebp - 0x18], 0xfffffffd
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8d70
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], esi
test byte [ebp - 0x18], 1
je 0x4a8d9c
mov eax, dword [ebp - 0x40]
and dword [ebp - 0x18], 0xfffffffe
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8d9c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [ebp - 0xd], 0
je 0x4a9023
push 0x14
call fcn.004bbdc2
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x4a8dd6
push ebx
push ebx
push ebx
push ebx
push str.CHttpRemoteFile
mov dword [esi], vtable.CHttpRemoteFile.0
call dword [sym.imp.WININET.dll_InternetOpenW]
mov dword [esi + 0xc], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
jmp 0x4a8dd8
xor esi, esi
mov ecx, dword [ebp + 8]
push ecx
mov dword [ebp - 0x4c], esp
mov ebx, esp
mov dword [ecx + 0x188], esi
mov esi, dword [ebp - 0x14]
push 0x5c
push ecx
add esi, 0xfffffff0
mov dword [ebp - 0x4c], esp
mov edi, esp
push esi
call fcn.0042541f
add esp, 4
add eax, 0x10
push ebx
mov dword [edi], eax
call fcn.00478540
lea edx, [ebp - 0x44]
add esp, 0xc
push edx
call fcn.004782a0
add esp, 8
mov ebx, eax
mov byte [ebp - 4], 3
mov eax, dword [ebx]
mov edi, dword [eax - 0xc]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, edi
or eax, ecx
jge 0x4a8e3c
push edi
mov ecx, ebx
call fcn.004224f5
mov eax, dword [ebx]
lea ecx, [edi + 1]
push ecx
push eax
call fcn.004ce7f4
add esp, 8
test edi, edi
jl 0x4a909a
mov eax, dword [ebx]
cmp edi, dword [eax - 8]
jg 0x4a909a
mov dword [eax - 0xc], edi
mov edx, dword [ebx]
xor eax, eax
mov word [edx + edi*2], ax
mov ebx, dword [ebx]
sub ebx, 0x10
push ebx
call fcn.0042541f
add eax, 0x10
add esp, 4
mov dword [ebp - 0x34], eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8ea0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x34]
push str.aspx
push edi
call fcn.004cb830
add esp, 8
test eax, eax
sete al
test al, al
jne 0x4a8eec
push 0x5250ac
push edi
call fcn.004cb830
add esp, 8
test eax, eax
sete al
test al, al
jne 0x4a8eec
push 0x5250b4
push edi
call fcn.004cb830
add esp, 8
test eax, eax
sete al
test al, al
je 0x4a9001
mov edi, dword [ebp - 0x14]
mov eax, dword [edi - 0xc]
test eax, eax
jle 0x4a8f0e
push 0x3f
push edi
call fcn.004cc4e8
add esp, 8
test eax, eax
je 0x4a8f0e
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jne 0x4a8f5c
mov edx, dword [edi - 0xc]
mov eax, dword [esi + 8]
mov ecx, 1
sub ecx, dword [esi + 0xc]
lea ebx, [edx + 1]
sub eax, ebx
or eax, ecx
mov dword [ebp - 0x40], edx
jge 0x4a8f37
push ebx
lea ecx, [ebp - 0x14]
call fcn.004224f5
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x40]
mov ecx, 0x3f
mov word [edi + edx*2], cx
test ebx, ebx
jl 0x4a909a
cmp ebx, dword [edi - 8]
jg 0x4a909a
xor edx, edx
mov dword [edi - 0xc], ebx
mov word [edi + ebx*2], dx
jmp 0x4a8fa8
mov edx, dword [edi - 0xc]
mov eax, dword [esi + 8]
mov ecx, 1
sub ecx, dword [esi + 0xc]
lea ebx, [edx + 1]
sub eax, ebx
or eax, ecx
mov dword [ebp - 0x40], edx
jge 0x4a8f85
push ebx
lea ecx, [ebp - 0x14]
call fcn.004224f5
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x40]
mov eax, 0x26
mov word [edi + edx*2], ax
test ebx, ebx
jl 0x4a909a
cmp ebx, dword [edi - 8]
jg 0x4a909a
xor ecx, ecx
mov dword [edi - 0xc], ebx
mov word [edi + ebx*2], cx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x68]
mov ecx, dword [eax + 0x64]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
lea eax, [ebp - 0x40]
push str.version_spkgId_sbuildUID_s
push eax
call fcn.00478210
add esp, 0x14
mov byte [ebp - 4], 6
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x14]
call fcn.00425b30
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a8ffe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x34]
lea eax, [edi - 0x10]
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a906c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4a906c
push 0x10
call fcn.004bbdc2
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x4a9064
mov dword [esi], vtable.CFsRemoteFile.0
call fcn.004bc4b7
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4a9053
push 0x80004005
call fcn.00422000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi + 0xc], eax
jmp 0x4a9066
xor esi, esi
mov dword [edi + 0x188], esi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x4a90e4
push 1
lea edx, [ebp - 0x40]
push edx
lea ecx, [ebp - 0x14]
call fcn.00424992
mov byte [ebp - 4], 7
mov ecx, dword [eax]
mov eax, dword [ecx - 0xc]
or dword [ebp - 0x18], 4
cmp eax, 1
jne 0x4a90ad
test eax, eax
jge 0x4a90a4
push 0x80070057
call fcn.00422000
movzx eax, word [ecx]
cmp ax, 0x2f
je 0x4a90e0
push 1
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x14]
call fcn.00424992
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
or dword [ebp - 0x18], 8
cmp ecx, 1
jne 0x4a90e4
test ecx, ecx
jge 0x4a90d7
push 0x80070057
call fcn.00422000
movzx eax, word [eax]
cmp ax, 0x5c
jne 0x4a90e4
mov bl, 1
jmp 0x4a90e6
xor bl, bl
test byte [ebp - 0x18], 8
je 0x4a910f
mov eax, dword [ebp - 0x44]
and dword [ebp - 0x18], 0xfffffff7
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a910f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 1
test byte [ebp - 0x18], 4
je 0x4a913b
mov eax, dword [ebp - 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a913b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x4a918d
mov ecx, dword [ebp + 8]
push str..xml
add ecx, 0x24
push ecx
lea edx, [ebp - 0x44]
push edx
call fcn.00424a39
add esp, 0xc
mov byte [ebp - 4], 8
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x14]
call fcn.00425b30
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a918d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x188], 0
je 0x4a9dc7
mov edx, dword [ebp - 0x14]
cmp dword [edx - 0xc], 0
je 0x4a9dc7
push ecx
mov ebx, edx
lea esi, [ebx - 0x10]
mov dword [ebp - 0x4c], esp
mov edi, esp
push esi
mov dword [ebp - 0x44], esi
call fcn.0042541f
add eax, 0x10
mov dword [edi], eax
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x188]
mov eax, dword [ecx]
mov edx, dword [eax]
add esp, 4
call edx
test eax, eax
jne 0x4a921c
push ecx
mov eax, esp
mov dword [ebp + 8], esp
push ebx
push str.CVirtAutoUpdate::CheckForNewVersion:_SetLocation_failed_for__s_
push eax
call fcn.00478210
add esp, 0xc
call fcn.004a8200
add esp, 4
mov byte [ebp - 4], 0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a9e6c
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
jmp 0x4a9e6c
mov ecx, dword [edi + 0x188]
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
lea eax, [ebp - 0x38]
push eax
call edx
test eax, eax
ja 0x4a923f
push ecx
mov eax, esp
mov dword [ebp + 8], esp
push ebx
push str.CVirtAutoUpdate::CheckForNewVersion:_cannot_download_XML_file_from__s_
jmp 0x4a91e5
push eax
lea ecx, [ebp - 0x3c]
push ecx
mov ecx, dword [ebp - 0x38]
call fcn.00478700
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x38]
push edx
call fcn.004cb867
mov ebx, dword [ebp - 0x3c]
add esp, 8
mov eax, esp
mov dword [ebp - 0x4c], esp
push ebx
push str.CVirtAutoUpdate::CheckForNewVersion:_XmlData_s
push eax
call fcn.00478210
add esp, 0xc
call fcn.004a8200
add esp, 4
lea ecx, [ebp - 0x20]
push 0
push ecx
mov ecx, ebx
call fcn.00494a20
add esp, 8
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x20], 0
jne 0x4a92eb
mov eax, dword [ebp - 0x14]
push ecx
mov edx, esp
mov dword [ebp + 8], esp
push eax
push str.CVirtAutoUpdate::CheckForNewVersion:_cannot_download_XML_file_from__s_
push edx
call fcn.00478210
add esp, 0xc
call fcn.004a8200
add esp, 4
lea ecx, [ebp - 0x20]
push ecx
mov byte [ebp - 4], 0xa
call fcn.004954b0
add ebx, 0xfffffff0
mov byte [ebp - 4], 1
lea edx, [ebx + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x4a91f6
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
jmp 0x4a91f6
push 0
push str.AutoUpdate
lea ecx, [ebp - 0x2c]
push ecx
lea eax, [ebp - 0x20]
call fcn.00495c60
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x2c], 0
jne 0x4a936b
mov eax, dword [ebp - 0x14]
push ecx
mov edx, esp
mov dword [ebp + 8], esp
push eax
push str.CVirtAutoUpdate::CheckForNewVersion:_no_AutoUpdate_info_returned_from_server:__s
push edx
call fcn.00478210
add esp, 0xc
call fcn.004a8200
add esp, 4
lea ecx, [ebp - 0x2c]
push ecx
mov byte [ebp - 4], 0xb
call fcn.004954b0
lea edx, [ebp - 0x20]
push edx
mov byte [ebp - 4], 0xa
call fcn.004954b0
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a91f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4a91f6
push 0
push 0x52539c
lea ecx, [ebp - 0x28]
push ecx
lea eax, [ebp - 0x2c]
call fcn.00495c60
mov byte [ebp - 4], 0xd
mov edi, dword [ebp - 0x28]
test edi, edi
jne 0x4a93f9
mov eax, dword [ebp - 0x14]
push ecx
mov edx, esp
mov dword [ebp + 8], esp
push eax
push str.CVirtAutoUpdate::CheckForNewVersion:_no_Pkg_info_returned_from_server:__s
push edx
call fcn.00478210
add esp, 0xc
call fcn.004a8200
add esp, 4
lea ecx, [ebp - 0x28]
push ecx
mov byte [ebp - 4], 0xc
call fcn.004954b0
lea edx, [ebp - 0x2c]
push edx
mov byte [ebp - 4], 0xb
call fcn.004954b0
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 0xa
call fcn.004954b0
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a91f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4a91f6
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x4a9425
mov eax, dword [esi]
push 0x52543c
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a945e
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x4a9408
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x4a958c
mov eax, dword [esi]
push str.preRemove
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a9536
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x4a9438
jmp 0x4a958c
cmp dword [esi + 4], 0
je 0x4a9425
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 0x10]
mov edx, dword [ecx + 0x64]
mov esi, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x4a94a1
lea esp, [esp]
mov eax, dword [esi]
push 0x52543c
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a952e
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x4a9480
xor esi, esi
mov eax, dword [ebp - 0x34]
push eax
push esi
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a9425
mov edx, dword [ebp - 0x14]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push edx
push str.CVirtAutoUpdate::CheckForNewVersion:_PkgId_info_mismatch_returned_from_server:__s
push ecx
call fcn.00478210
add esp, 0xc
call fcn.004a8200
add esp, 4
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 0xc
call fcn.004954b0
lea ecx, [ebp - 0x2c]
push ecx
mov byte [ebp - 4], 0xb
call fcn.004954b0
lea edx, [ebp - 0x20]
push edx
mov byte [ebp - 4], 0xa
call fcn.004954b0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a9522
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x44]
jmp 0x4a9e53
mov esi, dword [esi + 4]
jmp 0x4a94a3
cmp dword [esi + 4], 0
je 0x4a958c
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x4a9571
jmp 0x4a9550
mov eax, dword [esi]
push str.preRemove
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a9723
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x4a9550
xor esi, esi
push str.true
push esi
call fcn.004cb335
mov ecx, dword [ebp + 8]
add esp, 8
neg eax
sbb eax, eax
inc eax
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x4a95c1
jmp 0x4a95a0
mov eax, dword [esi]
push str.version
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a972b
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x4a95a0
xor esi, esi
mov ecx, dword [ebp + 8]
add ecx, 8
push esi
call fcn.00424843
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x4a9601
mov edi, edi
mov eax, dword [esi]
push str.buildUID
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a9733
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x4a95e0
xor esi, esi
mov ecx, dword [ebp + 8]
add ecx, 0xc
push esi
call fcn.00424843
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x4a9641
mov edi, edi
mov eax, dword [esi]
push str.releaseDate
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a973b
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x4a9620
xor esi, esi
mov ecx, dword [ebp + 8]
add ecx, 0x10
push esi
call fcn.00424843
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x4a9681
mov edi, edi
mov eax, dword [esi]
push str.hash
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a9743
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x4a9660
xor esi, esi
mov ecx, dword [ebp + 8]
add ecx, 0x14
push esi
call fcn.00424843
mov ebx, dword [edi + 0x10]
mov edi, dword [edi + 0x28]
xor esi, esi
test ebx, ebx
jle 0x4a96c0
jmp 0x4a96a0
mov eax, dword [edi]
push str.updateCondition
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a974b
inc esi
add edi, 8
cmp esi, ebx
jl 0x4a96a0
xor edi, edi
push edi
lea ecx, [ebp - 0x24]
call fcn.004247ea
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x24]
push str.IfHigher
push edx
call fcn.004cb335
add esp, 8
test eax, eax
jne 0x4a9753
mov esi, dword [ebp + 8]
push ecx
lea eax, [esi + 0x38]
mov ecx, esp
mov dword [ebp - 0x4c], esp
push eax
call fcn.004247d5
push ecx
mov byte [ebp - 4], 0xf
lea eax, [esi + 8]
mov ecx, esp
mov dword [ebp - 0x48], esp
push eax
call fcn.004247d5
mov byte [ebp - 4], 0xe
call fcn.0047d0a0
xor ecx, ecx
add esp, 8
test eax, eax
setg cl
mov dword [esi], ecx
jmp 0x4a97bf
mov esi, dword [esi + 4]
jmp 0x4a9573
mov esi, dword [esi + 4]
jmp 0x4a95c3
mov esi, dword [esi + 4]
jmp 0x4a9603
mov esi, dword [esi + 4]
jmp 0x4a9643
mov esi, dword [esi + 4]
jmp 0x4a9683
mov edi, dword [edi + 4]
jmp 0x4a96c2
mov edx, dword [ebp - 0x24]
push str.IfDifferent
push edx
call fcn.004cb335
add esp, 8
test eax, eax
jne 0x4a9781
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x38]
push eax
lea eax, [esi + 8]
call fcn.0042486d
neg eax
sbb eax, eax
neg eax
mov dword [esi], eax
jmp 0x4a97bf
mov eax, dword [ebp - 0x24]
push str.Force
push eax
call fcn.004cb335
add esp, 8
test eax, eax
jne 0x4a97a1
mov ecx, dword [ebp + 8]
mov dword [ecx], 1
jmp 0x4a97bf
mov edx, dword [ebp - 0x24]
push str.Never
push edx
call fcn.004cb335
add esp, 8
test eax, eax
jne 0x4a97bf
mov eax, dword [ebp + 8]
mov dword [eax], 0
push str.Exception
lea eax, [ebp - 0x28]
call fcn.00495c10
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x40], eax
test ecx, ecx
jle 0x4a9c89
lea ecx, [ebp - 0x18]
push ecx
mov ebx, str.Exception
lea edi, [ebp - 0x28]
call fcn.00495d00
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x4a9803
lea edx, [ebp - 0x18]
push edx
jmp 0x4a9c70
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0x28]
xor ebx, ebx
test esi, esi
jle 0x4a9830
nop
mov eax, dword [edi]
push str.minClientVersion
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a98dd
inc ebx
add edi, 8
cmp ebx, esi
jl 0x4a9810
xor edi, edi
push edi
lea ecx, [ebp - 0x34]
call fcn.004247ea
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x18]
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0x28]
xor ebx, ebx
test esi, esi
jle 0x4a9870
mov edi, edi
mov eax, dword [edi]
push str.maxClientVersion
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a98e5
inc ebx
add edi, 8
cmp ebx, esi
jl 0x4a9850
xor edi, edi
push edi
lea ecx, [ebp - 0x30]
call fcn.004247ea
mov bl, 0x12
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x34]
cmp dword [eax - 0xc], 0
je 0x4a98ea
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x48], esp
mov esi, esp
push eax
call fcn.0042541f
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x13
mov eax, dword [ebp + 8]
add eax, 0x38
mov ecx, esp
mov dword [ebp - 0x50], esp
push eax
call fcn.004247d5
mov byte [ebp - 4], bl
call fcn.0047d0a0
add esp, 8
test eax, eax
jge 0x4a98ea
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x4a9c3d
mov edi, dword [edi + 4]
jmp 0x4a9832
mov edi, dword [edi + 4]
jmp 0x4a9872
mov eax, dword [ebp - 0x30]
cmp dword [eax - 0xc], 0
je 0x4a992b
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x50], esp
mov esi, esp
push eax
call fcn.0042541f
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x14
mov edx, dword [ebp + 8]
add edx, 0x38
mov ecx, esp
mov dword [ebp - 0x48], esp
push edx
call fcn.004247d5
mov byte [ebp - 4], bl
call fcn.0047d0a0
add esp, 8
test eax, eax
jg 0x4a98c1
mov esi, dword [ebp - 0x18]
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x4a99ab
lea ecx, [ecx]
mov eax, dword [edi]
push str.shouldUpdate
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a995f
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x4a9940
jmp 0x4a99ab
cmp dword [edi + 4], 0
je 0x4a99ab
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x4a9991
mov eax, dword [edi]
push str.shouldUpdate
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a99df
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x4a9974
xor edi, edi
push str.true
push edi
call fcn.004cb335
mov edx, dword [ebp + 8]
add esp, 8
neg eax
sbb eax, eax
inc eax
mov dword [edx], eax
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x4a9a38
mov edi, edi
mov eax, dword [edi]
push str.preRemove
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a99e4
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x4a99c0
jmp 0x4a9a38
mov edi, dword [edi + 4]
jmp 0x4a9993
cmp dword [edi + 4], 0
je 0x4a9a38
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x4a9a1d
lea esp, [esp]
mov eax, dword [edi]
push str.preRemove
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a9a66
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x4a9a00
xor edi, edi
push str.true
push edi
call fcn.004cb335
mov ecx, dword [ebp + 8]
add esp, 8
neg eax
sbb eax, eax
inc eax
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x4a9aab
mov eax, dword [edi]
push str.version
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a9a6b
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x4a9a47
jmp 0x4a9aab
mov edi, dword [edi + 4]
jmp 0x4a9a1f
cmp dword [edi + 4], 0
je 0x4a9aab
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x4a9a9d
mov eax, dword [edi]
push str.version
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a9adf
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x4a9a80
xor edi, edi
mov ecx, dword [ebp + 8]
push edi
add ecx, 8
call fcn.00424843
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x4a9b2b
lea ebx, [ebx]
mov eax, dword [edi]
push str.buildUID
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a9ae4
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x4a9ac0
jmp 0x4a9b2b
mov edi, dword [edi + 4]
jmp 0x4a9a9f
cmp dword [edi + 4], 0
je 0x4a9b2b
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x4a9b1d
lea esp, [esp]
mov eax, dword [edi]
push str.buildUID
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a9b5f
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x4a9b00
xor edi, edi
mov ecx, dword [ebp + 8]
push edi
add ecx, 0xc
call fcn.00424843
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x4a9bab
lea ebx, [ebx]
mov eax, dword [edi]
push str.releaseDate
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a9b64
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x4a9b40
jmp 0x4a9bab
mov edi, dword [edi + 4]
jmp 0x4a9b1f
cmp dword [edi + 4], 0
je 0x4a9bab
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x4a9b9d
lea esp, [esp]
mov eax, dword [edi]
push str.releaseDate
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a9bdf
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x4a9b80
xor edi, edi
mov ecx, dword [ebp + 8]
push edi
add ecx, 0x10
call fcn.00424843
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x4a9c26
lea ebx, [ebx]
mov eax, dword [edi]
push str.hash
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a9be4
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x4a9bc0
jmp 0x4a9c26
mov edi, dword [edi + 4]
jmp 0x4a9b9f
cmp dword [edi + 4], 0
je 0x4a9c26
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
test eax, eax
jle 0x4a9c18
mov esi, eax
mov eax, dword [edi]
push str.hash
push eax
call fcn.004cb335
add esp, 8
test eax, eax
je 0x4a9dbf
inc ebx
add edi, 8
cmp ebx, esi
jl 0x4a9bf8
xor edi, edi
mov ecx, dword [ebp + 8]
push edi
add ecx, 0x14
call fcn.00424843
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4a9c49
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a9c6c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x18]
push ecx
mov byte [ebp - 4], 0xe
call fcn.004954b0
mov eax, dword [ebp - 0x40]
inc eax
cmp eax, dword [ebp - 0x4c]
mov dword [ebp - 0x40], eax
jl 0x4a97de
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0xc]
push ecx
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x50], esp
mov esi, esp
push edx
mov edx, dword [ebp - 0x24]
push eax
push ecx
push edx
push ecx
lea edi, [ebx + 0x38]
mov ecx, esp
mov dword [ebp - 0x50], esp
push edi
call fcn.004247d5
push ecx
mov byte [ebp - 4], 0x15
mov ecx, esp
mov dword [ebp - 0x4c], esp
add ebx, 8
push ebx
call fcn.004247d5
mov byte [ebp - 4], 0xe
call fcn.0047d0a0
mov ecx, dword [ebx]
mov edx, dword [ebp + 8]
add esp, 8
push eax
mov eax, dword [edi]
push eax
mov eax, dword [edx]
push ecx
push eax
push str.CVirtAutoUpdate::CheckForNewVersion:_ServerVer:_ShouldUpdate_d___ServerVer_s__MyVer_s__Comp_d___UpdateCondition_s__ReleaseDate_s__BuildUID_s__Hash_s
push esi
call fcn.00478210
add esp, 0x28
call fcn.004a8200
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a9d16
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x28]
push ecx
mov byte [ebp - 4], 0xc
call fcn.004954b0
lea edx, [ebp - 0x2c]
push edx
mov byte [ebp - 4], 0xb
call fcn.004954b0
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 0xa
call fcn.004954b0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a9d60
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x44]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a9d80
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a9da6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [edi + 4]
jmp 0x4a9c1a
push ecx
mov esi, esp
mov dword [ebp + 8], esp
mov dword [ebp + 8], esi
call fcn.004bc4b7
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4a9dea
push 0x80004005
call fcn.00422000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov ecx, str.CVirtAutoUpdate::CheckForNewVersion:_unknown_protocol___XML_path_
mov byte [ebp - 4], 9
test ecx, 0xffff0000
jne 0x4a9e23
mov edx, ecx
movzx edi, dx
push edi
call fcn.004c463d
test eax, eax
je 0x4a9e3d
push edi
push eax
mov ecx, esi
call fcn.00424e82
jmp 0x4a9e3d
push str.CVirtAutoUpdate::CheckForNewVersion:_unknown_protocol___XML_path_
call fcn.004cb5ea
add esp, 4
push eax
push str.CVirtAutoUpdate::CheckForNewVersion:_unknown_protocol___XML_path_
mov ecx, esi
call fcn.004253ae
mov byte [ebp - 4], 1
call fcn.004a8200
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x14]
add esp, 4
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a9e6c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a9e92
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4