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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0xae
push 0
push 0
dec ecx
jne 0x4269fd
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x427176
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4be22c
push 0x80
call sub.kernel32.dll_GetCurrentDirectoryA
mov byte [ebp - 0xd], 0
mov eax, 0x80
call fcn.00402688
mov edi, eax
mov eax, 0x258
call fcn.00402688
mov dword [ebp - 0x14], eax
cmp byte [ebp + 8], 0
je 0x426cee
mov esi, dword [ebp - 8]
movzx esi, byte [esi]
test esi, esi
jne 0x426a6d
xor eax, eax
mov dword [ebp - 0x1c], eax
xor ebx, ebx
jmp 0x426b18
mov ebx, esi
jmp 0x426a72
dec ebx
test ebx, ebx
jle 0x426a88
mov eax, dword [ebp - 8]
cmp byte [eax + ebx], 0x2e
je 0x426a88
mov eax, dword [ebp - 8]
cmp byte [eax + ebx], 0x5c
jne 0x426a71
test ebx, ebx
jle 0x426b13
mov eax, dword [ebp - 8]
cmp byte [eax + ebx], 0x2e
jne 0x426b13
cmp esi, ebx
jne 0x426aa4
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x426b18
lea eax, [ebp - 0x340]
push eax
mov ecx, esi
sub ecx, ebx
lea edx, [ebx + 1]
mov eax, dword [ebp - 8]
call fcn.00402798
cmp byte [ebp - 0x340], 3
jne 0x426afc
mov al, byte [ebp - 0x33f]
cmp al, 0x52
je 0x426ad1
cmp al, 0x72
jne 0x426afc
mov dl, byte [ebp - 0x33e]
cmp dl, 0x50
je 0x426ae1
cmp dl, 0x70
jne 0x426afc
cmp byte [ebp - 0x33d], 0x54
je 0x426af3
cmp byte [ebp - 0x33d], 0x74
jne 0x426afc
mov dword [ebp - 0x1c], 1
jmp 0x426b04
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x426b04
dec ebx
test ebx, ebx
jle 0x426b18
mov eax, dword [ebp - 8]
cmp byte [eax + ebx], 0x5c
jne 0x426b03
jmp 0x426b18
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [0x47c664]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x74]
xor ecx, ecx
mov edx, 0x58
call fcn.004031f8
mov dword [ebp - 0x74], 0x58
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x70], eax
mov eax, dword [0x47b584]
inc eax
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x5c], eax
test esi, esi
jne 0x426b62
mov edx, dword [0x47ac1c]
mov eax, edi
call fcn.00409238
jmp 0x426b96
lea eax, [ebp - 0x444]
push eax
mov ecx, esi
sub ecx, ebx
lea edx, [ebx + 1]
mov eax, dword [ebp - 8]
call fcn.00402798
lea edx, [ebp - 0x444]
lea eax, [ebp - 0x344]
call fcn.00404e58
mov edx, dword [ebp - 0x344]
mov eax, edi
call fcn.00409294
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x54], 0x80
cmp dword [ebp - 0x1c], 0
jne 0x426c17
test ebx, ebx
jne 0x426bc4
cmp byte [0x4be12c], 0
jne 0x426bfc
push 0x4be12c
push 0x80
call sub.kernel32.dll_GetCurrentDirectoryA
jmp 0x426bfc
lea eax, [ebp - 0x444]
push eax
mov ecx, ebx
dec ecx
mov eax, dword [ebp - 8]
mov edx, 1
call fcn.00402798
lea edx, [ebp - 0x444]
lea eax, [ebp - 0x448]
call fcn.00404e58
mov edx, dword [ebp - 0x448]
mov eax, 0x4be12c
call fcn.00409294
mov dword [ebp - 0x48], 0x4be12c
mov eax, dword [0x47b28c]
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
mov eax, dword [0x47ac24]
mov dword [ebp - 0x38], eax
jmp 0x426c86
test ebx, ebx
jne 0x426c35
cmp byte [0x4be1ac], 0
jne 0x426c6d
push 0x4be1ac
push 0x80
call sub.kernel32.dll_GetCurrentDirectoryA
jmp 0x426c6d
lea eax, [ebp - 0x444]
push eax
mov ecx, ebx
dec ecx
mov eax, dword [ebp - 8]
mov edx, 1
call fcn.00402798
lea edx, [ebp - 0x444]
lea eax, [ebp - 0x44c]
call fcn.00404e58
mov edx, dword [ebp - 0x44c]
mov eax, 0x4be1ac
call fcn.00409294
mov dword [ebp - 0x48], 0x4be1ac
mov eax, dword [0x47b2c8]
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
mov eax, dword [0x47ac28]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], 4
lea eax, [ebp - 0x74]
push eax
call sub.comdlg32.dll_GetSaveFileNameA
test eax, eax
je 0x427114
cmp dword [ebp - 0x1c], 0
jne 0x426cc9
movzx ecx, word [ebp - 0x3c]
dec ecx
mov edx, 0x4be12c
mov eax, edi
call fcn.00402894
movzx eax, word [ebp - 0x3c]
mov byte [eax + 0x4be12b], 0x5c
mov byte [eax + 0x4be12c], 0
jmp 0x426d22
movzx ecx, word [ebp - 0x3c]
dec ecx
mov edx, 0x4be1ac
mov eax, edi
call fcn.00402894
movzx eax, word [ebp - 0x3c]
mov byte [eax + 0x4be1ab], 0x5c
mov byte [eax + 0x4be1ac], 0
jmp 0x426d22
mov eax, dword [ebp - 8]
cmp byte [eax], 0
je 0x426d13
lea eax, [ebp - 0x450]
mov edx, dword [ebp - 8]
call fcn.00404e58
mov edx, dword [ebp - 0x450]
mov eax, edi
call fcn.00409294
jmp 0x426d22
push 0xffff
call sub.user32.dll_MessageBeep
jmp 0x427114
cmp byte [edi], 0
je 0x427114
mov eax, edi
call fcn.004091fc
mov ebx, eax
dec ebx
jmp 0x426d43
mov al, byte [edi + ebx]
call fcn.00402aec
mov byte [edi + ebx], al
dec ebx
test ebx, ebx
jl 0x426d4d
cmp byte [edi + ebx], 0x5c
jne 0x426d37
lea edx, [ebp - 0x554]
mov eax, edi
call fcn.00409400
mov edx, dword [ebp - 0x554]
lea eax, [ebp - 0x550]
mov ecx, 0xff
call fcn.00404e90
lea edx, [ebp - 0x550]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
call fcn.00403044
lea eax, [ebp - 0x558]
mov edx, dword [ebp - 8]
call fcn.00404e58
mov edx, dword [ebp - 0x558]
lea eax, [ebp - 0x240]
call fcn.00402e0c
lea eax, [ebp - 0x240]
call fcn.00402b9c
call fcn.00402874
test eax, eax
je 0x426e1e
mov edx, 0x42718c
lea eax, [ebp - 0x444]
call fcn.00403038
mov edx, dword [ebp - 8]
lea eax, [ebp - 0x444]
mov cl, 0xfe
call fcn.00403008
lea edx, [ebp - 0x444]
lea eax, [ebp - 0x55c]
call fcn.00404e58
lea eax, [ebp - 0x55c]
mov edx, 0x42719c
call fcn.00404ebc
mov edx, dword [ebp - 0x55c]
mov eax, edi
call fcn.00409294
push 0
mov eax, dword [0x47b5cc]
mov eax, dword [eax]
push eax
push edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
call sub.user32.dll_MessageBoxA_1
jmp 0x427114
mov byte [ebp - 0xd], 1
xor eax, eax
mov dword [ebp - 0x18], eax
push 0
mov dx, 0x1011
mov ax, word [ebp - 0x18]
call fcn.004074f8
push eax
push 0x111
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
call sub.user32.dll_SendMessageA
mov ebx, eax
test ebx, ebx
je 0x427102
cmp byte [ebx], 0x4f
jne 0x426fc1
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x24]
mov edx, dword [0x47b170]
cmp eax, dword [edx]
jne 0x426fc1
mov ecx, dword [ebp - 0x14]
mov edx, 0x4f
mov eax, ebx
call fcn.00420028
mov esi, dword [ebp - 0x14]
jmp 0x426fb3
mov byte [ebp - 0x340], 0
jmp 0x426eeb
lea eax, [ebp - 0x560]
lea edx, [ebp - 0x340]
call fcn.00404e58
lea eax, [ebp - 0x560]
push eax
lea eax, [ebp - 0x568]
mov edx, ebx
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x568]
lea eax, [ebp - 0x564]
call fcn.00404e58
mov edx, dword [ebp - 0x564]
pop eax
call fcn.00404ebc
mov edx, dword [ebp - 0x560]
lea eax, [ebp - 0x340]
mov ecx, 0xff
call fcn.00404e90
inc esi
mov bl, byte [esi]
cmp bl, 0xa
je 0x426ef6
test bl, bl
jne 0x426e91
mov eax, dword [0x47b238]
cmp byte [eax], 0
je 0x426f22
lea edx, [ebp - 0x550]
lea eax, [ebp - 0x340]
call fcn.0041c150
lea edx, [ebp - 0x550]
lea eax, [ebp - 0x340]
call fcn.00403038
lea edx, [ebp - 0x340]
lea eax, [ebp - 0x240]
call fcn.00403848
call fcn.00403854
call fcn.00402874
test eax, eax
je 0x426fad
mov edx, 0x4271a8
lea eax, [ebp - 0x444]
call fcn.00403038
mov edx, dword [ebp - 8]
lea eax, [ebp - 0x444]
mov cl, 0xfe
call fcn.00403008
lea edx, [ebp - 0x444]
lea eax, [ebp - 0x56c]
call fcn.00404e58
mov edx, dword [ebp - 0x56c]
mov eax, edi
call fcn.00409294
push 0
mov eax, dword [0x47b5cc]
mov eax, dword [eax]
push eax
push edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
call sub.user32.dll_MessageBoxA_1
lea eax, [ebp - 0x240]
call fcn.00402fb0
call fcn.00402874
test eax, eax
jmp 0x427114
cmp byte [esi], 0xa
jne 0x426fb3
inc esi
cmp byte [esi], 0
jne 0x426e88
jmp 0x4270d4
lea edx, [ebp - 0x570]
mov eax, ebx
call fcn.00409400
mov edx, dword [ebp - 0x570]
lea eax, [ebp - 0x340]
mov ecx, 0xff
call fcn.00404e90
cmp byte [ebp - 0x340], 0
jbe 0x42701b
mov eax, dword [0x47b238]
cmp byte [eax], 0
je 0x427022
lea edx, [ebp - 0x550]
lea eax, [ebp - 0x340]
call fcn.0041c150
lea edx, [ebp - 0x550]
lea eax, [ebp - 0x340]
call fcn.00403038
jmp 0x427022
mov byte [ebp - 0x340], 0
movzx esi, byte [ebp - 0x340]
test esi, esi
jle 0x42704c
mov edx, esi
test edx, edx
jle 0x42704c
lea eax, [ebp - 0x33f]
mov cl, byte [eax]
mov ebx, dword [0x47b5a0]
cmp cl, byte [ebx]
jne 0x427048
mov byte [eax], 0
inc eax
dec edx
jne 0x427039
lea edx, [ebp - 0x340]
lea eax, [ebp - 0x240]
call fcn.00403848
call fcn.00403854
call fcn.00402874
test eax, eax
je 0x4270d4
mov edx, 0x4271a8
lea eax, [ebp - 0x444]
call fcn.00403038
mov edx, dword [ebp - 8]
lea eax, [ebp - 0x444]
mov cl, 0xfe
call fcn.00403008
lea edx, [ebp - 0x444]
lea eax, [ebp - 0x574]
call fcn.00404e58
mov edx, dword [ebp - 0x574]
mov eax, edi
call fcn.00409294
push 0
mov eax, dword [0x47b5cc]
mov eax, dword [eax]
push eax
push edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
call sub.user32.dll_MessageBoxA_1
lea eax, [ebp - 0x240]
call fcn.00402fb0
call fcn.00402874
test eax, eax
jmp 0x427114
inc dword [ebp - 0x18]
push 0
mov dx, 0x1011
mov ax, word [ebp - 0x18]
call fcn.004074f8
push eax
push 0x111
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
call sub.user32.dll_SendMessageA
mov ebx, eax
test ebx, ebx
jne 0x426e52
lea eax, [ebp - 0x240]
call fcn.00402fb0
call fcn.00402874
test eax, eax
mov eax, dword [ebp - 0x14]
call fcn.004026a8
mov eax, edi
call fcn.004026a8
push 0x4be22c
call sub.kernel32.dll_SetCurrentDirectoryA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x42717d
lea eax, [ebp - 0x574]
mov edx, 3
call fcn.00404c18
lea eax, [ebp - 0x564]
mov edx, 5
call fcn.00404c18
lea eax, [ebp - 0x450]
mov edx, 3
call fcn.00404c18
lea eax, [ebp - 0x344]
call fcn.00404bf4
ret