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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc5c
mov dword [ebp - 0xc5c], 0
mov byte [ebp - 0x72c], 0
lea edx, [ebp - 0xc4c]
push edx
lea edx, [ebp - 0xc50]
push edx
call fcn.004056dd
mov eax, dword [ebp - 0xc50]
test eax, eax
je 0x40c185
xor ecx, ecx
mov dword [ebp - 0xc44], ecx
mov edx, dword [ebp - 0xc50]
lea edx, [edx + 0x270]
cmp byte [edx + ecx], 0
je 0x40c0ca
cmp byte [edx + ecx], 0x24
je 0x40c0ca
mov al, byte [edx + ecx]
mov edx, dword [ebp - 0xc44]
mov byte [ebp + edx - 0x72c], al
inc ecx
inc dword [ebp - 0xc44]
jmp 0x40c099
cmp byte [edx + ecx], 0x24
jne 0x40c0d1
inc ecx
cmp byte [edx + ecx], 0
je 0x40c0e0
cmp byte [edx + ecx], 0x24
je 0x40c0e0
inc ecx
jmp 0x40c0d1
cmp byte [edx + ecx], 0x24
jne 0x40c0e7
inc ecx
cmp byte [edx + ecx], 0
jne 0x40c099
mov edx, dword [ebp - 0xc44]
mov byte [ebp + edx - 0x72c], 0
xor ecx, ecx
cmp ecx, 0x104
jae 0x40c185
cmp byte [ebp + ecx - 0x72c], 0
je 0x40c185
cmp byte [ebp + ecx - 0x72c], 0x2f
je 0x40c13b
cmp byte [ebp + ecx - 0x72c], 0x5c
je 0x40c13b
cmp byte [ebp + ecx - 0x72c], 0x3c
je 0x40c13b
cmp byte [ebp + ecx - 0x72c], 0x3e
jne 0x40c145
mov byte [ebp + ecx - 0x72c], 0x2e
jmp 0x40c17f
cmp byte [ebp + ecx - 0x72c], 0x5b
jne 0x40c159
mov byte [ebp + ecx - 0x72c], 0x28
jmp 0x40c17f
cmp byte [ebp + ecx - 0x72c], 0x5d
jne 0x40c16d
mov byte [ebp + ecx - 0x72c], 0x29
jmp 0x40c17f
cmp byte [ebp + ecx - 0x72c], 0x2a
jne 0x40c17f
mov byte [ebp + ecx - 0x72c], 0x2e
inc ecx
jmp 0x40c0fd
mov byte [ebp - 0xa38], 0
mov dword [ebp - 0xc48], 0
mov eax, dword [ebp - 0xc48]
cmp eax, dword [ebx + 0xc4]
jae 0x40c1c2
mov ecx, dword [ebx + 0xbc]
mov ecx, dword [eax + ecx + 0xc]
cmp ecx, dword [ebx + 0x160]
je 0x40c1c2
add dword [ebp - 0xc48], 0x94
jmp 0x40c196
cmp eax, dword [ebx + 0xc4]
jae 0x40c21c
add eax, dword [ebx + 0xbc]
lea edx, [ebp - 0xc40]
push edx
lea edx, [eax + 0x14]
push edx
push 0
call fcn.0040c86f
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0xc40]
push edx
push 0
push 0
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
push 0
push 0
push eax
lea edx, [ebp - 0xa38]
push edx
push 0xffffffffffffffff
lea edx, [ebp - 0xc40]
push edx
push 0
push 0
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
xor ecx, ecx
cmp ecx, 0x104
jae 0x40c2a6
cmp byte [ebp + ecx - 0xa38], 0
je 0x40c2a6
cmp byte [ebp + ecx - 0xa38], 0x2f
je 0x40c25c
cmp byte [ebp + ecx - 0xa38], 0x5c
je 0x40c25c
cmp byte [ebp + ecx - 0xa38], 0x3c
je 0x40c25c
cmp byte [ebp + ecx - 0xa38], 0x3e
jne 0x40c266
mov byte [ebp + ecx - 0xa38], 0x2e
jmp 0x40c2a0
cmp byte [ebp + ecx - 0xa38], 0x5b
jne 0x40c27a
mov byte [ebp + ecx - 0xa38], 0x28
jmp 0x40c2a0
cmp byte [ebp + ecx - 0xa38], 0x5d
jne 0x40c28e
mov byte [ebp + ecx - 0xa38], 0x29
jmp 0x40c2a0
cmp byte [ebp + ecx - 0xa38], 0x2a
jne 0x40c2a0
mov byte [ebp + ecx - 0xa38], 0x2e
inc ecx
jmp 0x40c21e
push 0
push 0x720065
push 0x680073
push 0x61006c
push 0x660020
push 0x43004d
push 0x4d005c
lea edx, [ebp - 0x618]
push edx
push 0
push 0
push 5
push 0
call dword [sym.imp.shell32.dll_SHGetFolderPathW]
push esp
lea edx, [ebp - 0x618]
push edx
call dword [sym.imp.kernel32.dll_lstrcatW]
push 0
lea edx, [ebp - 0x618]
push edx
call dword [sym.imp.kernel32.dll_CreateDirectoryW]
add esp, 0x1c
push 0
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0xa38]
push edx
push 0
push 0
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
push eax
lea edx, [ebp - 0xc40]
push edx
push 0xffffffffffffffff
lea edx, [ebp - 0xa38]
push edx
push 0
push 0
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
push 0
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0x72c]
push edx
push 0
push 0
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
push eax
lea edx, [ebp - 0x934]
push edx
push 0xffffffffffffffff
lea edx, [ebp - 0x72c]
push edx
push 0
push 0
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
push 0
push 0x6d0074
push 0x68002e
push 0x730025
push 0x5f0073
push 0x25005f
push 0x640032
push 0x2e0025
push 0x2e0064
push 0x32002e
push 0x25002e
push 0x640032
push 0x2e0025
push 0x5f0064
push 0x32002e
push 0x25002e
push 0x640032
push 0x2e0025
push 0x2e0064
push 0x34002e
push 0x25005c
push 0x730025
lea edx, [ebp - 0x628]
push edx
call dword [sym.imp.kernel32.dll_GetLocalTime]
lea eax, [ebp - 0xc40]
lea ecx, [ebp - 0x934]
push eax
push ecx
movzx eax, word [ebp - 0x61c]
push eax
movzx eax, word [ebp - 0x61e]
push eax
movzx eax, word [ebp - 0x620]
push eax
movzx eax, word [ebp - 0x622]
push eax
movzx eax, word [ebp - 0x626]
push eax
movzx eax, word [ebp - 0x628]
push eax
lea edx, [ebp - 0x618]
push edx
lea edx, [esp + 0x24]
push edx
lea edx, [ebx + 0xae4]
push edx
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0x2c
add esp, 0x58
push 0
push pe_nt_image_headers32
push 2
push 0
push 0
push 0x40000000
lea edx, [ebx + 0xae4]
push edx
call dword [sym.imp.kernel32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x40c502
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
lea edx, [ebx + 0xae4]
push edx
push 0
push 0
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
push 0
push 0
push eax
lea edx, [ebp - 0xa38]
push edx
push 0xffffffffffffffff
lea edx, [ebx + 0xae4]
push edx
push 0
push 0
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
lea ecx, [ebp - 0xa38]
push 0xa0d
push 0x7325203a
push 0x24454c49
push 0x465f4554
push 0x41455243
push 0x5f4f545f
push 0x454c4241
push 0x4e555f52
push 0x4f525245
push 0x24202445
push 0x4d495424
push ecx
lea eax, [esp + 4]
push eax
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0x38
lea eax, [ebp - 0x208]
push eax
call dword [ebx + 0x30]
mov dword [ebp - 0xc5c], 1
jmp 0x40c867
mov dword [ebx + 0xcec], eax
push 0x3e
push 0x702f3c6f
push 0x666e6920
push 0x6c617265
push 0x6e65473e
push 0x223b7870
push 0x3032203a
push 0x706f742d
push 0x6e696772
push 0x616d3b66
push 0x69726573
push 0x2d736e61
push 0x73202c6c
push 0x61697261
push 0x20787038
push 0x3120646c
push 0x6f62203a
push 0x746e6f66
push 0x223d656c
push 0x79747320
push 0x703c3e76
push 0x69643c3e
push 0x7669642f
push 0x3c3e3168
push 0x2f3c656c
push 0x69662074
push 0x726f7065
push 0x72207265
push 0x6873616c
push 0x6620434d
push 0x4d3e2246
push 0x46464646
push 0x46233a72
push 0x6f6c6f63
push 0x3b383238
push 0x32344223
push 0x3a726f6c
push 0x6f632d64
push 0x6e756f72
push 0x676b6361
push 0x62223d65
push 0x6c797473
push 0x2031683c
push 0x3e766964
push 0x3c3e7964
push 0x6f623c3e
push 0x64616568
push 0x2f3c3e65
push 0x6c797473
push 0x2f3c7d3b
push 0x66697265
push 0x732d736e
push 0x6173202c
push 0x6c616972
push 0x61207870
push 0x3431203a
push 0x746e6f66
push 0x7b707d3b
push 0x6f747561
push 0x2030203a
push 0x6e696772
push 0x616d3b78
push 0x70303038
push 0x203a6874
push 0x6469777b
push 0x7669647d
push 0x3b746665
push 0x6c203a6e
push 0x67696c61
push 0x2d747865
push 0x747b7964
push 0x6f627d3b
push 0x30203a67
push 0x6e696464
push 0x6170203b
push 0x30203a6e
push 0x69677261
push 0x6d7b2a3e
push 0x22737363
push 0x2f747865
push 0x74223d65
push 0x70797420
push 0x656c7974
push 0x733c3e65
push 0x6c746974
push 0x2f3c656c
push 0x69662074
push 0x726f7065
push 0x72207265
push 0x6873616c
push 0x6620434d
push 0x4d3e656c
push 0x7469743c
push 0x3e646165
push 0x683c3e6c
push 0x6d74683c
push esp
call fcn.0040bfd5
add esp, 0x180
push 0x3e70
push 0x2f3c2931
push 0x32312830
push 0x31203a6e
push 0x6f697372
push 0x6576206d
push 0x6172676f
push 0x72503e70
push 0x3c3e702f
push 0x3c296425
push 0x28206425
push 0x2e642520
push 0x203a6e6f
push 0x69737265
push 0x76207377
push 0x6f646e69
push 0x573e703c
call dword [sym.imp.kernel32.dll_GetVersion]
mov ecx, eax
shr ecx, 0x10
push ecx
movzx ecx, ah
push ecx
movzx ecx, al
push ecx
lea edx, [esp + 0xc]
push edx
lea edx, [ebp - 0x208]
push edx
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0x14
lea edx, [ebp - 0x208]
push edx
call fcn.0040bfd5
add esp, 0x44
push 0x3e
push 0x702f3c74
push 0x73696c20
push 0x73656361
push 0x66726574
push 0x6e493e22
push 0x3b787030
push 0x32203a70
push 0x6f742d6e
push 0x69677261
push 0x6d3b6669
push 0x7265732d
push 0x736e6173
push 0x202c6c61
push 0x69726120
push 0x78703831
push 0x20646c6f
push 0x62203a74
push 0x6e6f6622
push 0x3d656c79
push 0x74732070
push 0x3c3e7669
push 0x643c3e76
push 0x69642f3c
push esp
call fcn.0040bfd5
add esp, 0x60
push 0x3e
push 0x702f3c73
push 0x253e703c
mov dword [ebp - 0xc54], 0
mov eax, dword [ebp - 0xc54]
cmp eax, dword [ebx + 0x7c]
jae 0x40c851
add eax, dword [ebx + 0x74]
lea edx, [eax + 4]
push edx
lea edx, [esp + 4]
push edx
lea edx, [ebp - 0x208]
push edx
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0xc
lea edx, [ebp - 0x208]
push edx
call fcn.0040bfd5
add dword [ebp - 0xc54], 0x20c
jmp 0x40c812
add esp, 0xc
push 0x3e76
push 0x69642f3c
push esp
call fcn.0040bfd5
add esp, 8
mov eax, dword [ebp - 0xc5c]
leave
ret