Function at 0x427190
Capabilities:
Get common file path

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x456401
push eax
mov eax, dword [0x46896c]
mov dword fs:[0], esp
sub esp, 0x218
push ebx
xor ebx, ebx
push ebp
push esi
cmp eax, ebx
push edi
mov ebp, ecx
jne 0x4271e0
mov eax, dword [ebp + 0x7cc]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
cmp eax, ebx
je 0x4271d8
push ebx
push ebx
push ebx
push ebx
mov ecx, ebp
call fcn.00429400
cmp dword [0x46896c], ebx
je 0x42720f
mov al, byte [0x469ba8]
test al, 1
jne 0x42720b
mov dl, al
mov ecx, 0x469bc0
or dl, 1
mov byte [0x469ba8], dl
call fcn.00435810
push 0x404330
call fcn.0044055c
add esp, 4
push 7
jmp 0x42723c
mov al, byte [0x469ba8]
test al, 1
jne 0x42723a
mov dl, al
mov ecx, 0x469bc0
or dl, 1
mov byte [0x469ba8], dl
call fcn.00435810
push 0x404330
call fcn.0044055c
add esp, 4
push 6
mov ecx, 0x469bc0
call fcn.00435ae0
mov eax, dword [ebp + 0x70]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
cmp eax, 0x3001
jl 0x427334
mov edx, dword [0x468948]
cmp dword [edx - 8], ebx
je 0x427334
mov ecx, 0x468910
call fcn.004338e0
test eax, eax
je 0x427334
mov eax, dword [0x468408]
lea ecx, [esp + 0x1c]
mov dword [0x468970], ebx
push 0x100
mov eax, dword [eax + 8]
push ecx
push 0x91
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
cmp eax, ebx
jne 0x4272a8
mov word [esp + 0x1c], bx
mov edx, 0x100
sub edx, eax
cmp edx, 1
jle 0x4272c5
lea eax, [esp + 0x1c]
mov ecx, 0x468980
push eax
call fcn.004032e0
jmp 0x427316
push 0x1ff
mov ecx, 0x468980
mov esi, 0x200
call fcn.00403f70
cmp eax, ebx
je 0x42730a
push esi
push eax
push 0x91
call fcn.004042c0
mov ecx, esi
sub ecx, eax
cmp ecx, 1
jg 0x42730a
add esi, 0x100
mov ecx, 0x468980
lea edx, [esi - 1]
push edx
call fcn.00403f70
cmp eax, ebx
jne 0x4272dd
push 0xffffffffffffffff
mov ecx, 0x468980
call fcn.00404030
mov eax, dword [ebp + 0x70]
push 0x5002
push eax
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebp + 0x70]
push 3
push eax
mov edx, dword [eax]
call dword [edx + 0x1c]
jmp 0x42762b
call fcn.0042ceb0
test eax, eax
je 0x42749a
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x1e]
mov word [esp + 0x1c], bx
rep stosd dword es:[edi], eax
lea eax, [esp + 0x1c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push ebx
lea ecx, [esp + 0x20]
push 0x6400000
push ecx
call 0x42bee0
add esp, 0xc
test eax, eax
je 0x427436
lea edx, [esp + 0x1c]
test edx, edx
jne 0x42738a
xor eax, eax
jmp 0x427395
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [esp + 0x1c]
push ecx
push eax
mov ecx, 0x46898c
call fcn.00404190
mov eax, dword [ebp + 0x70]
cmp eax, ebx
je 0x4273b4
mov edx, dword [eax]
push 1
push eax
call dword [edx + 0x44]
cmp dword [0x46896c], ebx
jne 0x427620
mov edi, dword [ebp + 0x7c0]
mov eax, dword [0x468950]
cmp eax, edi
je 0x427620
cmp dword [eax - 0xc], ebx
jge 0x4273e5
mov ecx, dword [0x46005c]
add eax, 0xfffffff4
cmp eax, ecx
jne 0x4273ee
cmp dword [edi - 0xc], ebx
jge 0x427601
mov esi, dword [edi - 8]
mov ecx, 0x468950
push esi
call fcn.004079b0
test eax, eax
je 0x427620
mov ecx, dword [0x468950]
lea ebx, [esi + esi]
push ebx
lea eax, [esi + esi + 2]
push edi
push eax
push ecx
call fcn.00402fc0
mov edx, dword [0x468950]
add esp, 0x10
mov dword [edx - 8], esi
mov eax, dword [0x468950]
mov word [ebx + eax], 0
jmp 0x427620
push ebx
push 0x6400000
call fcn.0042cd60
add esp, 8
cmp ax, bx
jne 0x42746a
push 0x40
push 0x96
push 0xb4
push ebx
call fcn.004128c0
add esp, 0x10
mov ecx, ebp
call fcn.00428c60
jmp 0x42762b
and eax, 0xffff
push eax
push str._c:_
push 0x46898c
call fcn.00407560
mov eax, dword [ebp + 0x70]
add esp, 0xc
cmp eax, ebx
je 0x4273b4
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x44]
jmp 0x4273b4
mov edx, dword [0x46898c]
push ebx
push 0x6400000
push edx
call 0x42bee0
add esp, 0xc
test eax, eax
jne 0x4273b4
mov eax, dword [0x46898c]
lea ecx, [esp + 0x10]
push eax
push ecx
call 0x42bf40
add esp, 8
lea edx, [esp + 0x18]
push 1
push edx
lea ecx, [esp + 0x18]
mov dword [esp + 0x238], ebx
call fcn.00403530
mov esi, eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
mov byte [esp + 0x230], 1
je 0x427535
cmp dword [ecx - 0xc], ebx
jge 0x427507
mov edx, dword [0x46005c]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x42750c
cmp dword [eax - 0xc], ebx
jge 0x42751c
push eax
mov eax, dword [eax - 8]
push eax
lea ecx, [esp + 0x18]
call fcn.00404190
jmp 0x427535
lea ecx, [esp + 0x10]
call fcn.00404250
mov esi, dword [esi]
mov dword [esp + 0x10], esi
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0x18]
mov edx, dword [0x46005c]
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x427566
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x427566
mov edx, dword [esp + 0x18]
lea eax, [edx - 0xc]
push eax
call fcn.00439890
add esp, 4
mov eax, dword [str.lF_F]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x10]
push 0x64
push ecx
lea edx, [esp + 0x1c]
push 0xb5
push edx
mov byte [esp + 0x240], 2
call fcn.004036a0
mov eax, dword [esp + 0x24]
push 0x40
push 0x96
push eax
push ebx
call fcn.00412b50
add esp, 0x20
mov ecx, ebp
call fcn.00428c60
mov eax, dword [esp + 0x14]
mov edx, dword [0x46005c]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4275d4
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x4275d4
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00439890
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, dword [0x46005c]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42762b
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x42762b
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00439890
add esp, 4
jmp 0x42762b
mov ecx, 0x468950
call fcn.00404250
mov eax, dword [ebp + 0x7c0]
mov dword [0x468950], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [ebp + 0x70]
push 2
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov ecx, dword [esp + 0x228]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x224
ret