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

Disassembly:
push 0xffffffffffffffff
push 0x61650d
mov eax, dword fs:[0]
push eax
sub esp, 0x52c
mov eax, dword [0x69e3d4]
xor eax, esp
mov dword [esp + 0x528], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x69e3d4]
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 0x43635d
push eax
call fcn.005680c4
mov ebp, eax
mov ecx, dword [0x6bd764]
mov eax, dword [ecx*4 + 0x6a7180]
lea edx, [esp + 0x20]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x436370
mov ecx, ebx
call fcn.004360f0
lea eax, [esp + 0x20]
mov esi, eax
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x436390
mov edi, ebx
sub eax, esi
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x4363a0
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.005a6320
add esp, 8
test eax, eax
je 0x4363d9
push 0x2f
push ebx
mov byte [eax], 0x5c
call fcn.005a6320
add esp, 8
test eax, eax
jne 0x4363c7
mov eax, ebx
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4363e0
sub eax, edx
cmp eax, 2
jbe 0x43643a
lea edx, [ebx + 2]
push 0x64773c
push edx
call fcn.005a5af0
mov esi, eax
add esp, 8
test esi, esi
je 0x43643a
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x436410
sub eax, edx
push eax
lea eax, [esi + 1]
push eax
push esi
call fcn.005a8cf0
push 0x64773c
push esi
call fcn.005a5af0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x436407
push 0x5c
push ebx
call fcn.005a6320
add esp, 8
test eax, eax
jne 0x43646b
push 0x2f
push ebx
call fcn.005a6320
add esp, 8
test eax, eax
jne 0x43646b
push 0x3a
push ebx
call fcn.005a6320
add esp, 8
test eax, eax
je 0x436568
lea ecx, [esp + 0x43c]
push ecx
lea edx, [esp + 0x238]
push edx
lea eax, [esp + 0x13c]
push eax
lea ecx, [esp + 0x20]
push ecx
push ebx
call fcn.005a5f5d
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 0x436493
lea eax, [esp + 0x134]
mov edx, eax
jmp 0x4364b0
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4364b0
lea edi, [esp + 0x2c]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x4364c2
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [esp + 0x334]
and ecx, 3
push edx
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 eax, [esp + 0x2c]
push eax
call edi
test eax, eax
je 0x43651f
lea ecx, [esp + 0x2c]
push ecx
push 0x104
call esi
call fcn.0049f320
lea edx, [esp + 0x334]
push edx
call edi
jmp 0x436568
mov ax, word [0x645b3c]
mov word [ebx], ax
mov cl, byte [0x645b3e]
lea eax, [esp + 0x234]
mov byte [ebx + 2], cl
mov esi, eax
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x436540
mov edi, ebx
sub eax, esi
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x436550
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 0x660
call fcn.005655ab
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
mov dword [esp + 0x548], 0
je 0x4365a2
mov edx, dword [esp + 0x558]
mov ecx, dword [esp + 0x18]
push edx
push ebp
push ecx
push eax
mov ecx, ebx
call fcn.00437ba0
mov esi, eax
jmp 0x4365a4
xor esi, esi
mov ecx, esi
mov dword [esp + 0x548], 0xffffffff
call fcn.005724ec
test ebp, ebp
mov dword [eax + 0x1c], ebx
je 0x4365c3
mov edx, dword [ebp + 0x20]
push edx
jmp 0x4365dd
call fcn.0056efb5
test eax, eax
je 0x4365d7
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
jmp 0x4365d9
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.005724ec
mov ecx, esi
call fcn.005724ec
cmp edi, 1
mov ebp, dword [eax + 0x18]
jne 0x43661e
lea ecx, [esi + 0x1c8]
push ecx
mov eax, str.SaveOpts
call fcn.004378f0
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
cmp edi, 1
jne 0x4366b9
test ebx, ebx
je 0x4366b5
cmp dword [0x6bcc44], 0
je 0x43668b
call fcn.0056efb5
test eax, eax
je 0x436653
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
jmp 0x436655
xor eax, eax
push 7
mov ecx, eax
call fcn.0056cc4d
call fcn.0056efb5
test eax, eax
je 0x43667d
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
push 0
mov ecx, eax
call fcn.0056cc4d
mov eax, ebp
jmp 0x4366cb
xor eax, eax
push eax
mov ecx, eax
call fcn.0056cc4d
mov eax, ebp
jmp 0x4366cb
call fcn.0056efb5
test eax, eax
je 0x4366aa
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
push 6
mov ecx, eax
call fcn.0056cc4d
mov eax, ebp
jmp 0x4366cb
xor eax, eax
push 6
mov ecx, eax
call fcn.0056cc4d
mov eax, ebp
jmp 0x4366cb
call dword [sym.imp.comdlg32.dll_CommDlgExtendedError]
push eax
push eax
call fcn.0049f320
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.005a58d9
add esp, 0x538
ret