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

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x4548dd
mov eax, dword [ebp - 4]
add esp, 0xffffffdc
push ebx
push esi
push edi
mov eax, 0x51be79
call fcn.004d08c0
xor edx, edx
mov dword [ebp - 0x28], edx
mov word [ebp - 0x14], 8
mov word [ebp - 0x14], 8
mov byte [ebp - 0x2028], 0
lea eax, [ebp - 0x2028]
xor ebx, ebx
push eax
push 0x180
call sub.KERNEL32.dll_GetCurrentDirectoryA
push 0
push 0x28
lea edx, [ebp - 0x1028]
push edx
call fcn.004415e8
add esp, 0xc
test eax, eax
jle 0x454958
lea ecx, [ebp - 0x2028]
push ecx
lea eax, [ebp - 0x1028]
push eax
call fcn.004ce170
add esp, 8
test eax, eax
jne 0x454958
mov bl, 1
push 0
push 0x10
lea eax, [ebp - 0x1028]
push eax
call fcn.004415e8
add esp, 0xc
test eax, eax
jle 0x45498b
lea edx, [ebp - 0x2028]
push edx
lea ecx, [ebp - 0x1028]
push ecx
call fcn.004ce170
add esp, 8
test eax, eax
jne 0x45498b
mov bl, 1
test bl, bl
je 0x454a06
mov byte [ebp - 0x2028], 0
push 0
push 0x1c
lea eax, [ebp - 0x2028]
push eax
call fcn.004415e8
add esp, 0xc
lea edx, [ebp - 0x2028]
test edx, edx
je 0x4549f2
lea ecx, [ebp - 0x2028]
push ecx
call fcn.004cdfec
pop ecx
test eax, eax
je 0x4549f2
lea eax, [ebp - 0x2028]
push eax
call fcn.004cdfec
pop ecx
movsx edx, byte [ebp + eax - 0x2029]
cmp edx, 0x5c
je 0x4549f2
push 0x5d3d34
lea ecx, [ebp - 0x2028]
push ecx
call fcn.004cdf10
add esp, 8
push 0x5d3d36
lea eax, [ebp - 0x2028]
push eax
call fcn.004cdf10
add esp, 8
movsx edx, byte [ebp - 0x2027]
cmp edx, 0x3a
jne 0x454a36
mov cl, byte [ebp - 0x2026]
test cl, cl
je 0x454a26
mov al, byte [ebp - 0x2025]
test al, al
jne 0x454a36
mov esi, 0x5d3d3c
lea edi, [ebp - 0x2028]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor ebx, ebx
xor eax, eax
lea edi, [ebp - 0x2028]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, 0x517e76
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [0x517e76]
test al, al
je 0x454aee
mov edx, 0x517e76
test edx, edx
je 0x454aae
push 0x517e76
call fcn.004cdfec
pop ecx
test eax, eax
je 0x454aae
push 0x517e76
call fcn.004cdfec
pop ecx
movsx ecx, byte [eax + 0x517e75]
cmp ecx, 0x5c
je 0x454aae
push 0x5d3d45
push 0x517e76
call fcn.004cdf10
add esp, 8
push 0x517e76
call fcn.00453f8c
pop ecx
test al, al
je 0x454aee
push 0x517e76
call fcn.004547a0
pop ecx
test al, al
je 0x454aee
push 0x517e76
call fcn.00453bcc
pop ecx
test al, 1
je 0x454aee
test al, 2
je 0x454aee
mov dword [0x51bb7c], 3
jmp 0x454c56
push 0x517e76
call fcn.00453ee8
pop ecx
test eax, eax
je 0x454b82
mov eax, 0x517e76
test eax, eax
je 0x454b42
push 0x517e76
call fcn.004cdfec
pop ecx
test eax, eax
je 0x454b42
push 0x517e76
call fcn.004cdfec
pop ecx
movsx edx, byte [eax + 0x517e75]
cmp edx, 0x5c
je 0x454b42
push 0x5d3d47
push 0x517e76
call fcn.004cdf10
add esp, 8
push 0x517e76
call fcn.00453f8c
pop ecx
test al, al
je 0x454b82
push 0x517e76
call fcn.004547a0
pop ecx
test al, al
je 0x454b82
push 0x517e76
call fcn.00453bcc
pop ecx
test al, 1
je 0x454b82
test al, 2
je 0x454b82
mov dword [0x51bb7c], 4
jmp 0x454c56
mov esi, 0x5d3d49
mov edi, 0x517e76
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
push 0x517e76
call fcn.00453f8c
pop ecx
test al, al
je 0x454bd3
push 0x517e76
call fcn.004547a0
pop ecx
test al, al
je 0x454bd3
push 0x517e76
call fcn.00453bcc
pop ecx
test al, 1
je 0x454bd3
test al, 2
je 0x454bd3
mov bl, 1
mov dword [0x51bb7c], 6
jmp 0x454c56
push 0
push 0x1c
push 0x517e76
call fcn.004415e8
add esp, 0xc
test eax, eax
jle 0x454c47
mov eax, 0x517e76
test eax, eax
je 0x454c29
push 0x517e76
call fcn.004cdfec
pop ecx
test eax, eax
je 0x454c29
push 0x517e76
call fcn.004cdfec
pop ecx
movsx edx, byte [eax + 0x517e75]
cmp edx, 0x5c
je 0x454c29
push 0x5d3d52
push 0x517e76
call fcn.004cdf10
add esp, 8
push 0x5d3d54
push 0x517e76
call fcn.004cdf10
add esp, 8
mov dword [0x51bb7c], 5
jmp 0x454c56
mov esi, 0x5d3d5a
mov edi, 0x517e76
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
push 0x517ff6
call fcn.00453ee8
pop ecx
test eax, eax
je 0x454cdc
push 0x517ff6
call fcn.00453f8c
pop ecx
test al, al
je 0x454cdc
mov dl, byte [0x517ff6]
test dl, dl
je 0x454cdc
mov ecx, 0x517ff6
test ecx, ecx
je 0x454cbf
push 0x517ff6
call fcn.004cdfec
pop ecx
test eax, eax
je 0x454cbf
push 0x517ff6
call fcn.004cdfec
pop ecx
movsx eax, byte [eax + 0x517ff5]
cmp eax, 0x5c
je 0x454cbf
push 0x5d3d63
push 0x517ff6
call fcn.004cdf10
add esp, 8
push 0x517ff6
call fcn.00454064
pop ecx
mov dword [0x51bb80], 4
test eax, eax
jne 0x454d9a
xor eax, eax
lea edi, [ebp - 0x2028]
or ecx, 0xffffffff
mov esi, 0x517ff6
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x517ff6
call fcn.00453f8c
pop ecx
test al, al
je 0x454d76
mov al, byte [0x517ff6]
test al, al
je 0x454d76
mov edx, 0x517ff6
test edx, edx
je 0x454d5d
push 0x517ff6
call fcn.004cdfec
pop ecx
test eax, eax
je 0x454d5d
push 0x517ff6
call fcn.004cdfec
pop ecx
movsx ecx, byte [eax + 0x517ff5]
cmp ecx, 0x5c
je 0x454d5d
push 0x5d3d65
push 0x517ff6
call fcn.004cdf10
add esp, 8
push 0x517ff6
call fcn.00454064
pop ecx
mov dword [0x51bb80], 3
test eax, eax
jne 0x454d9a
mov esi, 0x5d3d67
mov edi, 0x517ff6
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
push 0x517ff6
call fcn.00454064
pop ecx
mov dword [0x51bb80], 6
dec eax
jne 0x454da6
mov byte [0x519c01], 1
jmp 0x454dad
mov byte [0x519c01], 0
push 0x517e76
call sub.KERNEL32.dll_SetCurrentDirectoryA
test eax, eax
jne 0x454dd0
push 0x517e76
call fcn.0043803c
pop ecx
push 0x517e76
call sub.KERNEL32.dll_SetCurrentDirectoryA
test bl, bl
je 0x454ddf
push 0x517e76
call fcn.00453d74
pop ecx
push 0x5d3d75
push 0x517ff6
push 0x5d3d70
push 0x518176
call fcn.004d26c8
add esp, 0x10
push 0x5d3d86
push 0x517ff6
push 0x5d3d81
push 0x5185f6
call fcn.004d26c8
add esp, 0x10
push 0x5d3d97
push 0x517e76
push 0x5d3d92
push 0x518476
call fcn.004d26c8
add esp, 0x10
push 0x5d3da8
push 0x517e76
push 0x5d3da3
push 0x5182f6
call fcn.004d26c8
add esp, 0x10
push 0x517e76
push 0x517ff6
call fcn.004ce170
add esp, 8
test eax, eax
je 0x454e90
push 0x517e76
call fcn.00453bcc
pop ecx
test al, 1
je 0x454e90
push 0x5d3db9
push 0x517ff6
push 0x5d3db4
push 0x5182f6
call fcn.004d26c8
add esp, 0x10
push 0x5d3dc5
push 0x517ff6
push 0x5fa296
call fcn.00452e1c
add esp, 0xc
push 0x5d3dcd
push 0x517ff6
push 0x5faa16
call fcn.00452e1c
add esp, 0xc
push 0x5d3dd2
push 0x517ff6
push 0x5fa896
call fcn.00452e1c
add esp, 0xc
push 0x5d3ddb
push 0x517ff6
push 0x5f9c96
call fcn.00452e1c
add esp, 0xc
push 0x5d3de3
push 0x517ff6
push 0x5f9e16
call fcn.00452e1c
add esp, 0xc
push 0x5f9e16
push 0
call fcn.00451888
add esp, 8
push 0x5f9e16
push 0
call fcn.0040b838
add esp, 8
push 0x517e76
call fcn.004542f4
pop ecx
test eax, eax
je 0x454f3e
mov al, 1
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
jmp 0x454f92
push 0x517ff6
call fcn.004542f4
pop ecx
test eax, eax
je 0x454f5b
mov al, 1
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
jmp 0x454f92
mov word [ebp - 0x14], 0
jmp 0x454f86
xor eax, eax
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
mov esp, ebp
mov edi, dword [ebp - 0x2034]
mov esi, dword [ebp - 0x2030]
mov ebx, dword [ebp - 0x202c]
pop ebp
ret