Function at 0x10006060
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x108
mov eax, dword [0x100a1040]
xor eax, esp
mov dword [esp + 0x104], eax
mov eax, dword [ebp + 8]
push esi
push edi
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0xc]
push 4
mov dword [esp + 0x1c], eax
call fcn.10053c2b
add esp, 4
mov esi, eax
push 0x10
mov dword [esi], vtable.CISProductDef.0
call fcn.10053c2b
mov edi, eax
add esp, 4
lea eax, [edi + 4]
mov dword [eax], 1
mov dword [edi + 8], 1
mov dword [edi], vtable.std::_Ref_count_class_CProductDefBase_.0
mov dword [edi + 0xc], esi
lock inc dword [eax]
mov ecx, dword [0x100a4098]
mov dword [0x100a4094], esi
or esi, 0xffffffff
mov dword [esp + 0x54], ecx
mov dword [0x100a4098], edi
test ecx, ecx
je 0x10006100
mov eax, esi
lock xadd dword [ecx + 4], eax
jne 0x10006100
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [esp + 0x54]
mov eax, esi
lock xadd dword [ecx + 8], eax
jne 0x10006100
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, esi
lea ecx, [edi + 4]
lock xadd dword [ecx], eax
jne 0x10006123
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lea ecx, [edi + 8]
lock xadd dword [ecx], eax
jne 0x10006123
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
cmp dword [0x100a40bc], 0
jne 0x1000618f
push 0x4c
call fcn.10053c2b
mov edi, eax
add esp, 4
lea esi, [edi + 0xc]
mov dword [edi + 4], 1
mov ecx, esi
mov dword [edi + 8], 1
mov dword [edi], vtable.std::_Ref_count_obj2_class_CISProductUrlDef_.0
call fcn.1002d640
mov eax, dword [0x100a40c0]
mov dword [0x100a40c0], edi
mov edi, eax
mov dword [0x100a40bc], esi
or esi, 0xffffffff
test edi, edi
je 0x1000618f
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x1000618f
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x1000618f
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov eax, dword [0x100a40c0]
test eax, eax
je 0x1000619c
lock inc dword [eax + 4]
mov edi, dword [0x100a40c0]
mov ecx, dword [0x100a40bc]
mov dword [esp + 0x50], edi
lea eax, [edi + 4]
test edi, edi
je 0x100061bc
lock inc dword [eax]
lock inc dword [eax]
lock inc dword [eax]
mov dword [0x100a409c], ecx
mov ecx, dword [0x100a40a0]
mov dword [esp + 0x54], ecx
mov dword [0x100a40a0], edi
test ecx, ecx
je 0x100061f5
mov eax, esi
lock xadd dword [ecx + 4], eax
jne 0x100061f5
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [esp + 0x54]
mov eax, esi
lock xadd dword [ecx + 8], eax
jne 0x100061f5
mov eax, dword [ecx]
call dword [eax + 4]
test edi, edi
je 0x10006218
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x10006218
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x10006218
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
lea ecx, [esp + 0x5c]
push 0x1008f490
mov dword [esp + 0x60], eax
call fcn.10007ac0
test al, al
jne 0x10006257
push 0
push 0x1008f490
lea ecx, [esp + 0x64]
call fcn.10007d40
push ecx
push dword [esp + 0x5c]
xorps xmm0, xmm0
lea ecx, [esp + 0x68]
movaps xmmword [esp + 0x68], xmm0
movq qword [esp + 0x78], xmm0
call fcn.10051180
push ecx
mov dword [esp + 0x44], 0
mov edi, esp
mov dword [esp + 0x48], 0
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, edi
push str._force_install
mov dword [edi], eax
call fcn.10007ac0
test al, al
jne 0x100062bf
push 0xe
push str._force_install
mov ecx, edi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
je 0x100062eb
push 0x1008f490
push str.none
push str.d_install_force
call fcn.1002dfc0
add esp, 0xc
mov dword [esp + 0x40], 1
push ecx
mov edi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, edi
push str._dupdate
mov dword [edi], eax
call fcn.10007ac0
test al, al
jne 0x10006327
push 8
push str._dupdate
mov ecx, edi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
je 0x10006353
push 0x1008f490
push str.none
push str.d_install_update
call fcn.1002dfc0
add esp, 0xc
mov dword [esp + 0x44], 1
mov edi, dword [0x100a4098]
mov dword [esp + 0x54], 0
test edi, edi
je 0x1000636f
lock inc dword [edi + 4]
mov edi, dword [0x100a4098]
mov ecx, dword [0x100a4094]
lea edx, [esp + 0x58]
push edx
mov eax, dword [ecx]
call dword [eax + 0x30]
test edi, edi
je 0x100063a2
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x100063a2
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x100063a2
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
lea eax, [esp + 0x54]
push eax
push 0x201
push 0
push dword [esp + 0x64]
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edx, dword [esp + 0x58]
add edx, 0xfffffff0
test eax, eax
mov eax, esi
jne 0x10006486
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100063e0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esp + 0x40], 0
jne 0x10006498
cmp dword [esp + 0x44], 0
jne 0x10006498
push str.silent1update0fromdll
push str.cancel
push 0x1008f660
call fcn.1002dec0
add esp, 0xc
cmp dword [esp + 0x18], 0
je 0x1000647d
mov edi, dword [ebp + 0x10]
test edi, edi
jle 0x1000647d
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
push 1
mov dword [esp + 0x58], eax
lea eax, [esp + 0x58]
push 0x10092af0
push eax
call fcn.10007310
mov esi, dword [esp + 0x60]
add esp, 0xc
mov eax, dword [esi - 0xc]
inc eax
push eax
push esi
push edi
push dword [esp + 0x24]
call fcn.10058d4c
lea edx, [esi - 0x10]
add esp, 0x10
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1000647d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [esp + 0x5c]
jmp 0x1000703c
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10006498
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x58]
mov dword [esp + 0x58], 0
call fcn.100319b0
push dword [esp + 0x58]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x100064dc
push eax
push 0x80
push 2
push eax
push eax
push 0xc0000000
push dword [esp + 0x70]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x100064dc
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
lea ecx, [esp + 0x54]
push str._pid
mov dword [esp + 0x58], eax
call fcn.10007ac0
test al, al
jne 0x1000651b
push 4
push str._pid
lea ecx, [esp + 0x5c]
call fcn.10007d40
mov edi, dword [esp + 0x54]
push ecx
add edi, 0xfffffff0
mov esi, esp
mov ecx, edi
call fcn.10007880
add eax, 0x10
lea ecx, [esp + 0x64]
mov dword [esi], eax
call fcn.10052100
or esi, 0xffffffff
mov dword [esp + 0x54], eax
mov ecx, esi
lock xadd dword [edi + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x10006559
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x54]
cmp eax, 0xffffffff
je 0x1000662e
push ecx
mov edi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, edi
push str._pid
mov dword [edi], eax
call fcn.10007ac0
test al, al
jne 0x1000659e
push 4
push str._pid
mov ecx, edi
call fcn.10007d40
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x68]
call fcn.10052360
mov edi, dword [esp + 0x5c]
mov edx, dword [eax]
lea ecx, [edi - 0x10]
mov dword [esp + 0x1c], ecx
lea eax, [edx - 0x10]
mov dword [esp + 0x54], eax
cmp eax, ecx
je 0x10006611
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
jl 0x10006600
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x10006600
mov ecx, dword [esp + 0x54]
call fcn.10007880
mov dword [esp + 0x54], eax
mov ecx, esi
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x100065fb
mov edi, dword [esp + 0x1c]
push edi
mov ecx, dword [edi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x54]
lea edi, [eax + 0x10]
jmp 0x10006611
push dword [edx - 0xc]
lea ecx, [esp + 0x60]
push edx
call fcn.10007d40
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x14]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10006632
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x10006632
mov edi, dword [esp + 0x5c]
push ecx
lea ecx, [edi - 0x10]
mov esi, esp
call fcn.10007880
add eax, 0x10
push ecx
mov dword [esi], eax
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str.DPid
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x1000667e
push 4
push str.DPid
mov ecx, esi
call fcn.10007d40
push ecx
mov ecx, dword [esp + 0x64]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.10007880
add eax, 0x10
mov dword [esi], eax
call fcn.10005f70
push str.silent1update0fromdll
push str.start
push 0x1008f660
call fcn.1002dec0
add esp, 0xc
lea eax, [esp + 0x88]
push 0x80
push 0
push eax
call fcn.10055b90
add esp, 0xc
push 0
call fcn.10058ddb
add esp, 4
push edx
push eax
lea eax, [esp + 0x90]
push 0x10092ae4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
mov dword [esi], eax
lea eax, [esp + 0x8c]
push eax
call fcn.10007ac0
test al, al
jne 0x10006740
lea ecx, [esp + 0x8c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10006721
sub ecx, edx
lea eax, [esp + 0x8c]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.10007d40
push ecx
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str.InsTM
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x1000677c
push 5
push str.InsTM
mov ecx, esi
call fcn.10007d40
push ecx
mov ecx, dword [esp + 0x64]
mov esi, esp
add ecx, 0xfffffff0
call fcn.10007880
add eax, 0x10
mov dword [esi], eax
call fcn.10005f70
push ecx
mov dword [esp + 0x60], 1
mov esi, esp
mov dword [esp + 0x34], 0
mov dword [esp + 0x3c], 0
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._delay_create_link
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x100067e9
push 0x12
push str._delay_create_link
mov ecx, esi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
jne 0x10006849
push ecx
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._delay_all_entry
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006832
push 0x10
push str._delay_all_entry
mov ecx, esi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
jne 0x10006849
mov dword [esp + 0x28], 1
jmp 0x10006859
mov dword [esp + 0x5c], 0
mov dword [esp + 0x28], 0
push ecx
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._delay_create_register
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006895
push 0x16
push str._delay_create_register
mov ecx, esi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
jne 0x100068f5
push ecx
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._delay_all_entry
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x100068de
push 0x10
push str._delay_all_entry
mov ecx, esi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
jne 0x100068f5
mov dword [esp + 0x20], 1
jmp 0x1000695f
push ecx
mov dword [esp + 0x60], 0
mov esi, esp
mov dword [esp + 0x24], 0
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str.DCreateRK
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006941
push 9
push str.DCreateRK
mov ecx, esi
call fcn.10007d40
push ecx
mov ecx, dword [esp + 0x60]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.10007880
add eax, 0x10
mov ecx, 1
mov dword [esi], eax
call fcn.10005e30
push ecx
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._delay_create_shellmenu
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x1000699b
push 0x17
push str._delay_create_shellmenu
mov ecx, esi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
jne 0x100069fb
push ecx
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._delay_all_entry
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x100069e4
push 0x10
push str._delay_all_entry
mov ecx, esi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
jne 0x100069fb
mov dword [esp + 0x24], 1
jmp 0x10006a65
push ecx
mov dword [esp + 0x60], 0
mov esi, esp
mov dword [esp + 0x28], 0
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str.DCreateSM
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006a47
push 9
push str.DCreateSM
mov ecx, esi
call fcn.10007d40
push ecx
mov ecx, dword [esp + 0x60]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.10007880
add eax, 0x10
mov ecx, 1
mov dword [esi], eax
call fcn.10005e30
push ecx
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._delay_auto_run
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006aa1
push 0xf
push str._delay_auto_run
mov ecx, esi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
jne 0x10006b07
push ecx
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._delay_all_entry
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006aea
push 0x10
push str._delay_all_entry
mov ecx, esi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
jne 0x10006b07
mov dword [esp + 0x34], 1
cmp dword [esp + 0x5c], eax
jne 0x10006b66
jmp 0x10006b0f
mov dword [esp + 0x34], 0
push ecx
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str.ActFlag
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006b4b
push 7
push str.ActFlag
mov ecx, esi
call fcn.10007d40
push ecx
mov ecx, dword [esp + 0x60]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.10007880
add eax, 0x10
xor ecx, ecx
mov dword [esi], eax
call fcn.10005e30
push ecx
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._des
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006ba2
push 4
push str._des
mov ecx, esi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
jne 0x10006c00
push ecx
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._delay_all_entry
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006beb
push 0x10
push str._delay_all_entry
mov ecx, esi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
mov dword [esp + 0x2c], 1
test eax, eax
je 0x10006c08
mov dword [esp + 0x2c], 0
push ecx
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._delay_assoc_img_file
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006c44
push 0x15
push str._delay_assoc_img_file
mov ecx, esi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
jne 0x10006ca4
push ecx
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._delay_all_entry
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006c8d
push 0x10
push str._delay_all_entry
mov ecx, esi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
jne 0x10006ca4
mov dword [esp + 0x3c], 1
jmp 0x10006d06
push ecx
mov dword [esp + 0x40], 0
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str.DAIF
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006ce8
push 4
push str.DAIF
mov ecx, esi
call fcn.10007d40
push ecx
mov ecx, dword [esp + 0x60]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.10007880
add eax, 0x10
mov ecx, 1
mov dword [esi], eax
call fcn.10005e30
cmp dword [esp + 0x44], 0
je 0x10006d22
xorps xmm0, xmm0
mov dword [esp + 0x34], 0
mov dword [esp + 0x3c], 0
jmp 0x10006d27
movaps xmm0, xmmword [esp + 0x20]
sub esp, 0x28
lea ecx, [edi - 0x10]
mov eax, esp
sub esp, 8
mov esi, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [esp + 0x60]
movups xmmword [eax + 0x10], xmm0
movq xmm0, qword [esp + 0x70]
movq qword [eax + 0x20], xmm0
call fcn.10007880
sub esp, 8
add eax, 0x10
mov dword [esi], eax
call fcn.10007150
mov ecx, eax
call fcn.100086d0
push ecx
mov dword [esp + 0x20], eax
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._delay_create_register
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006da4
push 0x16
push str._delay_create_register
mov ecx, esi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
jne 0x10006dfe
push ecx
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str._delay_all_entry
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006ded
push 0x10
push str._delay_all_entry
mov ecx, esi
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
je 0x10006ebf
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x54], eax
call fcn.10007150
lea ecx, [esp + 0x54]
push ecx
lea ecx, [eax + 0x10c]
push ecx
mov ecx, eax
call fcn.1000b580
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
push ecx
mov ecx, eax
mov dword [esp + 0x18], eax
mov esi, esp
call fcn.10007880
add eax, 0x10
push ecx
mov dword [esi], eax
mov esi, esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov ecx, esi
push str.ProgVer
mov dword [esi], eax
call fcn.10007ac0
test al, al
jne 0x10006e89
push 7
push str.ProgVer
mov ecx, esi
call fcn.10007d40
push ecx
mov ecx, dword [esp + 0x64]
mov esi, esp
add ecx, 0xfffffff0
call fcn.10007880
add eax, 0x10
mov dword [esi], eax
call fcn.10005f70
mov edx, dword [esp + 0x14]
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10006ec2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x10006ec2
or esi, 0xffffffff
push ecx
mov dword [esp + 0x58], esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov ecx, dword [esp + 0x58]
add eax, 0x10
push str._des
mov dword [ecx], eax
call fcn.10007ac0
test al, al
jne 0x10006f04
mov ecx, dword [esp + 0x58]
push 4
push str._des
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
jne 0x10006f60
push ecx
mov dword [esp + 0x58], esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov ecx, dword [esp + 0x58]
add eax, 0x10
push str._delay_all_entry
mov dword [ecx], eax
call fcn.10007ac0
test al, al
jne 0x10006f53
mov ecx, dword [esp + 0x58]
push 0x10
push str._delay_all_entry
call fcn.10007d40
lea ecx, [esp + 0x64]
call fcn.10052270
test eax, eax
je 0x10006fae
push ecx
mov dword [esp + 0x58], esp
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov ecx, dword [esp + 0x58]
add eax, 0x10
push 0x10092994
mov dword [ecx], eax
call fcn.10007ac0
test al, al
jne 0x10006fa2
mov ecx, dword [esp + 0x58]
push 3
push 0x10092994
call fcn.10007d40
call fcn.10007150
mov ecx, eax
call fcn.1000a180
cmp dword [esp + 0x18], 0
je 0x10007021
cmp dword [ebp + 0x10], 0
jle 0x10007021
call fcn.10004070
mov ecx, eax
test ecx, ecx
je 0x100070ec
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
push dword [esp + 0x1c]
add eax, 0x10
mov dword [esp + 0x58], eax
lea eax, [esp + 0x58]
push 0x10092af0
push eax
call fcn.10007310
mov esi, dword [esp + 0x60]
add esp, 0xc
mov eax, dword [esi - 0xc]
inc eax
push eax
push esi
push dword [ebp + 0x10]
push dword [esp + 0x24]
call fcn.10058d4c
lea edx, [esi - 0x10]
add esp, 0x10
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10007021
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x58]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1000703c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x10007059
mov edx, dword [esp + 0x68]
call fcn.100074f0
push dword [esp + 0x64]
call fcn.10058c58
add esp, 4
mov edx, dword [esp + 0x60]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10007074
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x1000708b
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [esp + 0x50]
test edi, edi
je 0x100070d4
mov eax, esi
lea ecx, [edi + 4]
lock xadd dword [ecx], eax
jne 0x100070b7
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x100070b4
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
lea ecx, [edi + 4]
mov eax, esi
lock xadd dword [ecx], eax
jne 0x100070d4
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x100070d4
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov ecx, dword [esp + 0x10c]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.100535a4
mov esp, ebp
pop ebp
ret 0xc
push 0x80004005
call fcn.10001410
int3