Function at 0x10002053
Capabilities:
Get graphical window text

Disassembly:
mov eax, 0x1000f640
call fcn.1000f3a0
sub esp, 0x41c
mov eax, dword [ebp + 8]
push ebx
push esi
sub eax, 0xf
push edi
mov esi, ecx
je 0x1000240c
dec eax
je 0x100022f4
sub eax, 0x101
jne 0x1000243e
movzx eax, word [ebp + 0xc]
sub eax, 0x1b5
je 0x10002300
dec eax
je 0x100022ed
sub eax, 3
jne 0x1000243e
lea edi, [esi + 0x158]
xor ebx, ebx
cmp byte [edi], bl
jne 0x1000214e
lea eax, [ebp + 8]
push eax
call dword [sym.imp.SHELL32.dll_SHGetDesktopFolder]
mov eax, dword [esi]
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x50]
push eax
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], 0x1000202e
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x44], str.Select_source_path
mov dword [ebp - 0x40], 0x51
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderA]
cmp eax, ebx
je 0x10002140
mov ecx, dword [ebp + 8]
lea edi, [ebp - 0x220]
push edi
push 0x8000
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x2c]
call fcn.1000d293
cmp eax, 1
jne 0x10002132
lea eax, [ebp - 0x428]
push 0x104
push eax
push dword [ebp - 0x21c]
call fcn.1000e083
add esp, 0xc
lea eax, [ebp - 0x428]
jmp 0x10002138
lea eax, [ebp - 0x21c]
push eax
mov ecx, esi
call fcn.100024dd
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x1000243e
push 0x64
lea eax, [ebp - 0x118]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x30]
push edi
call fcn.1000cf85
push 0x2e
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 2
call fcn.1000d15a
cmp eax, 0xffffffff
mov dword [ebp + 8], eax
jne 0x100021ac
lea eax, [ebp - 0x118]
push str.All_Files__._
push eax
call sub.MSVCRT.dll_strcpy
lea eax, [ebp - 0x108]
push 0x100132f8
push eax
call sub.MSVCRT.dll_strcpy
add esp, 0x10
jmp 0x10002261
lea ecx, [ebp - 0x30]
call fcn.1000af45
push eax
lea eax, [ebp - 0x5c]
push dword [ebp + 8]
lea ecx, [ebp - 0x30]
push eax
call fcn.1000d06d
push eax
lea eax, [ebp - 0x18]
push 0x100132f4
push eax
mov byte [ebp - 4], 3
call fcn.1000d1f7
add esp, 0xc
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 5
call fcn.1000cec6
lea ecx, [ebp - 0x18]
call fcn.1000cfa5
push eax
lea eax, [ebp - 0x118]
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
lea ecx, [ebp - 0x18]
call fcn.1000cfa5
push eax
lea ecx, [ebp - 0x18]
call fcn.1000af45
lea eax, [ebp + eax - 0x117]
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
push str.All_Files__._
lea ecx, [ebp - 0x18]
call fcn.1000af45
lea eax, [ebp + eax*2 - 0x116]
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
push 0x100132f8
lea ecx, [ebp - 0x18]
call fcn.1000af45
lea eax, [ebp + eax*2 - 0x106]
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
mov byte [ebp - 4], 2
pop ecx
lea ecx, [ebp - 0x18]
call fcn.1000cec6
lea eax, [ebp - 0x324]
push edi
push eax
call sub.MSVCRT.dll_strcpy
push 0x4c
lea eax, [ebp - 0xb4]
push ebx
push eax
call sub.MSVCRT.dll_memset
mov eax, dword [esi]
add esp, 0x14
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0x118]
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0x324]
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0xb4]
push eax
mov dword [ebp - 0xb4], 0x4c
mov dword [ebp - 0x9c], 1
mov dword [ebp - 0x94], 0x104
mov dword [ebp - 0x88], edi
call sub.comdlg32.dll_GetSaveFileNameA
test eax, eax
je 0x100022e1
push dword [ebp - 0x98]
mov ecx, esi
call fcn.10002524
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
jmp 0x100023ee
mov dword [esi + 0x50], 0x1b6
mov dword [esi + 0x4c], 1
jmp 0x1000243e
lea edi, [esi + 0x158]
xor ebx, ebx
cmp byte [edi], bl
jne 0x10002364
lea edi, [esi + 0x54]
push 0x104
push edi
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_GetWindowTextA]
push edi
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x10002400
push edi
call fcn.1000dc27
test eax, eax
pop ecx
jne 0x10002400
push edi
call fcn.1000d3ff
test eax, eax
pop ecx
je 0x10002400
push 0x30
push str.Select_directory
push str.Error_creating_directory
push dword [esi]
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x1000243e
push 0x104
push edi
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_GetWindowTextA]
push edi
lea ecx, [ebp - 0x24]
call fcn.1000cf85
push 0x2f
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], ebx
call fcn.1000d15a
or edi, 0xffffffff
cmp eax, edi
jne 0x1000239e
push 0x5c
lea ecx, [ebp - 0x24]
call fcn.1000d15a
cmp eax, edi
je 0x100023f5
push eax
lea eax, [ebp - 0x68]
push ebx
push eax
lea ecx, [ebp - 0x24]
call fcn.1000d06d
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.1000cfa5
push eax
call fcn.1000d3ff
pop ecx
mov byte [ebp - 4], bl
test eax, eax
lea ecx, [ebp - 0x68]
setne byte [ebp + 0xb]
call fcn.1000cec6
cmp byte [ebp + 0xb], bl
je 0x100023f5
push 0x30
push str.Select_directory
push str.Error_creating_directory
push dword [esi]
call dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [ebp - 4], edi
lea ecx, [ebp - 0x24]
call fcn.1000cec6
jmp 0x1000243e
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], edi
call fcn.1000cec6
mov dword [esi + 0x50], 0x1b5
jmp 0x100022f4
push dword [esi]
call dword [sym.imp.USER32.dll_GetDC]
lea edi, [esi + 0x28]
mov ebx, eax
mov ecx, edi
call fcn.100013d4
push eax
mov ecx, edi
call fcn.100013b0
push eax
push 0xa
push 0xa
push ebx
mov ecx, edi
call fcn.10001400
push ebx
push dword [esi]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc