Function at 0x411570
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5acd18
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x858
push ebx
push esi
push edi
lea eax, [ebp - 0x264]
mov dword [ebp - 0x10], esp
mov ebx, ecx
xor edi, edi
push 0x104
push eax
mov dword [ebp - 0x50], ebx
mov dword [ebp - 4], edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x4117ac
xor eax, eax
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x4c], eax
mov word [ebp - 0x48], di
mov ecx, 0x650bf8
mov byte [ebp - 4], 1
test ecx, ecx
je 0x411695
lea edx, [ebp - 0x264]
test edx, edx
je 0x411695
lea eax, [ebp - 0x264]
lea ecx, [ebp - 0x34]
push eax
call fcn.00403bb0
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 2
call fcn.00401070
push 0x650bf8
lea ecx, [ebp - 0x40]
call fcn.00401f30
mov eax, dword [ebp - 0x34]
mov byte [ebp - 4], 3
cmp eax, edi
jne 0x411619
lea eax, [ebp - 0x30]
mov esi, dword [ebp - 0x38]
push eax
call fcn.0057e90a
lea esi, [eax + esi + 2]
lea edi, [esi + esi]
push edi
call fcn.005970d9
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x4c], edx
je 0x41167a
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x34]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
mov eax, dword [ebp - 0x4c]
push esi
push eax
call fcn.0057e89a
mov ecx, dword [ebp - 0x4c]
push ecx
call fcn.0057e90a
add esp, 0x14
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 2
call fcn.00401070
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 1
call fcn.00401070
mov eax, dword [ebp - 0x4c]
xor esi, esi
cmp eax, esi
jne 0x41169e
lea eax, [ebp - 0x48]
push eax
mov ecx, ebx
call fcn.004120b0
xor eax, eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], eax
mov word [ebp - 0x24], si
mov edx, 0x650be0
mov byte [ebp - 4], 4
test edx, edx
je 0x411783
lea ecx, [ebp - 0x264]
test ecx, ecx
je 0x411783
lea edx, [ebp - 0x264]
lea ecx, [ebp - 0x34]
push edx
call fcn.00403bb0
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.00401070
push 0x650be0
lea ecx, [ebp - 0x40]
call fcn.00401f30
mov eax, dword [ebp - 0x34]
mov byte [ebp - 4], 6
test eax, eax
jne 0x411707
lea eax, [ebp - 0x30]
mov esi, dword [ebp - 0x38]
push eax
call fcn.0057e90a
lea esi, [eax + esi + 2]
lea edi, [esi + esi]
push edi
call fcn.005970d9
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x28], edx
je 0x411768
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x34]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
mov eax, dword [ebp - 0x28]
push esi
push eax
call fcn.0057e89a
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.0057e90a
add esp, 0x14
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 5
call fcn.00401070
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 4
call fcn.00401070
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x41178a
lea eax, [ebp - 0x24]
push eax
mov ecx, ebx
call fcn.004120b0
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.00401070
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0
call fcn.00401070
xor edi, edi
lea edx, [ebp - 0x264]
push 0x104
push edx
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x411aab
lea eax, [ebp - 0x864]
lea ecx, [ebp - 0x664]
push eax
lea edx, [ebp - 0x464]
push ecx
lea eax, [ebp - 0x24]
push edx
lea ecx, [ebp - 0x264]
push eax
push ecx
call fcn.0057f69a
add esp, 0x14
lea edx, [ebp - 0x464]
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x264]
push 0x650bc8
push edx
push eax
push 0x650bb8
push ecx
call fcn.0057f81e
add esp, 0x14
lea edx, [ebp - 0x264]
mov ecx, ebx
push edx
call fcn.004120b0
lea eax, [ebp - 0x464]
push 0x650b9c
lea ecx, [ebp - 0x24]
push eax
push ecx
lea edx, [ebp - 0x264]
push 0x650bb8
push edx
call fcn.0057f81e
add esp, 0x14
lea eax, [ebp - 0x264]
mov ecx, ebx
push eax
call fcn.004120b0
lea ecx, [ebp - 0x464]
push 0x650b84
lea edx, [ebp - 0x24]
push ecx
push edx
lea eax, [ebp - 0x264]
push 0x650bb8
push eax
call fcn.0057f81e
add esp, 0x14
lea ecx, [ebp - 0x264]
push ecx
mov ecx, ebx
call fcn.004120b0
lea edx, [ebp - 0x464]
push 0x650b70
lea eax, [ebp - 0x24]
push edx
push eax
lea ecx, [ebp - 0x264]
push 0x650bb8
push ecx
call fcn.0057f81e
add esp, 0x14
lea edx, [ebp - 0x264]
mov ecx, ebx
push edx
call fcn.004120b0
lea eax, [ebp - 0x464]
push 0x650b4c
lea ecx, [ebp - 0x24]
push eax
push ecx
lea edx, [ebp - 0x264]
push 0x650bb8
push edx
call fcn.0057f81e
add esp, 0x14
lea eax, [ebp - 0x264]
mov ecx, ebx
push eax
call fcn.004120b0
lea ecx, [ebp - 0x464]
push 0x650108
lea edx, [ebp - 0x24]
push ecx
push edx
lea eax, [ebp - 0x264]
push 0x650bb8
push eax
call fcn.0057f81e
add esp, 0x14
lea ecx, [ebp - 0x264]
push ecx
mov ecx, ebx
call fcn.004120b0
lea edx, [ebp - 0x464]
push 0x64fa14
lea eax, [ebp - 0x24]
push edx
push eax
lea ecx, [ebp - 0x264]
push 0x650bb8
push ecx
call fcn.0057f81e
add esp, 0x14
lea edx, [ebp - 0x264]
mov ecx, ebx
push edx
call fcn.004120b0
lea eax, [ebp - 0x464]
push 0x650b38
lea ecx, [ebp - 0x24]
push eax
push ecx
lea edx, [ebp - 0x264]
push 0x650bb8
push edx
call fcn.0057f81e
add esp, 0x14
lea eax, [ebp - 0x264]
mov ecx, ebx
push eax
call fcn.004120b0
lea ecx, [ebp - 0x464]
push 0x650b1c
lea edx, [ebp - 0x24]
push ecx
push edx
lea eax, [ebp - 0x264]
push 0x650bb8
push eax
call fcn.0057f81e
add esp, 0x14
lea ecx, [ebp - 0x264]
push ecx
mov ecx, ebx
call fcn.004120b0
lea edx, [ebp - 0x464]
push 0x64fdec
lea eax, [ebp - 0x24]
push edx
push eax
lea ecx, [ebp - 0x264]
push 0x650bb8
push ecx
call fcn.0057f81e
add esp, 0x14
lea edx, [ebp - 0x264]
mov ecx, ebx
push edx
call fcn.004120b0
lea eax, [ebp - 0x464]
push 0x650afc
lea ecx, [ebp - 0x24]
push eax
push ecx
lea edx, [ebp - 0x264]
push 0x650bb8
push edx
call fcn.0057f81e
add esp, 0x14
lea eax, [ebp - 0x264]
mov ecx, ebx
push eax
call fcn.004120b0
lea ecx, [ebp - 0x464]
push 0x650ad8
lea edx, [ebp - 0x24]
push ecx
push edx
lea eax, [ebp - 0x264]
push 0x650bb8
push eax
call fcn.0057f81e
add esp, 0x14
lea ecx, [ebp - 0x264]
push ecx
mov ecx, ebx
call fcn.004120b0
lea edx, [ebp - 0x464]
push 0x650abc
lea eax, [ebp - 0x24]
push edx
push eax
lea ecx, [ebp - 0x264]
push 0x650bb8
push ecx
call fcn.0057f81e
add esp, 0x14
lea edx, [ebp - 0x264]
mov ecx, ebx
push edx
call fcn.004120b0
lea eax, [ebp - 0x464]
push 0x650a9c
lea ecx, [ebp - 0x24]
push eax
push ecx
lea edx, [ebp - 0x264]
push 0x650bb8
push edx
call fcn.0057f81e
add esp, 0x14
lea eax, [ebp - 0x264]
mov ecx, ebx
push eax
call fcn.004120b0
xor eax, eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], eax
mov word [ebp - 0x18], di
mov esi, dword [0x67a028]
mov byte [ebp - 4], 7
cmp esi, edi
jne 0x411aca
mov esi, 0x67a02c
mov ecx, 0x650a80
test ecx, ecx
je 0x411bcd
cmp esi, edi
je 0x411bcd
mov edx, 0x650a6c
test edx, edx
je 0x411bcd
push ecx
lea ecx, [ebp - 0x4c]
call fcn.00401f30
push esi
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 8
call fcn.00403bb0
mov bl, 9
push 0x650a6c
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.00403bb0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xa
call fcn.00401070
mov esi, dword [ebp - 0x44]
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
call fcn.0057e90a
add esp, 4
lea ecx, [ebp - 0x34]
mov edi, eax
call fcn.00401fb0
push eax
call fcn.0057e90a
add esi, edi
lea esi, [eax + esi + 3]
lea edi, [esi + esi]
push edi
call fcn.005970d9
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x1c], edx
je 0x411ba7
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x34]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x4c]
call fcn.00401fb0
push eax
mov eax, dword [ebp - 0x1c]
push esi
push eax
call fcn.0057e89a
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.0057e90a
add esp, 0x18
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.00401070
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 8
call fcn.00401070
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 7
call fcn.00401070
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x411bd4
lea eax, [ebp - 0x18]
mov ecx, dword [ebp - 0x50]
push eax
call fcn.004120b0
mov esi, dword [0x67a028]
test esi, esi
jne 0x411bec
mov esi, 0x67a02c
mov edx, 0x650a4c
test edx, edx
je 0x411cec
test esi, esi
je 0x411cec
mov eax, 0x650a6c
test eax, eax
je 0x411cec
push edx
lea ecx, [ebp - 0x4c]
call fcn.00401f30
push esi
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xb
call fcn.00403bb0
mov bl, 0xc
push 0x650a6c
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.00403bb0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xd
call fcn.00401070
mov esi, dword [ebp - 0x44]
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
call fcn.0057e90a
add esp, 4
lea ecx, [ebp - 0x34]
mov edi, eax
call fcn.00401fb0
push eax
call fcn.0057e90a
add esi, edi
lea esi, [eax + esi + 3]
lea edi, [esi + esi]
push edi
call fcn.005970d9
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x1c], edx
je 0x411cc9
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x34]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x4c]
call fcn.00401fb0
push eax
mov eax, dword [ebp - 0x1c]
push esi
push eax
call fcn.0057e89a
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.0057e90a
add esp, 0x18
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.00401070
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xb
call fcn.00401070
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 7
call fcn.00401070
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x411cf6
lea eax, [ebp - 0x18]
mov ecx, dword [ebp - 0x50]
push eax
call fcn.004120b0
mov esi, dword [0x67a028]
test esi, esi
jne 0x411d0e
mov esi, 0x67a02c
mov edx, 0x650a2c
test edx, edx
je 0x411e0e
test esi, esi
je 0x411e0e
mov eax, 0x650a6c
test eax, eax
je 0x411e0e
push edx
lea ecx, [ebp - 0x4c]
call fcn.00401f30
push esi
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xe
call fcn.00403bb0
mov bl, 0xf
push 0x650a6c
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.00403bb0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x10
call fcn.00401070
mov esi, dword [ebp - 0x44]
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
call fcn.0057e90a
add esp, 4
lea ecx, [ebp - 0x34]
mov edi, eax
call fcn.00401fb0
push eax
call fcn.0057e90a
add esi, edi
lea esi, [eax + esi + 3]
lea edi, [esi + esi]
push edi
call fcn.005970d9
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x1c], edx
je 0x411deb
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x34]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x4c]
call fcn.00401fb0
push eax
mov eax, dword [ebp - 0x1c]
push esi
push eax
call fcn.0057e89a
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.0057e90a
add esp, 0x18
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.00401070
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xe
call fcn.00401070
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 7
call fcn.00401070
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x411e18
lea eax, [ebp - 0x18]
mov ecx, dword [ebp - 0x50]
push eax
call fcn.004120b0
mov esi, dword [0x67a028]
test esi, esi
jne 0x411e30
mov esi, 0x67a02c
mov edx, 0x650a08
test edx, edx
je 0x411f30
test esi, esi
je 0x411f30
mov eax, 0x650a6c
test eax, eax
je 0x411f30
push edx
lea ecx, [ebp - 0x5c]
call fcn.00401f30
push esi
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x11
call fcn.00403bb0
mov bl, 0x12
push 0x650a6c
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.00403bb0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x13
call fcn.00401070
mov esi, dword [ebp - 0x54]
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
call fcn.0057e90a
add esp, 4
lea ecx, [ebp - 0x34]
mov edi, eax
call fcn.00401fb0
push eax
call fcn.0057e90a
add esi, edi
lea esi, [eax + esi + 3]
lea edi, [esi + esi]
push edi
call fcn.005970d9
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x1c], edx
je 0x411f0d
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x34]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x5c]
call fcn.00401fb0
push eax
mov eax, dword [ebp - 0x1c]
push esi
push eax
call fcn.0057e89a
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.0057e90a
add esp, 0x18
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.00401070
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x11
call fcn.00401070
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 7
call fcn.00401070
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x411f3a
lea eax, [ebp - 0x18]
mov esi, dword [ebp - 0x50]
push eax
mov ecx, esi
call fcn.004120b0
mov eax, dword [0x67a028]
test eax, eax
jne 0x411f53
mov eax, 0x67a02c
push 0x650a6c
push eax
push 0x6509e4
lea ecx, [ebp - 0x1c]
call fcn.00410280
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x411f70
lea eax, [ebp - 0x18]
push eax
mov ecx, esi
call fcn.004120b0
mov eax, dword [0x67a028]
test eax, eax
jne 0x411f86
mov eax, 0x67a02c
push 0x650a6c
push eax
push 0x6509c4
lea ecx, [ebp - 0x1c]
call fcn.00410280
lea ecx, [ebp - 0x1c]
call fcn.00401fb0
push eax
mov ecx, esi
call fcn.004120b0
push 0x650a6c
mov ecx, 0x67a028
call fcn.00401fb0
push eax
push 0x6509a4
lea ecx, [ebp - 0x1c]
call fcn.00410280
lea ecx, [ebp - 0x1c]
call fcn.00401fb0
push eax
mov ecx, esi
call fcn.004120b0
push 0x650a6c
mov ecx, 0x67a028
call fcn.00401fb0
push eax
push 0x650984
lea ecx, [ebp - 0x1c]
call fcn.00410280
lea ecx, [ebp - 0x1c]
call fcn.00401fb0
push eax
mov ecx, esi
call fcn.004120b0
push 0x650a6c
mov ecx, 0x67a028
call fcn.00401fb0
push eax
push 0x650964
lea ecx, [ebp - 0x1c]
call fcn.00410280
lea ecx, [ebp - 0x1c]
call fcn.00401fb0
push eax
mov ecx, esi
call fcn.004120b0
push 0x650a6c
mov ecx, 0x67a028
call fcn.00401fb0
push eax
push 0x65094c
lea ecx, [ebp - 0x1c]
call fcn.00410280
lea ecx, [ebp - 0x1c]
call fcn.00401fb0
push eax
mov ecx, esi
call fcn.004120b0
push 0x650a6c
mov ecx, 0x67a028
call fcn.00401fb0
push eax
push 0x650934
lea ecx, [ebp - 0x1c]
call fcn.00410280
lea ecx, [ebp - 0x1c]
call fcn.00401fb0
push eax
mov ecx, esi
call fcn.004120b0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0
call fcn.00401070
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret