Function at 0x481af0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5410d1
mov eax, dword fs:[0]
push eax
sub esp, 0xbc
mov eax, dword [0x596c60]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x30], edi
mov dword [ebp - 4], 0
xor eax, eax
mov byte [edi], 0
mov dword [edi + 0x18], 7
mov dword [edi + 0x14], 0
mov word [edi + 4], ax
mov byte [ebp - 4], 1
mov eax, dword [0x59f554]
test al, 1
jne 0x481b73
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 2
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 1
mov eax, dword [0x597f88]
test byte [eax + 0x1c], 2
je 0x481b88
cmp byte [eax + 0x19], 6
jb 0x481b88
mov al, 1
jmp 0x481b8a
xor al, al
cmp byte [0x59f560], 0
jne 0x481ba4
cmp byte [0x59f561], 0
jne 0x481ba4
test al, al
je 0x481cd5
sub esp, 8
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xc8]
call fcn.0047b4d0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xc8]
call fcn.0047ee50
mov edx, str..CChangeDir.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x15
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b46c
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b8e8
mov ecx, eax
call fcn.0047f0b0
mov byte [ebp - 4], 4
cmp dword [ebp - 0x18], 0x10
jb 0x481c32
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x481c32
push eax
call fcn.00507b54
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xc8]
call fcn.0047b620
mov esi, eax
mov byte [ebp - 4], 6
cmp dword [esi + 0x14], 0x10
jb 0x481c4f
mov esi, dword [esi]
mov eax, dword [0x59f554]
test al, 1
jne 0x481c7a
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 7
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 6
push esi
push 6
mov ecx, 0x59f560
call fcn.004a1510
cmp dword [ebp - 0x18], 0x10
jb 0x481c9d
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x481c9d
push eax
call fcn.00507b54
add esp, 4
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 3
call fcn.0047b5a0
lea eax, [ebp - 0x78]
mov dword [ebp - 0x78], 0x56b700
push eax
call fcn.00528f2f
add esp, 4
mov dword [ebp - 4], 1
jmp 0x481cd5
cmp dword [ebp + 0x1c], 8
mov ecx, dword [ebp + 8]
jae 0x481ce1
lea ecx, [ebp + 8]
mov eax, dword [ebp + 0x18]
cmp word [ecx + eax*2 - 2], 0x5c
je 0x481cfb
push 1
push 0x56b8e4
lea ecx, [ebp + 8]
call fcn.004824e0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov ebx, eax
test ebx, ebx
je 0x481dc4
mov ecx, dword [edi + 0x14]
lea esi, [edi + 4]
cmp ebx, ecx
ja 0x481d36
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], ebx
jb 0x481d2c
mov eax, dword [esi]
xor ecx, ecx
mov word [eax + ebx*2], cx
jmp 0x481d44
mov eax, esi
xor ecx, ecx
mov word [eax + ebx*2], cx
jmp 0x481d44
mov eax, ebx
sub eax, ecx
mov ecx, esi
push 0
push eax
call fcn.00481a30
cmp dword [esi + 0x14], 8
jb 0x481d4e
mov eax, dword [esi]
jmp 0x481d50
mov eax, esi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x481dc4
cmp dword [esi + 0x14], 8
jb 0x481d66
mov eax, dword [esi]
jmp 0x481d68
mov eax, esi
cmp word [eax + ebx*2 - 4], 0x5c
jne 0x481d99
mov eax, dword [esi + 0x10]
dec ebx
cmp ebx, eax
ja 0x481d8b
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], ebx
jb 0x481d83
mov esi, dword [esi]
xor eax, eax
mov word [esi + ebx*2], ax
jmp 0x481dab
push 0
sub ebx, eax
mov ecx, esi
push ebx
call fcn.00481a30
jmp 0x481dab
cmp dword [esi + 0x14], 8
jb 0x481da1
mov esi, dword [esi]
mov eax, 0x5c
mov word [esi + ebx*2 - 2], ax
cmp dword [ebp + 0x1c], 8
mov eax, dword [ebp + 8]
jae 0x481db7
lea eax, [ebp + 8]
push eax
call fcn.00482320
test al, al
je 0x481dc4
mov byte [edi], 1
mov eax, dword [0x59f554]
test al, 1
jne 0x481def
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 9
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 1
mov eax, dword [0x597f88]
test byte [eax + 0x1c], 2
je 0x481e04
cmp byte [eax + 0x19], 6
jb 0x481e04
mov al, 1
jmp 0x481e06
xor al, al
cmp byte [0x59f560], 0
jne 0x481e20
cmp byte [0x59f561], 0
jne 0x481e20
test al, al
je 0x481f43
sub esp, 8
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xc8]
call fcn.0047b4d0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xb
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0xc8]
call fcn.0047ee50
mov edx, str..CChangeDir.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x28
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b498
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b8e8
mov ecx, eax
call fcn.0047f0b0
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x18], 0x10
jb 0x481eae
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x481eae
push eax
call fcn.00507b54
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xc8]
call fcn.0047b620
mov esi, eax
mov byte [ebp - 4], 0xd
cmp dword [esi + 0x14], 0x10
jb 0x481ecb
mov esi, dword [esi]
mov eax, dword [0x59f554]
test al, 1
jne 0x481ef6
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 0xe
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 0xd
push esi
push 6
mov ecx, 0x59f560
call fcn.004a1510
cmp dword [ebp - 0x18], 0x10
jb 0x481f19
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x481f19
push eax
call fcn.00507b54
add esp, 4
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xa
call fcn.0047b5a0
lea eax, [ebp - 0x78]
mov dword [ebp - 0x78], 0x56b700
push eax
call fcn.00528f2f
add esp, 4
jmp 0x481f43
cmp dword [ebp + 0x1c], 8
jb 0x481f59
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x481f59
push ecx
call fcn.00507b54
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005072fd
mov esp, ebp
pop ebp
ret 0x18