Function at 0x460990
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ce805
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 0x461bcc
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 0x460a03
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 0x460a3e
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 0x461bd6
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 0x460a87
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 0x460ac0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461bcc
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 0x461be0
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 0x460b3e
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 0x460b71
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebx + 0x18], 0
jle 0x460b91
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 0x460bb1
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 0x460caa
xor edx, edx
mov dword [ebp - 0x24], edx
test edx, edx
js 0x461bf4
cmp eax, ecx
jge 0x461bf4
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 0x460c90
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 0x460c44
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 0x460d15
cmp dword [ebp - 0x30], 0
jle 0x460d05
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 0x460cf9
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 0x460cd6
mov edi, dword [ebp + 8]
push eax
call fcn.004a03e1
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 0x461bcc
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 0x461bea
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 0x460d9e
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 0x460dd1
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 0x460e59
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461bfe
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 0x460e23
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 0x460e59
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 0x461c08
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 0x460e9f
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 0x460ed5
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 0x460f76
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c12
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 0x460f40
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 0x460f76
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 0x460ffe
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c1c
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 0x460fc8
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 0x460ffe
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 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 0x461c26
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 0x46106b
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 0x46109e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461bcc
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 0x461c30
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 0x46112b
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 0x46115e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebx + 0xc4], 0
lea ecx, [ebx + 0xc4]
jne 0x461183
cmp dword [ecx + 4], 0
jne 0x461183
cmp dword [ecx + 8], 0
jne 0x461183
cmp dword [ecx + 0xc], 0
je 0x46122a
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 0x461c3a
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 0x4611da
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 0x46120c
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 0x46122a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebx + 0xd8], 0
lea ecx, [ebx + 0xd8]
jne 0x46124f
cmp dword [ecx + 4], 0
jne 0x46124f
cmp dword [ecx + 8], 0
jne 0x46124f
cmp dword [ecx + 0xc], 0
je 0x4612f6
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 0x461c44
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 0x4612a6
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 0x4612d8
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 0x4612f6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0xec]
cmp eax, 1
jne 0x461374
mov eax, dword [ebx + 0xf4]
cmp dword [eax - 0xc], 0
je 0x461718
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c4e
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 0x461357
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 0x4616fa
test eax, eax
jne 0x4613eb
mov eax, dword [ebx + 0xf4]
cmp dword [eax - 0xc], 0
je 0x461718
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c58
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 0x4613ce
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 0x4616fa
cmp eax, 3
jne 0x4614ef
mov eax, dword [ebx + 0xf4]
cmp dword [eax - 0xc], 0
je 0x46147c
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c62
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 0x461446
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 0x46147c
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 0x461718
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
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], 0x3b
lea ecx, [ebp + 8]
push str.CustomDetectionParams
call fcn.00403470
test al, al
jne 0x4614d2
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 0x4616fa
cmp eax, 4
jne 0x461718
mov eax, dword [ebx + 0xfc]
cmp dword [eax - 0xc], 0
je 0x461580
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], 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 + 8], eax
mov byte [ebp - 4], 0x3e
lea ecx, [ebp + 8]
push str.AppIdName
call fcn.00403470
test al, al
jne 0x46154a
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 0x461580
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 0x461608
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], 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 + 8], eax
mov byte [ebp - 4], 0x41
lea ecx, [ebp + 8]
push str.AppIdArch
call fcn.00403470
test al, al
jne 0x4615d2
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 0x461608
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 0x461690
mov eax, dword [edi]
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], 0x44
lea ecx, [ebp + 8]
push str.AppIdResourceId
call fcn.00403470
test al, al
jne 0x46165a
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 0x461690
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 0x461718
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461c94
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 0x4616e2
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 0x461718
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461bcc
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 0x46185e
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461bcc
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, 0x4e68b0
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 0x4617d5
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 0x461c9e
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 0x46181b
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 0x46184f
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 0x46191e
test al, 2
je 0x461932
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 - 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 0x461cb2
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 0x4618e1
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 0x461914
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 0x461932
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebx + 0x13c]
test ecx, ecx
je 0x4619ba
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 0x461cbc
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 0x461988
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 0x4619ba
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 0x461a4a
call fcn.004043d0
mov ecx, eax
test ecx, ecx
je 0x461bcc
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 0x4e68f8
call fcn.00403470
test al, al
jne 0x461a1a
push 3
push 0x4e68f8
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 0x461a8f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x461a8f
xor ecx, ecx
mov dword [ebp + 8], ecx
cmp dword [ebx + 0x14c], ecx
jle 0x461a8f
test ecx, ecx
js 0x461bf4
cmp ecx, dword [ebx + 0x14c]
jge 0x461bf4
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 0x461a57
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 0x461b33
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 0x461cc6
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 0x461b01
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 0x461b33
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 0x461b5d
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 0x461b7b
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 0x461b99
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 0x461bb8
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