Function at 0x40a4ef
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x90
push ebx
push esi
push edi
push 0x200
push 0x430ce0
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x4a02e4
push 0x430ce0
call fcn.0041d138
add esp, 8
cmp dword [ebp + 0x14], 0x2000000
jne 0x40a543
push 0x4a02f0
lea eax, [ebp - 0x88]
push eax
call fcn.0041d13c
add esp, 8
jmp 0x40a557
push 0x4a02f8
lea eax, [ebp - 0x88]
push eax
call fcn.0041d13c
add esp, 8
mov dword [0x42d8c0], 0
jmp 0x40a56c
inc dword [0x42d8c0]
cmp dword [0x42d8c0], 0x3000
jge 0x40a599
mov eax, dword [0x42d8c0]
mov byte [eax + 0x431100], 0
mov eax, dword [0x42d8c0]
mov byte [eax + 0x42d8d0], 0
jmp 0x40a566
push 0x434100
push 0x42d8d0
push 0x430ce0
call fcn.0040bc13
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40a5c3
mov eax, 0xffffffff
jmp 0x40a98a
push 0x430ee4
mov ax, word [0x434100]
push eax
push 0x42d8d0
lea eax, [ebp - 0x88]
push eax
call fcn.004095d8
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x40a607
push 0x80002
call fcn.004064f2
add esp, 4
mov eax, 0xffffffff
jmp 0x40a98a
push 0x434370
xor eax, eax
mov ax, word [0x434100]
xor ecx, ecx
mov cx, word [0x430ee4]
sub eax, ecx
push eax
mov eax, dword [ebp - 8]
inc eax
push eax
push 0x4a0304
call fcn.004095d8
add esp, 0x10
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0
je 0x40a654
mov ax, word [0x434370]
mov word [ebp - 4], ax
jmp 0x40a66b
xor eax, eax
mov ax, word [0x434100]
xor ecx, ecx
mov cx, word [0x430ee4]
sub eax, ecx
mov word [ebp - 4], ax
push 0x430ee6
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.004095d8
add esp, 0x10
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
je 0x40a813
cmp dword [ebp + 0x10], 0
jne 0x40a80e
push 0x430cd6
push 0x50
mov eax, dword [ebp + 8]
push eax
call fcn.0041d0c4
add esp, 4
xor ecx, ecx
mov cx, word [0x430ee6]
add eax, ecx
add eax, dword [ebp - 8]
inc eax
push eax
push 0x49ff78
call fcn.004095d8
add esp, 0x10
xor ebx, ebx
mov bx, word [0x434100]
mov eax, dword [ebp + 8]
push eax
call fcn.0041d0c4
add esp, 4
xor ecx, ecx
mov cx, word [0x430ee6]
xor edx, edx
mov dx, word [0x430ee4]
add ecx, edx
add eax, ecx
xor ecx, ecx
mov cx, word [0x430cd6]
add eax, ecx
inc eax
sub ebx, eax
push ebx
mov eax, dword [ebp + 8]
push eax
call fcn.0041d0c4
add esp, 4
xor ecx, ecx
mov cx, word [0x430cd6]
add eax, ecx
xor ecx, ecx
mov cx, word [0x430ee6]
add eax, ecx
add eax, dword [ebp - 8]
inc eax
push eax
push 0x431100
call fcn.0041d6c4
add esp, 0xc
xor ebx, ebx
mov bx, word [0x434100]
mov eax, dword [ebp + 8]
push eax
call fcn.0041d0c4
add esp, 4
xor ecx, ecx
mov cx, word [0x430ee6]
xor edx, edx
mov dx, word [0x430ee4]
add ecx, edx
add eax, ecx
xor ecx, ecx
mov cx, word [0x430cd6]
add eax, ecx
inc eax
sub ebx, eax
push ebx
push 0x431100
mov eax, dword [ebp + 0xc]
push eax
call fcn.0041d0c4
add esp, 4
mov ebx, eax
mov eax, dword [ebp + 8]
push eax
call fcn.0041d0c4
add esp, 4
add ebx, eax
xor eax, eax
mov ax, word [0x430ee6]
add ebx, eax
add ebx, dword [ebp - 8]
inc ebx
push ebx
call fcn.0041d6c4
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.0041d0c4
add esp, 4
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0041d0c4
add esp, 4
xor ecx, ecx
mov cx, word [0x430ee6]
add eax, ecx
add eax, dword [ebp - 8]
inc eax
push eax
call fcn.0041d6c4
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.0041d0c4
add esp, 4
xor ecx, ecx
mov cx, word [0x430cd6]
sub eax, ecx
xor ecx, ecx
mov cx, word [0x434100]
add eax, ecx
mov word [0x434100], ax
jmp 0x40a959
xor ebx, ebx
mov bx, word [0x434100]
lea eax, [ebp - 0x88]
push eax
call fcn.0041d0c4
add esp, 4
xor ecx, ecx
mov cx, word [0x430ee4]
add eax, ecx
sub ebx, eax
push ebx
lea eax, [ebp - 0x88]
push eax
call fcn.0041d0c4
add esp, 4
mov ecx, dword [ebp - 8]
add ecx, eax
push ecx
push 0x431100
call fcn.0041d6c4
add esp, 0xc
xor ebx, ebx
mov bx, word [0x434100]
lea eax, [ebp - 0x88]
push eax
call fcn.0041d0c4
add esp, 4
xor ecx, ecx
mov cx, word [0x430ee4]
add eax, ecx
sub ebx, eax
push ebx
push 0x431100
mov eax, dword [ebp + 0xc]
push eax
call fcn.0041d0c4
add esp, 4
mov ebx, eax
mov eax, dword [ebp + 8]
push eax
call fcn.0041d0c4
add esp, 4
add ebx, eax
lea eax, [ebp - 0x88]
push eax
call fcn.0041d0c4
add esp, 4
add ebx, eax
add ebx, dword [ebp - 8]
add ebx, 3
push ebx
call fcn.0041d6c4
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
push 0x434320
call fcn.0041d13c
add esp, 8
push 0x4a0308
push 0x434320
call fcn.0041d138
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
push 0x434320
call fcn.0041d138
add esp, 8
push 0x49ff78
push 0x434320
call fcn.0041d138
add esp, 8
push 0x434320
call fcn.0041d0c4
add esp, 4
push eax
push 0x434320
lea eax, [ebp - 0x88]
push eax
call fcn.0041d0c4
add esp, 4
mov ecx, dword [ebp - 8]
add ecx, eax
add ecx, 2
push ecx
call fcn.0041d6c4
add esp, 0xc
push 0x434320
call fcn.0041d0c4
add esp, 4
xor ecx, ecx
mov cx, word [0x434100]
add eax, ecx
mov word [0x434100], ax
push 0x434100
push 0x42d8d0
push 0x430ce0
call fcn.0040bd5c
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40a983
mov eax, 0xffffffff
jmp 0x40a98a
xor eax, eax
jmp 0x40a98a
pop edi
pop esi
pop ebx
leave
ret