Function at 0x4706d0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x30c
mov eax, dword [0x4951c0]
xor eax, esp
mov dword [esp + 0x308], eax
mov eax, dword [esp + 0x310]
push ebx
push esi
push edi
mov edi, edx
push eax
mov esi, ecx
mov dword [esp + 0x10], edi
call fcn.0046f3c0
push 0x58fe9c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, 0x47d5f7
mov eax, esi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x470730
test dl, dl
je 0x47072c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x470730
add eax, 2
add ecx, 2
test dl, dl
jne 0x470710
xor eax, eax
jmp 0x470735
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x470a25
mov edx, 0x49a740
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x470746
push 0
push esi
call fcn.00408562
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
add esp, 8
test eax, eax
je 0x4707e4
lea edx, [esp + 0x10]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x470771
lea eax, [esp + 0x10]
push eax
call fcn.00474a50
add esp, 4
test eax, eax
jne 0x4707c4
cmp dword [0x58fe3c], eax
jne 0x470a25
mov edx, dword [0x49a31c]
lea ecx, [esp + 0x10]
push ecx
push 0x48afec
push edx
call fcn.004081b3
mov eax, dword [0x49a31c]
add esp, 0xc
push eax
push 0x48b008
call fcn.00458fe0
add esp, 8
mov dword [0x58fae4], 1
xor eax, eax
mov cl, byte [esp + eax + 0x10]
mov byte [eax + 0x49ab70], cl
inc eax
test cl, cl
jne 0x4707d0
jmp 0x47085e
cmp byte [esi + 1], 0x3a
je 0x47084c
lea ecx, [esp + 0x10]
push ecx
push 0x100
call ebx
cmp byte [esp + 0x13], 0
je 0x470814
lea edi, [esp + 0x10]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x470802
mov dx, word [0x48b018]
mov word [edi], dx
mov eax, esi
mov edx, esi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x470818
lea edi, [esp + 0x10]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x470826
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0xc]
mov dword [0x58fae4], 0
jmp 0x47085e
lea edx, [esp + 0x10]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x470854
xor eax, eax
mov cl, byte [esp + eax + 0x10]
mov byte [esp + eax + 0x110], cl
inc eax
test cl, cl
jne 0x470860
mov edx, 0x49a960
mov eax, edi
sub edx, edi
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x470880
push 0
push edi
call fcn.00408562
add esp, 8
test eax, eax
je 0x470918
lea edx, [esp + 0x10]
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4708a5
lea eax, [esp + 0x10]
push eax
call fcn.00474a50
add esp, 4
test eax, eax
jne 0x4708f8
cmp dword [0x58fe3c], eax
jne 0x470a25
mov edx, dword [0x49a31c]
lea ecx, [esp + 0x10]
push ecx
push 0x48b01c
push edx
call fcn.004081b3
mov eax, dword [0x49a31c]
add esp, 0xc
push eax
push 0x48b038
call fcn.00458fe0
add esp, 8
mov dword [0x58fae8], 1
xor eax, eax
mov cl, byte [esp + eax + 0x10]
mov byte [eax + 0x49a640], cl
inc eax
test cl, cl
jne 0x470904
jmp 0x4709aa
cmp byte [edi + 1], 0x3a
je 0x470994
lea ecx, [esp + 0x10]
push ecx
push 0x100
call ebx
cmp byte [esp + 0x13], 0
je 0x470956
lea edi, [esp + 0x10]
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x470940
mov dx, word [0x48b048]
mov word [edi], dx
mov edi, dword [esp + 0xc]
mov eax, edi
mov edx, edi
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x470960
lea edi, [esp + 0x10]
sub eax, edx
dec edi
mov edi, edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x470970
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [0x58fae8], 0
jmp 0x4709aa
lea edx, [esp + 0x10]
mov eax, edi
sub edx, edi
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4709a0
xor eax, eax
lea esp, [esp]
mov cl, byte [esp + eax + 0x10]
mov byte [esp + eax + 0x210], cl
inc eax
test cl, cl
jne 0x4709b0
push 0xc6
lea edx, [esp + 0x114]
mov ecx, 0x653778
call fcn.004015a0
push 0xc7
lea edx, [esp + 0x214]
mov ecx, 0x653778
call fcn.004015a0
mov eax, dword [0x54ad08]
mov edi, 0xc6
mov ebx, 0x653778
call fcn.00401b60
mov eax, dword [0x54ad08]
mov edi, 0xc7
call fcn.00401b60
push 0
lea eax, [edi - 1]
mov ecx, ebx
call fcn.00401bc0
mov dword [0x58f974], 1
push 0x58fe9c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x314]
pop edi
pop esi
pop ebx
xor ecx, esp
mov eax, 1
call fcn.00407f40
add esp, 0x30c
ret 4