Function at 0x4491b0
Capabilities:
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50d665
mov eax, dword fs:[0]
push eax
sub esp, 0x234
mov eax, dword [0x58fa2c]
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 ebx, ecx
mov dword [ebp - 0x23c], ebx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x230], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x22c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x228], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x449215
mov dword [eax], 0
push 0x128
call fcn.00472260
add esp, 4
mov dword [ebp - 0x240], eax
mov byte [ebp - 4], 1
test eax, eax
je 0x44923b
mov ecx, eax
call fcn.004485a0
mov esi, eax
jmp 0x44923d
xor esi, esi
mov dword [ebp - 0x220], esi
mov byte [ebp - 4], 0
mov dword [ebp - 0x224], esi
lea eax, [ebp - 0x21c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea ecx, [ebx + 0x29]
lea edx, [ebp - 0x118]
sub edx, ecx
nop word [eax + eax]
mov al, byte [ecx]
mov byte [edx + ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x449270
lea ecx, [ebp - 0x118]
lea edx, [esi + 4]
mov eax, ecx
sub edx, eax
nop dword [eax]
mov al, byte [ecx]
mov byte [edx + ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x449290
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea eax, [ebp - 0x118]
push eax
call fcn.00488700
add esp, 4
lea ecx, [ebp - 0x118]
dec ecx
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x4492c0
mov ax, word [0x51ba28]
mov word [ecx], ax
mov al, byte [0x51ba2a]
mov byte [ecx + 2], al
lea edx, [ebx + 0x12d]
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x4492e3
sub edx, esi
lea edi, [ebp - 0x118]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4492f3
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebx + 0x12e4]
call fcn.00480dd0
mov byte [ebp - 4], 2
lea eax, [ebp - 0x118]
push eax
mov ecx, ebx
call fcn.00449c60
mov edi, eax
mov dword [ebp - 0x238], edi
lea ecx, [ebx + 0x12e4]
call fcn.004812d0
mov esi, eax
test esi, esi
je 0x449368
mov ecx, esi
call fcn.0042e490
test eax, eax
je 0x44935a
push eax
mov ecx, ebx
call fcn.00449c60
add edi, eax
mov dword [ebp - 0x238], edi
push esi
lea ecx, [ebx + 0x12e4]
call fcn.00481380
jmp 0x449339
push edi
push 0
push dword [ebp - 0x220]
push dword [ebp - 0x228]
push dword [ebp - 0x22c]
push dword [ebp - 0x230]
push dword [ebp + 8]
lea eax, [ebp - 0x118]
push eax
mov ecx, ebx
call fcn.00448ef0
mov dword [ebp - 0x234], eax
lea ecx, [ebx + 0x12e4]
call fcn.004812d0
mov esi, eax
test esi, esi
je 0x4493f4
mov ecx, esi
call fcn.0042e490
test eax, eax
je 0x4493e6
push edi
push dword [ebp - 0x234]
push dword [ebp - 0x220]
push dword [ebp - 0x228]
push dword [ebp - 0x22c]
push dword [ebp - 0x230]
push dword [ebp + 8]
push eax
mov ecx, ebx
call fcn.00448ef0
mov dword [ebp - 0x234], eax
push esi
lea ecx, [ebx + 0x12e4]
call fcn.00481380
jmp 0x4493a5
mov dword [ebp - 4], 0
mov esi, dword [ebp - 0x220]
jmp 0x44942d
lea ecx, [ebx + 0x12e4]
call fcn.00481550
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [ebp - 4], 0xffffffff
mov eax, esi
jmp 0x44947e
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.004a4566
mov esp, ebp
pop ebp
ret 0x10