Function at 0x423070
Capabilities:
Check if file exists
Extract resource via kernel32 functions
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53b311
mov eax, dword fs:[0]
push eax
sub esp, 0xad4
mov eax, dword [0x58d214]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 4
call fcn.0048b1da
add esp, 4
push 0x84
lea ecx, [ebp - 0xacc]
call fcn.0040afc0
lea eax, [ebp - 0xacc]
push eax
call fcn.00485fc0
add esp, 4
mov dword [ebp - 4], 0
push str...Installer_
lea ecx, [ebp - 0xacc]
call fcn.00482db0
call fcn.00486181
mov dword [ebp - 0xad0], eax
mov ecx, dword [ebp - 0xad0]
sub ecx, 1
mov dword [ebp - 0xad0], ecx
cmp dword [ebp - 0xad0], 3
ja case.default.0x423108
mov edx, dword [ebp - 0xad0]
jmp dword [edx*4 + 0x4233c8]
push 0x545df8
lea ecx, [ebp - 0xacc]
call fcn.00482db0
lea ecx, [ebp - 0xacc]
call fcn.00482ce7
push eax
call fcn.0048b191
add esp, 4
jmp case.default.0x423108
push 0x545e04
lea ecx, [ebp - 0xacc]
call fcn.00482db0
lea ecx, [ebp - 0xacc]
call fcn.00482ce7
push eax
call fcn.0048b191
add esp, 4
push 0x545e10
push ecx
mov ecx, esp
mov dword [ebp - 0xae0], esp
push str.IDR_RES
call fcn.00407c40
call fcn.00408d10
mov ecx, eax
call fcn.00483f72
jmp case.default.0x423108
push str.skin_
lea ecx, [ebp - 0xacc]
call fcn.00482db0
lea ecx, [ebp - 0xacc]
call fcn.00482ce7
push eax
call fcn.0048b191
add esp, 4
push 0
push 1
push str.skin.zip
call fcn.0048b275
add esp, 0xc
jmp case.default.0x423108
push str.ZIPRES
push str.IDR_ZIPRES
call fcn.0048616c
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0xad4], eax
cmp dword [ebp - 0xad4], 0
je case.default.0x423108
mov dword [ebp - 0xad8], 0
mov eax, dword [ebp - 0xad4]
push eax
call fcn.0048616c
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0xadc], eax
cmp dword [ebp - 0xadc], 0
je 0x423251
mov ecx, dword [ebp - 0xad4]
push ecx
call fcn.0048616c
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0xad8], eax
cmp dword [ebp - 0xad8], 0
jbe 0x423251
push 0
mov edx, dword [ebp - 0xad8]
push edx
mov eax, dword [ebp - 0xadc]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push eax
call fcn.0048b1e7
add esp, 0xc
mov ecx, dword [ebp - 0xad4]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeResource]
lea ecx, [ebp - 0xa30]
call fcn.00407890
mov byte [ebp - 4], 1
push 0x545e70
call fcn.00422db0
push eax
lea edx, [ebp - 0xa48]
push edx
call fcn.00421520
add esp, 0xc
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xa48]
call fcn.0040b600
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4232fa
push 0x800
push 0
lea eax, [ebp - 0xa18]
push eax
call fcn.0050d990
add esp, 0xc
lea ecx, [ebp - 0xa48]
call fcn.0040b600
push eax
push 0x400
lea ecx, [ebp - 0xa18]
push ecx
push 0x545e98
push 0x545e9c
push 0x545eb0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
jbe 0x4232fa
lea edx, [ebp - 0xa18]
push edx
lea ecx, [ebp - 0xa30]
call fcn.004081c0
lea ecx, [ebp - 0xa30]
call fcn.0040b750
movzx eax, al
test eax, eax
je 0x42331d
call fcn.00422d00
push eax
lea ecx, [ebp - 0xa30]
call fcn.004081c0
push 0x208
push 0
lea ecx, [ebp - 0x218]
push ecx
call fcn.0050d990
add esp, 0xc
lea ecx, [ebp - 0xa30]
call fcn.0040b600
push eax
push 0x545ec0
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea ecx, [ebp - 0xa30]
call fcn.0040b600
push eax
call fcn.00408d10
mov ecx, eax
call fcn.00423a10
lea eax, [ebp - 0x218]
push eax
call fcn.00408d10
mov ecx, eax
call fcn.00483a74
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xa48]
call fcn.00407d30
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xa30]
call fcn.00407d30
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xacc]
call fcn.00482bd0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d48f1
mov esp, ebp
pop ebp
ret