Function at 0x405b92
Capabilities:
Create directory
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x50cc
call fcn.0040fa70
mov eax, dword [0x413004]
xor eax, esp
mov dword [esp + 0x50c8], eax
push ebx
push esi
push edi
xor esi, esi
mov edi, 0x3fe
push edi
lea eax, [esp + 0x4cd6]
push esi
push eax
mov ebx, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x4c], esi
mov word [esp + 0x4cdc], si
call fcn.00406e20
add esp, 0xc
push edi
lea eax, [esp + 0x48d6]
push esi
push eax
mov word [esp + 0x48dc], si
call fcn.00406e20
add esp, 0xc
push edi
lea eax, [esp + 0x44d6]
push esi
push eax
mov word [esp + 0x44dc], si
call fcn.00406e20
add esp, 0xc
push ebx
push 0x41163c
mov esi, 0x1ff
lea eax, [esp + 0x48d8]
push esi
push eax
call fcn.0040594d
push str.SmartPlayer.7z
push ebx
push str._s_s
lea eax, [esp + 0x44ec]
push esi
push eax
call fcn.0040594d
add esp, 0x24
lea ebx, [esp + 0x4cd0]
mov dword [esp + 0x30], fcn.00401000
mov dword [esp + 0x34], 0x401015
mov dword [esp + 0x4c], fcn.00401000
mov dword [esp + 0x50], 0x401015
call fcn.00405995
test eax, eax
je 0x405c8a
push str.can_not_get_module_path_
call fcn.0040597f
pop ecx
push 0xa
pop eax
jmp 0x406048
lea eax, [esp + 0x44d0]
push eax
lea eax, [esp + 0x60]
push eax
xor eax, eax
call fcn.00401976
test eax, eax
pop ecx
pop ecx
je 0x405cb3
push str.can_not_open_input_file
call fcn.0040597f
pop ecx
push 8
jmp 0x405c84
lea eax, [esp + 0x54]
xor esi, esi
mov dword [esp + 0x54], 0x401af3
mov dword [esp + 0x58], 0x401b14
mov dword [esp + 0xb0], 0x403828
mov dword [esp + 0xb4], 0x403877
mov dword [esp + 0xb8], 0x403885
mov dword [esp + 0xbc], 0x4038d1
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc8], esi
mov dword [esp + 0xc4], esi
call fcn.00401059
lea eax, [esp + 0x60]
call fcn.00401c7e
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x34]
push eax
lea edx, [esp + 0xb8]
lea ecx, [esp + 0x68]
call fcn.00403333
mov ebx, eax
cmp ebx, esi
pop ecx
pop ecx
je 0x405d49
lea esi, [esp + 0x30]
lea eax, [esp + 0x60]
call fcn.00401cad
xor esi, esi
cmp ebx, esi
mov dword [esp + 0x1c], ebx
jne 0x405fda
or dword [esp + 0x44], 0xffffffff
cmp dword [esp + 0x7c], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x18], esi
jbe 0x405fcb
mov dword [esp + 0x24], esi
jmp 0x405d78
xor esi, esi
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
lea ebx, [ecx + eax]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x18]
lea eax, [eax + ecx*4]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x20], esi
mov esi, dword [eax + 4]
sub esi, dword [eax]
cmp esi, dword [esp + 0x40]
jbe 0x405dcb
push dword [esp + 0x10]
call fcn.0040659d
pop ecx
lea eax, [esi + esi]
push eax
push 0
mov dword [esp + 0x48], esi
call fcn.00401000
test eax, eax
pop ecx
pop ecx
mov dword [esp + 0x10], eax
je 0x405f91
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push esi
lea edx, [esp + 0x64]
call fcn.00402c80
cmp byte [ebx + 0x19], 0
pop ecx
jne 0x405e2e
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x5c]
push eax
push dword [esp + 0x34]
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0x84]
call fcn.004035f6
add esp, 0x24
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x405fcb
mov eax, dword [esp + 0x10]
and word [esp + 0x40d0], 0
push edi
mov dword [esp + 0x18], eax
lea eax, [esp + 0x40d6]
push 0
push eax
call fcn.00406e20
add esp, 0xc
lea eax, [esp + 0x48d0]
push eax
lea eax, [esp + 0x40d4]
push eax
call fcn.00406f3f
mov eax, dword [esp + 0x18]
cmp word [eax], 0
pop ecx
pop ecx
je 0x405edf
mov dword [esp + 0x2c], eax
cmp word [esi], 0x2f
jne 0x405ece
push dword [esp + 0x14]
and word [esi], 0
lea eax, [esp + 0x40d4]
push eax
call fcn.00406f15
pop ecx
pop ecx
push 0
lea eax, [esp + 0x40d4]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x405eae
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [esp + 0x40d0]
push 0x411678
push eax
mov word [esi], 0x5c
call fcn.00406f15
pop ecx
lea eax, [esi + 2]
pop ecx
mov dword [esp + 0x14], eax
add dword [esp + 0x2c], 2
mov eax, dword [esp + 0x2c]
inc esi
inc esi
cmp word [eax], 0
jne 0x405e77
push dword [esp + 0x14]
lea eax, [esp + 0x40d4]
push eax
call fcn.00406f15
cmp byte [ebx + 0x19], 0
pop ecx
pop ecx
lea eax, [esp + 0x40d0]
je 0x405f14
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x405f78
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x405f78
push eax
lea eax, [esp + 0x3c]
push eax
xor eax, eax
inc eax
call fcn.00401976
test eax, eax
pop ecx
pop ecx
jne 0x405f9b
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
add eax, ecx
push eax
lea eax, [esp + 0x3c]
push eax
lea esi, [esp + 0x1c]
call fcn.00401a2b
test eax, eax
pop ecx
pop ecx
jne 0x405fb8
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x14], eax
jne 0x405fb8
lea esi, [esp + 0x38]
call fcn.004019b8
test eax, eax
jne 0x405fb1
cmp byte [ebx + 0x1d], al
je 0x405f78
push dword [ebx + 0x14]
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
add dword [esp + 0x24], 0x20
cmp eax, dword [esp + 0x7c]
jb 0x405d76
jmp 0x405fcb
mov dword [esp + 0x1c], 2
jmp 0x405fcb
lea eax, [esp + 0x40d0]
push eax
call fcn.00405969
mov dword [esp], str.can_not_open_output_file
jmp 0x405fbd
push str.can_not_close_output_file
jmp 0x405fbd
push str.can_not_write_output_file
call fcn.0040597f
pop ecx
mov dword [esp + 0x1c], 0xb
push dword [esp + 0x28]
lea eax, [esp + 0x34]
push eax
call dword [esp + 0x3c]
pop ecx
pop ecx
lea esi, [esp + 0x30]
lea eax, [esp + 0x60]
call fcn.00401cad
push dword [esp + 0x10]
call fcn.0040659d
pop ecx
lea esi, [esp + 0x5c]
call fcn.004019b8
mov esi, dword [esp + 0x1c]
test esi, esi
jne 0x406010
push str.Everything_is_Ok_n
call fcn.004072c4
xor eax, eax
jmp 0x406047
cmp esi, 4
jne 0x406021
push str.decoder_doesnt_support_this_archive
call fcn.0040597f
jmp 0x406045
cmp esi, 2
jne 0x40602d
push str.can_not_allocate_memory
jmp 0x40601a
cmp esi, 3
jne 0x406039
push str.CRC_error
jmp 0x40601a
push esi
push str._nERROR__d_n
call fcn.004072c4
pop ecx
mov eax, esi
pop ecx
mov ecx, dword [esp + 0x50d4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0040658e
mov esp, ebp
pop ebp
ret