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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53b5b1
mov eax, dword fs:[0]
push eax
sub esp, 0xad4
mov eax, dword [0x58d224]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 4
call fcn.0048b42e
add esp, 4
push 0x84
lea ecx, [ebp - 0xacc]
call fcn.0040b430
lea eax, [ebp - 0xacc]
push eax
call fcn.00486214
add esp, 4
mov dword [ebp - 4], 0
push str...Installer_
lea ecx, [ebp - 0xacc]
call fcn.00483001
call fcn.004863d5
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.0x423398
mov edx, dword [ebp - 0xad0]
jmp dword [edx*4 + 0x423658]
push 0x5461e0
lea ecx, [ebp - 0xacc]
call fcn.00483001
lea ecx, [ebp - 0xacc]
call fcn.00482f38
push eax
call fcn.0048b3e5
add esp, 4
jmp case.default.0x423398
push 0x5461ec
lea ecx, [ebp - 0xacc]
call fcn.00483001
lea ecx, [ebp - 0xacc]
call fcn.00482f38
push eax
call fcn.0048b3e5
add esp, 4
push 0x5461f8
push ecx
mov ecx, esp
mov dword [ebp - 0xae0], esp
push str.IDR_RES
call fcn.00407d40
call fcn.00408f60
mov ecx, eax
call fcn.004841c6
jmp case.default.0x423398
push str.skin_
lea ecx, [ebp - 0xacc]
call fcn.00483001
lea ecx, [ebp - 0xacc]
call fcn.00482f38
push eax
call fcn.0048b3e5
add esp, 4
push 0
push 1
push str.skin.zip
call fcn.0048b4c9
add esp, 0xc
jmp case.default.0x423398
push str.ZIPRES
push str.IDR_ZIPRES
call fcn.004863c0
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0xad4], eax
cmp dword [ebp - 0xad4], 0
je case.default.0x423398
mov dword [ebp - 0xad8], 0
mov eax, dword [ebp - 0xad4]
push eax
call fcn.004863c0
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0xadc], eax
cmp dword [ebp - 0xadc], 0
je 0x4234e1
mov ecx, dword [ebp - 0xad4]
push ecx
call fcn.004863c0
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0xad8], eax
cmp dword [ebp - 0xad8], 0
jbe 0x4234e1
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.0048b43b
add esp, 0xc
mov ecx, dword [ebp - 0xad4]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeResource]
lea ecx, [ebp - 0xa30]
call fcn.00407990
mov byte [ebp - 4], 1
push 0x546258
call fcn.00423040
push eax
lea edx, [ebp - 0xa48]
push edx
call fcn.004217b0
add esp, 0xc
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xa48]
call fcn.0040bae0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42358a
push 0x800
push 0
lea eax, [ebp - 0xa18]
push eax
call fcn.0050eb70
add esp, 0xc
lea ecx, [ebp - 0xa48]
call fcn.0040bae0
push eax
push 0x400
lea ecx, [ebp - 0xa18]
push ecx
push 0x546280
push 0x546284
push 0x546298
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
jbe 0x42358a
lea edx, [ebp - 0xa18]
push edx
lea ecx, [ebp - 0xa30]
call fcn.004082c0
lea ecx, [ebp - 0xa30]
call fcn.0040bcd0
movzx eax, al
test eax, eax
je 0x4235ad
call fcn.00422f90
push eax
lea ecx, [ebp - 0xa30]
call fcn.004082c0
push 0x208
push 0
lea ecx, [ebp - 0x218]
push ecx
call fcn.0050eb70
add esp, 0xc
lea ecx, [ebp - 0xa30]
call fcn.0040bae0
push eax
push 0x5462a8
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea ecx, [ebp - 0xa30]
call fcn.0040bae0
push eax
call fcn.00408f60
mov ecx, eax
call fcn.00423ca0
lea eax, [ebp - 0x218]
push eax
call fcn.00408f60
mov ecx, eax
call fcn.00483cc5
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xa48]
call fcn.00407e30
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xa30]
call fcn.00407e30
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xacc]
call fcn.00482e21
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d4e68
mov esp, ebp
pop ebp
ret