Function at 0x4610f0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb0
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0040449c
xor eax, eax
push ebp
push 0x461828
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [0x469cec], 0xffffffff
mov eax, dword [ebp - 4]
mov edx, 0x461840
call fcn.004043f8
je 0x4611c1
mov dword [0x469cec], 0x1e00000
mov eax, 0x469d00
mov edx, 0x400
call fcn.00404638
push 0x400
mov eax, dword [0x469d00]
call fcn.004044ac
push eax
call sub.KERNEL32.DLL_GetWindowsDirectoryA
mov edx, eax
mov eax, 0x469d00
call fcn.00404638
push dword [0x469d00]
push 0x461850
lea eax, [ebp - 0x40]
call fcn.00460eec
push dword [ebp - 0x40]
push 0x461860
mov eax, 0x469d00
mov edx, 4
call fcn.0040436c
mov eax, dword [0x469d00]
call fcn.00408434
test al, al
jne 0x4611c1
mov eax, dword [0x469d00]
call fcn.00408884
cmp byte [0x46686c], 0
je 0x4611e1
push 0x40
mov ecx, 0x46186c
mov dl, 1
mov eax, dword [0x41222c]
call fcn.0041606c
mov ebx, eax
jmp 0x461209
push 0x40
lea edx, [ebp - 0x48]
xor eax, eax
call fcn.004029f4
mov eax, dword [ebp - 0x48]
lea edx, [ebp - 0x44]
call fcn.00408754
mov ecx, dword [ebp - 0x44]
mov dl, 1
mov eax, dword [0x41222c]
call fcn.0041606c
mov ebx, eax
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
sub eax, 4
sbb edx, 0
push edx
push eax
mov eax, ebx
call fcn.00415bd8
lea edx, [ebp - 0x24]
mov ecx, 4
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
cmp dword [ebp - 0x24], 0
jne 0x46123f
push 0
call sub.user32.dll_PostQuitMessage
jmp 0x4617f8
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
sub eax, 4
sbb edx, 0
push edx
push eax
mov eax, dword [ebp - 0x24]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
mov eax, ebx
call fcn.00415bd8
mov eax, 0x469cf4
mov edx, 0x20
call fcn.00404638
mov eax, 0x469cf4
call fcn.00404504
mov edx, eax
mov ecx, 0x20
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [0x469cf4]
mov edx, 0x461898
call fcn.004043f8
je 0x4612ab
mov eax, dword [0x466c94]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0xec]
mov eax, dword [0x4669fc]
mov eax, dword [eax]
call fcn.0044fdf4
mov eax, dword [ebp - 4]
mov edx, 0x461840
call fcn.004043f8
jne 0x461358
mov eax, 0x469d04
mov edx, 0xb
call fcn.00404638
mov eax, 0x469d04
call fcn.00404504
mov edx, eax
mov ecx, 0xb
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, 0x469d08
mov ecx, 2
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, 0x469d0a
mov ecx, 2
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, 0x469d14
mov ecx, 4
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov word [ebp - 0x30], 0
lea edx, [ebp - 0x30]
mov ecx, 1
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, 0x469d0d
mov ecx, 1
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
movzx eax, word [ebp - 0x30]
mov dword [0x469d10], eax
jmp 0x4613ea
mov edx, 0x469d0d
mov ecx, 1
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
lea edx, [ebp - 0x30]
mov ecx, 2
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
lea edx, [ebp - 0x2e]
mov ecx, 2
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
movzx edx, word [ebp - 0x2e]
lea eax, [ebp - 0x10]
call fcn.00404638
lea eax, [ebp - 0x10]
call fcn.00404504
mov edx, eax
movzx ecx, word [ebp - 0x2e]
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
lea eax, [ebp - 0x10]
push eax
movzx ecx, word [ebp - 0x2e]
mov edx, 2
mov eax, dword [ebp - 0x10]
call fcn.0040450c
mov eax, 0x469cf0
mov edx, dword [ebp - 0x10]
call fcn.00404040
mov eax, dword [ebp - 4]
mov edx, 0x4618c4
call fcn.004043f8
jne 0x4613ea
mov edx, 0x469d0c
mov ecx, 1
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, 0x469cfc
call fcn.00403fec
mov word [ebp - 0x2e], 0
lea edx, [ebp - 0x2e]
mov ecx, 1
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
cmp word [ebp - 0x2e], 0
jbe 0x461435
movzx edx, word [ebp - 0x2e]
mov eax, 0x469cfc
call fcn.00404638
mov eax, 0x469cfc
call fcn.00404504
mov edx, eax
movzx ecx, word [ebp - 0x2e]
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
movzx eax, word [ebp - 0x30]
inc eax
push eax
mov eax, 0x469d18
mov ecx, 1
mov edx, dword [0x460c8c]
call fcn.00405048
add esp, 4
mov eax, dword [0x4669fc]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f8]
mov edx, 0x2710
call fcn.00429d08
mov dl, 1
mov eax, dword [0x41231c]
call fcn.0040326c
mov dword [ebp - 0x34], eax
movzx eax, word [ebp - 0x30]
push eax
mov eax, 0x2710
pop edx
mov ecx, edx
xor edx, edx
div ecx
mov dword [ebp - 0x28], eax
movzx eax, word [ebp - 0x30]
test eax, eax
jle 0x4617d1
mov dword [ebp - 0x38], eax
mov esi, 1
mov eax, dword [ebp - 0x34]
call fcn.004162c8
mov eax, dword [ebp - 4]
mov edx, 0x461840
call fcn.004043f8
jne 0x46156b
lea eax, [ebp - 0xc]
mov edx, 1
call fcn.00404638
lea eax, [ebp - 0xc]
call fcn.00404504
mov edx, eax
mov ecx, 1
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, 0x466870
mov ecx, 1
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, esi
add eax, eax
mov edx, dword [0x469d18]
lea eax, [edx + eax*8 + 0xc]
xor edx, edx
mov dl, byte [0x466870]
call fcn.00404638
cmp byte [0x466870], 0
jbe 0x461538
mov eax, esi
add eax, eax
mov edx, dword [0x469d18]
lea eax, [edx + eax*8 + 0xc]
call fcn.00404504
mov edx, eax
xor ecx, ecx
mov cl, byte [0x466870]
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, ebx
call fcn.00415bb8
add eax, 4
inc eax
add eax, 4
add eax, 4
mov edx, esi
add edx, edx
mov ecx, dword [0x469d18]
mov dword [ecx + edx*8], eax
mov eax, esi
add eax, eax
mov edx, dword [0x469d18]
mov ecx, dword [ebp - 0xc]
mov cl, byte [ecx]
mov byte [edx + eax*8 + 8], cl
jmp 0x46159b
lea edx, [ebp - 0x2e]
mov ecx, 2
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
movzx edx, word [ebp - 0x2e]
lea eax, [ebp - 0x14]
call fcn.00404638
lea eax, [ebp - 0x14]
call fcn.00404504
mov edx, eax
movzx ecx, word [ebp - 0x2e]
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
lea edx, [ebp - 0x1c]
mov ecx, 4
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
lea edx, [ebp - 0x18]
mov ecx, 4
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, 0x466870
mov ecx, 1
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x18]
xor edx, edx
div dword [0x469cec]
test edx, edx
setne al
mov edi, eax
and edi, 0xff
mov eax, dword [ebp - 0x18]
xor edx, edx
div dword [0x469cec]
add edi, eax
cmp byte [0x466870], 1
jne 0x461609
mov eax, esi
add eax, eax
mov edx, dword [0x469d18]
mov byte [edx + eax*8 + 9], 1
jmp 0x461618
mov eax, esi
add eax, eax
mov edx, dword [0x469d18]
mov byte [edx + eax*8 + 9], 0
mov eax, dword [ebp - 4]
mov edx, 0x461840
call fcn.004043f8
je 0x461786
lea edx, [ebp - 0x4c]
mov eax, dword [ebp - 0x14]
call fcn.00408700
mov ecx, dword [ebp - 0x4c]
lea eax, [ebp - 0x10]
mov edx, dword [0x469d00]
call fcn.004042f8
mov eax, dword [ebp - 0x10]
call fcn.00408434
test al, al
jne 0x46165b
mov eax, dword [ebp - 0x10]
call fcn.00408458
push 0xffff
lea eax, [ebp - 0x50]
mov ecx, dword [ebp - 0x14]
mov edx, dword [0x469d00]
call fcn.004042f8
mov ecx, dword [ebp - 0x50]
mov dl, 1
mov eax, dword [0x41222c]
call fcn.0041606c
mov dword [ebp - 8], eax
cmp dword [ebp - 0x1c], 0
jbe 0x46177c
mov eax, edi
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 0x28]
cdq
call fcn.00404e10
mov dword [ebp - 0x2c], eax
test edi, edi
jle 0x46177c
mov dword [ebp - 0x3c], edi
mov eax, dword [0x4669fc]
mov eax, dword [eax]
mov edi, dword [eax + 0x2f8]
mov eax, edi
call fcn.00429b68
mov edx, eax
add edx, dword [ebp - 0x2c]
mov eax, dword [0x4669fc]
mov eax, edi
call fcn.00429d18
mov eax, dword [0x4669fc]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f8]
call fcn.0043414c
mov eax, dword [0x466b30]
mov eax, dword [eax]
call fcn.004531e0
mov eax, dword [ebp - 0x34]
call fcn.004162c8
lea edx, [ebp - 0x20]
mov ecx, 4
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
xor edx, edx
push edx
push eax
mov edx, ebx
mov eax, dword [ebp - 0x34]
call fcn.00415e54
cmp byte [0x469d0d], 0
jbe 0x46172c
mov eax, dword [ebp - 0x34]
call fcn.00460f5c
cmp byte [0x466870], 1
jne 0x461747
lea eax, [ebp - 0x34]
call fcn.004618cc
mov eax, dword [ebp - 0x34]
mov edx, dword [eax]
call dword [edx]
mov dword [ebp - 0x1c], eax
push 0
push 0
mov eax, dword [ebp - 0x34]
call fcn.00415bd8
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x1c]
je 0x461761
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
xor edx, edx
push edx
push eax
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
call fcn.00415e54
dec dword [ebp - 0x3c]
jne 0x4616aa
mov eax, dword [ebp - 8]
call fcn.0040329c
jmp 0x4617c7
lea edx, [ebp - 0x1c]
mov ecx, 4
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, esi
add eax, eax
mov edx, dword [0x469d18]
mov ecx, dword [ebp - 0x1c]
mov dword [edx + eax*8 + 4], ecx
mov eax, ebx
call fcn.00415bb8
push edx
push eax
mov eax, dword [ebp - 0x1c]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, ebx
call fcn.00415bd8
inc esi
dec dword [ebp - 0x38]
jne 0x4614a1
mov eax, dword [ebp - 0x34]
call fcn.0040329c
mov eax, ebx
call fcn.0040329c
mov eax, dword [0x4669fc]
mov eax, dword [eax]
call fcn.0044fdec
mov eax, dword [0x466960]
mov eax, dword [eax]
call fcn.00460b4c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46182f
lea eax, [ebp - 0x50]
mov edx, 5
call fcn.00404010
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.00404010
lea eax, [ebp - 4]
call fcn.00403fec
ret