Function at 0x4151e0
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x4b82db
mov eax, dword fs:[0]
push eax
sub esp, 0x420
mov eax, dword [0x4e1370]
xor eax, esp
mov dword [esp + 0x41c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4e1370]
xor eax, esp
push eax
lea eax, [esp + 0x434]
mov dword fs:[0], eax
mov ebp, ecx
cmp dword [ebp + 0xc], 0
lea eax, [ebp + 0xc]
mov dword [esp + 0x1c], eax
je 0x416706
or ebx, 0xffffffff
cmp dword [ebp + 0x30], 0
je 0x4152c0
push ecx
mov eax, esp
mov dword [esp + 0x28], esp
push eax
mov edi, 0x4c7584
call fcn.00407360
mov dword [esp + 0x440], 0
mov ecx, dword [ebp + 0x30]
test ecx, ecx
jne 0x415269
push 0x80004003
call fcn.0048ff60
mov dword [esp + 0x440], ebx
call fcn.0040eeb0
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push ecx
mov edi, str.IDI_PROBLEM_SERIOUS
mov esi, eax
call fcn.00407360
mov dword [esp + 0x440], 1
mov ecx, dword [ebp + 0x30]
test ecx, ecx
jne 0x4152a5
push 0x80004003
call fcn.0048ff60
mov dword [esp + 0x440], ebx
call fcn.0040eeb0
mov dword [0x4e8800], eax
mov eax, dword [esp + 0x1c]
mov dword [0x4e8804], esi
mov eax, dword [eax]
test eax, eax
jne 0x4152d0
push 0x80004003
call fcn.0048ff60
push 1
push 0x3ea
lea esi, [esp + 0x2c]
call fcn.0040f330
mov dword [esp + 0x43c], 2
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], esp
mov dword [ecx], eax
test eax, eax
je 0x41530a
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x24]
call fcn.0040ebd0
test eax, eax
jge 0x415324
cmp eax, 0x80004002
je 0x415324
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x24]
test eax, eax
je 0x41533c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov edi, dword [esp + 0x20]
test edi, edi
je 0x41573a
push 1
push 0x3f4
lea esi, [esp + 0x1c]
mov eax, edi
call fcn.0040f330
mov byte [esp + 0x43c], 5
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xa0]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x41537f
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040eb50
test eax, eax
jge 0x415395
cmp eax, 0x80004002
je 0x415395
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4153ad
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 1
push 0x3f1
lea esi, [esp + 0x1c]
mov eax, edi
call fcn.0040f330
mov byte [esp + 0x43c], 6
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xa4]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x4153e4
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040eb50
test eax, eax
jge 0x4153fa
cmp eax, 0x80004002
je 0x4153fa
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415412
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 1
push 0x3f2
lea esi, [esp + 0x1c]
mov eax, edi
call fcn.0040f330
mov byte [esp + 0x43c], 7
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xa8]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415449
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040eb50
test eax, eax
jge 0x41545f
cmp eax, 0x80004002
je 0x41545f
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415477
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 1
push 0x3f3
lea esi, [esp + 0x1c]
mov eax, edi
call fcn.0040f330
mov byte [esp + 0x43c], 8
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xac]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x4154ae
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040eb50
test eax, eax
jge 0x4154c4
cmp eax, 0x80004002
je 0x4154c4
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4154dc
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 1
push 0x3ee
lea esi, [esp + 0x1c]
mov eax, edi
call fcn.0040f330
mov byte [esp + 0x43c], 9
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xb0]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415513
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040eb50
test eax, eax
jge 0x415529
cmp eax, 0x80004002
je 0x415529
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415541
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 1
push 0x3ef
lea esi, [esp + 0x1c]
mov eax, edi
call fcn.0040f330
mov byte [esp + 0x43c], 0xa
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xb4]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415578
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040eb50
test eax, eax
jge 0x41558e
cmp eax, 0x80004002
je 0x41558e
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4155a6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 1
push 0x3f0
lea esi, [esp + 0x1c]
mov eax, edi
call fcn.0040f330
mov byte [esp + 0x43c], 0xb
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xb8]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x4155dd
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040eb50
test eax, eax
jge 0x4155f3
cmp eax, 0x80004002
je 0x4155f3
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41560b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 1
push 0x541
lea esi, [esp + 0x1c]
mov eax, edi
call fcn.0040f330
mov byte [esp + 0x43c], 0xc
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xf8]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415642
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x415658
cmp eax, 0x80004002
je 0x415658
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415670
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 1
push 0x544
lea esi, [esp + 0x1c]
mov eax, edi
call fcn.0040f330
mov byte [esp + 0x43c], 0xd
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xfc]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x4156a7
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x4156bd
cmp eax, 0x80004002
je 0x4156bd
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4156d5
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 1
push 0x547
lea esi, [esp + 0x1c]
mov eax, edi
call fcn.0040f330
mov byte [esp + 0x43c], 0xe
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0x100]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x41570c
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x415722
cmp eax, 0x80004002
je 0x415722
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41573a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx]
test eax, eax
jne 0x41574e
push 0x80004003
call fcn.0048ff60
push 1
push 0x3eb
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0xf
mov eax, dword [eax]
push ecx
mov ecx, esp
lea edi, [ebp + 0x98]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415783
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov esi, edi
call fcn.0040ebd0
test eax, eax
jge 0x41579b
cmp eax, 0x80004002
je 0x41579b
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4157b3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp dword [edi], 0
je 0x4158bc
mov eax, dword [edi]
test eax, eax
jne 0x4157cc
push 0x80004003
call fcn.0048ff60
push 1
push 0x409
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x10
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0x104]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415801
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ead0
test eax, eax
jge 0x415817
cmp eax, 0x80004002
je 0x415817
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41582f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, dword [esi]
test ecx, ecx
je 0x415841
lea eax, [ebp + 0x10]
lea edx, [ebp - 0x2c]
push eax
call fcn.00401080
mov eax, dword [edi]
test eax, eax
jne 0x415851
push 0x80004003
call fcn.0048ff60
push 1
push 0x40a
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x11
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0x108]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415886
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040eb50
test eax, eax
jge 0x41589c
cmp eax, 0x80004002
je 0x41589c
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4158b4
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea ecx, [ebp - 0x2c]
call fcn.00416730
mov eax, dword [ebx]
test eax, eax
jne 0x4158cc
push 0x80004003
call fcn.0048ff60
push 1
push 0x3ec
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x12
mov eax, dword [eax]
push ecx
mov ecx, esp
lea ebx, [ebp + 0x9c]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415901
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov esi, ebx
call fcn.0040ebd0
test eax, eax
jge 0x415919
cmp eax, 0x80004002
je 0x415919
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415931
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp dword [ebx], 0
je 0x415d45
mov eax, dword [ebx]
test eax, eax
jne 0x41594a
push 0x80004003
call fcn.0048ff60
push 1
push 0x40b
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x13
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0x10c]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x41597f
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x415995
cmp eax, 0x80004002
je 0x415995
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4159ad
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebx]
test eax, eax
jne 0x4159bd
push 0x80004003
call fcn.0048ff60
push 1
push 0x40d
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x14
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0x110]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x4159f2
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ea50
test eax, eax
jge 0x415a08
cmp eax, 0x80004002
je 0x415a08
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415a20
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp dword [esi], 0
je 0x415a5c
push ecx
mov eax, esp
mov dword [esp + 0x18], esp
push eax
mov edi, 0x4c4788
call fcn.00407360
mov byte [esp + 0x440], 0x15
mov ecx, dword [esi]
test ecx, ecx
jne 0x415a4f
push 0x80004003
call fcn.0048ff60
mov byte [esp + 0x440], 4
call fcn.0040f1d0
mov eax, dword [ebx]
test eax, eax
jne 0x415a6c
push 0x80004003
call fcn.0048ff60
push 1
push 0x40e
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x16
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0x114]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415aa1
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ea50
test eax, eax
jge 0x415ab7
cmp eax, 0x80004002
je 0x415ab7
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415acf
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp dword [esi], 0
je 0x415b2a
mov eax, dword [esi]
test eax, eax
jne 0x415ae4
push 0x80004003
call fcn.0048ff60
mov ecx, dword [eax]
mov edx, dword [ecx + 0x68]
push 0
push 0x4020
push eax
call edx
push ecx
mov eax, esp
mov dword [esp + 0x18], esp
push eax
mov edi, 0x4c4788
call fcn.00407360
mov byte [esp + 0x440], 0x17
mov ecx, dword [esi]
test ecx, ecx
jne 0x415b1d
push 0x80004003
call fcn.0048ff60
mov byte [esp + 0x440], 4
call fcn.0040f1d0
mov eax, dword [ebx]
test eax, eax
jne 0x415b3a
push 0x80004003
call fcn.0048ff60
push 1
push 0x40f
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x18
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0x118]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415b6f
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ead0
test eax, eax
jge 0x415b85
cmp eax, 0x80004002
je 0x415b85
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415b9d
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, dword [esi]
test ecx, ecx
je 0x415baf
lea eax, [ebp + 0x10]
lea edx, [ebp - 0x2c]
push eax
call fcn.00401080
mov eax, dword [ebx]
test eax, eax
jne 0x415bbf
push 0x80004003
call fcn.0048ff60
push 1
push 0x40c
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x19
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0x11c]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415bf4
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x415c0a
cmp eax, 0x80004002
je 0x415c0a
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415c22
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebx]
test eax, eax
jne 0x415c32
push 0x80004003
call fcn.0048ff60
push 1
push 0x556
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x1a
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0x120]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415c67
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x415c7d
cmp eax, 0x80004002
je 0x415c7d
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415c95
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp dword [esi], 0
je 0x415d45
mov eax, dword [esi]
test eax, eax
jne 0x415cae
push 0x80004003
call fcn.0048ff60
mov ecx, dword [eax]
mov edx, dword [ecx + 0x68]
push 0
push 3
push eax
call edx
mov eax, esi
lea ecx, [esp + 0x14]
call fcn.0041acc0
mov byte [esp + 0x43c], 0x1b
mov edi, dword [esp + 0x14]
test edi, edi
je 0x415cf3
mov eax, dword [edi]
mov ecx, dword [eax + 0x10]
push 0xa
push 0x7e8
push edi
call ecx
mov edx, dword [edi]
mov eax, dword [edx + 0x10]
push 0
push 0x7e9
push edi
call eax
mov eax, dword [esi]
test eax, eax
jne 0x415d03
push 0x80004003
call fcn.0048ff60
mov ecx, dword [eax]
mov edx, dword [ecx + 0x120]
push 0xa
push 0x1e
push eax
call edx
mov esi, dword [esi]
test esi, esi
jne 0x415d22
push 0x80004003
call fcn.0048ff60
mov eax, dword [esi]
mov ecx, dword [eax + 0x5c]
push 0
push 0x200000
push esi
call ecx
mov byte [esp + 0x43c], 4
test edi, edi
je 0x415d45
mov edx, dword [edi]
mov eax, dword [edx + 8]
push edi
call eax
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
test eax, eax
jne 0x415d59
push 0x80004003
call fcn.0048ff60
push 1
push 0x54c
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x1c
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xbc]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415d8e
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040eb50
test eax, eax
jge 0x415da4
cmp eax, 0x80004002
je 0x415da4
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415dbc
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x415dcc
push 0x80004003
call fcn.0048ff60
push 1
push 0x54e
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x1d
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xc0]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415e01
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040eb50
test eax, eax
jge 0x415e17
cmp eax, 0x80004002
je 0x415e17
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415e2f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x415e3f
push 0x80004003
call fcn.0048ff60
push 1
push 0x55a
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x1e
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xc4]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415e74
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x415e8a
cmp eax, 0x80004002
je 0x415e8a
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415ea2
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x415eb2
push 0x80004003
call fcn.0048ff60
push 1
push 0x55d
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x1f
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xcc]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415ee7
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x415efd
cmp eax, 0x80004002
je 0x415efd
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415f15
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x415f25
push 0x80004003
call fcn.0048ff60
push 1
push 0x560
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x20
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xd4]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415f5a
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x415f70
cmp eax, 0x80004002
je 0x415f70
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415f88
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x415f98
push 0x80004003
call fcn.0048ff60
push 1
push 0x563
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x21
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xdc]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x415fcd
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x415fe3
cmp eax, 0x80004002
je 0x415fe3
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415ffb
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x41600b
push 0x80004003
call fcn.0048ff60
push 1
push 0x566
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x22
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xe4]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x416040
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x416056
cmp eax, 0x80004002
je 0x416056
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41606e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x41607e
push 0x80004003
call fcn.0048ff60
push 1
push 0x569
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x23
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xec]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x4160b3
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x4160c9
cmp eax, 0x80004002
je 0x4160c9
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4160e1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x4160f1
push 0x80004003
call fcn.0048ff60
push 1
push 0x56c
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x24
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xc8]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x416126
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x41613c
cmp eax, 0x80004002
je 0x41613c
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x416154
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x416164
push 0x80004003
call fcn.0048ff60
push 1
push 0x56d
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x25
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xd0]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x416199
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x4161af
cmp eax, 0x80004002
je 0x4161af
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4161c7
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x4161d7
push 0x80004003
call fcn.0048ff60
push 1
push 0x56f
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x26
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xd8]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x41620c
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x416222
cmp eax, 0x80004002
je 0x416222
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41623a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x41624a
push 0x80004003
call fcn.0048ff60
push 1
push 0x572
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x27
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xe0]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x41627f
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x416295
cmp eax, 0x80004002
je 0x416295
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4162ad
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x4162bd
push 0x80004003
call fcn.0048ff60
push 1
push 0x571
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x28
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xe8]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x4162f2
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x416308
cmp eax, 0x80004002
je 0x416308
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x416320
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x416330
push 0x80004003
call fcn.0048ff60
push 1
push 0x570
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x29
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xf0]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x416365
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x41637b
cmp eax, 0x80004002
je 0x41637b
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x416393
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x4163a3
push 0x80004003
call fcn.0048ff60
push 1
push 0x575
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x2a
mov eax, dword [eax]
push ecx
mov ecx, esp
lea esi, [ebp + 0xf4]
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
test eax, eax
je 0x4163d8
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
call fcn.0040ebd0
test eax, eax
jge 0x4163ee
cmp eax, 0x80004002
je 0x4163ee
push eax
call fcn.0048ff60
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x416406
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [edi]
test eax, eax
jne 0x416416
push 0x80004003
call fcn.0048ff60
push 1
push 0x427
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x2b
mov eax, dword [eax]
lea ebx, [ebp - 0x2c]
add ebp, 0x10
push ebp
mov edx, ebx
mov ecx, eax
call fcn.00401080
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x416458
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
jne 0x41646c
push 0x80004003
call fcn.0048ff60
push 1
push 0x42a
lea esi, [esp + 0x1c]
call fcn.0040f330
mov byte [esp + 0x43c], 0x2c
mov eax, dword [eax]
push ebp
mov edx, ebx
mov ecx, eax
call fcn.00401080
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4164a8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [esp + 0x28]
push str.safemon360SoftPrivMgr.exe
push eax
call fcn.0047b079
add esp, 8
push str.softmgr_default.ui
push 0x4e8bdc
lea edi, [esp + 0x1c]
mov byte [esp + 0x444], 0x2d
call fcn.0040c470
push str.softmgr_theme.xml
push 0x4e8bdc
lea edi, [esp + 0x20]
mov byte [esp + 0x444], 0x2e
call fcn.0040c470
push 0x200
lea ecx, [esp + 0x34]
push 0
push ecx
mov byte [esp + 0x448], 0x2f
call fcn.00494b20
push 0x200
lea edx, [esp + 0x240]
push 0
push edx
call fcn.00494b20
mov ecx, dword [esp + 0x2c]
add esp, 0x18
lea edx, [esp + 0x30]
call fcn.0047eef5
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x230]
call fcn.0047eef5
mov eax, dword [esp + 0x28]
mov edi, eax
test eax, eax
je 0x41661c
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41661c
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
call fcn.0047ea6b
add esp, 4
test eax, eax
jne 0x41657a
call fcn.0041b270
test eax, eax
je 0x41661c
lea eax, [esp + 0x30]
push eax
mov esi, str.2.1.0.1350
call fcn.0047f4df
add esp, 4
test al, al
je 0x41661c
lea ecx, [esp + 0x230]
push ecx
mov esi, str.2.0.0.1170
call fcn.0047f4df
add esp, 4
test al, al
je 0x41661c
mov edi, dword [esp + 0x1c]
push ecx
mov eax, edi
mov ecx, esp
mov esi, 0x57b
mov dword [esp + 0x30], esp
call fcn.00411f80
mov ecx, esi
call fcn.0040d750
mov eax, dword [edi]
add esp, 4
test eax, eax
jne 0x4165de
push 0x80004003
call fcn.0048ff60
push 1
push 0x57c
lea esi, [esp + 0x24]
call fcn.0040f330
mov byte [esp + 0x43c], 0x30
mov eax, dword [eax]
push ebp
mov edx, ebx
mov ecx, eax
call fcn.00401080
mov byte [esp + 0x43c], 0x2f
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x416620
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x416620
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
test eax, eax
jne 0x416630
push 0x80004003
call fcn.0048ff60
push 1
push 0x589
lea esi, [esp + 0x24]
call fcn.0040f330
mov byte [esp + 0x43c], 0x31
mov eax, dword [eax]
push ebp
mov edx, ebx
mov ecx, eax
call fcn.00401080
mov byte [esp + 0x43c], 0x2f
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x41666c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 0
call fcn.00416bb0
mov byte [esp + 0x43c], 0x2e
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41669b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x43c], 0x2d
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4166c3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x43c], 4
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4166eb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x43c], 0xffffffff
mov eax, dword [esp + 0x20]
test eax, eax
je 0x416706
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, dword [esp + 0x434]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x41c]
xor ecx, esp
call fcn.0049021b
add esp, 0x42c
ret