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

Disassembly:
mov eax, 0x16a4
call fcn.00415280
mov eax, dword [0x42d278]
xor eax, esp
mov dword [esp + 0x169c], eax
push ebx
push ebp
push esi
push edi
xor edi, edi
push 0x208
lea eax, [esp + 0x54]
push edi
push eax
mov dword [esp + 0x20], 1
mov dword [esp + 0x2c], edi
call fcn.00414e60
add esp, 0xc
xor eax, eax
push 0x104
lea ecx, [esp + 0xc84]
push ecx
push edi
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
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [esp + 0xc80]
call fcn.00401800
cmp dword [0x4352e8], edi
mov esi, eax
mov dword [esp + 0x18], esi
je 0x406856
mov dword [esp + 0x14], edi
jmp 0x407184
call fcn.004014f0
cmp dword [0x4352e8], edi
movzx eax, ax
je 0x406883
mov edx, dword [esi]
push edx
call fcn.0040f238
add esp, 4
push esi
call fcn.0040f5d8
add esp, 4
mov dword [esp + 0x14], edi
jmp 0x407184
xor ebp, ebp
cmp ax, 0xffff
je 0x406941
nop
cmp ax, 0x200
jne 0x4068ac
add ebp, 1
call fcn.00401640
cmp dword [0x4352e8], edi
jne 0x406aeb
jmp 0x406921
cmp ax, 2
je 0x406910
cmp ax, 3
je 0x406910
cmp ax, 4
je 0x406910
cmp ax, 5
je 0x406910
cmp ax, 0x10
je 0x406910
cmp ax, 0x110
je 0x406910
cmp ax, 0x300
je 0x406910
cmp ax, 0x210
je 0x406910
cmp ax, 0x220
je 0x406910
cmp ax, 0x101
je 0x406910
cmp ax, 0x102
je 0x406910
cmp ax, 0x103
je 0x406910
cmp ax, 0x104
je 0x406910
cmp ax, 0x105
je 0x406910
cmp ax, 0x106
je 0x406910
cmp ax, 6
jne 0x4069ce
call fcn.00401640
cmp dword [0x4352e8], edi
jne 0x406866
mov eax, esi
call fcn.004014f0
cmp dword [0x4352e8], edi
movzx eax, ax
jne 0x406aeb
cmp ax, 0xffff
jne 0x406890
mov ecx, dword [esi]
push ecx
call fcn.0040f238
add esp, 4
push esi
call fcn.0040f5d8
mov edi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
add esp, 4
lea edx, [ebp*4 + 4]
push edx
push 8
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_HeapAlloc]
push eax
call ebx
xor esi, esi
cmp eax, esi
mov dword [0x4357e4], eax
jne 0x406a31
push 0x104
push str....._src_sfslfdec_sfmkcore.c
push 0x435578
mov dword [0x4352e8], 0xc9
mov word [0x435370], si
mov dword [0x4352ec], esi
mov word [0x435576], si
call fcn.0040ead2
add esp, 0xc
mov word [0x43577e], si
mov dword [0x435780], 0x406
mov dword [esp + 0x14], esi
jmp 0x407184
push 0x104
push str....._src_sfslfdec_sfmkcore.c
push 0x435578
mov dword [0x4352e8], 8
mov word [0x435370], di
mov dword [0x4352ec], edi
mov word [0x435576], di
call fcn.0040ead2
mov word [0x43577e], di
mov ecx, dword [esi]
add esp, 0xc
push ecx
mov dword [0x435780], 0x3ee
call fcn.0040f238
add esp, 4
push esi
call fcn.0040f5d8
add esp, 4
mov dword [esp + 0x14], edi
jmp 0x407184
xor esi, esi
test ebp, ebp
jle 0x406a5f
push 0x828
push 8
call edi
push eax
call ebx
mov ecx, dword [0x4357e4]
mov dword [ecx + esi*4], eax
mov edx, dword [0x4357e4]
cmp dword [edx + esi*4], 0
je 0x406a84
add esi, 1
cmp esi, ebp
jl 0x406a37
lea ecx, [esp + 0xc80]
call fcn.00401800
xor edi, edi
cmp dword [0x4352e8], edi
mov esi, eax
mov dword [esp + 0x18], esi
je 0x406ad9
mov dword [esp + 0x14], edi
jmp 0x407184
push 0x104
xor esi, esi
push str....._src_sfslfdec_sfmkcore.c
push 0x435578
mov dword [0x4352e8], 0xc9
mov word [0x435370], si
mov dword [0x4352ec], 0x828
mov word [0x435576], si
call fcn.0040ead2
add esp, 0xc
mov word [0x43577e], si
mov dword [0x435780], 0x412
mov dword [esp + 0x14], esi
jmp 0x407184
mov eax, esi
call fcn.004014f0
cmp dword [0x4352e8], edi
movzx eax, ax
je 0x406b08
mov eax, dword [esi]
push eax
call fcn.0040f238
add esp, 4
push esi
call fcn.0040f5d8
add esp, 4
mov dword [esp + 0x14], edi
jmp 0x407184
cmp ax, 0xffff
je 0x407184
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x1c], edi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyW]
movsx eax, ax
cmp eax, 0x200
jg 0x406f07
je 0x406bb9
cmp eax, 0x106
jg 0x406b71
cmp eax, 0x101
jge 0x406f84
cmp eax, 2
jl 0x407131
cmp eax, 6
jle 0x406f84
cmp eax, 0x10
jne 0x407131
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.00402290
jmp 0x406f8d
cmp eax, 0x110
jne 0x407131
mov esi, dword [esp + 0x18]
push 1
push 0x437240
mov ebx, esi
call fcn.00401250
add esp, 8
mov ecx, 0x206
lea edi, [esp + 0x50]
call fcn.00401f30
call fcn.00401470
cmp dword [0x4352e8], ebp
jne 0x40717b
mov edi, dword [esp + 0x1c]
jmp 0x406f99
mov esi, dword [esp + 0x18]
push 1
push 0x437240
mov ebx, esi
call fcn.00401250
add esp, 8
mov ecx, 0x206
lea edi, [esp + 0xa78]
call fcn.00401f30
call fcn.00401470
test byte [0x436ba8], 4
jne 0x406c80
cmp dword [0x4352e8], ebp
jne 0x407177
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [esp + 0x50]
push ecx
call esi
test eax, eax
jne 0x406c38
mov edx, edi
push edx
push 0x434ec0
lea eax, [esp + 0x670]
push str._s_s
push eax
mov word [esp + 0x12a8], bp
call fcn.0040f88a
add esp, 0x10
jmp 0x406ee5
lea ecx, [esp + 0x50]
push ecx
push 0x434ec0
lea edx, [esp + 0x12a0]
push str._s_s
push edx
call fcn.0040f88a
lea eax, [esp + 0xa88]
push eax
lea ecx, [esp + 0x64]
push ecx
push 0x434ec0
lea edx, [esp + 0x684]
push str._s_s_s
push edx
call fcn.0040f88a
add esp, 0x24
jmp 0x406ee5
push 0x208
push ebp
push 0x436bc0
call fcn.00414e60
add esp, 0xc
push 0x410
lea eax, [esp + 0xe8c]
push ebp
push eax
call fcn.00414e60
add esp, 0xc
lea ecx, [esp + 0x258]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x406d65
push 0x208
call fcn.0040f6b5
mov ebx, eax
add esp, 4
cmp ebx, ebp
mov dword [esp + 0x20], ebx
je 0x406fc0
push 0x208
push ebp
push ebx
call fcn.00414e60
add esp, 0xc
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
cmp eax, ebp
je 0x40700b
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x5c
push ebx
lea esi, [ebx + eax*2 - 2]
call fcn.00410f54
add esp, 8
cmp eax, esi
je 0x406d35
mov edi, ebx
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
cmp ax, bp
jne 0x406d21
mov edx, dword [0x429d84]
mov dword [edi], edx
push 0x410
lea eax, [esp + 0x25c]
push ebp
push eax
call fcn.00414e60
lea edx, [esp + 0x264]
add esp, 0xc
mov eax, ebx
sub edx, ebx
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
cmp cx, bp
jne 0x406d56
mov edi, dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
mov esi, 0x64
lea ecx, [esp + 0xe88]
push ecx
push ebp
push 0x42a13c
lea edx, [esp + 0x264]
push edx
call edi
cmp eax, ebp
jne 0x406e13
sub esi, 1
jne 0x406d70
push 0x40
push str.GetTempFileName
push 0x4352f0
mov dword [0x4352e8], 0xcb
call fcn.0040ead2
add esp, 0xc
mov word [0x435370], bp
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x104
lea edx, [esp + 0x25c]
push edx
push 0x435370
mov dword [0x4352ec], eax
call fcn.0040ead2
add esp, 0xc
push 0x104
push str....._src_sfslfdec_sfmkcore.c
push 0x435578
mov word [0x435576], bp
call fcn.0040ead2
add esp, 0xc
mov word [0x43577e], bp
mov dword [0x435780], 0x4c3
jmp 0x407180
lea eax, [esp + 0xe88]
push eax
call fcn.00403440
push ebp
lea ecx, [esp + 0xe8c]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp eax, 1
mov dword [esp + 0x14], eax
jne 0x40709e
push 0x410
lea edx, [esp + 0x25c]
push ebp
push edx
call fcn.00414e60
add esp, 0xc
xor eax, eax
jmp 0x406e60
movzx ecx, word [esp + eax + 0xe88]
mov word [esp + eax + 0x258], cx
add eax, 2
cmp cx, bp
jne 0x406e60
xor eax, eax
lea ebx, [ebx]
movzx ecx, word [esp + eax + 0x258]
mov word [eax + 0x437540], cx
add eax, 2
cmp cx, bp
jne 0x406e80
lea eax, [esp + 0x668]
push eax
push ebp
push 0x42a164
lea ecx, [esp + 0x264]
push ecx
call edi
cmp eax, ebp
je 0x4070b9
xor eax, eax
lea esp, [esp]
movzx ecx, word [esp + eax + 0x668]
mov word [eax + 0x436bc0], cx
add eax, 2
cmp cx, bp
jne 0x406ec0
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov word [esp + 0x1298], bp
lea edx, [esp + 0x668]
push edx
call esi
cmp eax, 0xff
jg 0x407104
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
jmp 0x406f99
sub eax, 0x210
je 0x406f84
sub eax, 0x10
je 0x406f84
sub eax, 0xe0
jne 0x407131
mov esi, dword [esp + 0x18]
call fcn.00401640
cmp dword [0x4352e8], ebp
jne 0x40717b
mov eax, dword [0x4357e4]
mov ecx, dword [edi + eax]
mov dword [ecx], ebp
mov edx, dword [0x4357e4]
mov eax, dword [edi + edx]
mov ecx, dword [esi + 0x18]
mov dword [eax + 4], ecx
mov eax, dword [0x4357e4]
mov ecx, dword [edi + eax]
lea edx, [esp + 0x1298]
push edx
add ecx, 8
push ecx
call ebx
mov eax, dword [0x4357e4]
mov ecx, dword [edi + eax]
lea edx, [esp + 0x668]
push edx
add ecx, 0x418
push ecx
call ebx
add edi, 4
mov dword [esp + 0x1c], edi
jmp 0x406f99
mov esi, dword [esp + 0x18]
call fcn.00401640
cmp dword [0x4352e8], ebp
jne 0x40717b
mov eax, esi
call fcn.004014f0
cmp dword [0x4352e8], ebp
movzx eax, ax
jne 0x40717b
cmp ax, 0xffff
je 0x407184
xor ebp, ebp
jmp 0x406b1a
push 0x104
push str....._src_sfslfdec_sfmkcore.c
push 0x435578
mov dword [0x4352e8], 0xc9
mov word [0x435370], bp
mov dword [0x4352ec], ebp
mov word [0x435576], bp
call fcn.0040ead2
add esp, 0xc
mov word [0x43577e], bp
mov dword [0x435780], 0x49a
jmp 0x407180
mov eax, dword [0x4352d8]
push 0x10
lea edx, [esp + 0x28]
push edx
push 0x443
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x40
push str.GetWindowsDirectory
push 0x4352f0
mov dword [0x4352e8], 0xcb
call fcn.0040ead2
add esp, 0xc
mov word [0x435370], bp
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x104
lea ecx, [esp + 0x28]
push ecx
push 0x435370
mov dword [0x4352ec], eax
call fcn.0040ead2
add esp, 0xc
push 0x104
push str....._src_sfslfdec_sfmkcore.c
push 0x435578
mov word [0x435576], bp
call fcn.0040ead2
add esp, 0xc
mov word [0x43577e], bp
mov dword [0x435780], 0x4a8
jmp 0x407180
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea esi, [esp + 0x25c]
call fcn.00403dd0
add esp, 4
jmp 0x407184
push 0x104
push str....._src_sfslfdec_sfmkcore.c
push 0x435578
mov dword [0x4352e8], 0xffffef2e
mov word [0x435370], bp
mov dword [0x4352ec], ebp
mov word [0x435576], bp
call fcn.0040ead2
add esp, 0xc
mov word [0x43577e], bp
mov dword [0x435780], 0x4d9
jmp 0x407180
lea eax, [esp + 0x668]
push eax
call esi
sub eax, 0xff
push eax
lea ecx, [esp + 0x48]
push 0x42a16c
push ecx
call fcn.0040f88a
add esp, 0xc
lea esi, [esp + 0x44]
call fcn.00403ed0
jmp 0x407180
push 0x104
push str....._src_sfslfdec_sfmkcore.c
push 0x435578
mov dword [0x4352e8], 8
mov word [0x435370], bp
mov dword [0x4352ec], ebp
mov word [0x435576], bp
call fcn.0040ead2
add esp, 0xc
mov word [0x43577e], bp
mov dword [0x435780], 0x500
mov esi, dword [esp + 0x18]
call fcn.00401da0
mov dword [esp + 0x14], ebp
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4071a0
mov edx, dword [esi]
push edx
call fcn.0040f238
add esp, 4
push esi
call fcn.0040f5d8
add esp, 4
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4071b1
push eax
call fcn.0040f5d8
add esp, 4
mov ecx, dword [esp + 0x16ac]
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0040eac3
add esp, 0x16a4
ret