Function at 0x42b880
Capabilities:
Create directory
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf0
mov eax, dword [0x453d00]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor ebx, ebx
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x20], 8
mov dword [ebp - 0x1c], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov esi, dword [0x45678c]
mov dword [0x4566cc], ebx
cmp esi, dword [0x456790]
jae 0x42b8ed
mov eax, dword [esi]
cmp eax, ebx
je 0x42b8e2
mov ecx, dword [eax + 0x20]
push 1
call ecx
add esi, 4
cmp esi, dword [0x456790]
jb 0x42b8d5
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0xc
mov dword [0x4566d0], eax
mov dword [0x4566d4], ebx
call fcn.0042da57
add esp, 4
cmp eax, ebx
je 0x42b9be
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [0x4566d4], eax
mov dword [0x4566d8], ebx
lea edx, [ebp - 0x38]
push edx
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x18]
push ecx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
call sub.gdiplus.dll_GdiplusStartup
lea edx, [ebp - 0x1c]
push edx
lea eax, [ebp - 0x14]
push eax
push ecx
mov ecx, esp
push 0x445e0c
call fcn.00408290
call fcn.0042afc0
push 0x456490
push ebx
push ebx
push 0x1a
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov edi, 0x456490
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
cmp ax, bx
jne 0x42b980
push ebx
mov ecx, 7
mov esi, 0x4482e4
push 0x456490
rep movsd dword es:[edi], dword [esi]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov edi, 0x456490
add edi, 0xfffffffe
test eax, eax
jne 0x42b9d0
mov ax, word [edi + 2]
add edi, 2
cmp ax, bx
jne 0x42b9b0
jmp 0x42b9dc
mov dword [0x4566d4], ebx
jmp 0x42b923
mov ax, word [edi + 2]
add edi, 2
cmp ax, bx
jne 0x42b9d0
mov ecx, 8
mov esi, str.FeiBaoMusic.ini
rep movsd dword es:[edi], dword [esi]
push 1
lea ecx, [ebp - 0xf0]
movsw word es:[edi], word [esi]
call fcn.0042b6b0
push 0x40
push 1
push 0x456490
lea ecx, [ebp - 0xd8]
call fcn.00422310
test eax, eax
jne 0x42ba33
mov ecx, dword [ebp - 0xf0]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp + ecx - 0xe4]
lea ecx, [ebp + ecx - 0xf0]
or eax, 2
cmp dword [ecx + 0x38], ebx
jne 0x42ba54
or eax, 4
jmp 0x42ba54
mov edx, dword [ebp - 0xf0]
mov ecx, dword [edx + 4]
mov eax, dword [ebp + ecx - 0xb8]
lea ecx, [ebp + ecx - 0xf0]
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
push ebx
push eax
call fcn.00409210
mov eax, dword [ebp - 0xf0]
mov ecx, dword [eax + 4]
test byte [ebp + ecx - 0xe4], 6
je 0x42ba88
push 0x456490
push 0x4480a0
push str.Soft
push 0x448290
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [0x45669c], 3
jge 0x42ba9b
call fcn.0042b110
call fcn.0042b3e0
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
push edx
push eax
call fcn.00423340
mov ecx, dword [ebp - 0x18]
add esp, 8
push ecx
mov edi, eax
call sub.gdiplus.dll_GdiplusShutdown
mov ecx, 0x4566a0
call fcn.00421a00
mov esi, dword [0x4566d4]
cmp esi, ebx
je 0x42bafa
mov eax, dword [esi]
cmp eax, ebx
je 0x42badb
push eax
call fcn.0042cdc4
add esp, 4
mov dword [esi], ebx
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x42baee
push eax
call fcn.0042cdc4
add esp, 4
mov dword [esi + 4], ebx
push esi
mov dword [esi + 8], ebx
call fcn.0042cdb9
add esp, 4
mov ecx, 0x4566a0
call fcn.0041e970
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0x80]
call fcn.0042b7c0
lea edx, [ebp - 0x80]
push edx
mov dword [ebp - 0x80], vtable.std::ios_base.0
call fcn.0042ca64
mov ecx, dword [ebp - 4]
add esp, 4
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042d3b1
mov esp, ebp
pop ebp
ret 0x10