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

Disassembly:
mov eax, 0x169c
call fcn.00416c80
mov eax, dword [0x42f278]
xor eax, esp
mov dword [esp + 0x1694], eax
push ebx
push ebp
push esi
push edi
xor edi, edi
push 0x208
lea eax, [esp + 0x4c]
push edi
push eax
mov dword [esp + 0x1c], 1
mov dword [esp + 0x24], edi
call fcn.00416890
add esp, 0xc
xor eax, eax
push 0x104
lea ecx, [esp + 0xc7c]
push ecx
push edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [esp + 0xc78]
call fcn.00401a00
cmp dword [0x43726c], edi
mov ebp, eax
je 0x407cf2
mov dword [esp + 0x10], edi
jmp 0x40868c
call fcn.004016f0
cmp dword [0x43726c], edi
movzx eax, ax
je 0x407d20
mov edx, dword [ebp]
push edx
call fcn.00411205
add esp, 4
push ebp
call fcn.00410f1a
add esp, 4
mov dword [esp + 0x10], edi
jmp 0x40868c
xor ebx, ebx
cmp ax, 0xffff
mov dword [esp + 0x14], ebx
je 0x407e11
cmp ax, 0x200
jne 0x407d6a
mov esi, ebp
add ebx, 1
call fcn.00401840
cmp dword [0x43726c], edi
je 0x407ded
mov eax, dword [ebp]
push eax
call fcn.00411205
add esp, 4
push ebp
call fcn.00410f1a
add esp, 4
mov dword [esp + 0x10], edi
jmp 0x40868c
cmp ax, 2
je 0x407dda
cmp ax, 3
je 0x407dda
cmp ax, 4
je 0x407dda
cmp ax, 5
je 0x407dda
cmp ax, 0x10
je 0x407dda
cmp ax, 0x110
je 0x407dda
cmp ax, 0x300
je 0x407dda
cmp ax, 0x210
je 0x407dda
cmp ax, 0x220
je 0x407dda
cmp ax, 0x101
je 0x407dda
cmp ax, 0x102
je 0x407dda
cmp ax, 0x103
je 0x407dda
cmp ax, 0x104
je 0x407dda
cmp ax, 0x105
je 0x407dda
cmp ax, 0x106
je 0x407dda
cmp ax, 6
je 0x407dda
cmp ax, 7
je 0x407dda
cmp ax, 8
jne 0x407ea3
mov esi, ebp
call fcn.00401840
cmp dword [0x43726c], edi
jne 0x407d02
mov eax, ebp
call fcn.004016f0
cmp dword [0x43726c], edi
movzx eax, ax
jne 0x407d4c
cmp ax, 0xffff
jne 0x407d30
mov dword [esp + 0x14], ebx
mov ecx, dword [ebp]
push ecx
call fcn.00411205
add esp, 4
push ebp
call fcn.00410f1a
mov edx, dword [esp + 0x18]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
add esp, 4
lea eax, [edx*4 + 4]
push eax
push 8
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_HeapAlloc]
push eax
call ebx
xor esi, esi
cmp eax, esi
mov dword [0x43776c], eax
jne 0x407f07
push 0x104
push str....._src_sfslfdec_sfmkcore.c
push 0x437500
mov dword [0x43726c], 0xc9
mov word [0x4372f0], si
mov dword [0x4372f0], esi
mov word [0x4374fe], si
call fcn.00410502
add esp, 0xc
mov word [0x437706], si
mov dword [0x4372f4], 0x479
mov dword [esp + 0x10], esi
jmp 0x40868c
push 0x104
push str....._src_sfslfdec_sfmkcore.c
push 0x437500
mov dword [0x43726c], 8
mov word [0x4372f0], di
mov dword [0x4372f0], edi
mov word [0x4374fe], di
call fcn.00410502
mov word [0x437706], di
mov ecx, dword [ebp]
add esp, 0xc
push ecx
mov dword [0x4372f4], 0x461
call fcn.00411205
add esp, 4
push ebp
call fcn.00410f1a
add esp, 4
mov dword [esp + 0x10], edi
jmp 0x40868c
xor esi, esi
cmp dword [esp + 0x14], esi
jle 0x407f3a
nop
push 0x828
push 8
call edi
push eax
call ebx
mov ecx, dword [0x43776c]
mov dword [ecx + esi*4], eax
mov edx, dword [0x43776c]
cmp dword [edx + esi*4], 0
je 0x407f5b
add esi, 1
cmp esi, dword [esp + 0x14]
jl 0x407f10
lea ecx, [esp + 0xc78]
call fcn.00401a00
xor esi, esi
cmp dword [0x43726c], esi
mov ebp, eax
je 0x407fb0
mov dword [esp + 0x10], esi
jmp 0x40868c
push 0x104
xor esi, esi
push str....._src_sfslfdec_sfmkcore.c
push 0x437500
mov dword [0x43726c], 0xc9
mov word [0x4372f0], si
mov dword [0x4372f0], 0x828
mov word [0x4374fe], si
call fcn.00410502
add esp, 0xc
mov word [0x437706], si
mov dword [0x4372f4], 0x485
mov dword [esp + 0x10], esi
jmp 0x40868c
mov eax, ebp
call fcn.004016f0
cmp dword [0x43726c], esi
movzx eax, ax
je 0x407fe0
mov eax, dword [ebp]
push eax
call fcn.00411205
add esp, 4
push ebp
call fcn.00410f1a
add esp, 4
mov dword [esp + 0x10], esi
jmp 0x40868c
cmp ax, 0xffff
je 0x40868c
xor edi, edi
mov dword [esp + 0x14], edi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyW]
movsx eax, ax
cmp eax, 0x200
jg 0x40841a
je 0x40808f
cmp eax, 0x106
jg 0x408056
cmp eax, 0x101
jge 0x40849a
cmp eax, 2
jl 0x408635
cmp eax, 8
jle 0x40849a
cmp eax, 0x10
jne 0x408635
mov eax, dword [0x438d48]
cmp eax, 0xc
je 0x408046
cmp eax, 0xd
jne 0x40804a
mov byte [ebp + 0x4c], 1
mov ecx, ebp
call fcn.00402740
jmp 0x4084a1
cmp eax, 0x110
jne 0x408635
push 0x4391e0
mov ecx, 1
mov ebx, ebp
call fcn.00401250
add esp, 4
mov ecx, 0x206
lea edi, [esp + 0x48]
mov esi, ebp
call fcn.004023e0
call fcn.00401670
jmp 0x4084a1
push 0x4391e0
mov ecx, 1
mov ebx, ebp
call fcn.00401250
add esp, 4
mov ecx, 0x206
lea edi, [esp + 0xa70]
mov esi, ebp
call fcn.004023e0
call fcn.00401670
xor edi, edi
test byte [0x438b28], 4
jne 0x40815e
cmp dword [0x43726c], edi
jne 0x4084d8
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [esp + 0x48]
push ecx
call esi
test eax, eax
jne 0x408116
lea edx, [esp + 0xa70]
push edx
push 0x436e40
lea eax, [esp + 0x668]
push str._s_s
push eax
mov word [esp + 0x12a0], di
call fcn.004112ba
add esp, 0x10
jmp 0x4083d5
lea ecx, [esp + 0x48]
push ecx
push 0x436e40
lea edx, [esp + 0x1298]
push str._s_s
push edx
call fcn.004112ba
lea eax, [esp + 0xa80]
push eax
lea ecx, [esp + 0x5c]
push ecx
push 0x436e40
lea edx, [esp + 0x67c]
push str._s_s_s
push edx
call fcn.004112ba
add esp, 0x24
jmp 0x4083d5
push 0x208
push edi
push 0x438b40
call fcn.00416890
add esp, 0xc
push 0x410
lea eax, [esp + 0xe84]
push edi
push eax
call fcn.00416890
add esp, 0xc
lea ecx, [esp + 0x250]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x40824f
push 0x208
call fcn.00410ff7
mov ebx, eax
add esp, 4
cmp ebx, edi
mov dword [esp + 0x18], ebx
je 0x4084e8
push 0x208
push edi
push ebx
call fcn.00416890
add esp, 0xc
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
cmp eax, edi
je 0x408537
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x5c
push ebx
lea esi, [ebx + eax*2 - 2]
call fcn.00412984
add esp, 8
cmp eax, esi
je 0x408216
mov edi, ebx
add edi, 0xfffffffe
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x408200
mov edx, dword [0x42bd8c]
mov dword [edi], edx
xor edi, edi
push 0x410
lea eax, [esp + 0x254]
push edi
push eax
call fcn.00416890
lea edx, [esp + 0x25c]
add esp, 0xc
mov eax, ebx
sub edx, ebx
jmp 0x408240
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
cmp cx, di
jne 0x408240
mov ebx, dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
mov esi, 0x64
lea ebx, [ebx]
lea ecx, [esp + 0xe80]
push ecx
push edi
push 0x42c278
lea edx, [esp + 0x25c]
push edx
call ebx
cmp eax, edi
jne 0x408307
sub esi, 1
jne 0x408260
push 0x40
push str.GetTempFileName
push 0x437270
mov dword [0x43726c], 0xcb
call fcn.00410502
add esp, 0xc
mov word [0x4372f0], di
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x104
lea edx, [esp + 0x254]
push edx
push 0x4372f8
mov dword [0x4372f0], eax
call fcn.00410502
add esp, 0xc
push 0x104
push str....._src_sfslfdec_sfmkcore.c
push 0x437500
mov word [0x4374fe], di
call fcn.00410502
add esp, 0xc
mov word [0x437706], di
mov dword [0x4372f4], 0x53d
mov dword [esp + 0x10], edi
jmp 0x40868c
lea eax, [esp + 0xe80]
push eax
call fcn.004041c0
push edi
lea ecx, [esp + 0xe84]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp eax, 1
mov dword [esp + 0x10], eax
jne 0x4085ce
push 0x410
lea edx, [esp + 0x254]
push edi
push edx
call fcn.00416890
add esp, 0xc
xor eax, eax
jmp 0x408350
movzx ecx, word [esp + eax + 0xe80]
mov word [esp + eax + 0x250], cx
add eax, 2
cmp cx, di
jne 0x408350
xor eax, eax
lea ebx, [ebx]
movzx ecx, word [esp + eax + 0x250]
mov word [eax + 0x4394e0], cx
add eax, 2
cmp cx, di
jne 0x408370
lea eax, [esp + 0x660]
push eax
push edi
push 0x42c2a0
lea ecx, [esp + 0x25c]
push ecx
call ebx
cmp eax, edi
je 0x4085e9
xor eax, eax
lea esp, [esp]
movzx ecx, word [esp + eax + 0x660]
mov word [eax + 0x438b40], cx
add eax, 2
cmp cx, di
jne 0x4083b0
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov word [esp + 0x1290], di
lea edx, [esp + 0x660]
push edx
call esi
cmp eax, 0xff
jle 0x4084ae
lea eax, [esp + 0x660]
push eax
call esi
sub eax, 0xff
push eax
lea ecx, [esp + 0x40]
push 0x42c2a8
push ecx
call fcn.004112ba
add esp, 0xc
lea esi, [esp + 0x3c]
call fcn.00404c50
jmp 0x408684
sub eax, 0x210
je 0x40849a
sub eax, 0x10
je 0x40849a
sub eax, 0xe0
jne 0x408635
mov esi, ebp
call fcn.00401840
cmp dword [0x43726c], 0
jne 0x40867d
mov eax, dword [0x43776c]
mov ecx, dword [edi + eax]
mov dword [ecx], 0
mov edx, dword [0x43776c]
mov eax, dword [edi + edx]
mov ecx, dword [ebp + 0x18]
mov dword [eax + 4], ecx
mov eax, dword [0x43776c]
mov ecx, dword [edi + eax]
lea edx, [esp + 0x1290]
push edx
add ecx, 8
push ecx
call ebx
mov eax, dword [0x43776c]
mov ecx, dword [edi + eax]
lea edx, [esp + 0x660]
push edx
add ecx, 0x418
push ecx
call ebx
add edi, 4
mov dword [esp + 0x14], edi
jmp 0x4084ae
mov esi, ebp
call fcn.00401840
cmp dword [0x43726c], 0
jne 0x40867d
mov eax, ebp
call fcn.004016f0
cmp dword [0x43726c], 0
movzx eax, ax
jne 0x40867d
cmp ax, 0xffff
je 0x40868c
mov edi, dword [esp + 0x14]
jmp 0x407ff0
mov esi, ebp
call fcn.00401fe0
mov dword [esp + 0x10], edi
jmp 0x40868c
push 0x104
push str....._src_sfslfdec_sfmkcore.c
push 0x437500
mov dword [0x43726c], 0xc9
mov word [0x4372f0], di
mov dword [0x4372f0], edi
mov word [0x4374fe], di
call fcn.00410502
add esp, 0xc
mov word [0x437706], di
mov dword [0x4372f4], 0x514
mov dword [esp + 0x10], edi
jmp 0x40868c
mov eax, dword [0x437258]
push 0x10
lea edx, [esp + 0x20]
push edx
push 0x443
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x40
push str.GetWindowsDirectory
push 0x437270
mov dword [0x43726c], 0xcb
call fcn.00410502
add esp, 0xc
mov word [0x4372f0], di
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x104
lea ecx, [esp + 0x20]
push ecx
push 0x4372f8
mov dword [0x4372f0], eax
call fcn.00410502
add esp, 0xc
push 0x104
push str....._src_sfslfdec_sfmkcore.c
push 0x437500
mov word [0x4374fe], di
call fcn.00410502
add esp, 0xc
mov word [0x437706], di
mov dword [0x4372f4], 0x522
mov dword [esp + 0x10], edi
jmp 0x40868c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea esi, [esp + 0x254]
call fcn.00404b50
add esp, 4
jmp 0x40868c
push 0x104
push str....._src_sfslfdec_sfmkcore.c
push 0x437500
mov dword [0x43726c], 0xffffef2e
mov word [0x4372f0], di
mov dword [0x4372f0], edi
mov word [0x4374fe], di
call fcn.00410502
add esp, 0xc
mov word [0x437706], di
mov dword [0x4372f4], 0x553
mov dword [esp + 0x10], edi
jmp 0x40868c
push 0x104
xor esi, esi
push str....._src_sfslfdec_sfmkcore.c
push 0x437500
mov dword [0x43726c], 8
mov word [0x4372f0], si
mov dword [0x4372f0], esi
mov word [0x4374fe], si
call fcn.00410502
add esp, 0xc
mov word [0x437706], si
mov dword [0x4372f4], 0x57a
mov esi, ebp
call fcn.00401fe0
mov dword [esp + 0x10], 0
test ebp, ebp
je 0x4086a5
mov edx, dword [ebp]
push edx
call fcn.00411205
add esp, 4
push ebp
call fcn.00410f1a
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4086b6
push eax
call fcn.00410f1a
add esp, 4
mov ecx, dword [esp + 0x16a4]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004104f3
add esp, 0x169c
ret