Function at 0x40addf
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x90
push ebx
push esi
push edi
push 0x200
push 0x5c6860
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x4b46e4
push 0x5c6860
call fcn.004202e0
add esp, 8
cmp dword [ebp + 0x14], 0x2000000
jne 0x40ae33
push 0x4b46f0
lea eax, [ebp - 0x88]
push eax
call fcn.004202d0
add esp, 8
jmp 0x40ae47
push 0x4b46f8
lea eax, [ebp - 0x88]
push eax
call fcn.004202d0
add esp, 8
mov dword [0x5c3430], 0
jmp 0x40ae5c
inc dword [0x5c3430]
cmp dword [0x5c3430], 0x3000
jge 0x40ae89
mov eax, dword [0x5c3430]
mov byte [eax + 0x5c6ca0], 0
mov eax, dword [0x5c3430]
mov byte [eax + 0x5c3440], 0
jmp 0x40ae56
push 0x5c9ca0
push 0x5c3440
push 0x5c6860
call fcn.0040c503
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40aeb3
mov eax, 0xffffffff
jmp 0x40b27a
push 0x5c6a64
mov ax, word [0x5c9ca0]
push eax
push 0x5c3440
lea eax, [ebp - 0x88]
push eax
call fcn.00409ec8
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x40aef7
push 0x80002
call fcn.00406ccc
add esp, 4
mov eax, 0xffffffff
jmp 0x40b27a
push 0x5c9f10
xor eax, eax
mov ax, word [0x5c9ca0]
xor ecx, ecx
mov cx, word [0x5c6a64]
sub eax, ecx
push eax
mov eax, dword [ebp - 8]
inc eax
push eax
push 0x4b4704
call fcn.00409ec8
add esp, 0x10
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0
je 0x40af44
mov ax, word [0x5c9f10]
mov word [ebp - 4], ax
jmp 0x40af5b
xor eax, eax
mov ax, word [0x5c9ca0]
xor ecx, ecx
mov cx, word [0x5c6a64]
sub eax, ecx
mov word [ebp - 4], ax
push 0x5c6a66
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00409ec8
add esp, 0x10
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
je 0x40b103
cmp dword [ebp + 0x10], 0
jne 0x40b0fe
push 0x5c6846
push 0x50
mov eax, dword [ebp + 8]
push eax
call fcn.00420150
add esp, 4
xor ecx, ecx
mov cx, word [0x5c6a66]
add eax, ecx
add eax, dword [ebp - 8]
inc eax
push eax
push 0x4b4378
call fcn.00409ec8
add esp, 0x10
xor ebx, ebx
mov bx, word [0x5c9ca0]
mov eax, dword [ebp + 8]
push eax
call fcn.00420150
add esp, 4
xor ecx, ecx
mov cx, word [0x5c6a66]
xor edx, edx
mov dx, word [0x5c6a64]
add ecx, edx
add eax, ecx
xor ecx, ecx
mov cx, word [0x5c6846]
add eax, ecx
inc eax
sub ebx, eax
push ebx
mov eax, dword [ebp + 8]
push eax
call fcn.00420150
add esp, 4
xor ecx, ecx
mov cx, word [0x5c6846]
add eax, ecx
xor ecx, ecx
mov cx, word [0x5c6a66]
add eax, ecx
add eax, dword [ebp - 8]
inc eax
push eax
push 0x5c6ca0
call fcn.00420bc0
add esp, 0xc
xor ebx, ebx
mov bx, word [0x5c9ca0]
mov eax, dword [ebp + 8]
push eax
call fcn.00420150
add esp, 4
xor ecx, ecx
mov cx, word [0x5c6a66]
xor edx, edx
mov dx, word [0x5c6a64]
add ecx, edx
add eax, ecx
xor ecx, ecx
mov cx, word [0x5c6846]
add eax, ecx
inc eax
sub ebx, eax
push ebx
push 0x5c6ca0
mov eax, dword [ebp + 0xc]
push eax
call fcn.00420150
add esp, 4
mov ebx, eax
mov eax, dword [ebp + 8]
push eax
call fcn.00420150
add esp, 4
add ebx, eax
xor eax, eax
mov ax, word [0x5c6a66]
add ebx, eax
add ebx, dword [ebp - 8]
inc ebx
push ebx
call fcn.00420bc0
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.00420150
add esp, 4
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00420150
add esp, 4
xor ecx, ecx
mov cx, word [0x5c6a66]
add eax, ecx
add eax, dword [ebp - 8]
inc eax
push eax
call fcn.00420bc0
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.00420150
add esp, 4
xor ecx, ecx
mov cx, word [0x5c6846]
sub eax, ecx
xor ecx, ecx
mov cx, word [0x5c9ca0]
add eax, ecx
mov word [0x5c9ca0], ax
jmp 0x40b249
xor ebx, ebx
mov bx, word [0x5c9ca0]
lea eax, [ebp - 0x88]
push eax
call fcn.00420150
add esp, 4
xor ecx, ecx
mov cx, word [0x5c6a64]
add eax, ecx
sub ebx, eax
push ebx
lea eax, [ebp - 0x88]
push eax
call fcn.00420150
add esp, 4
mov ecx, dword [ebp - 8]
add ecx, eax
push ecx
push 0x5c6ca0
call fcn.00420bc0
add esp, 0xc
xor ebx, ebx
mov bx, word [0x5c9ca0]
lea eax, [ebp - 0x88]
push eax
call fcn.00420150
add esp, 4
xor ecx, ecx
mov cx, word [0x5c6a64]
add eax, ecx
sub ebx, eax
push ebx
push 0x5c6ca0
mov eax, dword [ebp + 0xc]
push eax
call fcn.00420150
add esp, 4
mov ebx, eax
mov eax, dword [ebp + 8]
push eax
call fcn.00420150
add esp, 4
add ebx, eax
lea eax, [ebp - 0x88]
push eax
call fcn.00420150
add esp, 4
add ebx, eax
add ebx, dword [ebp - 8]
add ebx, 3
push ebx
call fcn.00420bc0
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
push 0x5c9ec0
call fcn.004202d0
add esp, 8
push 0x4b4708
push 0x5c9ec0
call fcn.004202e0
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
push 0x5c9ec0
call fcn.004202e0
add esp, 8
push 0x4b4378
push 0x5c9ec0
call fcn.004202e0
add esp, 8
push 0x5c9ec0
call fcn.00420150
add esp, 4
push eax
push 0x5c9ec0
lea eax, [ebp - 0x88]
push eax
call fcn.00420150
add esp, 4
mov ecx, dword [ebp - 8]
add ecx, eax
add ecx, 2
push ecx
call fcn.00420bc0
add esp, 0xc
push 0x5c9ec0
call fcn.00420150
add esp, 4
xor ecx, ecx
mov cx, word [0x5c9ca0]
add eax, ecx
mov word [0x5c9ca0], ax
push 0x5c9ca0
push 0x5c3440
push 0x5c6860
call fcn.0040c64c
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40b273
mov eax, 0xffffffff
jmp 0x40b27a
xor eax, eax
jmp 0x40b27a
pop edi
pop esi
pop ebx
leave
ret