Function at 0x40c870
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x90
push ebx
push esi
push edi
push 0x200
push 0x5afb80
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x4a57cc
push 0x5afb80
call fcn.0041e940
add esp, 8
cmp dword [ebp + 0xc], 0x2000000
jne 0x40c8c4
push 0x4a57d8
lea eax, [ebp - 0x84]
push eax
call fcn.0041e930
add esp, 8
jmp 0x40c8d8
push 0x4a57e0
lea eax, [ebp - 0x84]
push eax
call fcn.0041e930
add esp, 8
mov dword [0x5ac750], 0
jmp 0x40c8ed
inc dword [0x5ac750]
cmp dword [0x5ac750], 0x3000
jge 0x40c91a
mov eax, dword [0x5ac750]
mov byte [eax + 0x5affc0], 0
mov eax, dword [0x5ac750]
mov byte [eax + 0x5ac760], 0
jmp 0x40c8e7
push 0x5b2fc0
push 0x5ac760
push 0x5afb80
call fcn.0040c4c3
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40c944
mov eax, 0xffffffff
jmp 0x40cb7d
push 0x5afd84
mov ax, word [0x5b2fc0]
push eax
push 0x5ac760
lea eax, [ebp - 0x84]
push eax
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0
jne 0x40c98e
push 0x80002
call fcn.00406ccc
add esp, 4
mov eax, 0xffffffff
jmp 0x40cb7d
push 0x5b3230
xor eax, eax
mov ax, word [0x5b2fc0]
xor ecx, ecx
mov cx, word [0x5afd84]
sub eax, ecx
push eax
mov eax, dword [ebp - 0x88]
inc eax
push eax
push 0x4a57ec
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0
je 0x40c9de
mov ax, word [0x5b3230]
mov word [ebp - 4], ax
jmp 0x40c9f5
xor eax, eax
mov ax, word [0x5b2fc0]
xor ecx, ecx
mov cx, word [0x5afd84]
sub eax, ecx
mov word [ebp - 4], ax
push 0x5afd86
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x88]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
je 0x40cb76
push 0x5afb66
push 0x50
mov eax, dword [ebp + 8]
push eax
call fcn.0041e7b0
add esp, 4
xor ecx, ecx
mov cx, word [0x5afd86]
add eax, ecx
add eax, dword [ebp - 0x88]
inc eax
push eax
push 0x4a4fc0
call fcn.00409e88
add esp, 0x10
xor ebx, ebx
mov bx, word [0x5b2fc0]
mov eax, dword [ebp + 8]
push eax
call fcn.0041e7b0
add esp, 4
xor ecx, ecx
mov cx, word [0x5afd86]
xor edx, edx
mov dx, word [0x5afd84]
add ecx, edx
add eax, ecx
xor ecx, ecx
mov cx, word [0x5afb66]
add eax, ecx
inc eax
sub ebx, eax
push ebx
mov eax, dword [ebp + 8]
push eax
call fcn.0041e7b0
add esp, 4
xor ecx, ecx
mov cx, word [0x5afb66]
add eax, ecx
xor ecx, ecx
mov cx, word [0x5afd86]
add eax, ecx
add eax, dword [ebp - 0x88]
add eax, 3
push eax
push 0x5affc0
call fcn.0041f220
add esp, 0xc
xor ebx, ebx
mov bx, word [0x5b2fc0]
mov eax, dword [ebp + 8]
push eax
call fcn.0041e7b0
add esp, 4
xor ecx, ecx
mov cx, word [0x5afd86]
xor edx, edx
mov dx, word [0x5afd84]
add ecx, edx
add eax, ecx
xor ecx, ecx
mov cx, word [0x5afb66]
add eax, ecx
inc eax
sub ebx, eax
push ebx
push 0x5affc0
xor eax, eax
mov ax, word [0x5afd86]
add eax, dword [ebp - 0x88]
push eax
call fcn.0041f220
add esp, 0xc
xor ebx, ebx
mov bx, word [0x5b2fc0]
mov eax, dword [ebp + 8]
push eax
call fcn.0041e7b0
add esp, 4
xor ecx, ecx
mov cx, word [0x5afb66]
add eax, ecx
add eax, 3
sub ebx, eax
mov word [0x5b2fc0], bx
push 0x5b2fc0
push 0x5ac760
push 0x5afb80
call fcn.0040c60c
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40cb76
mov eax, 0xffffffff
jmp 0x40cb7d
xor eax, eax
jmp 0x40cb7d
pop edi
pop esi
pop ebx
leave
ret