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

Disassembly:
push 0xffffffffffffffff
push 0x60e6ed
mov eax, dword fs:[0]
push eax
sub esp, 0x52c
mov eax, dword [0x6963f4]
xor eax, esp
mov dword [esp + 0x528], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6963f4]
xor eax, esp
push eax
lea eax, [esp + 0x540]
mov dword fs:[0], eax
mov eax, dword [esp + 0x550]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x554]
xor ebp, ebp
test eax, eax
mov ebx, ecx
je 0x434f6d
push eax
call fcn.005606e4
mov ebp, eax
mov ecx, dword [0x6b4980]
mov eax, dword [ecx*4 + 0x69f188]
lea edx, [esp + 0x20]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x434f80
mov ecx, ebx
call fcn.00434d00
test eax, eax
je 0x434fa4
lea edx, [esp + 0x20]
push edx
call fcn.005fbc77
add esp, 4
lea eax, [esp + 0x20]
mov esi, eax
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x434fb0
mov edi, ebx
sub eax, esi
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x434fc0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x2f
push ebx
rep movsb byte es:[edi], byte [esi]
call fcn.0059eac0
add esp, 8
test eax, eax
je 0x434ff9
push 0x2f
push ebx
mov byte [eax], 0x5c
call fcn.0059eac0
add esp, 8
test eax, eax
jne 0x434fe7
mov eax, ebx
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x435000
sub eax, edx
cmp eax, 2
jbe 0x43505a
lea eax, [ebx + 2]
push 0x63f4ac
push eax
call fcn.0059e260
mov esi, eax
add esp, 8
test esi, esi
je 0x43505a
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x435030
sub eax, edx
push eax
lea ecx, [esi + 1]
push ecx
push esi
call fcn.005a1460
push 0x63f4ac
push esi
call fcn.0059e260
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x435027
push 0x5c
push ebx
call fcn.0059eac0
add esp, 8
test eax, eax
jne 0x43508b
push 0x2f
push ebx
call fcn.0059eac0
add esp, 8
test eax, eax
jne 0x43508b
push 0x3a
push ebx
call fcn.0059eac0
add esp, 8
test eax, eax
je 0x43518a
lea edx, [esp + 0x43c]
push edx
lea eax, [esp + 0x238]
push eax
lea ecx, [esp + 0x13c]
push ecx
lea edx, [esp + 0x20]
push edx
push ebx
call fcn.0059e6fd
add esp, 0x14
xor eax, eax
mov cl, byte [esp + eax + 0x14]
mov byte [esp + eax + 0x2c], cl
add eax, 1
test cl, cl
jne 0x4350b3
lea eax, [esp + 0x134]
mov edx, eax
jmp 0x4350d0
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4350d0
lea edi, [esp + 0x2c]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x4350e2
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x334]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.kernel32.dll_GetCurrentDirectoryA]
push 0x104
call esi
mov edi, dword [sym.imp.kernel32.dll_SetCurrentDirectoryA]
lea ecx, [esp + 0x2c]
push ecx
call edi
test eax, eax
je 0x43513f
lea edx, [esp + 0x2c]
push edx
push 0x104
call esi
call fcn.0042f3f0
lea eax, [esp + 0x334]
push eax
call edi
jmp 0x43518a
mov cx, word [0x63dab4]
mov word [ebx], cx
mov dl, byte [0x63dab6]
lea eax, [esp + 0x234]
mov byte [ebx + 2], dl
mov ecx, eax
jmp 0x435160
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x435160
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x435172
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]
push 0x608
call fcn.0055dbcb
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
mov dword [esp + 0x548], 0
je 0x4351c4
mov ecx, dword [esp + 0x558]
mov edx, dword [esp + 0x18]
push ecx
push ebp
push edx
push eax
mov ecx, ebx
call fcn.004365c0
mov esi, eax
jmp 0x4351c6
xor esi, esi
mov ecx, esi
mov dword [esp + 0x548], 0xffffffff
call fcn.00577b94
test ebp, ebp
mov dword [eax + 0x1c], ebx
je 0x4351e5
mov eax, dword [ebp + 0x20]
push eax
jmp 0x4351ff
call fcn.005669f5
test eax, eax
je 0x4351f9
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
jmp 0x4351fb
xor eax, eax
mov ecx, dword [eax + 0x20]
push ecx
call dword [sym.imp.user32.dll_SetForegroundWindow]
mov edx, dword [esi]
mov eax, dword [edx + 0x144]
mov ecx, esi
call eax
mov ebx, dword [esi + 0x1dc]
mov ecx, esi
mov edi, eax
call fcn.00577b94
mov ecx, esi
call fcn.00577b94
cmp edi, 1
mov ebp, dword [eax + 0x18]
jne 0x435240
lea ecx, [esi + 0x1c8]
push ecx
mov eax, str.SaveOpts
call fcn.00436360
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
cmp edi, 1
jne 0x4352df
test ebx, ebx
je 0x4352db
cmp dword [0x6b40d4], 0
je 0x4352b1
call fcn.005669f5
test eax, eax
je 0x435279
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
jmp 0x43527b
xor eax, eax
push 7
mov ecx, eax
call fcn.005652e8
call fcn.005669f5
test eax, eax
je 0x4352a3
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
push 0
mov ecx, eax
call fcn.005652e8
mov eax, ebp
jmp 0x4352f1
xor eax, eax
push eax
mov ecx, eax
call fcn.005652e8
mov eax, ebp
jmp 0x4352f1
call fcn.005669f5
test eax, eax
je 0x4352d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
push 6
mov ecx, eax
call fcn.005652e8
mov eax, ebp
jmp 0x4352f1
xor eax, eax
push 6
mov ecx, eax
call fcn.005652e8
mov eax, ebp
jmp 0x4352f1
call dword [sym.imp.comdlg32.dll_CommDlgExtendedError]
push eax
push eax
call fcn.0042f3f0
add esp, 8
xor eax, eax
mov ecx, dword [esp + 0x540]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x528]
xor ecx, esp
call fcn.0059e0c2
add esp, 0x538
ret