Function at 0x409f00
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x90
push ebx
push esi
push edi
push 0x200
push 0x5a6480
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x4a1974
push 0x5a6480
call fcn.0041bfb0
add esp, 8
cmp dword [ebp + 0xc], 0x2000000
jne 0x409f54
push 0x4a1980
lea eax, [ebp - 0x84]
push eax
call fcn.0041bfa0
add esp, 8
jmp 0x409f68
push 0x4a1988
lea eax, [ebp - 0x84]
push eax
call fcn.0041bfa0
add esp, 8
mov dword [0x5a3050], 0
jmp 0x409f7d
inc dword [0x5a3050]
cmp dword [0x5a3050], 0x3000
jge 0x409faa
mov eax, dword [0x5a3050]
mov byte [eax + 0x5a68c0], 0
mov eax, dword [0x5a3050]
mov byte [eax + 0x5a3060], 0
jmp 0x409f77
push 0x5a98c0
push 0x5a3060
push 0x5a6480
call fcn.00409b53
add esp, 0xc
cmp eax, 0xffffffff
jne 0x409fd4
mov eax, 0xffffffff
jmp 0x40a20d
push 0x5a6684
mov ax, word [0x5a98c0]
push eax
push 0x5a3060
lea eax, [ebp - 0x84]
push eax
call fcn.00407518
add esp, 0x10
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0
jne 0x40a01e
push 0x80002
call fcn.0040435c
add esp, 4
mov eax, 0xffffffff
jmp 0x40a20d
push 0x5a9b30
xor eax, eax
mov ax, word [0x5a98c0]
xor ecx, ecx
mov cx, word [0x5a6684]
sub eax, ecx
push eax
mov eax, dword [ebp - 0x88]
inc eax
push eax
push 0x4a1994
call fcn.00407518
add esp, 0x10
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0
je 0x40a06e
mov ax, word [0x5a9b30]
mov word [ebp - 4], ax
jmp 0x40a085
xor eax, eax
mov ax, word [0x5a98c0]
xor ecx, ecx
mov cx, word [0x5a6684]
sub eax, ecx
mov word [ebp - 4], ax
push 0x5a6686
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x88]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00407518
add esp, 0x10
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
je 0x40a206
push 0x5a6466
push 0x50
mov eax, dword [ebp + 8]
push eax
call fcn.0041bdf0
add esp, 4
xor ecx, ecx
mov cx, word [0x5a6686]
add eax, ecx
add eax, dword [ebp - 0x88]
inc eax
push eax
push 0x4a1168
call fcn.00407518
add esp, 0x10
xor ebx, ebx
mov bx, word [0x5a98c0]
mov eax, dword [ebp + 8]
push eax
call fcn.0041bdf0
add esp, 4
xor ecx, ecx
mov cx, word [0x5a6686]
xor edx, edx
mov dx, word [0x5a6684]
add ecx, edx
add eax, ecx
xor ecx, ecx
mov cx, word [0x5a6466]
add eax, ecx
inc eax
sub ebx, eax
push ebx
mov eax, dword [ebp + 8]
push eax
call fcn.0041bdf0
add esp, 4
xor ecx, ecx
mov cx, word [0x5a6466]
add eax, ecx
xor ecx, ecx
mov cx, word [0x5a6686]
add eax, ecx
add eax, dword [ebp - 0x88]
add eax, 3
push eax
push 0x5a68c0
call fcn.0041c620
add esp, 0xc
xor ebx, ebx
mov bx, word [0x5a98c0]
mov eax, dword [ebp + 8]
push eax
call fcn.0041bdf0
add esp, 4
xor ecx, ecx
mov cx, word [0x5a6686]
xor edx, edx
mov dx, word [0x5a6684]
add ecx, edx
add eax, ecx
xor ecx, ecx
mov cx, word [0x5a6466]
add eax, ecx
inc eax
sub ebx, eax
push ebx
push 0x5a68c0
xor eax, eax
mov ax, word [0x5a6686]
add eax, dword [ebp - 0x88]
push eax
call fcn.0041c620
add esp, 0xc
xor ebx, ebx
mov bx, word [0x5a98c0]
mov eax, dword [ebp + 8]
push eax
call fcn.0041bdf0
add esp, 4
xor ecx, ecx
mov cx, word [0x5a6466]
add eax, ecx
add eax, 3
sub ebx, eax
mov word [0x5a98c0], bx
push 0x5a98c0
push 0x5a3060
push 0x5a6480
call fcn.00409c9c
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40a206
mov eax, 0xffffffff
jmp 0x40a20d
xor eax, eax
jmp 0x40a20d
pop edi
pop esi
pop ebx
leave
ret