Function at 0x450edf
Capabilities:
Set current directory

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1c]
push edi
lea eax, [esi + 0x38]
mov dword [esi + 8], eax
push 0x43
pop eax
mov word [esi + 0x30], ax
mov ax, word [esi + 0x3c]
mov word [esi + 0x32], ax
lea eax, [esi + 0x64]
xor edi, edi
push eax
mov dword [esp + 0x14], edi
mov dword [esi], 0x42f877
mov dword [esi + 4], 0x47e31c
mov dword [esi + 0xc], edi
mov dword [esi + 0x24], 2
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push edi
push edi
xor ebx, ebx
inc ebx
push ebx
push edi
mov dword [esi + 0x94], eax
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov edi, dword [sym.imp.PPLIB32W.DLL__ThInit_4]
mov dword [esi + 0x8c], eax
lea eax, [esi + 0x574]
push eax
call edi
push 0x4f0
lea ebp, [esi + 0x1d34]
push ebp
call fcn.00454de4
lea eax, [esi + 0x1d40]
push 8
push eax
call fcn.00454de4
mov ecx, dword [ebp]
mov edx, str.loading
call fcn.00424ef8
mov eax, dword [esi + 0x1d40]
xor ebp, ebp
mov dword [eax], ebp
lea eax, [esi + 0x2248]
push eax
call edi
push 0xfffffffffffffffe
pop eax
mov dword [esi + 0x1d70], eax
mov dword [esi + 0x1d74], eax
or eax, 0xffffffff
mov dword [esi + 0x38b0], eax
mov dword [esi + 0x30e4], eax
mov dword [esi + 0x1d60], eax
mov dword [esi + 0x4a34], eax
mov dword [esi + 0x4a38], eax
mov dword [esi + 0x22a0], eax
mov dword [esi + 0x229c], eax
lea eax, [esi + 0x554]
push eax
mov dword [esi + 0x1d58], ebx
mov dword [esi + 0x1d54], ebx
mov dword [esi + 0x2298], 0x64
mov dword [esi + 0x2284], ebx
mov dword [esi + 0x2280], ebx
mov dword [esi + 0x27ac], ebx
mov dword [esi + 0x27a4], ebx
mov dword [esi + 0x27b0], ebx
mov dword [esi + 0x27a8], ebx
mov dword [esi + 0x38b8], ebp
mov dword [esi + 0x37f8], ebx
mov dword [esi + 0x4a0c], ebx
mov dword [esi + 0x4a30], ebp
mov dword [esi + 0x228c], 0x60
call edi
lea eax, [esi + 0x560]
push eax
call edi
lea eax, [esi + 0x2254]
push eax
call edi
lea eax, [esi + 0x381c]
push eax
call fcn.00455f3a
push ebp
push esi
call fcn.00424e36
cmp dword [esi + 0x2274], ebp
je 0x451067
mov dword [esi + 0x38e4], ebp
or dword [esi + 0x38e4], 0x40000
mov eax, dword [esi + 0x38e4]
cmp dword [esp + 0x24], ebp
je 0x451091
test al, 4
je 0x451091
test byte [esi + 0x32], bl
je 0x451091
and eax, 0xfffdffff
mov dword [esi + 0x38e4], eax
push ebx
push esi
call fcn.00424e36
mov al, byte [esi + 0x2734]
push 0x14
mov byte [esp + 0x24], al
lea edi, [esi + 0x2724]
push edi
lea eax, [esi + 0x40]
push eax
push 0x473ab8
call dword [sym.imp.PPLIB32W.DLL__GetCustTable_16]
test eax, eax
jne 0x4510dc
mov eax, dword [esi + 0x272c]
sub eax, dword [edi]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x2730]
sub eax, dword [esi + 0x2728]
mov dword [esp + 0x18], eax
jmp 0x451120
mov eax, 0x80000000
mov dword [esi + 0x2728], eax
mov dword [edi], eax
mov eax, 0x280
mov dword [esi + 0x272c], eax
mov dword [esp + 0x14], eax
mov eax, 0x190
mov dword [esi + 0x2730], eax
mov dword [esp + 0x18], eax
cmp dword [esi + 0x2274], ebp
jne 0x451118
test byte [esi + 0x38e4], 4
je 0x451120
mov dword [esp + 0x14], 0x140
cmp byte [esp + 0x20], 0xa
je 0x45112d
cmp byte [esp + 0x20], bl
jne 0x451143
mov al, byte [esi + 0x2734]
cmp al, 2
je 0x45113f
mov byte [esp + 0x20], al
test al, al
jne 0x451143
mov byte [esp + 0x20], bl
cmp dword [esp + 0x24], ebp
jne 0x451164
push 0x4b0
lea eax, [esi + 0x584]
push eax
lea eax, [esi + 0x40]
push eax
push str._Path
call dword [sym.imp.PPLIB32W.DLL__GetCustTable_16]
push esi
call fcn.0044fdcb
test byte [esi + 0x4a0c], 2
je 0x4511f0
mov ebp, dword [sym.imp.PPLIB32W.DLL__PPxGetHWND_4]
push 0x47ea5c
mov dword [esp + 0x28], 0xc8
call ebp
mov dword [esi + 0x4a10], eax
test eax, eax
jne 0x4511a3
push 0x48ab20
push str.PPTRAYW.EXE
push eax
call dword [sym.imp.PPLIB32W.DLL__ComExec_12]
mov eax, dword [esi + 0x4a10]
test eax, eax
je 0x4511b4
cmp eax, 0xfefffffe
jne 0x4511cf
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x47ea5c
call ebp
dec dword [esp + 0x24]
mov dword [esi + 0x4a10], eax
jne 0x4511a3
push 0
push 0xbae8
push dword [0x48b024]
push dword [esi + 0x4a10]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esi + 0x4a10], eax
xor ebp, ebp
lea eax, [esi + 0x4a5c]
cmp dword [eax], ebp
je 0x45120e
mov dword [eax], 7
push dword [0x4895e0]
call fcn.0041a50d
push eax
jmp 0x45121a
mov dword [eax], 4
push dword [0x4895e0]
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [esi + 0x22a4], eax
mov edx, dword [0x487204]
mov ecx, esi
call fcn.004509f3
cmp dword [0x48a9e8], ebp
je 0x451241
mov dword [esi + 0x2274], ebp
cmp dword [esi + 0x2274], ebp
je 0x451255
mov edx, 0x80
mov eax, 0x400a0000
jmp 0x451296
push 0x488200
push str.MC_menu
lea ebp, [esi + 0x5420]
push ebp
call dword [sym.imp.PPLIB32W.DLL__InitDynamicMenu_12]
mov ecx, dword [esi + 0x4a0c]
mov eax, ecx
and eax, 0x100
xor edx, edx
neg eax
sbb eax, eax
and eax, 0x7f400000
add eax, 0xcf0000
test bl, cl
je 0x451294
mov ecx, dword [ebp]
mov dword [esp + 0x10], ecx
xor ebp, ebp
mov ecx, dword [0x48a340]
cmp dword [esi + 0x4a14], ebp
jne 0x4512aa
mov ecx, dword [esi + 0x4a10]
push esi
push dword [0x48ab14]
mov ebx, 0x4739e8
push dword [esp + 0x18]
push ecx
push dword [esp + 0x28]
push dword [esp + 0x28]
push dword [esi + 0x2728]
push dword [edi]
push eax
push ebx
push str.PaperPlaneCUIW
push edx
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov edi, eax
push ebx
push edi
mov dword [esi + 0xc], edi
call dword [sym.imp.PPLIB32W.DLL__FixUxTheme_8]
cmp dword [esi + 0x2274], ebp
jne 0x4512fc
push edi
lea eax, [esi + 0x5420]
push eax
call dword [sym.imp.PPLIB32W.DLL__InitSystemDynamicMenu_8]
push edi
lea ebx, [esi + 0x5468]
push ebx
call fcn.00421de7
push edi
push 0xbf17
call dword [sym.imp.PPLIB32W.DLL__PPxCommonExtCommand_8]
push esi
mov dword [esi + 0x228c], eax
call fcn.00450a70
lea eax, [esi + 0x30]
push eax
push edi
lea eax, [esi + 0x22c4]
push eax
call fcn.00456442
mov eax, dword [esi + 0x271c]
or eax, dword [0x4895ac]
push esi
mov dword [esi + 0x22ac], eax
call fcn.0044fd0f
push dword [0x4895e0]
push dword [ebx]
call fcn.0042278a
push esi
call fcn.0044fa31
mov al, byte [esp + 0x20]
mov byte [esi + 0x2734], al
mov eax, dword [0x487004]
cmp eax, 0xffffffff
jne 0x45137c
call dword [sym.imp.PPLIB32W.DLL__CheckRunAs_0]
mov dword [0x487004], eax
cmp eax, ebp
je 0x4513be
mov ecx, eax
lea edi, [ecx + 2]
mov dx, word [ecx]
inc ecx
inc ecx
cmp dx, bp
jne 0x451385
sub ecx, edi
sar ecx, 1
cmp ecx, 0x70
jbe 0x4513a2
mov eax, str.another
mov dword [0x487004], eax
push eax
lea eax, [esi + 0x42]
push eax
push str.PPC__s___s_
add esi, 0x2fc8
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x4513d7
lea eax, [esi + 0x42]
push eax
push str.PPC__s_
add esi, 0x2fc8
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0x48ab20
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 2
call dword [sym.imp.PPLIB32W.DLL__VFSOn_4]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8