Function at 0x460a30
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ce8c5
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push esi
push edi
mov eax, dword [0x507074]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov esi, dword [eax + 0x18]
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c6c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x10]
push str.Name
call fcn.00403470
test al, al
jne 0x460aa3
push 4
push str.Name
lea ecx, [ebp - 0x10]
call fcn.004035e0
mov dword [ebp - 4], 1
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x10]
lea ecx, [ebx + 4]
push eax
push ecx
mov ecx, edi
call esi
mov dword [ebp - 4], 0xffffffff
or esi, 0xffffffff
mov edx, dword [ebp - 0x10]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x460ade
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x24], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c76
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x10]
push str.ServerFileName
call fcn.00403470
test al, al
jne 0x460b27
push 0xe
push str.ServerFileName
lea ecx, [ebp - 0x10]
call fcn.004035e0
mov dword [ebp - 4], 4
lea eax, [ebx + 0x10]
push eax
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebx + 4]
push ecx
mov ecx, edi
call dword [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x460b60
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c6c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 7
lea eax, [ebp - 0x20]
push dword [ebx + 0x158]
push 0x4e1928
push eax
call fcn.00408700
mov eax, dword [edi]
add esp, 0xc
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x24], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c80
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x10]
push str.State
call fcn.00403470
test al, al
jne 0x460bde
push 5
push str.State
lea ecx, [ebp - 0x10]
call fcn.004035e0
mov byte [ebp - 4], 9
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x24]
mov byte [ebp - 4], 7
mov eax, esi
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x460c11
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebx + 0x18], 0
jle 0x460c31
mov eax, dword [edi]
mov ecx, edi
push 0x5c
push 0x3b
mov edx, dword [eax + 0x30]
lea eax, [ebx + 0x14]
push eax
push str.UpdatedApplicationVersions
lea eax, [ebx + 4]
push eax
call edx
cmp dword [ebx + 0x24], 0
jle 0x460c51
mov eax, dword [edi]
mov ecx, edi
push 0x5c
push 0x3b
mov edx, dword [eax + 0x30]
lea eax, [ebx + 0x20]
push eax
push str.UpdatedApplications
lea eax, [ebx + 4]
push eax
call edx
mov eax, dword [edi]
mov ecx, edi
push str._s_d
push str.DescriptionHtml
mov edx, dword [eax + 0x20]
lea eax, [ebx + 0x2c]
push eax
lea eax, [ebx + 4]
push eax
call edx
mov eax, dword [edi]
mov ecx, edi
push str._s_d
push dword [ebx + 0x40]
mov edx, dword [eax + 0x20]
lea eax, [ebx + 0x44]
push eax
lea eax, [ebx + 4]
push eax
call edx
mov eax, dword [edi]
mov ecx, edi
push str._s_d
push dword [ebx + 0x58]
mov edx, dword [eax + 0x20]
lea eax, [ebx + 0x5c]
push eax
lea eax, [ebx + 4]
push eax
call edx
mov eax, dword [edi]
mov ecx, edi
push str._s_d
push dword [ebx + 0x70]
mov edx, dword [eax + 0x20]
lea eax, [ebx + 0x74]
push eax
lea eax, [ebx + 4]
push eax
call edx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov byte [ebp - 4], 0xb
xor eax, eax
mov ecx, dword [ebx + 0xb0]
mov dword [ebp - 0x10], eax
test ecx, ecx
jle 0x460d4a
xor edx, edx
mov dword [ebp - 0x24], edx
test edx, edx
js 0x461c94
cmp eax, ecx
jge 0x461c94
mov ecx, dword [ebx + 0xac]
lea eax, [ebp - 0x28]
add ecx, edx
push eax
call fcn.00436f70
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x34]
push eax
call fcn.004090b0
mov byte [ebp - 4], 0xb
mov eax, esi
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x460d30
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x24]
inc eax
mov ecx, dword [ebx + 0xb0]
add edx, 0x24
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], edx
cmp eax, ecx
jl 0x460ce4
mov eax, dword [edi]
lea ecx, [ebp - 0x34]
push str._s_d
push str.AutoCloseApplication
push ecx
lea ecx, [ebx + 4]
push ecx
mov ecx, edi
call dword [eax + 0x20]
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x460db5
cmp dword [ebp - 0x30], 0
jle 0x460da5
xor edi, edi
lea eax, [eax + edi*4]
mov dword [ebp - 0x28], eax
mov byte [ebp - 4], 7
mov edx, dword [eax]
mov eax, esi
sub edx, 0x10
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x460d99
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x34]
inc edi
cmp edi, dword [ebp - 0x30]
jl 0x460d76
mov edi, dword [ebp + 8]
push eax
call fcn.004a0471
add esp, 4
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c6c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x1c]
push dword [ebx + 0x80]
push 0x4e1928
push eax
call fcn.00408700
mov eax, dword [edi]
add esp, 0xc
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c8a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x11
lea ecx, [ebp + 8]
push str.Size
call fcn.00403470
test al, al
jne 0x460e3e
push 4
push str.Size
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
mov byte [ebp - 4], 0x10
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x460e71
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0xbc]
cmp dword [eax - 0xc], 0
je 0x460ef9
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c9e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x14
lea ecx, [ebp + 8]
push str.CommandLine
call fcn.00403470
test al, al
jne 0x460ec3
push 0xb
push str.CommandLine
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x15
lea eax, [ebx + 0xbc]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
mov byte [ebp - 4], 0x10
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x460ef9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461ca8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x17
lea ecx, [ebp + 8]
push str.NoGUICommandLineSwitch
call fcn.00403470
test al, al
jne 0x460f3f
push 0x16
push str.NoGUICommandLineSwitch
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x18
lea eax, [ebx + 0xc0]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
mov byte [ebp - 4], 0x10
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x460f75
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
mov ecx, edi
push str.Flags
mov edx, dword [eax + 0x28]
lea eax, [ebx + 4]
push eax
lea eax, [ebx + 0x84]
push eax
call edx
mov eax, dword [ebx + 0x98]
cmp dword [eax - 0xc], 0
je 0x461016
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461cb2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x1a
lea ecx, [ebp + 8]
push str.SHA256
call fcn.00403470
test al, al
jne 0x460fe0
push 6
push str.SHA256
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x1b
lea eax, [ebx + 0x98]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
mov byte [ebp - 4], 0x10
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x461016
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0x9c]
cmp dword [eax - 0xc], 0
je 0x46109e
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461cbc
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x1d
lea ecx, [ebp + 8]
push 0x4e4f44
call fcn.00403470
test al, al
jne 0x461068
push 3
push 0x4e4f44
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x1e
lea eax, [ebx + 0x9c]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
mov byte [ebp - 4], 0x10
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x46109e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
mov ecx, edi
push str._s_d
push 0x4e505c
mov edx, dword [eax + 0x20]
lea eax, [ebx + 0xa0]
push eax
lea eax, [ebx + 4]
push eax
call edx
mov eax, dword [ebx + 0xc]
cmp dword [eax - 0xc], 0
je 0x46113e
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461cc6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x20
lea ecx, [ebp + 8]
push str.Category
call fcn.00403470
test al, al
jne 0x46110b
push 8
push str.Category
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x21
lea eax, [ebx + 0xc]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
mov byte [ebp - 4], 0x10
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x46113e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c6c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x24
movzx eax, word [ebx + 0x12c]
push eax
movzx eax, word [ebx + 0x12e]
push eax
movzx eax, word [ebx + 0x132]
push eax
lea eax, [ebp - 0x18]
push str._.2u__.2u__.4u
push eax
call fcn.00408700
mov eax, dword [edi]
add esp, 0x14
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461cd0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x25
lea ecx, [ebp + 8]
push str.ReleaseDate
call fcn.00403470
test al, al
jne 0x4611cb
push 0xb
push str.ReleaseDate
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x26
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
mov byte [ebp - 4], 0x24
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4611fe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebx + 0xc4], 0
lea ecx, [ebx + 0xc4]
jne 0x461223
cmp dword [ecx + 4], 0
jne 0x461223
cmp dword [ecx + 8], 0
jne 0x461223
cmp dword [ecx + 0xc], 0
je 0x4612ca
mov eax, dword [edi]
push ecx
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x10]
push eax
call fcn.0041e9e0
mov dword [ebp - 0x28], eax
mov byte [ebp - 4], 0x28
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461cda
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x29
lea ecx, [ebp + 8]
push str.TargetOsMinVersion
call fcn.00403470
test al, al
jne 0x46127a
push 0x12
push str.TargetOsMinVersion
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x2a
lea eax, [ebp + 8]
push dword [ebp - 0x28]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x24]
mov byte [ebp - 4], 0x28
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4612ac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x24
mov eax, esi
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4612ca
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebx + 0xd8], 0
lea ecx, [ebx + 0xd8]
jne 0x4612ef
cmp dword [ecx + 4], 0
jne 0x4612ef
cmp dword [ecx + 8], 0
jne 0x4612ef
cmp dword [ecx + 0xc], 0
je 0x461396
mov eax, dword [edi]
push ecx
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x10]
push eax
call fcn.0041e9e0
mov dword [ebp - 0x28], eax
mov byte [ebp - 4], 0x2d
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461ce4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x2e
lea ecx, [ebp + 8]
push str.TargetOsMaxVersion
call fcn.00403470
test al, al
jne 0x461346
push 0x12
push str.TargetOsMaxVersion
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x2f
lea eax, [ebp + 8]
push dword [ebp - 0x28]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x24]
mov byte [ebp - 4], 0x2d
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x461378
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x24
mov eax, esi
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x461396
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0xec]
cmp eax, 1
jne 0x461414
mov eax, dword [ebx + 0xf4]
cmp dword [eax - 0xc], 0
je 0x4617b8
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461cee
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x32
lea ecx, [ebp + 8]
push str.FilePath
call fcn.00403470
test al, al
jne 0x4613f7
push 8
push str.FilePath
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x33
lea eax, [ebx + 0xf4]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
jmp 0x46179a
test eax, eax
jne 0x46148b
mov eax, dword [ebx + 0xf4]
cmp dword [eax - 0xc], 0
je 0x4617b8
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461cf8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x35
lea ecx, [ebp + 8]
push str.RegistryKey
call fcn.00403470
test al, al
jne 0x46146e
push 0xb
push str.RegistryKey
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x36
lea eax, [ebx + 0xf4]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
jmp 0x46179a
cmp eax, 3
jne 0x46158f
mov eax, dword [ebx + 0xf4]
cmp dword [eax - 0xc], 0
je 0x46151c
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461d02
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x38
lea ecx, [ebp + 8]
push str.CustomDetection
call fcn.00403470
test al, al
jne 0x4614e6
push 0xf
push str.CustomDetection
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x39
lea eax, [ebx + 0xf4]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
mov byte [ebp - 4], 0x24
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x46151c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0xf8]
cmp dword [eax - 0xc], 0
je 0x4617b8
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461d0c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x3b
lea ecx, [ebp + 8]
push str.CustomDetectionParams
call fcn.00403470
test al, al
jne 0x461572
push 0x15
push str.CustomDetectionParams
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x3c
lea eax, [ebx + 0xf8]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
jmp 0x46179a
cmp eax, 4
jne 0x4617b8
mov eax, dword [ebx + 0xfc]
cmp dword [eax - 0xc], 0
je 0x461620
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461d16
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x3e
lea ecx, [ebp + 8]
push str.AppIdName
call fcn.00403470
test al, al
jne 0x4615ea
push 9
push str.AppIdName
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x3f
lea eax, [ebx + 0xfc]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
mov byte [ebp - 4], 0x24
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x461620
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0x100]
cmp dword [eax - 0xc], 0
je 0x4616a8
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461d20
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x41
lea ecx, [ebp + 8]
push str.AppIdArch
call fcn.00403470
test al, al
jne 0x461672
push 9
push str.AppIdArch
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x42
lea eax, [ebx + 0x100]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
mov byte [ebp - 4], 0x24
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4616a8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0x104]
cmp dword [eax - 0xc], 0
je 0x461730
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461d2a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x44
lea ecx, [ebp + 8]
push str.AppIdResourceId
call fcn.00403470
test al, al
jne 0x4616fa
push 0xf
push str.AppIdResourceId
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x45
lea eax, [ebx + 0x104]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
mov byte [ebp - 4], 0x24
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x461730
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0x108]
cmp dword [eax - 0xc], 0
je 0x4617b8
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461d34
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x47
lea ecx, [ebp + 8]
push str.AppIdPublisherId
call fcn.00403470
test al, al
jne 0x461782
push 0x10
push str.AppIdPublisherId
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x48
lea eax, [ebx + 0x108]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
mov byte [ebp - 4], 0x24
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4617b8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c6c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x4b
mov eax, dword [ebx + 0xf0]
test al, 1
je 0x4618fe
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c6c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 0x4d
xor eax, eax
mov ecx, dword [ebx + 0x110]
mov edx, 0x4e3f68
cmp ecx, 1
setne al
inc eax
cmp ecx, 1
push eax
mov eax, 0x4e68b8
lea ecx, [ebp - 0x24]
cmove eax, edx
push eax
call fcn.004035e0
lea ecx, [ebx + 0x114]
push ecx
lea eax, [ebp + 8]
push eax
call fcn.0041e9e0
mov byte [ebp - 4], 0x4e
push dword [eax]
mov esi, dword [ebp - 0x24]
lea eax, [ebp - 0x14]
push esi
push str._s__s
push eax
call fcn.00408700
add esp, 0x10
mov byte [ebp - 4], 0x4d
or eax, 0xffffffff
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x461875
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461d3e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x50
lea ecx, [ebp + 8]
push str.Version
call fcn.00403470
test al, al
jne 0x4618bb
push 7
push str.Version
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x51
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
mov byte [ebp - 4], 0x4d
or eax, 0xffffffff
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4618ef
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x4b
lea edx, [esi - 0x10]
or esi, 0xffffffff
jmp 0x4619be
test al, 2
je 0x4619d2
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461d48
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 0x55
lea eax, [ebp - 0x10]
push dword [ebx + 0x128]
push 0x4e1928
push eax
call fcn.00408700
mov eax, dword [edi]
add esp, 0xc
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461d52
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x56
lea ecx, [ebp + 8]
push str.FileSize
call fcn.00403470
test al, al
jne 0x461981
push 8
push str.FileSize
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x57
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 8]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x28]
mov byte [ebp - 4], 0x55
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4619b4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x4b
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4619d2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebx + 0x13c]
test ecx, ecx
je 0x461a5a
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x24], eax
lea eax, [ecx + 4]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461d5c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x5a
lea ecx, [ebp + 8]
push str.Depends
call fcn.00403470
test al, al
jne 0x461a28
push 7
push str.Depends
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x5b
lea eax, [ebp + 8]
push dword [ebp - 0x28]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x24]
mov byte [ebp - 4], 0x4b
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x461a5a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov byte [ebp - 4], 0x5d
cmp byte [ebx + 0x144], 0
je 0x461aea
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c6c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x5e
lea ecx, [ebp + 8]
push 0x4e6900
call fcn.00403470
test al, al
jne 0x461aba
push 3
push 0x4e6900
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x5f
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x40]
call fcn.004090b0
mov byte [ebp - 4], 0x5d
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x461b2f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x461b2f
xor ecx, ecx
mov dword [ebp + 8], ecx
cmp dword [ebx + 0x14c], ecx
jle 0x461b2f
test ecx, ecx
js 0x461c94
cmp ecx, dword [ebx + 0x14c]
jge 0x461c94
mov eax, dword [ebx + 0x148]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x40]
add eax, 4
push eax
call fcn.004090b0
mov ecx, dword [ebp + 8]
inc ecx
mov dword [ebp + 8], ecx
cmp ecx, dword [ebx + 0x14c]
jl 0x461af7
mov eax, dword [edi]
lea ecx, [ebp - 0x40]
push 0x5c
push 0x3b
push ecx
push str.Replaces
lea ecx, [ebx + 4]
push ecx
mov ecx, edi
call dword [eax + 0x30]
mov ecx, dword [ebx + 0x154]
test ecx, ecx
je 0x461bd3
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x24], eax
lea eax, [ecx + 4]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461d66
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x61
lea ecx, [ebp + 8]
push str.NextDeprecated
call fcn.00403470
test al, al
jne 0x461ba1
push 0xe
push str.NextDeprecated
lea ecx, [ebp + 8]
call fcn.004035e0
mov byte [ebp - 4], 0x62
lea eax, [ebp + 8]
push dword [ebp - 0x28]
mov ecx, edi
push eax
lea eax, [ebx + 4]
push eax
call dword [ebp - 0x24]
mov byte [ebp - 4], 0x5d
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x461bd3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x4b
lea ecx, [ebp - 0x40]
call fcn.00409010
mov byte [ebp - 4], 0x24
mov eax, esi
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x461bfd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x10
mov eax, esi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x461c1b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 7
mov eax, esi
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x461c39
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x461c58
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
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
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x8000000b
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
push 0x80004005
call fcn.00402570
int3