Function at 0x40ad9f
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 0x4a532c
push 0x5afb80
call fcn.0041e940
add esp, 8
cmp dword [ebp + 0x14], 0x2000000
jne 0x40adf3
push 0x4a5338
lea eax, [ebp - 0x88]
push eax
call fcn.0041e930
add esp, 8
jmp 0x40ae07
push 0x4a5340
lea eax, [ebp - 0x88]
push eax
call fcn.0041e930
add esp, 8
mov dword [0x5ac750], 0
jmp 0x40ae1c
inc dword [0x5ac750]
cmp dword [0x5ac750], 0x3000
jge 0x40ae49
mov eax, dword [0x5ac750]
mov byte [eax + 0x5affc0], 0
mov eax, dword [0x5ac750]
mov byte [eax + 0x5ac760], 0
jmp 0x40ae16
push 0x5b2fc0
push 0x5ac760
push 0x5afb80
call fcn.0040c4c3
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40ae73
mov eax, 0xffffffff
jmp 0x40b23a
push 0x5afd84
mov ax, word [0x5b2fc0]
push eax
push 0x5ac760
lea eax, [ebp - 0x88]
push eax
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x40aeb7
push 0x80002
call fcn.00406ccc
add esp, 4
mov eax, 0xffffffff
jmp 0x40b23a
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 - 8]
inc eax
push eax
push 0x4a534c
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0
je 0x40af04
mov ax, word [0x5b3230]
mov word [ebp - 4], ax
jmp 0x40af1b
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 - 8]
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 0x40b0c3
cmp dword [ebp + 0x10], 0
jne 0x40b0be
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 - 8]
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 - 8]
inc eax
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
mov eax, dword [ebp + 0xc]
push eax
call fcn.0041e7b0
add esp, 4
mov ebx, eax
mov eax, dword [ebp + 8]
push eax
call fcn.0041e7b0
add esp, 4
add ebx, eax
xor eax, eax
mov ax, word [0x5afd86]
add ebx, eax
add ebx, dword [ebp - 8]
inc ebx
push ebx
call fcn.0041f220
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.0041e7b0
add esp, 4
push eax
mov eax, dword [ebp + 0xc]
push eax
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 - 8]
inc eax
push eax
call fcn.0041f220
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.0041e7b0
add esp, 4
xor ecx, ecx
mov cx, word [0x5afb66]
sub eax, ecx
xor ecx, ecx
mov cx, word [0x5b2fc0]
add eax, ecx
mov word [0x5b2fc0], ax
jmp 0x40b209
xor ebx, ebx
mov bx, word [0x5b2fc0]
lea eax, [ebp - 0x88]
push eax
call fcn.0041e7b0
add esp, 4
xor ecx, ecx
mov cx, word [0x5afd84]
add eax, ecx
sub ebx, eax
push ebx
lea eax, [ebp - 0x88]
push eax
call fcn.0041e7b0
add esp, 4
mov ecx, dword [ebp - 8]
add ecx, eax
push ecx
push 0x5affc0
call fcn.0041f220
add esp, 0xc
xor ebx, ebx
mov bx, word [0x5b2fc0]
lea eax, [ebp - 0x88]
push eax
call fcn.0041e7b0
add esp, 4
xor ecx, ecx
mov cx, word [0x5afd84]
add eax, ecx
sub ebx, eax
push ebx
push 0x5affc0
mov eax, dword [ebp + 0xc]
push eax
call fcn.0041e7b0
add esp, 4
mov ebx, eax
mov eax, dword [ebp + 8]
push eax
call fcn.0041e7b0
add esp, 4
add ebx, eax
lea eax, [ebp - 0x88]
push eax
call fcn.0041e7b0
add esp, 4
add ebx, eax
add ebx, dword [ebp - 8]
add ebx, 3
push ebx
call fcn.0041f220
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
push 0x5b31e0
call fcn.0041e930
add esp, 8
push 0x4a5350
push 0x5b31e0
call fcn.0041e940
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
push 0x5b31e0
call fcn.0041e940
add esp, 8
push 0x4a4fc0
push 0x5b31e0
call fcn.0041e940
add esp, 8
push 0x5b31e0
call fcn.0041e7b0
add esp, 4
push eax
push 0x5b31e0
lea eax, [ebp - 0x88]
push eax
call fcn.0041e7b0
add esp, 4
mov ecx, dword [ebp - 8]
add ecx, eax
add ecx, 2
push ecx
call fcn.0041f220
add esp, 0xc
push 0x5b31e0
call fcn.0041e7b0
add esp, 4
xor ecx, ecx
mov cx, word [0x5b2fc0]
add eax, ecx
mov word [0x5b2fc0], ax
push 0x5b2fc0
push 0x5ac760
push 0x5afb80
call fcn.0040c60c
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40b233
mov eax, 0xffffffff
jmp 0x40b23a
xor eax, eax
jmp 0x40b23a
pop edi
pop esi
pop ebx
leave
ret