Function at 0x40842f
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 0x4a14d4
push 0x5a6480
call fcn.0041bfb0
add esp, 8
cmp dword [ebp + 0x14], 0x2000000
jne 0x408483
push 0x4a14e0
lea eax, [ebp - 0x88]
push eax
call fcn.0041bfa0
add esp, 8
jmp 0x408497
push 0x4a14e8
lea eax, [ebp - 0x88]
push eax
call fcn.0041bfa0
add esp, 8
mov dword [0x5a3050], 0
jmp 0x4084ac
inc dword [0x5a3050]
cmp dword [0x5a3050], 0x3000
jge 0x4084d9
mov eax, dword [0x5a3050]
mov byte [eax + 0x5a68c0], 0
mov eax, dword [0x5a3050]
mov byte [eax + 0x5a3060], 0
jmp 0x4084a6
push 0x5a98c0
push 0x5a3060
push 0x5a6480
call fcn.00409b53
add esp, 0xc
cmp eax, 0xffffffff
jne 0x408503
mov eax, 0xffffffff
jmp 0x4088ca
push 0x5a6684
mov ax, word [0x5a98c0]
push eax
push 0x5a3060
lea eax, [ebp - 0x88]
push eax
call fcn.00407518
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x408547
push 0x80002
call fcn.0040435c
add esp, 4
mov eax, 0xffffffff
jmp 0x4088ca
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 - 8]
inc eax
push eax
push 0x4a14f4
call fcn.00407518
add esp, 0x10
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0
je 0x408594
mov ax, word [0x5a9b30]
mov word [ebp - 4], ax
jmp 0x4085ab
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 - 8]
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 0x408753
cmp dword [ebp + 0x10], 0
jne 0x40874e
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 - 8]
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 - 8]
inc eax
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
mov eax, dword [ebp + 0xc]
push eax
call fcn.0041bdf0
add esp, 4
mov ebx, eax
mov eax, dword [ebp + 8]
push eax
call fcn.0041bdf0
add esp, 4
add ebx, eax
xor eax, eax
mov ax, word [0x5a6686]
add ebx, eax
add ebx, dword [ebp - 8]
inc ebx
push ebx
call fcn.0041c620
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.0041bdf0
add esp, 4
push eax
mov eax, dword [ebp + 0xc]
push eax
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 - 8]
inc eax
push eax
call fcn.0041c620
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.0041bdf0
add esp, 4
xor ecx, ecx
mov cx, word [0x5a6466]
sub eax, ecx
xor ecx, ecx
mov cx, word [0x5a98c0]
add eax, ecx
mov word [0x5a98c0], ax
jmp 0x408899
xor ebx, ebx
mov bx, word [0x5a98c0]
lea eax, [ebp - 0x88]
push eax
call fcn.0041bdf0
add esp, 4
xor ecx, ecx
mov cx, word [0x5a6684]
add eax, ecx
sub ebx, eax
push ebx
lea eax, [ebp - 0x88]
push eax
call fcn.0041bdf0
add esp, 4
mov ecx, dword [ebp - 8]
add ecx, eax
push ecx
push 0x5a68c0
call fcn.0041c620
add esp, 0xc
xor ebx, ebx
mov bx, word [0x5a98c0]
lea eax, [ebp - 0x88]
push eax
call fcn.0041bdf0
add esp, 4
xor ecx, ecx
mov cx, word [0x5a6684]
add eax, ecx
sub ebx, eax
push ebx
push 0x5a68c0
mov eax, dword [ebp + 0xc]
push eax
call fcn.0041bdf0
add esp, 4
mov ebx, eax
mov eax, dword [ebp + 8]
push eax
call fcn.0041bdf0
add esp, 4
add ebx, eax
lea eax, [ebp - 0x88]
push eax
call fcn.0041bdf0
add esp, 4
add ebx, eax
add ebx, dword [ebp - 8]
add ebx, 3
push ebx
call fcn.0041c620
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
push 0x5a9ae0
call fcn.0041bfa0
add esp, 8
push 0x4a14f8
push 0x5a9ae0
call fcn.0041bfb0
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
push 0x5a9ae0
call fcn.0041bfb0
add esp, 8
push 0x4a1168
push 0x5a9ae0
call fcn.0041bfb0
add esp, 8
push 0x5a9ae0
call fcn.0041bdf0
add esp, 4
push eax
push 0x5a9ae0
lea eax, [ebp - 0x88]
push eax
call fcn.0041bdf0
add esp, 4
mov ecx, dword [ebp - 8]
add ecx, eax
add ecx, 2
push ecx
call fcn.0041c620
add esp, 0xc
push 0x5a9ae0
call fcn.0041bdf0
add esp, 4
xor ecx, ecx
mov cx, word [0x5a98c0]
add eax, ecx
mov word [0x5a98c0], ax
push 0x5a98c0
push 0x5a3060
push 0x5a6480
call fcn.00409c9c
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4088c3
mov eax, 0xffffffff
jmp 0x4088ca
xor eax, eax
jmp 0x4088ca
pop edi
pop esi
pop ebx
leave
ret