Function at 0x10023200
Capabilities:
Get common file path
Read file on windows

Disassembly:
sub esp, 0xa98
mov eax, dword [0x100638a4]
xor eax, esp
mov dword [esp + 0xa94], eax
push ebx
push esi
push edi
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x69a]
push ecx
mov word [esp + 0x69c], ax
call fcn.10038ae0
add esp, 0xc
lea ecx, [esp + 0x30]
call fcn.1001bfe0
lea edx, [esp + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 0x103
lea eax, [esp + 0x89c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [esp + 0x898]
push str.LiveUpdate360.exe
push ecx
call fcn.1003a009
add esp, 8
test eax, eax
je 0x10023569
push 0
push 0x1a
lea edx, [esp + 0x698]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea eax, [esp + 0x690]
push eax
lea ecx, [esp + 0x89c]
push str._s360safe_shis.dat
push ecx
call fcn.10009cc0
add esp, 0xc
push 0
push 0
push 3
push 0
push 0
push closesocket
lea edx, [esp + 0x8b0]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x10023569
call fcn.10022a20
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
lea eax, [esp + 0x10]
push eax
mov esi, 4
push esi
lea ecx, [esp + 0x1c]
push ecx
push edi
call ebx
cmp dword [esp + 0xc], esi
jne 0x10023562
push 0
lea edx, [esp + 0x10]
push edx
push esi
lea eax, [esp + 0x20]
push eax
push edi
call ebx
cmp dword [esp + 0xc], esi
jne 0x10023562
lea ecx, [esp + 0x10]
push esi
push ecx
call fcn.10022aa0
add esp, 8
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x14]
jne 0x10023562
mov edx, dword [esp + 0x10]
push 0
lea eax, [esp + 0x10]
push eax
push 0x660
lea ecx, [esp + 0x3c]
push ecx
push edi
mov dword [0x10062e74], edx
call ebx
cmp dword [esp + 0xc], 0x660
jne 0x10023562
push 0
lea edx, [esp + 0x10]
push edx
push esi
lea eax, [esp + 0x24]
push eax
push edi
call ebx
cmp dword [esp + 0xc], esi
jne 0x10023562
lea ecx, [esp + 0x30]
push 0x660
push ecx
call fcn.10022aa0
add esp, 8
mov dword [esp + 0x14], eax
cmp dword [esp + 0x18], eax
jne 0x10023540
movzx edx, word [esp + 0x20]
cmp dword [esp + 0x34], edx
jne 0x10023540
movzx eax, word [esp + 0x22]
cmp dword [esp + 0x38], eax
jne 0x10023540
movzx ecx, word [esp + 0x26]
cmp dword [esp + 0x3c], ecx
jne 0x10023540
sub esp, 0x1c
lea edx, [esp + 0x264]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.10009420
call fcn.10022af0
add esp, 0x1c
test eax, eax
jne 0x10023540
push 0x660
call fcn.10038dc2
add esp, 4
test eax, eax
je 0x1002340b
mov ecx, eax
call fcn.1001bfe0
mov esi, eax
jmp 0x1002340d
xor esi, esi
mov eax, dword [esp + 0x30]
mov dword [esi], eax
mov ecx, dword [esp + 0x658]
mov dword [esi + 0x628], ecx
mov edx, dword [esp + 0x660]
mov dword [esi + 0x630], edx
mov eax, dword [esp + 0x664]
mov dword [esi + 0x634], eax
mov ecx, dword [esp + 0x678]
mov dword [esi + 0x648], ecx
mov edx, dword [esp + 0x67c]
mov dword [esi + 0x64c], edx
mov eax, dword [esp + 0x688]
mov dword [esi + 0x658], eax
mov ecx, dword [esp + 0x68c]
mov dword [esi + 0x65c], ecx
mov edx, dword [esp + 0x670]
mov dword [esi + 0x640], edx
mov eax, dword [esp + 0x674]
mov dword [esi + 0x644], eax
mov ecx, dword [esp + 0x680]
mov dword [esi + 0x650], ecx
mov edx, dword [esp + 0x684]
mov dword [esi + 0x654], edx
mov eax, dword [esp + 0x668]
mov dword [esi + 0x638], eax
mov ecx, dword [esp + 0x66c]
mov dword [esi + 0x63c], ecx
mov edx, dword [esp + 0x3c]
mov dword [esi + 0xc], edx
mov eax, dword [esp + 0x34]
push 0x104
lea ecx, [esp + 0x454]
push ecx
lea edx, [esi + 0x420]
push edx
mov dword [esi + 4], eax
mov dword [esi + 0x628], 1
call fcn.1003a690
push 0x104
lea eax, [esp + 0x258]
push eax
lea ecx, [esi + 0x218]
push ecx
call fcn.1003a690
push 0x104
lea edx, [esp + 0x5c]
push edx
lea eax, [esi + 0x10]
push eax
call fcn.1003a690
add esp, 0x24
push esi
sub esp, 0x1c
lea edx, [esp + 0x268]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.10009420
call fcn.10023150
add esp, 0x20
mov esi, 4
push 0
lea eax, [esp + 0x10]
push eax
push 0x660
lea ecx, [esp + 0x3c]
push ecx
push edi
call ebx
cmp dword [esp + 0xc], 0x660
je 0x10023362
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0xaa0]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10038723
add esp, 0xa98
ret