Function at 0x435750
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56fd82
mov eax, dword fs:[0]
push eax
sub esp, 0x2a4
mov eax, dword [0x5cc6c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x234], 0
lea esi, [ecx + 0x88]
call fcn.004062e0
mov ecx, eax
test ecx, ecx
je 0x4361f9
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x25c], eax
push 0x5805ec
lea ecx, [ebp - 0x25c]
mov dword [ebp - 4], 0
call fcn.004088d0
test al, al
jne 0x4357d8
push 0
push 0x5805ec
lea ecx, [ebp - 0x25c]
call fcn.00406810
push 0x20
push str.product_info.inst_check.reg_item
lea ecx, [ebp - 0x298]
mov dword [ebp - 4], 1
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 0xf
mov byte [ebp - 0x298], 0
call fcn.00406f00
push 0xfde9
lea eax, [ebp - 0x25c]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x298]
mov ecx, esi
push eax
lea eax, [ebp - 0x234]
push eax
call fcn.0047b510
mov edx, dword [ebp - 0x284]
mov byte [ebp - 4], 4
cmp edx, 0x10
jb 0x43586f
mov ecx, dword [ebp - 0x298]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x435865
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x436203
push edx
push ecx
call fcn.004f9e2c
add esp, 8
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 0xf
mov byte [ebp - 0x298], 0
mov edx, dword [ebp - 0x25c]
or ebx, 0xffffffff
mov byte [ebp - 4], 5
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4358ae
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x230], 0
call fcn.004062e0
mov ecx, eax
test ecx, ecx
je 0x436208
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x254], eax
push 0x5805ec
lea ecx, [ebp - 0x254]
mov byte [ebp - 4], 6
call fcn.004088d0
test al, al
jne 0x4358ff
push 0
push 0x5805ec
lea ecx, [ebp - 0x254]
call fcn.00406810
push 0x25
push str.product_info.inst_check.reg_inst_name
lea ecx, [ebp - 0x280]
mov byte [ebp - 4], 7
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 0xf
mov byte [ebp - 0x280], 0
call fcn.00406f00
push 0xfde9
lea eax, [ebp - 0x254]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x280]
mov ecx, esi
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.0047b510
mov edx, dword [ebp - 0x26c]
mov byte [ebp - 4], 0xa
cmp edx, 0x10
jb 0x435993
mov ecx, dword [ebp - 0x280]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x435989
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x436212
push edx
push ecx
call fcn.004f9e2c
add esp, 8
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 0xf
mov byte [ebp - 0x280], 0
mov edx, dword [ebp - 0x254]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4359cb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xc
call fcn.004062e0
mov ecx, eax
test ecx, ecx
je 0x436217
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x25c], eax
xorps xmm0, xmm0
mov dword [ebp - 0x224], 0
movq qword [ebp - 0x22c], xmm0
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 0
mov byte [ebp - 4], 0xe
call fcn.00436240
test eax, eax
je 0x435c59
call fcn.004062e0
mov ecx, eax
test ecx, ecx
je 0x436221
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x254], eax
push 0x5805ec
lea ecx, [ebp - 0x254]
mov byte [ebp - 4], 0xf
call fcn.004088d0
test al, al
jne 0x435a77
push 0
push 0x5805ec
lea ecx, [ebp - 0x254]
call fcn.00406810
push 0x23
push str.product_info.inst_check.main_exe_64
lea ecx, [ebp - 0x280]
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 0xf
mov byte [ebp - 0x280], 0
call fcn.00406f00
push 0xfde9
lea eax, [ebp - 0x254]
mov byte [ebp - 4], 0x11
push eax
lea eax, [ebp - 0x280]
mov ecx, esi
push eax
lea eax, [ebp - 0x268]
push eax
call fcn.0047b510
push eax
lea ecx, [ebp - 0x25c]
mov byte [ebp - 4], 0x12
call fcn.00408680
mov edx, dword [ebp - 0x268]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x435afa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x26c]
mov byte [ebp - 4], 0x10
cmp edx, 0x10
jb 0x435b38
mov ecx, dword [ebp - 0x280]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x435b2e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43622b
push edx
push ecx
call fcn.004f9e2c
add esp, 8
mov edx, dword [ebp - 0x254]
mov eax, ebx
mov dword [ebp - 0x270], 0
add edx, 0xfffffff0
mov dword [ebp - 0x26c], 0xf
mov byte [ebp - 0x280], 0
mov byte [ebp - 4], 0xe
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x435b74
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x264], 0x20219
mov dword [ebp - 0x260], reloc.OLEAUT32.dll_SysReAllocString
cmp dword [ebp - 0x224], eax
je 0x435bb4
mov dword [eax], 0x20219
mov dword [eax + 4], reloc.OLEAUT32.dll_SysReAllocString
mov eax, dword [ebp - 0x228]
add eax, 8
mov dword [ebp - 0x228], eax
jmp 0x435bcd
lea ecx, [ebp - 0x264]
push ecx
push eax
lea ecx, [ebp - 0x22c]
call fcn.0042fa30
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x264], 0x20119
mov dword [ebp - 0x260], reloc.OLEAUT32.dll_SysReAllocString
cmp dword [ebp - 0x224], eax
je 0x435c07
mov dword [eax], 0x20119
mov dword [eax + 4], reloc.OLEAUT32.dll_SysReAllocString
mov eax, dword [ebp - 0x228]
add eax, 8
mov dword [ebp - 0x228], eax
jmp 0x435c20
lea ecx, [ebp - 0x264]
push ecx
push eax
lea ecx, [ebp - 0x22c]
call fcn.0042fa30
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x264], 0x20119
mov dword [ebp - 0x260], SysReAllocString
cmp dword [ebp - 0x224], eax
je 0x435e28
mov dword [eax], 0x20119
mov dword [eax + 4], SysReAllocString
add dword [ebp - 0x228], 8
jmp 0x435e3b
call fcn.004062e0
mov ecx, eax
test ecx, ecx
je 0x436230
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x254], eax
push 0x5805ec
lea ecx, [ebp - 0x254]
mov byte [ebp - 4], 0x13
call fcn.004088d0
test al, al
jne 0x435ca0
push 0
push 0x5805ec
lea ecx, [ebp - 0x254]
call fcn.00406810
push 0x23
push str.product_info.inst_check.main_exe_32
lea ecx, [ebp - 0x280]
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 0xf
mov byte [ebp - 0x280], 0
call fcn.00406f00
push 0xfde9
lea eax, [ebp - 0x254]
mov byte [ebp - 4], 0x15
push eax
lea eax, [ebp - 0x280]
mov ecx, esi
push eax
lea eax, [ebp - 0x268]
push eax
call fcn.0047b510
push eax
lea ecx, [ebp - 0x25c]
mov byte [ebp - 4], 0x16
call fcn.00408680
mov edx, dword [ebp - 0x268]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x435d23
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x26c]
mov byte [ebp - 4], 0x14
cmp edx, 0x10
jb 0x435d61
mov ecx, dword [ebp - 0x280]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x435d57
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43623a
push edx
push ecx
call fcn.004f9e2c
add esp, 8
mov edx, dword [ebp - 0x254]
mov eax, ebx
mov dword [ebp - 0x270], 0
add edx, 0xfffffff0
mov dword [ebp - 0x26c], 0xf
mov byte [ebp - 0x280], 0
mov byte [ebp - 4], 0xe
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x435d9d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x264], 0x20219
mov dword [ebp - 0x260], reloc.OLEAUT32.dll_SysReAllocString
cmp dword [ebp - 0x224], eax
je 0x435ddd
mov dword [eax], 0x20219
mov dword [eax + 4], reloc.OLEAUT32.dll_SysReAllocString
mov eax, dword [ebp - 0x228]
add eax, 8
mov dword [ebp - 0x228], eax
jmp 0x435df6
lea ecx, [ebp - 0x264]
push ecx
push eax
lea ecx, [ebp - 0x22c]
call fcn.0042fa30
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x264], 0x20219
mov dword [ebp - 0x260], SysReAllocString
cmp dword [ebp - 0x224], eax
je 0x435e28
mov dword [eax], 0x20219
mov dword [eax + 4], SysReAllocString
add dword [ebp - 0x228], 8
jmp 0x435e3b
lea ecx, [ebp - 0x264]
push ecx
push eax
lea ecx, [ebp - 0x22c]
call fcn.0042fa30
mov ecx, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x228]
mov esi, dword [ebp - 0x25c]
mov byte [ebp - 0x255], 0
mov dword [ebp - 0x268], ecx
mov dword [ebp - 0x260], eax
cmp ecx, eax
je 0x43614e
mov edi, dword [ecx]
xor ebx, ebx
xorps xmm0, xmm0
mov dword [ebp - 0x284], 0
movq qword [ebp - 0x28c], xmm0
mov dword [ebp - 0x28c], ebx
mov dword [ebp - 0x288], ebx
mov dword [ebp - 0x284], ebx
lea eax, [ebp - 0x250]
mov dword [ebp - 0x250], ebx
push eax
push edi
push ebx
push dword [ebp - 0x234]
push dword [ecx + 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x435ecd
mov ebx, dword [ebp - 0x250]
and edi, 0x300
mov dword [ebp - 0x28c], ebx
mov dword [ebp - 0x288], edi
mov byte [ebp - 4], 0x17
test eax, eax
jne 0x4360d3
mov dword [ebp - 0x2a0], eax
mov word [ebp - 0x2b0], ax
mov eax, dword [ebp - 0x230]
mov edx, eax
mov dword [ebp - 0x29c], 7
lea edi, [edx + 2]
nop dword [eax + eax]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x435f00
sub edx, edi
lea ecx, [ebp - 0x2b0]
sar edx, 1
push edx
push eax
call fcn.00406a80
xor eax, eax
mov byte [ebp - 4], 0x19
push eax
push 0x5805ec
lea ecx, [ebp - 0x280]
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 7
mov word [ebp - 0x280], ax
call fcn.00406a80
lea eax, [ebp - 0x2b0]
mov byte [ebp - 4], 0x1a
push eax
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x24c]
push ebx
push eax
call fcn.0041b130
add esp, 0x10
mov edx, dword [ebp - 0x26c]
mov byte [ebp - 4], 0x1c
cmp edx, 8
jb 0x435fb4
mov ecx, dword [ebp - 0x280]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x435faa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x436203
push edx
push ecx
call fcn.004f9e2c
add esp, 8
xor eax, eax
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 7
mov word [ebp - 0x280], ax
mov edx, dword [ebp - 0x29c]
mov byte [ebp - 4], 0x1d
cmp edx, 8
jb 0x436015
mov ecx, dword [ebp - 0x2b0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43600b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x436203
push edx
push ecx
call fcn.004f9e2c
add esp, 8
xor eax, eax
mov dword [ebp - 0x2a0], 0
cmp dword [ebp - 0x238], 8
lea edi, [ebp - 0x24c]
push 0x210
cmovae edi, dword [ebp - 0x24c]
push eax
mov word [ebp - 0x2b0], ax
mov dword [ebp - 0x254], eax
lea eax, [ebp - 0x220]
push eax
mov dword [ebp - 0x29c], 7
call fcn.0053f0a0
add esp, 0xc
test edi, edi
je 0x436088
xor eax, eax
cmp ax, word [edi]
je 0x436088
test esi, esi
je 0x43608e
cmp ax, word [esi]
je 0x43608e
push esi
push edi
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov edi, eax
jmp 0x43608e
lea edi, [ebp - 0x220]
push edi
lea ecx, [ebp - 0x254]
call fcn.0040a2d0
push dword [ebp - 0x254]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edx, dword [ebp - 0x254]
add edx, 0xfffffff0
test eax, eax
jne 0x436113
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4360c8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x24c]
call fcn.00406060
mov byte [ebp - 4], 0xe
test ebx, ebx
je 0x4360ec
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x28c], 0
mov ecx, dword [ebp - 0x268]
add ecx, 8
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x268], ecx
cmp ecx, dword [ebp - 0x260]
jne 0x435e68
jmp 0x436145
mov byte [ebp - 0x255], 1
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43612f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x24c]
call fcn.00406060
test ebx, ebx
je 0x436145
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x22c]
or ebx, 0xffffffff
test ecx, ecx
je 0x436188
mov eax, dword [ebp - 0x224]
sub eax, ecx
sar eax, 3
push eax
push ecx
lea ecx, [ebp - 0x22c]
call fcn.0041ffb0
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 0
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x43619f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x230]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4361bc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x4361d7
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov al, byte [ebp - 0x255]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004fa0d4
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.004061e0
call fcn.00542930
push 0x80004005
call fcn.004061e0
call fcn.00542930
push 0x80004005
call fcn.004061e0
push 0x80004005
call fcn.004061e0
call fcn.00542930
push 0x80004005
call fcn.004061e0
call fcn.00542930
int3