Function at 0x48bad0
Capabilities:
Create http request

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ceb82
mov eax, dword fs:[0]
push eax
sub esp, 0x48
push ebx
push esi
push edi
mov eax, dword [0x512f18]
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.0049eef3
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x48bb1a
push 0x80004005
call fcn.00421000
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.0049eef3
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x48bb49
push 0x80004005
call fcn.00421000
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 + 0x118], ebx
call fcn.00423d5a
push 7
lea edx, [ebp - 0x40]
push edx
lea ecx, [ebp - 0x14]
call fcn.004237f6
mov byte [ebp - 4], 2
mov eax, dword [eax]
push str.http:__
push eax
mov dword [ebp - 0x18], esi
call fcn.004ad820
add esp, 8
cmp eax, ebx
sete al
test al, al
jne 0x48bbd3
push 8
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x14]
call fcn.004237f6
mov eax, dword [eax]
push str.https:__
push eax
mov dword [ebp - 0x18], 3
call fcn.004ad820
add esp, 8
cmp eax, ebx
sete al
mov byte [ebp - 0xd], 0
test al, al
je 0x48bbd7
mov byte [ebp - 0xd], 1
test byte [ebp - 0x18], 2
je 0x48bc00
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 0x48bc00
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 0x48bc2c
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 0x48bc2c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [ebp - 0xd], 0
je 0x48beb3
push 0x14
call fcn.0049e7e2
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x48bc66
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 0x48bc68
xor esi, esi
mov ecx, dword [ebp + 8]
push ecx
mov dword [ebp - 0x4c], esp
mov ebx, esp
mov dword [ecx + 0x118], 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.004242c0
add esp, 4
add eax, 0x10
push ebx
mov dword [edi], eax
call fcn.00464db0
lea edx, [ebp - 0x44]
add esp, 0xc
push edx
call fcn.00464b10
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 0x48bccc
push edi
mov ecx, ebx
call fcn.004214fc
mov eax, dword [ebx]
lea ecx, [edi + 1]
push ecx
push eax
call fcn.004b04d5
add esp, 8
test edi, edi
jl 0x48bf2a
mov eax, dword [ebx]
cmp edi, dword [eax - 8]
jg 0x48bf2a
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.004242c0
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 0x48bd30
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.004ad820
add esp, 8
test eax, eax
sete al
test al, al
jne 0x48bd7c
push 0x4fde34
push edi
call fcn.004ad820
add esp, 8
test eax, eax
sete al
test al, al
jne 0x48bd7c
push 0x4fde3c
push edi
call fcn.004ad820
add esp, 8
test eax, eax
sete al
test al, al
je 0x48be91
mov edi, dword [ebp - 0x14]
mov eax, dword [edi - 0xc]
test eax, eax
jle 0x48bd9e
push 0x3f
push edi
call fcn.004ae088
add esp, 8
test eax, eax
je 0x48bd9e
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jne 0x48bdec
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 0x48bdc7
push ebx
lea ecx, [ebp - 0x14]
call fcn.004214fc
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x40]
mov ecx, 0x3f
mov word [edi + edx*2], cx
test ebx, ebx
jl 0x48bf2a
cmp ebx, dword [edi - 8]
jg 0x48bf2a
xor edx, edx
mov dword [edi - 0xc], ebx
mov word [edi + ebx*2], dx
jmp 0x48be38
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 0x48be15
push ebx
lea ecx, [ebp - 0x14]
call fcn.004214fc
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x40]
mov eax, 0x26
mov word [edi + edx*2], ax
test ebx, ebx
jl 0x48bf2a
cmp ebx, dword [edi - 8]
jg 0x48bf2a
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.00464a80
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.004249ab
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 0x48be8e
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 0x48befc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x48befc
push 0x10
call fcn.0049e7e2
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x48bef4
mov dword [esi], vtable.CFsRemoteFile.0
call fcn.0049eef3
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x48bee3
push 0x80004005
call fcn.00421000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi + 0xc], eax
jmp 0x48bef6
xor esi, esi
mov dword [edi + 0x118], esi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x48bf74
push 1
lea edx, [ebp - 0x40]
push edx
lea ecx, [ebp - 0x14]
call fcn.004237af
mov byte [ebp - 4], 7
mov ecx, dword [eax]
mov eax, dword [ecx - 0xc]
or dword [ebp - 0x18], 4
cmp eax, 1
jne 0x48bf3d
test eax, eax
jge 0x48bf34
push 0x80070057
call fcn.00421000
movzx eax, word [ecx]
cmp ax, 0x2f
je 0x48bf70
push 1
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x14]
call fcn.004237af
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
or dword [ebp - 0x18], 8
cmp ecx, 1
jne 0x48bf74
test ecx, ecx
jge 0x48bf67
push 0x80070057
call fcn.00421000
movzx eax, word [eax]
cmp ax, 0x5c
jne 0x48bf74
mov bl, 1
jmp 0x48bf76
xor bl, bl
test byte [ebp - 0x18], 8
je 0x48bf9f
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 0x48bf9f
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 0x48bfcb
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 0x48bfcb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x48c01d
mov ecx, dword [ebp + 8]
push str..xml
add ecx, 0x24
push ecx
lea edx, [ebp - 0x44]
push edx
call fcn.00423856
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.004249ab
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 0x48c01d
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 + 0x118], 0
je 0x48cc57
mov edx, dword [ebp - 0x14]
cmp dword [edx - 0xc], 0
je 0x48cc57
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.004242c0
add eax, 0x10
mov dword [edi], eax
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x118]
mov eax, dword [ecx]
mov edx, dword [eax]
add esp, 4
call edx
test eax, eax
jne 0x48c0ac
push ecx
mov eax, esp
mov dword [ebp + 8], esp
push ebx
push str.CVirtAutoUpdate::CheckForNewVersion:_SetLocation_failed_for__s_
push eax
call fcn.00464a80
add esp, 0xc
call fcn.0048b090
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 0x48ccfc
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
jmp 0x48ccfc
mov ecx, dword [edi + 0x118]
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
lea eax, [ebp - 0x38]
push eax
call edx
test eax, eax
ja 0x48c0cf
push ecx
mov eax, esp
mov dword [ebp + 8], esp
push ebx
push str.CVirtAutoUpdate::CheckForNewVersion:_cannot_download_XML_file_from__s_
jmp 0x48c075
push eax
lea ecx, [ebp - 0x3c]
push ecx
mov ecx, dword [ebp - 0x38]
call fcn.00464f70
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x38]
push edx
call fcn.004add25
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.00464a80
add esp, 0xc
call fcn.0048b090
add esp, 4
lea ecx, [ebp - 0x20]
push 0
push ecx
mov ecx, ebx
call fcn.00483600
add esp, 8
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x20], 0
jne 0x48c17b
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.00464a80
add esp, 0xc
call fcn.0048b090
add esp, 4
lea ecx, [ebp - 0x20]
push ecx
mov byte [ebp - 4], 0xa
call fcn.00484050
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 0x48c086
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
jmp 0x48c086
push 0
push str.AutoUpdate
lea ecx, [ebp - 0x2c]
push ecx
lea eax, [ebp - 0x20]
call fcn.00484800
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x2c], 0
jne 0x48c1fb
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.00464a80
add esp, 0xc
call fcn.0048b090
add esp, 4
lea ecx, [ebp - 0x2c]
push ecx
mov byte [ebp - 4], 0xb
call fcn.00484050
lea edx, [ebp - 0x20]
push edx
mov byte [ebp - 4], 0xa
call fcn.00484050
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 0x48c086
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x48c086
push 0
push 0x4fe124
lea ecx, [ebp - 0x28]
push ecx
lea eax, [ebp - 0x2c]
call fcn.00484800
mov byte [ebp - 4], 0xd
mov edi, dword [ebp - 0x28]
test edi, edi
jne 0x48c289
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.00464a80
add esp, 0xc
call fcn.0048b090
add esp, 4
lea ecx, [ebp - 0x28]
push ecx
mov byte [ebp - 4], 0xc
call fcn.00484050
lea edx, [ebp - 0x2c]
push edx
mov byte [ebp - 4], 0xb
call fcn.00484050
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 0xa
call fcn.00484050
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 0x48c086
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x48c086
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x48c2b5
mov eax, dword [esi]
push 0x4fe1c4
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c2ee
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x48c298
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x48c41c
mov eax, dword [esi]
push str.preRemove
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c3c6
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x48c2c8
jmp 0x48c41c
cmp dword [esi + 4], 0
je 0x48c2b5
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 0x48c331
lea esp, [esp]
mov eax, dword [esi]
push 0x4fe1c4
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c3be
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x48c310
xor esi, esi
mov eax, dword [ebp - 0x34]
push eax
push esi
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c2b5
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.00464a80
add esp, 0xc
call fcn.0048b090
add esp, 4
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 0xc
call fcn.00484050
lea ecx, [ebp - 0x2c]
push ecx
mov byte [ebp - 4], 0xb
call fcn.00484050
lea edx, [ebp - 0x20]
push edx
mov byte [ebp - 4], 0xa
call fcn.00484050
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 0x48c3b2
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 0x48cce3
mov esi, dword [esi + 4]
jmp 0x48c333
cmp dword [esi + 4], 0
je 0x48c41c
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x48c401
jmp 0x48c3e0
mov eax, dword [esi]
push str.preRemove
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c5b3
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x48c3e0
xor esi, esi
push str.true
push esi
call fcn.004ad328
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 0x48c451
jmp 0x48c430
mov eax, dword [esi]
push str.version
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c5bb
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x48c430
xor esi, esi
mov ecx, dword [ebp + 8]
add ecx, 8
push esi
call fcn.00423660
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x48c491
mov edi, edi
mov eax, dword [esi]
push str.buildUID
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c5c3
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x48c470
xor esi, esi
mov ecx, dword [ebp + 8]
add ecx, 0xc
push esi
call fcn.00423660
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x48c4d1
mov edi, edi
mov eax, dword [esi]
push str.releaseDate
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c5cb
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x48c4b0
xor esi, esi
mov ecx, dword [ebp + 8]
add ecx, 0x10
push esi
call fcn.00423660
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x48c511
mov edi, edi
mov eax, dword [esi]
push str.hash
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c5d3
inc ebx
add esi, 8
cmp ebx, dword [ebp - 0x40]
jl 0x48c4f0
xor esi, esi
mov ecx, dword [ebp + 8]
add ecx, 0x14
push esi
call fcn.00423660
mov ebx, dword [edi + 0x10]
mov edi, dword [edi + 0x28]
xor esi, esi
test ebx, ebx
jle 0x48c550
jmp 0x48c530
mov eax, dword [edi]
push str.updateCondition
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c5db
inc esi
add edi, 8
cmp esi, ebx
jl 0x48c530
xor edi, edi
push edi
lea ecx, [ebp - 0x24]
call fcn.00423607
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x24]
push str.IfHigher
push edx
call fcn.004ad328
add esp, 8
test eax, eax
jne 0x48c5e3
mov esi, dword [ebp + 8]
push ecx
lea eax, [esi + 0x38]
mov ecx, esp
mov dword [ebp - 0x4c], esp
push eax
call fcn.004235f2
push ecx
mov byte [ebp - 4], 0xf
lea eax, [esi + 8]
mov ecx, esp
mov dword [ebp - 0x48], esp
push eax
call fcn.004235f2
mov byte [ebp - 4], 0xe
call fcn.00469380
xor ecx, ecx
add esp, 8
test eax, eax
setg cl
mov dword [esi], ecx
jmp 0x48c64f
mov esi, dword [esi + 4]
jmp 0x48c403
mov esi, dword [esi + 4]
jmp 0x48c453
mov esi, dword [esi + 4]
jmp 0x48c493
mov esi, dword [esi + 4]
jmp 0x48c4d3
mov esi, dword [esi + 4]
jmp 0x48c513
mov edi, dword [edi + 4]
jmp 0x48c552
mov edx, dword [ebp - 0x24]
push str.IfDifferent
push edx
call fcn.004ad328
add esp, 8
test eax, eax
jne 0x48c611
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x38]
push eax
lea eax, [esi + 8]
call fcn.0042368a
neg eax
sbb eax, eax
neg eax
mov dword [esi], eax
jmp 0x48c64f
mov eax, dword [ebp - 0x24]
push str.Force
push eax
call fcn.004ad328
add esp, 8
test eax, eax
jne 0x48c631
mov ecx, dword [ebp + 8]
mov dword [ecx], 1
jmp 0x48c64f
mov edx, dword [ebp - 0x24]
push str.Never
push edx
call fcn.004ad328
add esp, 8
test eax, eax
jne 0x48c64f
mov eax, dword [ebp + 8]
mov dword [eax], 0
push str.Exception
lea eax, [ebp - 0x28]
call fcn.004847b0
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x40], eax
test ecx, ecx
jle 0x48cb19
lea ecx, [ebp - 0x18]
push ecx
mov ebx, str.Exception
lea edi, [ebp - 0x28]
call fcn.004848a0
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x48c693
lea edx, [ebp - 0x18]
push edx
jmp 0x48cb00
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0x28]
xor ebx, ebx
test esi, esi
jle 0x48c6c0
nop
mov eax, dword [edi]
push str.minClientVersion
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c76d
inc ebx
add edi, 8
cmp ebx, esi
jl 0x48c6a0
xor edi, edi
push edi
lea ecx, [ebp - 0x34]
call fcn.00423607
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 0x48c700
mov edi, edi
mov eax, dword [edi]
push str.maxClientVersion
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c775
inc ebx
add edi, 8
cmp ebx, esi
jl 0x48c6e0
xor edi, edi
push edi
lea ecx, [ebp - 0x30]
call fcn.00423607
mov bl, 0x12
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x34]
cmp dword [eax - 0xc], 0
je 0x48c77a
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x48], esp
mov esi, esp
push eax
call fcn.004242c0
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.004235f2
mov byte [ebp - 4], bl
call fcn.00469380
add esp, 8
test eax, eax
jge 0x48c77a
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 0x48cacd
mov edi, dword [edi + 4]
jmp 0x48c6c2
mov edi, dword [edi + 4]
jmp 0x48c702
mov eax, dword [ebp - 0x30]
cmp dword [eax - 0xc], 0
je 0x48c7bb
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x50], esp
mov esi, esp
push eax
call fcn.004242c0
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.004235f2
mov byte [ebp - 4], bl
call fcn.00469380
add esp, 8
test eax, eax
jg 0x48c751
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 0x48c83b
lea ecx, [ecx]
mov eax, dword [edi]
push str.shouldUpdate
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c7ef
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x48c7d0
jmp 0x48c83b
cmp dword [edi + 4], 0
je 0x48c83b
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x48c821
mov eax, dword [edi]
push str.shouldUpdate
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c86f
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x48c804
xor edi, edi
push str.true
push edi
call fcn.004ad328
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 0x48c8c8
mov edi, edi
mov eax, dword [edi]
push str.preRemove
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c874
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x48c850
jmp 0x48c8c8
mov edi, dword [edi + 4]
jmp 0x48c823
cmp dword [edi + 4], 0
je 0x48c8c8
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x48c8ad
lea esp, [esp]
mov eax, dword [edi]
push str.preRemove
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c8f6
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x48c890
xor edi, edi
push str.true
push edi
call fcn.004ad328
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 0x48c93b
mov eax, dword [edi]
push str.version
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c8fb
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x48c8d7
jmp 0x48c93b
mov edi, dword [edi + 4]
jmp 0x48c8af
cmp dword [edi + 4], 0
je 0x48c93b
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x48c92d
mov eax, dword [edi]
push str.version
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c96f
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x48c910
xor edi, edi
mov ecx, dword [ebp + 8]
push edi
add ecx, 8
call fcn.00423660
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x48c9bb
lea ebx, [ebx]
mov eax, dword [edi]
push str.buildUID
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c974
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x48c950
jmp 0x48c9bb
mov edi, dword [edi + 4]
jmp 0x48c92f
cmp dword [edi + 4], 0
je 0x48c9bb
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x48c9ad
lea esp, [esp]
mov eax, dword [edi]
push str.buildUID
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c9ef
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x48c990
xor edi, edi
mov ecx, dword [ebp + 8]
push edi
add ecx, 0xc
call fcn.00423660
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x48ca3b
lea ebx, [ebx]
mov eax, dword [edi]
push str.releaseDate
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48c9f4
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x48c9d0
jmp 0x48ca3b
mov edi, dword [edi + 4]
jmp 0x48c9af
cmp dword [edi + 4], 0
je 0x48ca3b
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x48ca2d
lea esp, [esp]
mov eax, dword [edi]
push str.releaseDate
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48ca6f
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x48ca10
xor edi, edi
mov ecx, dword [ebp + 8]
push edi
add ecx, 0x10
call fcn.00423660
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x48cab6
lea ebx, [ebx]
mov eax, dword [edi]
push str.hash
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48ca74
inc ebx
add edi, 8
cmp ebx, dword [ebp - 0x48]
jl 0x48ca50
jmp 0x48cab6
mov edi, dword [edi + 4]
jmp 0x48ca2f
cmp dword [edi + 4], 0
je 0x48cab6
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x28]
xor ebx, ebx
test eax, eax
jle 0x48caa8
mov esi, eax
mov eax, dword [edi]
push str.hash
push eax
call fcn.004ad328
add esp, 8
test eax, eax
je 0x48cc4f
inc ebx
add edi, 8
cmp ebx, esi
jl 0x48ca88
xor edi, edi
mov ecx, dword [ebp + 8]
push edi
add ecx, 0x14
call fcn.00423660
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 0x48cad9
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 0x48cafc
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.00484050
mov eax, dword [ebp - 0x40]
inc eax
cmp eax, dword [ebp - 0x4c]
mov dword [ebp - 0x40], eax
jl 0x48c66e
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.004235f2
push ecx
mov byte [ebp - 4], 0x15
mov ecx, esp
mov dword [ebp - 0x4c], esp
add ebx, 8
push ebx
call fcn.004235f2
mov byte [ebp - 4], 0xe
call fcn.00469380
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.00464a80
add esp, 0x28
call fcn.0048b090
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 0x48cba6
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.00484050
lea edx, [ebp - 0x2c]
push edx
mov byte [ebp - 4], 0xb
call fcn.00484050
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 0xa
call fcn.00484050
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 0x48cbf0
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 0x48cc10
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 0x48cc36
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 0x48caaa
push ecx
mov esi, esp
mov dword [ebp + 8], esp
mov dword [ebp + 8], esi
call fcn.0049eef3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x48cc7a
push 0x80004005
call fcn.00421000
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 0x48ccb3
mov edx, ecx
movzx edi, dx
push edi
call fcn.004a6e27
test eax, eax
je 0x48cccd
push edi
push eax
mov ecx, esi
call fcn.00423ccc
jmp 0x48cccd
push str.CVirtAutoUpdate::CheckForNewVersion:_unknown_protocol___XML_path_
call fcn.004ad5da
add esp, 4
push eax
push str.CVirtAutoUpdate::CheckForNewVersion:_unknown_protocol___XML_path_
mov ecx, esi
call fcn.0042424f
mov byte [ebp - 4], 1
call fcn.0048b090
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 0x48ccfc
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 0x48cd22
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