Function at 0x10068000
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Create directory
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1006878b
mov eax, dword fs:[0]
push eax
sub esp, 0xb20
mov eax, dword [0x1007b430]
xor eax, esp
mov dword [esp + 0xb18], eax
push ebx
push esi
push edi
mov eax, dword [0x1007b430]
xor eax, esp
push eax
lea eax, [esp + 0xb30]
mov dword fs:[0], eax
mov esi, 0x103
xor ebx, ebx
push esi
lea eax, [esp + 0x521]
push ebx
push eax
mov byte [esp + 0x528], bl
call fcn.1004db40
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.1004e88a
pop ecx
lea eax, [esp + 0x20]
mov edi, 0x1007728b
push eax
mov ecx, edi
call fcn.10005228
lea eax, [esp + 0x14]
push eax
mov ecx, edi
mov dword [esp + 0xb3c], ebx
call fcn.10005228
lea eax, [esp + 0x10]
push eax
mov ecx, edi
mov byte [esp + 0xb3c], 1
call fcn.10005228
mov byte [esp + 0xb38], 2
push esi
lea eax, [esp + 0x209]
push ebx
push eax
mov byte [esp + 0xea], 0x25
mov byte [esp + 0xec], 0x25
mov byte [esp + 0xed], 0x73
mov byte [esp + 0xeb], 0x73
mov byte [esp + 0xe9], 0x73
mov byte [esp + 0xe8], 0x25
mov byte [esp + 0xee], bl
mov byte [esp + 0x210], bl
call fcn.1004db40
add esp, 0xc
push esi
lea eax, [esp + 0x311]
push ebx
push eax
mov byte [esp + 0x318], bl
call fcn.1004db40
add esp, 0xc
push esi
lea eax, [esp + 0x419]
push ebx
push eax
mov byte [esp + 0x420], bl
call fcn.1004db40
add esp, 0xc
lea eax, [esp + 0x414]
push eax
push ebx
push ebx
cmp dword [0x1007d848], ebx
je 0x10068232
push 0x2a
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea eax, [esp + 0x2c]
push eax
call fcn.1000465b
pop ecx
lea edi, [esp + 0x14]
mov byte [esp + 0xb38], 3
call fcn.100052d5
mov byte [esp + 0xb38], 2
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
call fcn.10003690
mov eax, dword [esp + 0x14]
cmp dword [eax - 4], 1
jle 0x10068197
push dword [eax - 0xc]
mov eax, edi
push eax
call fcn.10005def
mov eax, dword [esp + 0x14]
push str.Installer
push eax
push str.CandyWeb
lea eax, [esp + 0xe8]
push eax
lea eax, [esp + 0x214]
push 0x104
push eax
call fcn.1004bede
lea eax, [esp + 0x48]
push eax
call fcn.1000465b
add esp, 0x1c
lea edi, [esp + 0x10]
mov byte [esp + 0xb38], 4
call fcn.100052d5
mov byte [esp + 0xb38], 2
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
call fcn.10003690
mov eax, dword [esp + 0x10]
cmp dword [eax - 4], 1
jle 0x10068207
push dword [eax - 0xc]
mov eax, edi
push eax
call fcn.10005def
mov eax, dword [esp + 0x10]
push eax
push str.Installer
push str.CandyWeb
lea eax, [esp + 0xe8]
push eax
mov edi, 0x104
lea eax, [esp + 0x31c]
push edi
push eax
call fcn.1004bede
jmp 0x1006831e
push 0x1c
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea eax, [esp + 0x28]
push eax
call fcn.1000465b
pop ecx
lea edi, [esp + 0x14]
mov byte [esp + 0xb38], 5
call fcn.100052d5
mov byte [esp + 0xb38], 2
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
call fcn.10003690
mov eax, dword [esp + 0x14]
cmp dword [eax - 4], 1
jle 0x10068284
push dword [eax - 0xc]
mov eax, edi
push eax
call fcn.10005def
mov eax, dword [esp + 0x14]
push str.Installer
push eax
push str.CandyWeb
lea eax, [esp + 0xe8]
push eax
lea eax, [esp + 0x214]
push 0x104
push eax
call fcn.1004bede
lea eax, [esp + 0x3c]
push eax
call fcn.1000465b
add esp, 0x1c
lea edi, [esp + 0x10]
mov byte [esp + 0xb38], 6
call fcn.100052d5
mov byte [esp + 0xb38], 2
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.10003690
mov eax, dword [esp + 0x10]
cmp dword [eax - 4], 1
jle 0x100682f4
push dword [eax - 0xc]
mov eax, edi
push eax
call fcn.10005def
mov eax, dword [esp + 0x10]
push eax
push str.Installer
push str.CandyWeb
lea eax, [esp + 0xe8]
push eax
lea eax, [esp + 0x31c]
push 0x104
push eax
call fcn.1004bede
mov edi, 0x104
add esp, 0x18
push 7
pop ecx
lea eax, [esp + 0xdc]
mov byte [eax], bl
inc eax
dec ecx
jne 0x1006832b
mov eax, dword [esp + 0x14]
push dword [eax - 8]
push eax
call fcn.1004e72a
pop ecx
pop ecx
lea edx, [esp + 0x14]
call fcn.10005e56
mov eax, dword [esp + 0x10]
push dword [eax - 8]
push eax
call fcn.1004e72a
pop ecx
pop ecx
lea edx, [esp + 0x10]
call fcn.10005e56
push esi
lea eax, [esp + 0x101]
push ebx
push eax
mov byte [esp + 0x108], bl
call fcn.1004db40
add esp, 0xc
lea eax, [esp + 0x204]
push eax
lea eax, [esp + 0x418]
push eax
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0x108]
push edi
push eax
mov byte [esp + 0x104], 0x73
mov byte [esp + 0x101], 0x73
mov byte [esp + 0x105], bl
mov byte [esp + 0x102], 0x5c
mov byte [esp + 0x100], 0x25
mov byte [esp + 0x103], 0x25
call fcn.1004bede
add esp, 0x14
push 6
pop ecx
lea eax, [esp + 0xec]
mov byte [eax], bl
inc eax
dec ecx
jne 0x100683dc
mov ecx, edi
lea eax, [esp + 0x414]
mov byte [eax], bl
inc eax
dec ecx
jne 0x100683eb
mov ecx, edi
lea eax, [esp + 0x204]
mov byte [eax], bl
inc eax
dec ecx
jne 0x100683fa
lea eax, [esp + 0xfc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x10068429
push ebx
lea eax, [esp + 0x100]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
cmp eax, ebx
je 0x100686e0
lea eax, [esp + 0xe4]
push eax
lea eax, [esp + 0x310]
push eax
lea eax, [esp + 0x104]
push eax
lea eax, [esp + 0x100]
push eax
lea eax, [esp + 0x52c]
push edi
push eax
mov byte [esp + 0xfe], 0x78
mov byte [esp + 0xff], 0x65
mov byte [esp + 0x100], bl
mov byte [esp + 0xfc], 0x2e
mov byte [esp + 0xfd], 0x65
mov byte [esp + 0x10c], 0x25
mov byte [esp + 0x112], 0x73
mov byte [esp + 0x110], 0x73
mov byte [esp + 0x10d], 0x73
mov byte [esp + 0x111], 0x25
mov byte [esp + 0x10e], 0x5c
mov byte [esp + 0x113], bl
mov byte [esp + 0x10f], 0x25
call fcn.1004bede
add esp, 0x18
push 8
pop ecx
lea eax, [esp + 0xf4]
mov byte [eax], bl
inc eax
dec ecx
jne 0x100684ca
mov ecx, edi
lea eax, [esp + 0xfc]
mov byte [eax], bl
inc eax
dec ecx
jne 0x100684d9
lea eax, [esp + 0x30c]
mov byte [eax], bl
inc eax
dec edi
jne 0x100684e6
push 5
pop ecx
lea eax, [esp + 0xe4]
mov byte [eax], bl
inc eax
dec ecx
jne 0x100684f6
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov byte [esp + 0xb38], 7
xor edi, edi
mov esi, 0x400
push 0xff
lea eax, [esp + 0x629]
push ebx
push eax
mov byte [esp + 0x630], bl
call fcn.1004db40
add esp, 0xc
mov eax, 0x10077338
cmp dword [0x1007d848], ebx
jne 0x10068542
mov eax, 0x10077340
push ebx
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.100038c1
add esp, 0xc
push 0x3ff
lea eax, [esp + 0x729]
push ebx
push eax
mov byte [esp + 0x730], bl
call fcn.1004db40
add esp, 0xc
lea eax, [esp + 0x624]
call fcn.100036fb
cmp dword [esp + 0xd8], 0x10
mov eax, dword [esp + 0xc4]
jae 0x10068595
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x628]
push eax
lea eax, [esp + 0x72c]
push esi
push eax
call fcn.1004bede
add esp, 0x10
mov ecx, pe_nt_image_headers32
lea eax, [esp + 0x624]
mov byte [eax], bl
inc eax
dec ecx
jne 0x100685bb
cmp dword [esp + 0x18], ebx
je 0x100685d9
push dword [esp + 0x18]
call fcn.1004e1e1
pop ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x728]
push eax
call fcn.100067b1
mov edx, esi
lea ecx, [esp + 0x724]
mov byte [ecx], bl
inc ecx
dec edx
jne 0x100685f4
push ebx
lea ecx, [esp + 0xc4]
push 1
cmp al, bl
jne 0x1006861c
call fcn.10001bc8
inc edi
cmp edi, 3
jl 0x10068513
jmp 0x100686c8
call fcn.10001bc8
lea esi, [esp + 0x18]
call fcn.1000699a
lea eax, [esp + 0x51c]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.10005402
mov byte [esp + 0xb38], 8
push dword [esp + 0x1c]
lea eax, [esp + 0x38]
push dword [esp + 0x1c]
push eax
call fcn.10004f20
lea esi, [esp + 0x38]
call fcn.10005eee
test eax, eax
jne 0x10068676
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 4]
push ebx
lea ecx, [esp + ecx + 0x38]
push 2
call fcn.10005061
lea eax, [esp + 0x51c]
push eax
call fcn.100048de
pop ecx
mov ecx, 0x104
lea eax, [esp + 0x51c]
mov byte [eax], bl
inc eax
dec ecx
jne 0x10068690
call fcn.10004c94
lea ecx, [esp + 0x88]
mov byte [esp + 0xb38], 7
call fcn.100054f7
lea eax, [esp + 0x88]
push eax
mov dword [esp + 0x8c], vtable.std::ios_base.0
call fcn.1004aca5
pop ecx
cmp dword [esp + 0x18], ebx
je 0x100686e0
push dword [esp + 0x18]
call fcn.1004e1e1
pop ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
call fcn.10003690
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.10003690
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
call fcn.10003690
mov ecx, dword [esp + 0xb30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb18]
xor ecx, esp
call fcn.1004b8fc
mov esp, ebp
pop ebp
ret