Function at 0x41591f
Capabilities:
Create directory
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x15ac
call fcn.00483980
push ebx
xor eax, eax
cmp word [0x4a0298], ax
push esi
push edi
mov dword [ebp - 0xc], eax
je 0x416021
push 0x48a304
mov edi, 0x4a0298
push edi
call fcn.0041b1e3
mov esi, dword [sym.imp.NSCRT.dll__wcsicmp]
pop ecx
push eax
call esi
test eax, eax
pop ecx
pop ecx
je 0x4159cc
push 0x48733c
push edi
call fcn.0041b1e3
pop ecx
push eax
call esi
test eax, eax
pop ecx
pop ecx
je 0x4159cc
push 0x487334
push edi
call fcn.0041b1e3
pop ecx
push eax
call esi
test eax, eax
pop ecx
pop ecx
je 0x4159cc
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsFileSpecW]
test eax, eax
jne 0x4159b6
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
jne 0x4159b6
push edi
push 0x104
push 0x49e6d8
call fcn.0047aaff
jmp 0x416027
push edi
push 0x49e4d0
push 0x49e6d8
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
jmp 0x416027
mov esi, 0x49ff80
push esi
mov ebx, 0x104
push ebx
push 0x49e6d8
call fcn.0047aaff
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x4b0460
push str.skin_clean_up_ws
lea eax, [ebp - 0x19c]
push 0x4e
push eax
call fcn.00402528
lea eax, [ebp - 0x19c]
push esi
push eax
call fcn.00406186
add esp, 0x18
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsFileSpecW]
test eax, eax
jne 0x415a39
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
jne 0x415a39
push edi
push ebx
lea eax, [ebp - 0x3a4]
push eax
call fcn.0047aaff
jmp 0x415a4c
push edi
push 0x49e4d0
lea eax, [ebp - 0x3a4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push 0
lea eax, [ebp - 0x3a4]
push 0
push eax
call fcn.00402b25
mov esi, eax
push esi
call fcn.0041ebec
push esi
mov dword [ebp - 4], eax
call dword [sym.imp.NSCRT.dll_free]
add esp, 0x14
cmp dword [ebp - 4], 0
je 0x416027
push dword [ebp - 4]
and dword [ebp - 0x30], 0
call fcn.0041e507
test eax, eax
mov esi, dword [sym.imp.NSCRT.dll__stricmp]
pop ecx
jne 0x415b5f
push edi
push ebx
lea eax, [ebp - 0x5ac]
push eax
call fcn.0047aaff
lea eax, [ebp - 0x5ac]
push 0x2e
push eax
call dword [sym.imp.NSCRT.dll_wcschr]
pop ecx
xor edi, edi
test eax, eax
pop ecx
je 0x415abe
mov word [eax], di
push str._skin.xml
push ebx
lea eax, [ebp - 0x5ac]
push eax
call fcn.0047ac6c
push edi
push edi
push edi
push edi
push ebx
lea eax, [ebp - 0x14c]
push eax
push edi
push dword [ebp - 4]
call fcn.0041e4e0
lea eax, [ebp - 0x14c]
push 0x48a37c
push eax
call esi
add esp, 0x28
test eax, eax
je 0x415b24
push edi
lea eax, [ebp - 0x5ac]
push edi
push eax
call fcn.00402b25
or dword [ebp - 0xc], 1
push eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14c]
push eax
call esi
add esp, 0x14
test eax, eax
mov byte [ebp - 5], 0
jne 0x415b28
mov byte [ebp - 5], 1
test byte [ebp - 0xc], 1
je 0x415b3f
push dword [ebp - 0x14]
and dword [ebp - 0xc], 0xfffffffe
call dword [sym.imp.NSCRT.dll_free]
pop ecx
mov dword [ebp - 0x14], edi
cmp byte [ebp - 5], 0
jne 0x415b58
push dword [ebp - 4]
call fcn.0041e549
test eax, eax
pop ecx
je 0x415ad0
jmp 0x415b5f
mov dword [ebp - 0x30], 1
push dword [ebp - 4]
call fcn.0041e507
test eax, eax
pop ecx
jne 0x416016
xor edi, edi
mov dword [ebp - 0x38], edi
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
sbb eax, eax
neg eax
mov dword [ebp - 0x18], eax
je 0x415b9a
push edi
push 1
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x3c], edi
xor edi, edi
cmp dword [ebp - 0x18], edi
je 0x415baa
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push edi
push edi
push edi
push edi
push 0x104
lea eax, [ebp - 0x14c]
push eax
push edi
push dword [ebp - 4]
call fcn.0041e4e0
add esp, 0x20
cmp dword [ebp - 0x30], edi
je 0x415e60
push dword [ebp - 4]
call fcn.0041eeaf
test eax, eax
pop ecx
jne 0x415ff0
mov edi, dword [sym.imp.NSCRT.dll_strstr]
lea eax, [ebp - 0x14c]
mov ebx, 0x487180
push ebx
push eax
mov dword [ebp - 0x10], eax
call edi
test eax, eax
pop ecx
pop ecx
je 0x415c0e
lea eax, [ebp - 0x14c]
push ebx
push eax
call edi
pop ecx
inc eax
pop ecx
mov dword [ebp - 0x10], eax
mov ebx, dword [ebp - 0x10]
cmp byte [ebx], 0x5c
jne 0x415c1f
inc ebx
cmp byte [ebx], 0x5c
je 0x415c16
mov dword [ebp - 0x10], ebx
push ebx
call fcn.0041b1b1
cmp byte [ebx], 0
pop ecx
mov edi, eax
je 0x415dfa
test edi, edi
je 0x415dfa
push 0x48a378
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a374
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a370
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a36c
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a368
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a364
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a360
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a35c
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push str.maki
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x487dd8
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x487e88
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a350
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a34c
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a348
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a344
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a340
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a33c
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a338
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0
push edi
lea ecx, [ebp - 0x24]
call fcn.00402d0e
push dword [eax]
or dword [ebp - 0xc], 2
call fcn.0043edd2
test eax, eax
pop ecx
jne 0x415df6
push 0x48a334
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a330
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push str.midi
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push str.mpeg
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a31c
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a318
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x415df6
push 0x48a314
push edi
call esi
test eax, eax
pop ecx
pop ecx
jne 0x415dfa
mov bl, 1
jmp 0x415dfc
xor bl, bl
test byte [ebp - 0xc], 2
je 0x415e14
push dword [ebp - 0x24]
and dword [ebp - 0xc], 0xfffffffd
call dword [sym.imp.NSCRT.dll_free]
and dword [ebp - 0x24], 0
pop ecx
test bl, bl
je 0x415ff0
xor ebx, ebx
push ebx
push dword [ebp - 0x10]
lea ecx, [ebp - 0x28]
call fcn.00402d0e
push dword [eax]
mov edi, 0x49ff80
push edi
lea eax, [ebp - 0x3a4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push dword [ebp - 0x28]
call dword [sym.imp.NSCRT.dll_free]
lea eax, [ebp - 0x3a4]
push edi
push eax
mov dword [ebp - 0x28], ebx
call fcn.00415610
add esp, 0xc
jmp 0x415f00
lea eax, [ebp - 0x14c]
dec eax
push eax
lea eax, [ebp - 0x14c]
push 0x48a310
push eax
call fcn.00418ae0
mov edi, eax
inc edi
push edi
call fcn.0041b1b1
mov ebx, eax
push 0x48a368
push ebx
call esi
add esp, 0x18
test eax, eax
je 0x415ec1
push 0x48a370
push ebx
call esi
test eax, eax
pop ecx
pop ecx
je 0x415ec1
push 0x48a36c
push ebx
call esi
test eax, eax
pop ecx
pop ecx
je 0x415ec1
push 0x48a30c
push ebx
call esi
test eax, eax
pop ecx
pop ecx
jne 0x415ff0
push dword [ebp - 4]
call fcn.0041eeaf
test eax, eax
pop ecx
jne 0x415ff0
push eax
push edi
lea ecx, [ebp - 0x2c]
call fcn.00402d0e
push dword [eax]
lea eax, [ebp - 0x3a4]
push 0x49ff80
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push dword [ebp - 0x2c]
call dword [sym.imp.NSCRT.dll_free]
and dword [ebp - 0x2c], 0
pop ecx
xor ebx, ebx
mov ecx, dword [ebp - 0x18]
neg ecx
push ebx
sbb ecx, ecx
mov eax, 0x40000000
and ecx, eax
or ecx, 0x80
push ecx
push 2
push ebx
push ebx
push eax
lea eax, [ebp - 0x3a4]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
je 0x415ff0
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x20], 1
xor eax, eax
cmp dword [ebp - 0x10], eax
push 0x800
sete al
mov ebx, eax
shl ebx, 0xb
lea ebx, [ebp + ebx - 0x15ac]
push ebx
push dword [ebp - 4]
mov dword [ebp - 0x10], eax
call fcn.0041e797
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x415f7b
push dword [ebp - 4]
call fcn.0041e9c2
pop ecx
cmp dword [ebp - 0x18], 0
je 0x415fc1
push 0xffffffffffffffff
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test edi, edi
jle 0x415fe7
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x48]
push eax
push 0
push edi
push ebx
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x415fbc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x415fbc
and dword [ebp - 0x20], 0
add dword [ebp - 0x1c], edi
jmp 0x415fdd
test edi, edi
jle 0x415fe7
push 0
lea eax, [ebp - 0x34]
push eax
push edi
push ebx
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x415fdd
and dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x415f44
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 4]
call fcn.0041e549
test eax, eax
pop ecx
je 0x415b9a
cmp dword [ebp - 0x18], 0
je 0x416016
cmp dword [ebp - 0x38], 0
je 0x416016
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 4]
call fcn.0041ebfa
pop ecx
jmp 0x416027
mov word [0x49e6d8], ax
pop edi
pop esi
pop ebx
leave
ret