Function at 0x420eb7
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3ab0
call fcn.00612c90
mov eax, dword [0x6ffe74]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
mov dword [ebp - 0x3aac], ecx
call fcn.00643470
xor ebx, ebx
cmp eax, 1
pop ecx
lea eax, [ebp - 0x3f4]
jae 0x420f33
push eax
push ebx
push ebx
push 5
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
jns 0x420f17
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.006122f0
leave
ret 4
push str.SuperPuTTYSessions.XML
mov edi, 0x3e8
lea eax, [ebp - 0x3f4]
push edi
push eax
call fcn.006500a8
add esp, 0xc
jmp 0x420f48
push esi
push str._sSessions.XML
mov edi, 0x3e8
push edi
push eax
call fcn.00402e0a
add esp, 0x10
push 0x6c63d0
lea eax, [ebp - 0x3f4]
mov dword [ebp - 0x3aa8], ebx
push eax
lea eax, [ebp - 0x3aa8]
push eax
call fcn.00649a00
add esp, 0xc
test eax, eax
jne 0x420f04
cmp dword [ebp - 0x3aa8], ebx
je 0x420f04
jmp 0x4212ca
lea eax, [ebp - 0x3aa4]
push eax
call fcn.00643470
pop ecx
test eax, eax
je 0x420fab
lea eax, [ebp - 0x3aa4]
push eax
call fcn.00643470
dec eax
pop ecx
cmp eax, 0x1388
jae 0x421300
mov byte [ebp + eax - 0x3aa4], bl
lea ecx, [ebp - 0x3aa4]
call fcn.004047e7
lea eax, [ebp - 0x3aa4]
push eax
lea eax, [ebp - 0x271c]
push 0x1388
push eax
call fcn.006494f3
add esp, 0xc
lea eax, [ebp - 0x271c]
push eax
call fcn.00643470
pop ecx
inc eax
push eax
lea eax, [ebp - 0x271c]
push eax
call fcn.0064ffd4
push str._sessiondata
call fcn.00643470
add esp, 0xc
push eax
lea eax, [ebp - 0x271c]
push str._sessiondata
push eax
call fcn.00650030
add esp, 0xc
test eax, eax
jne 0x4212ca
lea eax, [ebp - 0x271c]
mov byte [ebp - 0x7dc], bl
push str.host_
push eax
mov byte [ebp - 0xbc4], bl
mov byte [ebp - 0xfac], bl
call fcn.00639500
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4212ca
push str.host_
call fcn.00643470
pop ecx
lea ecx, [ebp - 0x271c]
sub esi, ecx
lea ecx, [ebp - 0x3aa4]
add esi, ecx
add esi, eax
push 0x22
push esi
call fcn.006393d0
pop ecx
pop ecx
test eax, eax
je 0x4212ca
mov cl, byte [esi]
mov eax, ebx
cmp cl, 0x22
je 0x42109d
lea ebx, [ebp - 0xfac]
sub ebx, esi
inc eax
mov byte [ebx + esi], cl
inc esi
mov edx, eax
mov cl, byte [esi]
cmp cl, 0x22
jne 0x421085
cmp edx, edi
jae 0x421300
xor ebx, ebx
mov byte [ebp + eax - 0xfac], bl
lea eax, [ebp - 0x271c]
push str.port_
push eax
call fcn.00639500
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4210fe
push str.port_
call fcn.00643470
pop ecx
lea ecx, [ebp - 0x271c]
sub esi, ecx
lea ecx, [ebp - 0x3aa4]
add esi, ecx
add esi, eax
push 0x22
push esi
call fcn.006393d0
pop ecx
pop ecx
test eax, eax
je 0x4210fe
cmp byte [esi], 0x22
mov eax, ebx
je 0x4210fe
inc eax
inc esi
cmp byte [esi], 0x22
jne 0x4210ef
cmp eax, edi
jae 0x421300
lea eax, [ebp - 0x271c]
push str.proto_
push eax
call fcn.00639500
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x421158
push str.proto_
call fcn.00643470
pop ecx
lea ecx, [ebp - 0x271c]
sub esi, ecx
lea ecx, [ebp - 0x3aa4]
add esi, ecx
add esi, eax
push 0x22
push esi
call fcn.006393d0
pop ecx
pop ecx
test eax, eax
je 0x421158
cmp byte [esi], 0x22
mov eax, ebx
je 0x421158
inc eax
inc esi
cmp byte [esi], 0x22
jne 0x421149
cmp eax, edi
jae 0x421300
lea eax, [ebp - 0x271c]
push str.username_
push eax
call fcn.00639500
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4211cc
push str.username_
call fcn.00643470
pop ecx
lea ecx, [ebp - 0x271c]
sub esi, ecx
lea ecx, [ebp - 0x3aa4]
add esi, ecx
add esi, eax
push 0x22
push esi
call fcn.006393d0
pop ecx
pop ecx
test eax, eax
je 0x4211cc
mov cl, byte [esi]
mov eax, ebx
cmp cl, 0x22
je 0x4211c5
lea ebx, [ebp - 0xbc4]
sub ebx, esi
inc eax
mov byte [ebx + esi], cl
inc esi
mov edx, eax
mov cl, byte [esi]
cmp cl, 0x22
jne 0x4211ad
cmp edx, edi
jae 0x421300
xor ebx, ebx
mov byte [ebp + eax - 0xbc4], bl
lea eax, [ebp - 0x271c]
push str.extraargs_
push eax
call fcn.00639500
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x42129a
push str.extraargs_
call fcn.00643470
pop ecx
lea ecx, [ebp - 0x271c]
sub esi, ecx
lea ecx, [ebp - 0x3aa4]
add esi, ecx
add esi, eax
push 0x22
push esi
call fcn.006393d0
pop ecx
pop ecx
test eax, eax
je 0x42129a
mov cl, byte [esi]
mov eax, ebx
cmp cl, 0x22
je 0x421241
lea ebx, [ebp - 0x1394]
sub ebx, esi
inc eax
mov byte [ebx + esi], cl
inc esi
mov edx, eax
mov cl, byte [esi]
cmp cl, 0x22
jne 0x421229
cmp edx, edi
jae 0x421300
xor ebx, ebx
mov byte [ebp + eax - 0x1394], bl
lea eax, [ebp - 0x1394]
push str._pw
push eax
call fcn.00639500
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x42129a
push str._pw
call fcn.00643470
add eax, esi
pop ecx
mov ecx, ebx
mov dl, byte [eax]
cmp dl, 0x20
je 0x421293
lea esi, [ebp - 0x7dc]
sub esi, eax
test dl, dl
je 0x42128f
mov byte [esi + eax], dl
inc ecx
inc eax
mov dl, byte [eax]
cmp dl, 0x20
jne 0x42127f
cmp ecx, edi
jae 0x421300
mov byte [ebp + ecx - 0x7dc], bl
mov ecx, dword [ebp - 0x3aac]
lea eax, [ebp - 0x7dc]
push 0xffffffffffffffff
mov esi, 0x6c5bb9
push esi
push eax
lea eax, [ebp - 0xbc4]
push eax
lea eax, [ebp - 0xfac]
push eax
push esi
push 0x137
push 4
call fcn.0043ee6b
push dword [ebp - 0x3aa8]
lea eax, [ebp - 0x3aa4]
push 0x1388
push eax
call fcn.006494dd
add esp, 0xc
test eax, eax
jne 0x420f7a
push dword [ebp - 0x3aa8]
call fcn.00649273
xor eax, eax
pop ecx
inc eax
jmp 0x420f06
call fcn.00612782
int3