Function at 0x10022cc0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1013950f
mov eax, dword fs:[0]
push eax
sub esp, 0x2b4
mov eax, dword [0x10187468]
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 - 0x25c], 0
lea edi, [ecx + 0x88]
call fcn.10006e10
mov ecx, eax
test ecx, ecx
je 0x10023780
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x26c], eax
mov esi, 0x10145878
mov dword [ebp - 4], 0
shr esi, 0x10
lea ecx, [ebp - 0x26c]
mov eax, 0x10145878
test esi, esi
jne 0x10022d44
movzx eax, ax
push eax
call fcn.10007f20
jmp 0x10022d50
push 0
push 0x10145878
call fcn.100083a0
movaps xmm0, xmmword [0x10146ca0]
lea eax, [ebp - 0x34]
movups xmmword [ebp - 0x34], xmm0
lea ecx, [ebp - 0x2a8]
mov dword [ebp - 4], 1
movaps xmm0, xmmword [0x10146c50]
push 0x20
push eax
movups xmmword [ebp - 0x24], xmm0
mov byte [ebp - 0x14], 0
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x294], 0xf
mov byte [ebp - 0x2a8], 0
call fcn.1000eb30
push 0xfde9
lea eax, [ebp - 0x26c]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x2a8]
mov ecx, edi
push eax
lea eax, [ebp - 0x25c]
push eax
call fcn.1003f250
mov edx, dword [ebp - 0x294]
mov byte [ebp - 4], 4
cmp edx, 0x10
jb 0x10022e00
mov ecx, dword [ebp - 0x2a8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10022df6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002378a
push edx
push ecx
call fcn.100c522c
add esp, 8
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x294], 0xf
mov byte [ebp - 0x2a8], 0
mov edx, dword [ebp - 0x26c]
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 0x10022e3f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x258], 0
call fcn.10006e10
mov ecx, eax
test ecx, ecx
je 0x1002378f
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x264], eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x264]
test esi, esi
jne 0x10022e84
mov eax, 0x10145878
movzx eax, ax
push eax
call fcn.10007f20
jmp 0x10022e90
push 0
push 0x10145878
call fcn.100083a0
movaps xmm0, xmmword [0x10146ca0]
lea eax, [ebp - 0x38]
movups xmmword [ebp - 0x38], xmm0
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 7
movaps xmm0, xmmword [0x10146cd0]
push 0x25
push eax
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0x6d616e5f
mov word [ebp - 0x14], 0x65
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 0xf
mov byte [ebp - 0x290], 0
call fcn.1000eb30
push 0xfde9
lea eax, [ebp - 0x264]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x290]
mov ecx, edi
push eax
lea eax, [ebp - 0x258]
push eax
call fcn.1003f250
mov edx, dword [ebp - 0x27c]
mov byte [ebp - 4], 0xa
cmp edx, 0x10
jb 0x10022f46
mov ecx, dword [ebp - 0x290]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10022f3c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10023799
push edx
push ecx
call fcn.100c522c
add esp, 8
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 0xf
mov byte [ebp - 0x290], 0
mov edx, dword [ebp - 0x264]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10022f7e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xc
call fcn.10006e10
mov ecx, eax
test ecx, ecx
je 0x1002379e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x26c], eax
xorps xmm0, xmm0
mov dword [ebp - 0x24c], 0
movq qword [ebp - 0x254], xmm0
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 0
mov byte [ebp - 4], 0xe
call fcn.100091a0
test eax, eax
je 0x10023228
call fcn.10006e10
mov ecx, eax
test ecx, ecx
je 0x100237a8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x264], eax
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x264]
test esi, esi
jne 0x1002301e
mov eax, 0x10145878
movzx eax, ax
push eax
call fcn.10007f20
jmp 0x1002302a
push 0
push 0x10145878
call fcn.100083a0
movaps xmm0, xmmword [0x10146ca0]
lea eax, [ebp - 0x38]
movups xmmword [ebp - 0x38], xmm0
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 0x10
movaps xmm0, xmmword [0x10146bc0]
push 0x23
push eax
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0x34365f
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 0xf
mov byte [ebp - 0x290], 0
call fcn.1000eb30
push 0xfde9
lea eax, [ebp - 0x264]
mov byte [ebp - 4], 0x11
push eax
lea eax, [ebp - 0x290]
mov ecx, edi
push eax
lea eax, [ebp - 0x278]
push eax
call fcn.1003f250
push eax
lea ecx, [ebp - 0x26c]
mov byte [ebp - 4], 0x12
call fcn.100066b0
mov edx, dword [ebp - 0x278]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100230c9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x27c]
mov byte [ebp - 4], 0x10
cmp edx, 0x10
jb 0x10023107
mov ecx, dword [ebp - 0x290]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100230fd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100237b2
push edx
push ecx
call fcn.100c522c
add esp, 8
mov edx, dword [ebp - 0x264]
mov eax, ebx
mov dword [ebp - 0x280], 0
add edx, 0xfffffff0
mov dword [ebp - 0x27c], 0xf
mov byte [ebp - 0x290], 0
mov byte [ebp - 4], 0xe
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10023143
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x274], 0x20219
mov dword [ebp - 0x270], reloc.OLEAUT32.dll_SysReAllocString
cmp dword [ebp - 0x24c], eax
je 0x10023183
mov dword [eax], 0x20219
mov dword [eax + 4], reloc.OLEAUT32.dll_SysReAllocString
mov eax, dword [ebp - 0x250]
add eax, 8
mov dword [ebp - 0x250], eax
jmp 0x1002319c
lea ecx, [ebp - 0x274]
push ecx
push eax
lea ecx, [ebp - 0x254]
call fcn.1001aca0
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x274], 0x20119
mov dword [ebp - 0x270], reloc.OLEAUT32.dll_SysReAllocString
cmp dword [ebp - 0x24c], eax
je 0x100231d6
mov dword [eax], 0x20119
mov dword [eax + 4], reloc.OLEAUT32.dll_SysReAllocString
mov eax, dword [ebp - 0x250]
add eax, 8
mov dword [ebp - 0x250], eax
jmp 0x100231ef
lea ecx, [ebp - 0x274]
push ecx
push eax
lea ecx, [ebp - 0x254]
call fcn.1001aca0
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x274], 0x20119
mov dword [ebp - 0x270], VariantCopy
cmp dword [ebp - 0x24c], eax
je 0x10023413
mov dword [eax], 0x20119
mov dword [eax + 4], SysReAllocString
add dword [ebp - 0x250], 8
jmp 0x10023426
call fcn.10006e10
mov ecx, eax
test ecx, ecx
je 0x100237b7
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x264], eax
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x264]
test esi, esi
jne 0x10023263
mov eax, 0x10145878
movzx eax, ax
push eax
call fcn.10007f20
jmp 0x1002326f
push 0
push 0x10145878
call fcn.100083a0
movaps xmm0, xmmword [0x10146ca0]
lea eax, [ebp - 0x38]
movups xmmword [ebp - 0x38], xmm0
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 0x14
movaps xmm0, xmmword [0x10146bc0]
push 0x23
push eax
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0x32335f
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 0xf
mov byte [ebp - 0x290], 0
call fcn.1000eb30
push 0xfde9
lea eax, [ebp - 0x264]
mov byte [ebp - 4], 0x15
push eax
lea eax, [ebp - 0x290]
mov ecx, edi
push eax
lea eax, [ebp - 0x278]
push eax
call fcn.1003f250
push eax
lea ecx, [ebp - 0x26c]
mov byte [ebp - 4], 0x16
call fcn.100066b0
mov edx, dword [ebp - 0x278]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1002330e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x27c]
mov byte [ebp - 4], 0x14
cmp edx, 0x10
jb 0x1002334c
mov ecx, dword [ebp - 0x290]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10023342
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100237c1
push edx
push ecx
call fcn.100c522c
add esp, 8
mov edx, dword [ebp - 0x264]
mov eax, ebx
mov dword [ebp - 0x280], 0
add edx, 0xfffffff0
mov dword [ebp - 0x27c], 0xf
mov byte [ebp - 0x290], 0
mov byte [ebp - 4], 0xe
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10023388
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x274], 0x20219
mov dword [ebp - 0x270], reloc.OLEAUT32.dll_SysReAllocString
cmp dword [ebp - 0x24c], eax
je 0x100233c8
mov dword [eax], 0x20219
mov dword [eax + 4], reloc.OLEAUT32.dll_SysReAllocString
mov eax, dword [ebp - 0x250]
add eax, 8
mov dword [ebp - 0x250], eax
jmp 0x100233e1
lea ecx, [ebp - 0x274]
push ecx
push eax
lea ecx, [ebp - 0x254]
call fcn.1001aca0
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x274], 0x20219
mov dword [ebp - 0x270], VariantCopy
cmp dword [ebp - 0x24c], eax
je 0x10023413
mov dword [eax], 0x20219
mov dword [eax + 4], SysReAllocString
add dword [ebp - 0x250], 8
jmp 0x10023426
lea ecx, [ebp - 0x274]
push ecx
push eax
lea ecx, [ebp - 0x254]
call fcn.1001aca0
mov ecx, dword [ebp - 0x254]
mov eax, dword [ebp - 0x250]
mov esi, dword [ebp - 0x26c]
mov byte [ebp - 0x265], 0
mov dword [ebp - 0x278], ecx
mov dword [ebp - 0x270], eax
cmp ecx, eax
je 0x100236d5
mov edi, dword [ecx]
xor ebx, ebx
xorps xmm0, xmm0
mov dword [ebp - 0x294], 0
movq qword [ebp - 0x29c], xmm0
mov dword [ebp - 0x29c], ebx
mov dword [ebp - 0x298], ebx
mov dword [ebp - 0x294], ebx
lea eax, [ebp - 0x260]
mov dword [ebp - 0x260], ebx
push eax
push edi
push ebx
push dword [ebp - 0x25c]
push dword [ecx + 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x100234b8
mov ebx, dword [ebp - 0x260]
and edi, 0x300
mov dword [ebp - 0x29c], ebx
mov dword [ebp - 0x298], edi
mov byte [ebp - 4], 0x17
test eax, eax
jne 0x1002365d
mov dword [ebp - 0x2b0], eax
mov word [ebp - 0x2c0], ax
mov eax, dword [ebp - 0x258]
mov edx, eax
mov dword [ebp - 0x2ac], 7
lea edi, [edx + 2]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x100234e6
sub edx, edi
lea ecx, [ebp - 0x2c0]
sar edx, 1
push edx
push eax
call fcn.10009e50
xor eax, eax
mov byte [ebp - 4], 0x19
push eax
push 0x10145878
lea ecx, [ebp - 0x290]
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 7
mov word [ebp - 0x290], ax
call fcn.10009e50
lea eax, [ebp - 0x2c0]
mov byte [ebp - 4], 0x1a
push eax
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x2c]
push ebx
push eax
call fcn.10011420
add esp, 0x10
mov edx, dword [ebp - 0x27c]
mov byte [ebp - 4], 0x1c
cmp edx, 8
jb 0x10023597
mov ecx, dword [ebp - 0x290]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002358d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002378a
push edx
push ecx
call fcn.100c522c
add esp, 8
xor eax, eax
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 7
mov word [ebp - 0x290], ax
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 0x1d
call fcn.100089e0
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x248]
push 0x210
push 0
lea edi, [ebp - 0x2c]
mov dword [ebp - 0x264], 0
cmovae edi, dword [ebp - 0x2c]
push eax
call fcn.10109d00
add esp, 0xc
test edi, edi
je 0x10023615
xor eax, eax
cmp ax, word [edi]
je 0x10023615
test esi, esi
je 0x1002361b
cmp ax, word [esi]
je 0x1002361b
push esi
push edi
lea eax, [ebp - 0x248]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov edi, eax
jmp 0x1002361b
lea edi, [ebp - 0x248]
push edi
lea ecx, [ebp - 0x264]
call fcn.10006420
push dword [ebp - 0x264]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edx, dword [ebp - 0x264]
add edx, 0xfffffff0
test eax, eax
jne 0x1002369d
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10023655
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x2c]
call fcn.100089e0
mov byte [ebp - 4], 0xe
test ebx, ebx
je 0x10023676
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x29c], 0
mov ecx, dword [ebp - 0x278]
add ecx, 8
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x278], ecx
cmp ecx, dword [ebp - 0x270]
jne 0x10023453
jmp 0x100236cc
mov byte [ebp - 0x265], 1
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100236b9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x2c]
call fcn.100089e0
test ebx, ebx
je 0x100236cc
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x254]
or ebx, 0xffffffff
test ecx, ecx
je 0x1002370f
mov eax, dword [ebp - 0x24c]
sub eax, ecx
sar eax, 3
push eax
push ecx
lea ecx, [ebp - 0x254]
call fcn.100263d0
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 0
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x10023726
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x258]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10023743
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x25c]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x1002375e
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov al, byte [ebp - 0x265]
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.100c55ab
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.10006b70
call fcn.1010d560
push 0x80004005
call fcn.10006b70
call fcn.1010d560
push 0x80004005
call fcn.10006b70
push 0x80004005
call fcn.10006b70
call fcn.1010d560
push 0x80004005
call fcn.10006b70
call fcn.1010d560
int3