Function at 0x45e7b0
Capabilities:
Get common file path

Disassembly:
mov eax, 0x1814
call fcn.0047a5c0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1824]
push edi
mov edi, dword [sym.imp.MSVCRT.dll_strspn]
push str.0123456789
mov dword [esp + 0x1c], ecx
push esi
call edi
add esp, 8
cmp eax, 5
jb 0x45ea44
push str.0123456789
push esi
call edi
add esp, 8
cmp eax, 7
ja 0x45ea44
push 5
lea eax, [esp + 0x828]
push esi
push eax
call fcn.004625f0
mov edi, dword [sym.imp.MSVCRT.dll_atoi]
push eax
call edi
add esi, 4
mov ebx, eax
push esi
mov dword [esp + 0x28], ebx
call edi
cdq
sub eax, edx
add esp, 0x14
sar eax, 1
cmp ebx, 0x4e9
mov dword [esp + 0x20], eax
je 0x45e83c
cmp ebx, 0x54d
jne 0x45ea44
cmp eax, 1
jl 0x45ea44
cmp eax, 0x5a
jg 0x45ea44
mov dl, byte [0x4d7690]
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x25]
mov byte [esp + 0x24], dl
mov byte [esp + 0x424], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x425]
push 0x8000
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
call sub.MFC42.DLL_operatornew
push 0x8000
mov ebx, eax
call sub.MFC42.DLL_operatornew
mov ecx, dword [esp + 0x1834]
add esp, 8
lea edx, [esp + 0x24]
mov ebp, eax
push 0x400
push edx
mov dword [esp + 0x24], ebp
lea esi, [ecx - 0x1301]
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jbe 0x45e921
cmp esi, 0x19
jle 0x45e8d7
push esi
lea eax, [esp + 0x828]
push str.IPClient_x.dll
push eax
jmp 0x45e8e8
add esi, 0x61
lea ecx, [esp + 0x824]
push esi
push str.IPClient_c.dll
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
lea edi, [esp + 0x830]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x24]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x424]
push eax
call fcn.004688d0
mov edx, eax
mov edi, str.DllIPCMap.dll
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x28]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x20]
mov ecx, esi
call fcn.0045e480
lea ecx, [esp + 0x24]
push ebp
push ecx
mov ecx, esi
mov edi, eax
call fcn.0045e480
cmp edi, 3
je 0x45e9a8
cmp eax, 3
je 0x45e9a8
push ebx
call sub.MFC42.DLL_operatordelete
push ebp
call sub.MFC42.DLL_operatordelete
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1814
ret 0xc
mov edx, dword [esp + 0x1830]
mov eax, dword [esp + 0x182c]
push edx
push eax
mov ecx, esi
call fcn.0045eb10
mov ebp, eax
mov al, byte [ebx]
test al, al
mov dword [esp + 0x10], 0
je 0x45e9d7
mov ecx, dword [ebx + ebp + 0x10]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x1c]
cmp byte [edx], 0
je 0x45e9ff
test al, al
jne 0x45e9ef
mov ecx, 0x2000
mov esi, edx
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + ebp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
jg 0x45e9ff
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x45ea10
xor eax, 0x234fe7f3
mov dword [esp + 0x10], eax
push edx
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, 0x40
mov esi, 0x4d3ff4
mov edi, ebx
test eax, eax
rep movsd dword es:[edi], dword [esi]
je 0x45ea56
mov esi, dword [esp + 0x14]
cmp esi, 0x54d
je 0x45ea63
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x1814
ret 0xc
mov eax, dword [esp + 0x14]
cmp eax, 0x4e9
jne 0x45ea3b
mov esi, eax
push 0
call dword [sym.imp.MSVCRT.dll_time]
mov ecx, dword [esp + 0x24]
lea edx, [eax - 0x83d600]
mov dword [ebx + ebp], edx
mov dword [ebx + ebp + 4], eax
lea ecx, [ecx + ecx*2 + 3]
add esp, 4
mov dword [ebx + ebp + 8], 1
xor esi, 0x234fe7f3
lea ecx, [ecx + ecx*4]
push 1
lea edx, [esp + 0x28]
push ebx
lea ecx, [ecx + ecx*4]
push edx
lea ecx, [ecx + ecx*8]
shl ecx, 7
lea edi, [ecx + eax]
mov dword [ebx + ebp + 0xc], edi
mov dword [ebx + ebp + 0x10], esi
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.0045e670
test al, al
je 0x45eaf3
push 2
lea eax, [esp + 0x428]
push ebx
push eax
mov ecx, esi
call fcn.0045e670
test al, al
je 0x45eaf3
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esi + 0xc10], edi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1814
ret 0xc
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1814
ret 0xc