Function at 0x70382560
Capabilities:
Check if file exists
Create directory
Delete directory
Get common file path
Get file attributes
Read .ini file

Disassembly:
push ebp
push edi
push esi
push ebx
push eax
mov eax, 0x2968
call fcn.703d7e98
xor ebx, ebx
xor ebp, ebp
sub esp, eax
mov eax, dword [esp + eax]
mov dword [esp], 0x104
mov esi, eax
lea eax, [esp + 0x140]
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetTempPathW]
sub esp, 8
lea edi, [esp + 0x348]
lea esi, [esi]
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [esp + 0xc], edi
add ebp, 1
add eax, ebx
mov dword [esp + 4], 0
add ebx, 0x428d
mov dword [esp + 8], eax
lea eax, [esp + 0x140]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetTempFileNameW]
sub esp, 0x10
mov dword [esp + 4], 0
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_CreateDirectoryW]
sub esp, 8
test eax, eax
jne 0x703825f9
cmp ebp, 0x63
jbe 0x703825a0
test eax, eax
je 0x70382f51
mov dword [esi + 0x18], edi
test byte [0x703d8018], 8
jne 0x70382841
mov dword [esp + 4], edi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call fcn.703d6dc8
sub esp, 0x18
test eax, eax
mov edi, eax
js 0x70382878
mov ecx, dword [esi + 0x18]
cmp word [ecx], 0
je 0x70382d5c
mov ebx, ecx
lea esi, [esi]
add ebx, 2
cmp word [ebx], 0
jne 0x70382658
sub ebx, ecx
mov edi, ebx
sar edi, 1
mov ebp, dword [esi + 0x1c]
cmp word [ebp], 0
je 0x70382d65
mov eax, ebp
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x70382680
sub eax, ebp
mov dword [esp + 0x24], eax
sar eax, 1
add edi, eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [sym.imp.ucrtbase.dll_malloc]
lea eax, [edi + edi + 4]
mov dword [esp + 0x20], eax
mov dword [esp], eax
mov dword [esp + 0x28], ecx
call ecx
mov edi, eax
mov dword [esi + 0x10], eax
test eax, eax
je 0x70382f5b
mov ecx, dword [esp + 0x2c]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.ucrtbase.dll_memcpy
mov ecx, dword [esp + 0x24]
lea eax, [edi + ebx + 2]
mov edx, 0x5c
mov word [edi + ebx], dx
mov dword [esp + 4], ebp
mov dword [esp], eax
add ecx, 2
mov dword [esp + 8], ecx
call sub.ucrtbase.dll_memcpy
mov eax, dword [esp + 0x20]
lea ebx, [edi + eax - 8]
mov dword [ebx], 0x6e0069
mov dword [ebx + 4], 0x66
mov dword [esp], edi
mov edi, dword [sym.imp.kernel32.dll_GetFileAttributesW]
call edi
sub esp, 4
cmp eax, 0xffffffff
je 0x703827a7
mov eax, dword [esi + 4]
mov dword [esi + 0x20], 2
test eax, eax
je 0x70382910
mov edx, dword [eax]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0xc], 8
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 0x10], ecx
call dword [edx + 0x18]
mov eax, dword [esi + 0x20]
sub esp, 0x14
cmp eax, 1
je 0x703827da
cmp eax, 2
je 0x70382910
mov dword [esp + 8], 0x137
mov dword [esp + 4], str._Users_gcenx_Documents_GitHub_wineskincx_dlls_urlmon_axinstall.c
mov dword [esp], 0x703da1e1
call dword [sym.imp.ucrtbase.dll__assert]
xor edi, edi
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_RemoveDirectoryW]
sub esp, 4
add esp, 0x296c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi + 0x10]
mov dword [ebx], 0x6c0064
mov dword [ebx + 4], 0x6c
mov dword [esp], eax
call edi
sub esp, 4
cmp eax, 0xffffffff
je 0x703828b2
mov eax, dword [esi + 4]
mov dword [esi + 0x20], 1
test eax, eax
jne 0x70382731
test byte [0x703d8018], 1
jne 0x70382e93
mov eax, dword [esi + 0x10]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_LoadLibraryW]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x70382e89
mov dword [esp + 4], 0x703da16b
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
sub esp, 8
test eax, eax
je 0x70382e74
call eax
mov dword [esp], ebx
mov edi, eax
call dword [sym.imp.kernel32.dll_FreeLibrary]
sub esp, 4
test edi, edi
js 0x7038278b
add esp, 0x296c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, edi
call fcn.70382100
mov dword [esp + 0xc], str.Using_temporary_directory__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.install_cab_file
mov dword [esp + 4], 0x703d8018
mov dword [esp], 3
call fcn.703823a0
mov edi, dword [esi + 0x18]
jmp 0x70382609
test byte [0x703d8018], 4
je 0x7038278b
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.ExtractFilesW_failed:__08lx_n
mov dword [esp + 8], str.extract_cab_file
mov dword [esp + 4], 0x703d8018
mov dword [esp], 2
call fcn.703823a0
jmp 0x7038278b
mov eax, dword [esi + 0x10]
mov dword [ebx], 0x63006f
mov dword [ebx + 4], 0x78
mov dword [esp], eax
call edi
sub esp, 4
cmp eax, 0xffffffff
jne 0x703827c8
test byte [0x703d8018], 1
je 0x70382d17
xor eax, eax
mov dword [esp + 0xc], str.No_known_install_file_n
mov dword [esp + 8], str.extract_cab_file
mov dword [esp + 4], 0x703d8018
mov dword [esp], eax
call fcn.703823a0
jmp 0x70382d17
mov eax, dword [esi + 0x10]
mov dword [esp + 0x10], 0x800
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.Setup_Hooks
mov dword [esp + 0x14], eax
lea eax, [esp + 0x960]
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.kernel32.dll_GetPrivateProfileStringW]
mov dword [esp + 0x20], eax
call eax
sub esp, 0x18
test eax, eax
je 0x70382d72
cmp word [esp + 0x960], 0
je 0x70382b6a
lea eax, [esp + 0x40]
lea ebx, [esp + 0x960]
mov dword [esp + 0x24], eax
lea esi, [esi]
test byte [0x703d8018], 8
jne 0x70382cda
mov eax, dword [esi + 0x10]
mov dword [esp + 0x10], pe_nt_image_headers32
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], str.Setup_Hooks
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
call eax
sub esp, 0x18
test eax, eax
je 0x70382ef8
mov eax, dword [esi + 0x10]
lea ebp, [esp + 0x1960]
mov dword [esp + 0x10], 0x800
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
mov eax, dword [esp + 0x20]
call eax
sub esp, 0x18
test eax, eax
je 0x70382b3f
cmp word [esp + 0x1960], 0
je 0x70382b3f
mov dword [esp + 0x2c], ebx
lea esi, [esi]
mov dword [esp + 4], 0x703da0ca
mov dword [esp], ebp
call dword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
jne 0x70382d0e
mov eax, dword [esi + 0x10]
mov dword [esp + 0x10], 0x208
mov dword [esp + 8], 0
mov dword [esp + 4], 0x703da0ca
mov dword [esp + 0x14], eax
lea eax, [esp + 0x550]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
mov eax, dword [esp + 0x20]
call eax
sub esp, 0x18
test byte [0x703d8018], 8
jne 0x70382c90
xor ecx, ecx
mov eax, esi
lea edi, [esp + 0x3c]
lea edx, [esp + 0x550]
mov dword [esp], edi
call fcn.703823f0
mov eax, dword [esp + 0x3c]
add eax, eax
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call eax
mov ebx, eax
test eax, eax
je 0x70382f5b
mov dword [esp], edi
lea edx, [esp + 0x550]
mov ecx, eax
mov eax, esi
call fcn.703823f0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov eax, dword [esi + 0x18]
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x24]
mov dword [esp], eax
call fcn.703d6dd0
sub esp, 0x20
mov edi, eax
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_free]
test edi, edi
js 0x7038278b
cmp word [ebp], 0
je 0x70382cd0
mov eax, ebp
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x70382b20
sub eax, ebp
add eax, 2
add ebp, eax
cmp word [ebp], 0
jne 0x70382a18
mov ebx, dword [esp + 0x2c]
cmp word [ebx], 0
mov eax, ebx
je 0x70382d21
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x70382b50
sub eax, ebx
add eax, 2
add ebx, eax
cmp word [ebx], 0
jne 0x70382978
mov eax, dword [esi + 0x10]
mov dword [esp + 0x10], 0x800
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.Add.Code
mov dword [esp + 0x14], eax
lea eax, [esp + 0x960]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
call eax
sub esp, 0x18
test eax, eax
je 0x70382789
cmp word [esp + 0x960], 0
je 0x70382789
lea ebx, [esp + 0x960]
mov edi, esi
lea ebp, [esp + 0x40]
mov esi, ebx
mov ebx, dword [esp + 0x20]
test byte [0x703d8018], 8
jne 0x70382e40
mov eax, dword [edi + 0x10]
mov dword [esp + 0x10], pe_nt_image_headers32
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp + 0x14], eax
mov dword [esp], str.Add.Code
call ebx
sub esp, 0x18
test eax, eax
je 0x70382f40
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov eax, dword [edi + 0x18]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x24]
mov dword [esp], eax
call fcn.703d6dd0
sub esp, 0x20
test eax, eax
js 0x70382f2a
cmp word [esi], 0
mov eax, esi
je 0x70382ebc
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x70382c68
sub eax, esi
add eax, 2
add esi, eax
cmp word [esi], 0
jne 0x70382bce
mov esi, edi
xor edi, edi
jmp 0x7038278b
lea eax, [esp + 0x550]
call fcn.70382100
mov dword [esp + 0xc], str.Run__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.process_hook_section
mov dword [esp + 4], 0x703d8018
mov dword [esp], 3
call fcn.703823a0
jmp 0x70382a78
mov eax, 2
jmp 0x70382b2e
mov eax, ebx
call fcn.70382100
mov dword [esp + 0xc], str._Setup_Hooks__key:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.install_inf_file
mov dword [esp + 4], 0x703d8018
mov dword [esp], 3
call fcn.703823a0
jmp 0x70382985
test byte [0x703d8018], 1
jne 0x70382d2b
mov edi, 0x80004001
jmp 0x7038278b
mov eax, 2
jmp 0x70382b5e
mov eax, ebp
call fcn.70382100
mov dword [esp + 0xc], str.Unsupported_hook__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.process_hook_section
mov dword [esp + 4], 0x703d8018
mov dword [esp], 0
call fcn.703823a0
jmp 0x70382d17
xor edi, edi
xor ebx, ebx
jmp 0x70382667
mov dword [esp + 0x24], 0
jmp 0x70382693
mov eax, dword [esi + 0x10]
mov dword [esp + 0x10], 0x800
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.Add.Code
mov dword [esp + 0x14], eax
lea eax, [esp + 0x960]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
call eax
sub esp, 0x18
test eax, eax
jne 0x70382bac
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov eax, dword [esi + 0x18]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x24]
mov dword [esp], eax
call fcn.703d6dd0
sub esp, 0x20
test eax, eax
mov edi, eax
jns 0x70382789
test byte [0x703d8018], 4
je 0x7038278b
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.RunSetupCommandW_failed:__08lx_n
mov dword [esp + 8], str.install_inf_file
mov dword [esp + 4], 0x703d8018
mov dword [esp], 2
call fcn.703823a0
jmp 0x7038278b
mov eax, esi
call fcn.70382100
mov dword [esp + 0xc], str._Add.Code__key:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.install_inf_file
mov dword [esp + 4], 0x703d8018
mov dword [esp], 3
call fcn.703823a0
jmp 0x70382bdb
test byte [0x703d8018], 4
jne 0x70382ec6
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_FreeLibrary]
sub esp, 4
mov edi, 0x80004005
jmp 0x7038278b
mov dword [esp + 0xc], str.Installing_DLL__registering_in_temporary_location_n
mov dword [esp + 8], str.install_cab_file
mov dword [esp + 4], 0x703d8018
mov dword [esp], 0
call fcn.703823a0
jmp 0x703827e7
mov eax, 2
jmp 0x70382c76
mov dword [esp + 0xc], str.no_DllRegisterServer_function_n
mov dword [esp + 8], 0x703da28c
mov dword [esp + 4], 0x703d8018
mov dword [esp], 2
call fcn.703823a0
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_FreeLibrary]
sub esp, 4
jmp 0x70382e89
test byte [0x703d8018], 4
je 0x70382e89
mov dword [esp + 0xc], str.Could_not_get_key_value_n
mov dword [esp + 8], str.install_inf_file
mov dword [esp + 4], 0x703d8018
mov dword [esp], 2
call fcn.703823a0
jmp 0x70382e89
mov esi, edi
mov edi, eax
test byte [0x703d8018], 4
je 0x7038278b
jmp 0x70382e0f
mov esi, edi
test byte [0x703d8018], 4
je 0x70382e89
jmp 0x70382f01
mov edi, 0x80004005
jmp 0x7038279a
mov edi, 0x8007000e
jmp 0x7038278b