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

Disassembly:
mov edx, dword [esp + 8]
mov eax, dword [edx]
sub esp, 0x418
test al, 6
push ebp
push esi
push edi
jne 0x45795d
test al, 0x10
je 0x457519
or ecx, 0xffffffff
xor eax, eax
lea esi, [edx + 0x14]
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
mov al, byte [ecx + edx + 0x12]
dec ecx
cmp al, 0x2e
je 0x45795d
push esi
call fcn.004671a2
push str.debuginfo
push esi
call fcn.004674f9
add esp, 0xc
test eax, eax
je 0x45795d
push 0x4b490c
push esi
call fcn.004674f9
add esp, 8
test eax, eax
je 0x45795d
push str.backup
push esi
call fcn.0046712c
add esp, 8
test eax, eax
jne 0x45795d
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [esp + 0x18]
push eax
push 0x104
call edi
lea ecx, [esp + 0x18]
push 0x4ad3b8
push ecx
call fcn.00466db0
lea edx, [esp + 0x20]
push esi
push edx
call fcn.00466db0
lea eax, [esp + 0x28]
push 0x4ad3b8
push eax
call fcn.00466db0
add esp, 0x18
lea ecx, [esp + 0x320]
push ecx
push 0x104
call edi
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x120]
push eax
push 0x103
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
push 0
push 0
lea edx, [esp + 0x228]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x12c]
push ecx
call fcn.00467772
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x134]
push eax
call fcn.00466da0
lea ecx, [esp + 0x23c]
push ecx
lea edx, [esp + 0x13c]
push edx
call fcn.00466db0
or ecx, 0xffffffff
xor eax, eax
add esp, 0x24
lea edi, [esp + 0x11c]
repne scasb al, byte es:[edi]
not ecx
mov al, byte [esp + ecx + 0x11a]
dec ecx
cmp al, 0x5c
jne 0x4574d8
or ecx, 0xffffffff
xor eax, eax
lea edi, [esp + 0x11c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + ecx + 0x11b], al
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea eax, [esp + 0x11c]
push eax
call esi
test eax, eax
je 0x45795d
mov ecx, dword [esp + 0x428]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00456830
add esp, 8
lea eax, [esp + 0x320]
push eax
call esi
pop edi
pop esi
pop ebp
add esp, 0x418
ret
lea ebp, [edx + 0x14]
push 0x2e
push ebp
call fcn.00467bf5
mov esi, eax
add esp, 8
test esi, esi
je 0x457567
lea ecx, [esi + 1]
push 0x2e
push ecx
call fcn.00467bf5
add esp, 8
test eax, eax
je 0x457551
mov esi, eax
inc eax
push 0x2e
push eax
call fcn.00467bf5
add esp, 8
test eax, eax
jne 0x45753f
push esi
push str..lnk
call fcn.004674f9
add esp, 8
test eax, eax
je 0x45795d
push 0x2e
push ebp
call fcn.00467bf5
mov esi, eax
add esp, 8
test esi, esi
je 0x4575b2
lea edx, [esi + 1]
push 0x2e
push edx
call fcn.00467bf5
add esp, 8
test eax, eax
je 0x45759c
mov esi, eax
inc eax
push 0x2e
push eax
call fcn.00467bf5
add esp, 8
test eax, eax
jne 0x45758a
push esi
push str..exe
call fcn.004674f9
add esp, 8
test eax, eax
je 0x45795d
push 0x2e
push ebp
call fcn.00467bf5
mov esi, eax
add esp, 8
test esi, esi
je 0x4575fd
lea eax, [esi + 1]
push 0x2e
push eax
call fcn.00467bf5
add esp, 8
test eax, eax
je 0x4575e7
mov esi, eax
inc eax
push 0x2e
push eax
call fcn.00467bf5
add esp, 8
test eax, eax
jne 0x4575d5
push esi
push str..com
call fcn.004674f9
add esp, 8
test eax, eax
je 0x45795d
push 0x2e
push ebp
call fcn.00467bf5
mov esi, eax
add esp, 8
test esi, esi
je 0x457648
lea ecx, [esi + 1]
push 0x2e
push ecx
call fcn.00467bf5
add esp, 8
test eax, eax
je 0x457632
mov esi, eax
inc eax
push 0x2e
push eax
call fcn.00467bf5
add esp, 8
test eax, eax
jne 0x457620
push esi
push str..dll
call fcn.004674f9
add esp, 8
test eax, eax
je 0x45795d
push 0x2e
push ebp
call fcn.00467bf5
mov esi, eax
add esp, 8
test esi, esi
je 0x457693
lea edx, [esi + 1]
push 0x2e
push edx
call fcn.00467bf5
add esp, 8
test eax, eax
je 0x45767d
mov esi, eax
inc eax
push 0x2e
push eax
call fcn.00467bf5
add esp, 8
test eax, eax
jne 0x45766b
push esi
push str..log
call fcn.004674f9
add esp, 8
test eax, eax
je 0x45795d
push 0x2e
push ebp
call fcn.00467bf5
mov esi, eax
add esp, 8
test esi, esi
je 0x4576de
lea eax, [esi + 1]
push 0x2e
push eax
call fcn.00467bf5
add esp, 8
test eax, eax
je 0x4576c8
mov esi, eax
inc eax
push 0x2e
push eax
call fcn.00467bf5
add esp, 8
test eax, eax
jne 0x4576b6
push esi
push str..sue
call fcn.004674f9
add esp, 8
test eax, eax
je 0x45795d
push str..vix
push ebp
call fcn.00457970
add esp, 8
test eax, eax
jne 0x45795d
push str..mdb
push ebp
call fcn.00457970
add esp, 8
test eax, eax
jne 0x45795d
push str..mjh
push ebp
call fcn.00457970
add esp, 8
test eax, eax
jne 0x45795d
push 0x4b48b8
push ebp
call fcn.00457970
add esp, 8
test eax, eax
jne 0x45795d
push str..bat
push ebp
call fcn.00457970
add esp, 8
test eax, eax
jne 0x45795d
mov ecx, dword [esp + 0x430]
push ebx
push 0x5b
push ecx
mov byte [esp + 0x24], al
call fcn.00467bf5
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4577cd
push 0x5d
push ebx
call fcn.00467bf5
add esp, 8
test eax, eax
je 0x4577cd
or ecx, 0xffffffff
xor eax, eax
lea edi, [ebx + 1]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
lea edx, [esp + 0x1c]
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
shr ecx, 2
dec edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x1c]
and ecx, 3
push 0x5d
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00467bf5
push 0x5d
push ebx
mov byte [eax], 0
call fcn.00467bf5
inc eax
push 0x5b
push eax
call fcn.00467bf5
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x457769
or ecx, 0xffffffff
xor eax, eax
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebx, ecx
or ecx, 0xffffffff
mov esi, edi
lea edx, [esp + 0x1c]
mov edi, edx
repne scasb al, byte es:[edi]
mov ecx, ebx
shr ecx, 2
dec edi
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x1c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.004671a2
lea ecx, [esp + 0x20]
push ecx
call fcn.00459100
push str..txt
push ebp
mov edi, eax
mov dword [esp + 0x28], edx
call fcn.00457970
mov ebx, dword [esp + 0x43c]
add esp, 0x10
test eax, eax
jne 0x457884
mov eax, dword [ebx + 0x22c]
xor esi, esi
cmp eax, esi
mov dword [esp + 0x10], esi
jle 0x457884
mov edx, dword [ebx + 0x228]
mov ecx, dword [esi + edx]
cmp ecx, edi
lea eax, [esi + edx]
jne 0x45786e
mov edx, dword [eax + 4]
cmp edx, dword [esp + 0x18]
jne 0x45786e
mov ecx, dword [esp + 0x434]
mov edx, dword [eax + 0xc]
push ecx
push edx
push ebp
push 0x4b4884
call fcn.00451cb0
add esp, 0x10
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x22c]
inc eax
add esi, 0x10
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x45783b
push ebx
call fcn.004579d0
mov eax, dword [ebx + 0x22c]
mov ecx, dword [ebx + 0x228]
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax], edi
mov dword [eax + 4], ecx
mov edx, dword [ebx + 0x22c]
mov eax, dword [ebx + 0x228]
mov ecx, dword [esp + 0x438]
shl edx, 4
mov dword [edx + eax + 0xc], ecx
or ecx, 0xffffffff
xor eax, eax
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.004564a0
mov edx, dword [ebx + 0x22c]
mov ecx, dword [ebx + 0x228]
shl edx, 4
mov dword [edx + ecx + 8], eax
mov edx, dword [ebx + 0x22c]
or ecx, 0xffffffff
shl edx, 4
xor eax, eax
add esp, 8
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
mov edx, dword [ebx + 0x228]
mov edi, dword [edi + edx + 8]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebx + 0x22c]
mov eax, dword [ebx + 0x230]
inc edi
mov ecx, edi
lea edx, [eax - 0x10]
cmp ecx, edx
mov dword [ebx + 0x22c], edi
jl 0x457957
add eax, 0x3e8
mov dword [ebx + 0x230], eax
shl eax, 4
push eax
mov eax, dword [ebx + 0x228]
push eax
call fcn.004564d0
add esp, 8
mov dword [ebx + 0x228], eax
call fcn.00451970
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x418
ret