Function at 0x418640
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x60d218
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 0x41887c
xor eax, eax
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x4c], eax
mov word [ebp - 0x48], di
mov ecx, 0x6be3e0
mov byte [ebp - 4], 1
test ecx, ecx
je 0x418765
lea edx, [ebp - 0x264]
test edx, edx
je 0x418765
lea eax, [ebp - 0x264]
lea ecx, [ebp - 0x34]
push eax
call fcn.0040e020
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 2
call fcn.00401070
push 0x6be3e0
lea ecx, [ebp - 0x40]
call fcn.00402350
mov eax, dword [ebp - 0x34]
mov byte [ebp - 4], 3
cmp eax, edi
jne 0x4186e9
lea eax, [ebp - 0x30]
mov esi, dword [ebp - 0x38]
push eax
call fcn.005de123
lea esi, [eax + esi + 2]
lea edi, [esi + esi]
push edi
call fcn.005f6c5c
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x4c], edx
je 0x41874a
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.004023d0
push eax
lea ecx, [ebp - 0x40]
call fcn.004023d0
push eax
mov eax, dword [ebp - 0x4c]
push esi
push eax
call fcn.005de0b3
mov ecx, dword [ebp - 0x4c]
push ecx
call fcn.005de123
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 0x41876e
lea eax, [ebp - 0x48]
push eax
mov ecx, ebx
call fcn.00419220
xor eax, eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], eax
mov word [ebp - 0x24], si
mov edx, 0x6be3c8
mov byte [ebp - 4], 4
test edx, edx
je 0x418853
lea ecx, [ebp - 0x264]
test ecx, ecx
je 0x418853
lea edx, [ebp - 0x264]
lea ecx, [ebp - 0x34]
push edx
call fcn.0040e020
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.00401070
push 0x6be3c8
lea ecx, [ebp - 0x40]
call fcn.00402350
mov eax, dword [ebp - 0x34]
mov byte [ebp - 4], 6
test eax, eax
jne 0x4187d7
lea eax, [ebp - 0x30]
mov esi, dword [ebp - 0x38]
push eax
call fcn.005de123
lea esi, [eax + esi + 2]
lea edi, [esi + esi]
push edi
call fcn.005f6c5c
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x28], edx
je 0x418838
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.004023d0
push eax
lea ecx, [ebp - 0x40]
call fcn.004023d0
push eax
mov eax, dword [ebp - 0x28]
push esi
push eax
call fcn.005de0b3
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.005de123
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 0x41885a
lea eax, [ebp - 0x24]
push eax
mov ecx, ebx
call fcn.00419220
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 0x418c11
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.005deee8
add esp, 0x14
lea edx, [ebp - 0x464]
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x264]
push 0x6be3b0
push edx
push eax
push 0x6be3a0
push ecx
call fcn.005df06c
add esp, 0x14
lea edx, [ebp - 0x264]
mov ecx, ebx
push edx
call fcn.00419220
lea eax, [ebp - 0x464]
push 0x6be384
lea ecx, [ebp - 0x24]
push eax
push ecx
lea edx, [ebp - 0x264]
push 0x6be3a0
push edx
call fcn.005df06c
add esp, 0x14
lea eax, [ebp - 0x264]
mov ecx, ebx
push eax
call fcn.00419220
lea ecx, [ebp - 0x464]
push 0x6be368
lea edx, [ebp - 0x24]
push ecx
push edx
lea eax, [ebp - 0x264]
push 0x6be3a0
push eax
call fcn.005df06c
add esp, 0x14
lea ecx, [ebp - 0x264]
push ecx
mov ecx, ebx
call fcn.00419220
lea edx, [ebp - 0x464]
push 0x6be350
lea eax, [ebp - 0x24]
push edx
push eax
lea ecx, [ebp - 0x264]
push 0x6be3a0
push ecx
call fcn.005df06c
add esp, 0x14
lea edx, [ebp - 0x264]
mov ecx, ebx
push edx
call fcn.00419220
lea eax, [ebp - 0x464]
push 0x6be33c
lea ecx, [ebp - 0x24]
push eax
push ecx
lea edx, [ebp - 0x264]
push 0x6be3a0
push edx
call fcn.005df06c
add esp, 0x14
lea eax, [ebp - 0x264]
mov ecx, ebx
push eax
call fcn.00419220
lea ecx, [ebp - 0x464]
push 0x6be318
lea edx, [ebp - 0x24]
push ecx
push edx
lea eax, [ebp - 0x264]
push 0x6be3a0
push eax
call fcn.005df06c
add esp, 0x14
lea ecx, [ebp - 0x264]
push ecx
mov ecx, ebx
call fcn.00419220
lea edx, [ebp - 0x464]
push 0x6bd84c
lea eax, [ebp - 0x24]
push edx
push eax
lea ecx, [ebp - 0x264]
push 0x6be3a0
push ecx
call fcn.005df06c
add esp, 0x14
lea edx, [ebp - 0x264]
mov ecx, ebx
push edx
call fcn.00419220
lea eax, [ebp - 0x464]
push 0x6bcc74
lea ecx, [ebp - 0x24]
push eax
push ecx
lea edx, [ebp - 0x264]
push 0x6be3a0
push edx
call fcn.005df06c
add esp, 0x14
lea eax, [ebp - 0x264]
mov ecx, ebx
push eax
call fcn.00419220
lea ecx, [ebp - 0x464]
push 0x6be304
lea edx, [ebp - 0x24]
push ecx
push edx
lea eax, [ebp - 0x264]
push 0x6be3a0
push eax
call fcn.005df06c
add esp, 0x14
lea ecx, [ebp - 0x264]
push ecx
mov ecx, ebx
call fcn.00419220
lea edx, [ebp - 0x464]
push 0x6be2e8
lea eax, [ebp - 0x24]
push edx
push eax
lea ecx, [ebp - 0x264]
push 0x6be3a0
push ecx
call fcn.005df06c
add esp, 0x14
lea edx, [ebp - 0x264]
mov ecx, ebx
push edx
call fcn.00419220
lea eax, [ebp - 0x464]
push 0x6bd550
lea ecx, [ebp - 0x24]
push eax
push ecx
lea edx, [ebp - 0x264]
push 0x6be3a0
push edx
call fcn.005df06c
add esp, 0x14
lea eax, [ebp - 0x264]
mov ecx, ebx
push eax
call fcn.00419220
lea ecx, [ebp - 0x464]
push 0x6be2c8
lea edx, [ebp - 0x24]
push ecx
push edx
lea eax, [ebp - 0x264]
push 0x6be3a0
push eax
call fcn.005df06c
add esp, 0x14
lea ecx, [ebp - 0x264]
push ecx
mov ecx, ebx
call fcn.00419220
lea edx, [ebp - 0x464]
push 0x6be2ac
lea eax, [ebp - 0x24]
push edx
push eax
lea ecx, [ebp - 0x264]
push 0x6be3a0
push ecx
call fcn.005df06c
add esp, 0x14
lea edx, [ebp - 0x264]
mov ecx, ebx
push edx
call fcn.00419220
lea eax, [ebp - 0x464]
push 0x6be28c
lea ecx, [ebp - 0x24]
push eax
push ecx
lea edx, [ebp - 0x264]
push 0x6be3a0
push edx
call fcn.005df06c
add esp, 0x14
lea eax, [ebp - 0x264]
mov ecx, ebx
push eax
call fcn.00419220
lea ecx, [ebp - 0x464]
push 0x6be268
lea edx, [ebp - 0x24]
push ecx
push edx
lea eax, [ebp - 0x264]
push 0x6be3a0
push eax
call fcn.005df06c
add esp, 0x14
lea ecx, [ebp - 0x264]
push ecx
mov ecx, ebx
call fcn.00419220
lea edx, [ebp - 0x464]
push 0x6be24c
lea eax, [ebp - 0x24]
push edx
push eax
lea ecx, [ebp - 0x264]
push 0x6be3a0
push ecx
call fcn.005df06c
add esp, 0x14
lea edx, [ebp - 0x264]
mov ecx, ebx
push edx
call fcn.00419220
lea eax, [ebp - 0x464]
push 0x6be22c
lea ecx, [ebp - 0x24]
push eax
push ecx
push 0x6be3a0
lea edx, [ebp - 0x264]
push edx
call fcn.005df06c
add esp, 0x14
lea eax, [ebp - 0x264]
mov ecx, ebx
push eax
call fcn.00419220
xor eax, eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], eax
mov word [ebp - 0x18], di
mov esi, dword [0x6ec760]
mov byte [ebp - 4], 7
cmp esi, edi
jne 0x418c30
mov esi, 0x6ec764
mov ecx, 0x6be210
test ecx, ecx
je 0x418d38
cmp esi, edi
je 0x418d38
mov edx, 0x6bd100
test edx, edx
je 0x418d38
push ecx
lea ecx, [ebp - 0x4c]
call fcn.00402350
push esi
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 8
call fcn.0040e020
mov bl, 9
push 0x6bd100
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.0040e020
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xa
call fcn.00401070
mov edi, dword [ebp - 0x34]
test edi, edi
jne 0x418c90
lea edi, [ebp - 0x30]
mov esi, dword [ebp - 0x44]
lea ecx, [ebp - 0x40]
call fcn.004023d0
push eax
call fcn.005de123
mov edx, eax
push edi
mov dword [ebp - 0x20], edx
call fcn.005de123
mov ecx, dword [ebp - 0x20]
add esi, ecx
lea esi, [eax + esi + 3]
lea edi, [esi + esi]
push edi
call fcn.005f6c5c
mov edx, eax
add esp, 0xc
test edx, edx
mov dword [ebp - 0x1c], edx
je 0x418d12
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.004023d0
push eax
lea ecx, [ebp - 0x34]
call fcn.004023d0
push eax
lea ecx, [ebp - 0x4c]
call fcn.004023d0
push eax
mov eax, dword [ebp - 0x1c]
push esi
push eax
call fcn.005de0b3
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.005de123
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 0x418d3f
lea eax, [ebp - 0x18]
mov ecx, dword [ebp - 0x50]
push eax
call fcn.00419220
mov esi, dword [0x6ec760]
test esi, esi
jne 0x418d57
mov esi, 0x6ec764
mov edx, 0x6be1f0
test edx, edx
je 0x418e57
test esi, esi
je 0x418e57
mov eax, 0x6bd100
test eax, eax
je 0x418e57
push edx
lea ecx, [ebp - 0x4c]
call fcn.00402350
push esi
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xb
call fcn.0040e020
mov bl, 0xc
push 0x6bd100
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.0040e020
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xd
call fcn.00401070
mov esi, dword [ebp - 0x44]
lea ecx, [ebp - 0x40]
call fcn.004023d0
push eax
call fcn.005de123
add esp, 4
lea ecx, [ebp - 0x34]
mov edi, eax
call fcn.004023d0
push eax
call fcn.005de123
add esi, edi
lea esi, [eax + esi + 3]
lea edi, [esi + esi]
push edi
call fcn.005f6c5c
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x1c], edx
je 0x418e34
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.004023d0
push eax
lea ecx, [ebp - 0x34]
call fcn.004023d0
push eax
lea ecx, [ebp - 0x4c]
call fcn.004023d0
push eax
mov eax, dword [ebp - 0x1c]
push esi
push eax
call fcn.005de0b3
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.005de123
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 0x418e61
lea eax, [ebp - 0x18]
mov ecx, dword [ebp - 0x50]
push eax
call fcn.00419220
mov esi, dword [0x6ec760]
test esi, esi
jne 0x418e79
mov esi, 0x6ec764
mov edx, 0x6be1d0
test edx, edx
je 0x418f79
test esi, esi
je 0x418f79
mov eax, 0x6bd100
test eax, eax
je 0x418f79
push edx
lea ecx, [ebp - 0x4c]
call fcn.00402350
push esi
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xe
call fcn.0040e020
mov bl, 0xf
push 0x6bd100
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.0040e020
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x10
call fcn.00401070
mov esi, dword [ebp - 0x44]
lea ecx, [ebp - 0x40]
call fcn.004023d0
push eax
call fcn.005de123
add esp, 4
lea ecx, [ebp - 0x34]
mov edi, eax
call fcn.004023d0
push eax
call fcn.005de123
add esi, edi
lea esi, [eax + esi + 3]
lea edi, [esi + esi]
push edi
call fcn.005f6c5c
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x1c], edx
je 0x418f56
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.004023d0
push eax
lea ecx, [ebp - 0x34]
call fcn.004023d0
push eax
lea ecx, [ebp - 0x4c]
call fcn.004023d0
push eax
mov eax, dword [ebp - 0x1c]
push esi
push eax
call fcn.005de0b3
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.005de123
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 0x418f83
lea eax, [ebp - 0x18]
mov ecx, dword [ebp - 0x50]
push eax
call fcn.00419220
mov esi, dword [0x6ec760]
test esi, esi
jne 0x418f9b
mov esi, 0x6ec764
mov edx, 0x6be1ac
test edx, edx
je 0x41909b
test esi, esi
je 0x41909b
mov eax, 0x6bd100
test eax, eax
je 0x41909b
push edx
lea ecx, [ebp - 0x5c]
call fcn.00402350
push esi
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x11
call fcn.0040e020
mov bl, 0x12
push 0x6bd100
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.0040e020
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x13
call fcn.00401070
mov esi, dword [ebp - 0x54]
lea ecx, [ebp - 0x40]
call fcn.004023d0
push eax
call fcn.005de123
add esp, 4
lea ecx, [ebp - 0x34]
mov edi, eax
call fcn.004023d0
push eax
call fcn.005de123
add esi, edi
lea esi, [eax + esi + 3]
lea edi, [esi + esi]
push edi
call fcn.005f6c5c
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x1c], edx
je 0x419078
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.004023d0
push eax
lea ecx, [ebp - 0x34]
call fcn.004023d0
push eax
lea ecx, [ebp - 0x5c]
call fcn.004023d0
push eax
mov eax, dword [ebp - 0x1c]
push esi
push eax
call fcn.005de0b3
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.005de123
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 0x4190a5
lea eax, [ebp - 0x18]
mov esi, dword [ebp - 0x50]
push eax
mov ecx, esi
call fcn.00419220
mov eax, dword [0x6ec760]
test eax, eax
jne 0x4190be
mov eax, 0x6ec764
push 0x6bd100
push eax
push 0x6be184
lea ecx, [ebp - 0x1c]
call fcn.0040f650
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x4190db
lea eax, [ebp - 0x18]
push eax
mov ecx, esi
call fcn.00419220
mov eax, dword [0x6ec760]
test eax, eax
jne 0x4190f1
mov eax, 0x6ec764
push 0x6bd100
push eax
push 0x6be164
lea ecx, [ebp - 0x1c]
call fcn.0040f650
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x41910e
lea eax, [ebp - 0x18]
push eax
mov ecx, esi
call fcn.00419220
mov eax, dword [0x6ec760]
test eax, eax
jne 0x419124
mov eax, 0x6ec764
push 0x6bd100
push eax
push 0x6be144
lea ecx, [ebp - 0x1c]
call fcn.0040f650
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x419141
lea eax, [ebp - 0x18]
push eax
mov ecx, esi
call fcn.00419220
push 0x6bd100
mov ecx, 0x6ec760
call fcn.004023d0
push eax
push 0x6be124
lea ecx, [ebp - 0x1c]
call fcn.0040f650
lea ecx, [ebp - 0x1c]
call fcn.004023d0
push eax
mov ecx, esi
call fcn.00419220
push 0x6bd100
mov ecx, 0x6ec760
call fcn.004023d0
push eax
push 0x6be104
lea ecx, [ebp - 0x1c]
call fcn.0040f650
lea ecx, [ebp - 0x1c]
call fcn.004023d0
push eax
mov ecx, esi
call fcn.00419220
push 0x6bd100
mov ecx, 0x6ec760
call fcn.004023d0
push eax
push 0x6be0ec
lea ecx, [ebp - 0x1c]
call fcn.0040f650
lea ecx, [ebp - 0x1c]
call fcn.004023d0
push eax
mov ecx, esi
call fcn.00419220
push 0x6bd100
mov ecx, 0x6ec760
call fcn.004023d0
push eax
push 0x6be0d4
lea ecx, [ebp - 0x1c]
call fcn.0040f650
lea ecx, [ebp - 0x1c]
call fcn.004023d0
push eax
mov ecx, esi
call fcn.00419220
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