Function at 0x23a23210
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x78
push 0xffffffffffffffff
push 0x23bcff94
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x50c
push ebx
push esi
push edi
lea eax, [ebp + 0x2c]
mov dword [ebp - 0x10], esp
mov esi, ecx
mov ebx, 8
push eax
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x30], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
call fcn.23a3c68a
lea ecx, [ebp + 0x77]
call fcn.23b25dd0
xor edi, edi
mov ecx, eax
mov dword [ebp - 4], edi
call fcn.23a7b540
lea ecx, [ebp + 0x77]
mov dword [ebp - 4], 0xffffffff
call fcn.23a7c200
mov ecx, esi
call fcn.23a224e0
mov ecx, esi
call fcn.23a37268
push 0xd0
mov dword [ebp - 4], 1
call fcn.23a2ecec
mov ecx, eax
add esp, 4
mov dword [ebp + 0x70], ecx
mov byte [ebp - 4], 2
cmp ecx, edi
je 0x23a232b7
call fcn.23a1e9c0
mov ecx, eax
jmp 0x23a232b9
xor ecx, ecx
mov byte [ebp - 4], 1
mov dword [esi + 0x1c8], ecx
call fcn.23a1f910
xor ecx, ecx
mov dword [ebp + 0x50], 7
mov dword [ebp + 0x4c], edi
mov word [ebp + 0x3c], cx
lea ecx, [ebp + 0x38]
mov dword [ebp - 4], 4
call fcn.23a036c0
mov edx, dword [esi + 0x1c8]
mov eax, dword [edx + 0x1c]
push eax
lea ecx, [ebp + 0x38]
call fcn.23a03640
cmp dword [ebp + 0x50], ebx
mov ebx, dword [ebp + 0x3c]
jae 0x23a23304
lea ebx, [ebp + 0x3c]
cmp dword [esi + 0x1c4], 0
lea edi, [esi + 0x1c0]
je 0x23a2331a
mov ecx, edi
call fcn.23a0e4e0
push 8
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [edi + 4], eax
test eax, eax
jne 0x23a23371
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
push edi
push ebx
push str.LoadLibraryEx___s___failed_with_0x_08X_error
call dword [0x23c41f28]
add esp, 0xc
test edi, edi
je 0x23a23371
push 0
push 0
push str.Cannot_load_setup_resources
call fcn.23a3c533
cmp dword [ebp + 0x50], 8
jb 0x23a23686
mov eax, dword [ebp + 0x3c]
push eax
call fcn.23a2ed1b
add esp, 4
jmp 0x23a23686
mov edi, dword [esi + 0x1c4]
call fcn.23a3b00e
mov ebx, 8
mov dword [eax + 0xc], edi
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp + 0x50], ebx
jb 0x23a2339c
mov ecx, dword [ebp + 0x3c]
push ecx
call fcn.23a2ed1b
add esp, 4
mov eax, dword [esi + 0x50]
test eax, eax
je 0x23a233ac
push eax
call fcn.23a4accd
add esp, 4
call fcn.23a36735
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x23a233c6
push 0x80004005
call fcn.23a0ef50
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp + 0x70], eax
mov ecx, dword [esi + 0x1c8]
mov edx, dword [ecx + 0x24]
push edx
lea eax, [ebp + 0x70]
push 0x82
push eax
mov dword [ebp - 4], 5
call fcn.23a22930
mov edi, dword [ebp + 0x70]
push edi
call fcn.23a4ac75
mov dword [esi + 0x50], eax
lea eax, [edi - 0x10]
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x23a23426
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp]
call fcn.23a0f250
lea ecx, [ebp]
push ecx
mov ecx, esi
mov dword [ebp - 4], 6
call fcn.23a36dc5
mov edi, 7
xor eax, eax
xor edx, edx
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x68], eax
mov word [ebp + 0x58], dx
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x4c], eax
mov word [ebp + 0x3c], ax
lea ecx, [ebp + 0x38]
mov byte [ebp - 4], 8
call fcn.23a036c0
lea ecx, [ebp + 0x38]
call fcn.23a035f0
mov eax, dword [ebp + 0x3c]
cmp dword [ebp + 0x50], ebx
jae 0x23a2347c
lea eax, [ebp + 0x3c]
push str.Silent.xml
push eax
lea ecx, [ebp + 0x54]
call fcn.23a034b0
mov byte [ebp - 4], 7
cmp dword [ebp + 0x50], ebx
jb 0x23a2349f
mov ecx, dword [ebp + 0x3c]
push ecx
call fcn.23a2ed1b
add esp, 4
cmp dword [ebp + 0x28], edi
je 0x23a23513
mov eax, dword [ebp + 0x58]
cmp dword [ebp + 0x6c], ebx
jae 0x23a234af
lea eax, [ebp + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x23a23513
mov eax, dword [ebp + 0x58]
cmp dword [ebp + 0x6c], ebx
jae 0x23a234c6
lea eax, [ebp + 0x58]
push eax
push str.Switching_to_silent_installation:__s
call dword [0x23c41f20]
add esp, 8
lea edx, [ebp]
push edx
lea ecx, [ebp - 0x3e4]
call fcn.23a25400
mov eax, dword [ebp + 0x58]
mov byte [ebp - 4], 9
cmp dword [ebp + 0x6c], ebx
jae 0x23a234f3
lea eax, [ebp + 0x58]
push eax
lea ecx, [ebp - 0x3e4]
call fcn.23a25880
lea ecx, [ebp - 0x3e4]
mov byte [ebp - 4], 7
call fcn.23a25060
jmp 0x23a23740
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x3b0]
call fcn.23a2e080
mov edi, 2
mov ebx, 0xa
mov byte [ebp - 4], bl
cmp dword [esi + 0xb4], edi
jne 0x23a23551
mov eax, dword [esi + 0xa8]
cmp eax, 6
ja 0x23a2358a
jb 0x23a23551
cmp dword [esi + 0xac], edi
setae al
test al, al
jne 0x23a2358a
mov al, byte [esi + 0x1be]
cmp al, 2
je 0x23a2358a
cmp al, 3
je 0x23a2358a
call fcn.23a780f0
mov eax, dword [eax + 0x20]
or eax, 1
push eax
call fcn.23a780f0
mov ecx, eax
call fcn.23a77100
push 0
push str.Setup.cjstyles
call fcn.23a780f0
mov ecx, eax
call fcn.23a772b0
cmp dword [ebp - 0x37c], edi
jne 0x23a235f9
or edi, 0xffffffff
push edi
push 0x24
push 0x12c
mov byte [ebp - 4], 0xb
call fcn.23a3c581
cmp eax, 6
je 0x23a235ca
lea ecx, [ebp - 0x3b0]
mov byte [ebp - 4], 7
call fcn.23a2e0b0
lea ecx, [ebp + 0x54]
call fcn.23a022f0
mov dword [ebp - 4], edi
jmp 0x23a2367e
push 0
mov ecx, esi
call fcn.23a22cc0
test al, al
je 0x23a235ab
mov dword [ebp - 4], ebx
jmp 0x23a236ec
lea ecx, [ebp - 0x3b0]
call fcn.23a0f690
mov edi, eax
test edi, edi
je 0x23a2369c
lea ecx, [ebp + 0x70]
call fcn.23a0f0c0
mov byte [ebp - 4], 0xd
test edi, edi
jge 0x23a23625
push 0x12e
jmp 0x23a2362c
jle 0x23a23634
push 0x12f
lea ecx, [ebp + 0x70]
call fcn.23a11590
mov esi, dword [ebp + 0x70]
push 0
push 0x10
push esi
call fcn.23a3c533
lea eax, [esi - 0x10]
mov byte [ebp - 4], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x23a23660
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x3b0]
mov byte [ebp - 4], 7
call fcn.23a2e0b0
lea ecx, [ebp + 0x54]
call fcn.23a022f0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp]
call fcn.23a0f270
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
add ebp, 0x78
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x3b0]
call fcn.23a0fb90
test al, al
jne 0x23a236bb
push 0xffffffffffffffff
push 0x10
push 0x130
call fcn.23a3c581
jmp 0x23a23660
lea ecx, [ebp - 0x3b0]
call fcn.23a12c40
test eax, eax
jge 0x23a236ec
sub eax, 0xfffffffe
neg eax
sbb eax, eax
push 0xffffffffffffffff
and eax, 0xfffffffb
add eax, 0x139
push 0x34
push eax
call fcn.23a3c581
cmp eax, 6
jne 0x23a23660
push 0
lea ecx, [ebp - 0x3b0]
push ecx
lea ecx, [ebp - 0x518]
call fcn.23a24880
lea edx, [ebp - 0x518]
mov ecx, edx
mov byte [ebp - 4], 0xe
mov dword [esi + 0x20], edx
call fcn.23a3a408
lea ecx, [ebp - 0x518]
mov dword [esi + 0x20], 0
mov byte [ebp - 4], bl
call fcn.23a23e00
lea ecx, [ebp - 0x3b0]
mov byte [ebp - 4], 7
call fcn.23a2e0b0
mov ebx, 8
lea edi, [ebx - 1]
cmp dword [ebp + 0x6c], ebx
jb 0x23a23751
mov eax, dword [ebp + 0x58]
push eax
call fcn.23a2ed1b
add esp, 4
xor ecx, ecx
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x68], 0
mov word [ebp + 0x58], cx
jmp 0x23a23677