Function at 0x4151d0
Capabilities:
Get common file path
Link many functions at runtime
Set current directory

Disassembly:
sub esp, 0x208
push ebx
mov ebx, dword [esp + 0x210]
test ebx, ebx
push esi
je 0x41543b
cmp byte [ebx], 0
je 0x41543b
call fcn.00415450
lea edx, [esp + 8]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4151fd
push edi
lea edi, [esp + 0xc]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xfffffffe
pop edi
test ecx, ecx
jle 0x415231
mov al, 0x5c
cmp byte [esp + ecx + 8], al
je 0x41522c
dec ecx
test ecx, ecx
jg 0x41521f
jmp 0x415231
mov byte [esp + ecx + 8], 0
lea eax, [esp + 0x10c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea ecx, [esp + 8]
push ecx
call esi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea edx, [esp + 0x10c]
mov dword [0x42b714], eax
push edx
call esi
mov eax, dword [0x42b714]
test eax, eax
je 0x41543b
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.PPI_Open
push eax
call esi
mov dword [0x42b6d8], eax
mov eax, dword [0x42b714]
push str.PPI_Close
push eax
call esi
mov ecx, dword [0x42b714]
push str.PPI_IsNeedLogin
push ecx
mov dword [0x42b6dc], eax
call esi
mov edx, dword [0x42b714]
push str.PPI_Login
push edx
mov dword [0x42b6e0], eax
call esi
mov dword [0x42b6e4], eax
mov eax, dword [0x42b714]
push str.PPI_MakeSnapshotFileName
push eax
call esi
mov ecx, dword [0x42b714]
push str.PPI_EnumChannel
push ecx
mov dword [0x42b6e8], eax
call esi
mov edx, dword [0x42b714]
push str.PPI_GetMonthRecord
push edx
mov dword [0x42b6ec], eax
call esi
mov dword [0x42b6f0], eax
mov eax, dword [0x42b714]
push str.PPI_EnumDayRecord
push eax
call esi
mov ecx, dword [0x42b714]
push str.PPI_FileOpen
push ecx
mov dword [0x42b6f4], eax
call esi
mov edx, dword [0x42b714]
push str.PPI_FileClose
push edx
mov dword [0x42b6f8], eax
call esi
mov dword [0x42b6fc], eax
mov eax, dword [0x42b714]
push str.PPI_FileIsOpen
push eax
call esi
mov ecx, dword [0x42b714]
push str.PPI_FileSeek
push ecx
mov dword [0x42b700], eax
call esi
mov edx, dword [0x42b714]
push str.PPI_FileReadFrame
push edx
mov dword [0x42b704], eax
call esi
mov dword [0x42b708], eax
mov eax, dword [0x42b714]
push str.PPI_FilePeekFrame
push eax
call esi
mov ecx, dword [0x42b714]
push str.PPI_FileGetRange
push ecx
mov dword [0x42b70c], eax
call esi
mov ecx, dword [0x42b6d8]
mov dword [0x42b710], eax
test ecx, ecx
je 0x415436
mov ecx, dword [0x42b6dc]
test ecx, ecx
je 0x415436
mov ecx, dword [0x42b6e0]
test ecx, ecx
je 0x415436
mov ecx, dword [0x42b6e4]
test ecx, ecx
je 0x415436
mov ecx, dword [0x42b6e8]
test ecx, ecx
je 0x415436
mov ecx, dword [0x42b6ec]
test ecx, ecx
je 0x415436
mov ecx, dword [0x42b6f0]
test ecx, ecx
je 0x415436
mov ecx, dword [0x42b6f4]
test ecx, ecx
je 0x415436
mov ecx, dword [0x42b6f8]
test ecx, ecx
je 0x415436
mov ecx, dword [0x42b6fc]
test ecx, ecx
je 0x415436
mov ecx, dword [0x42b700]
test ecx, ecx
je 0x415436
mov ecx, dword [0x42b704]
test ecx, ecx
je 0x415436
mov ecx, dword [0x42b708]
test ecx, ecx
je 0x415436
mov ecx, dword [0x42b70c]
test ecx, ecx
je 0x415436
test eax, eax
je 0x415436
pop esi
mov eax, 1
pop ebx
add esp, 0x208
ret
call fcn.00415450
pop esi
xor eax, eax
pop ebx
add esp, 0x208
ret