Function at 0x403a63
Capabilities:
Get graphical window text
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58c
nop
mov eax, 0x32
push eax
lea eax, [ebp - 0x32]
push eax
mov eax, dword [0x406160]
push eax
call sub.user32.dll_GetWindowTextA
mov eax, 0
mov byte [ebp - 0x352], al
mov eax, 0xc7
push eax
mov eax, 0
push eax
lea eax, [ebp - 0x351]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, 0x258
push eax
mov eax, 0
push eax
lea eax, [ebp - 0x28a]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, 0
push eax
mov eax, 0
push eax
mov eax, 0x1009
push eax
mov eax, dword [0x406128]
push eax
call sub.user32.dll_SendMessageA
mov eax, 0x40574a
push eax
mov eax, dword [ebp + 8]
push eax
call sub.msvcrt.dll_fopen
add esp, 8
mov dword [ebp - 0x524], eax
mov eax, 0
push eax
mov eax, 0
push eax
mov eax, dword [ebp - 0x524]
push eax
call sub.msvcrt.dll_fseek
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
call fcn.0040178e
add esp, 4
mov dword [ebp - 0x458], eax
mov eax, dword [ebp - 0x458]
mov dword [ebp - 0x528], eax
mov dword [ebp - 0x530], esp
mov eax, dword [ebp - 0x528]
push eax
call fcn.00404354
add esp, 4
mov dword [ebp - 0x52c], esp
mov eax, dword [ebp - 0x458]
push eax
mov eax, 0
push eax
mov eax, dword [ebp - 0x52c]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x524]
push eax
mov eax, dword [ebp - 0x458]
push eax
mov eax, 1
push eax
mov eax, dword [ebp - 0x52c]
push eax
call sub.msvcrt.dll_fread
add esp, 0x10
mov eax, dword [ebp - 0x524]
push eax
call sub.msvcrt.dll_fclose
add esp, 4
mov eax, 0
mov dword [ebp - 0x538], eax
mov eax, 0
mov dword [ebp - 0x53c], eax
mov eax, 0
mov dword [ebp - 0x560], eax
lea eax, [ebp - 0x32]
push eax
lea eax, [ebp - 0x55a]
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
lea eax, [ebp - 0x55a]
push eax
call sub.msvcrt.dll_strlen
add esp, 4
mov dword [ebp - 0x538], eax
mov eax, 0
mov dword [ebp - 0x578], eax
mov eax, 0
mov dword [ebp - 0x57c], eax
mov esp, dword [ebp - 0x52c]
mov eax, 1
mov dword [ebp - 0x534], eax
mov eax, 0
mov dword [ebp - 0x580], eax
mov esp, dword [ebp - 0x52c]
mov eax, dword [ebp - 0x580]
mov ecx, dword [ebp - 0x538]
cmp eax, ecx
jge 0x403c91
jmp 0x403c4d
mov esp, dword [ebp - 0x52c]
mov eax, dword [ebp - 0x580]
mov ecx, eax
inc eax
mov dword [ebp - 0x580], eax
jmp 0x403c17
mov eax, dword [ebp - 0x53c]
mov ecx, dword [ebp - 0x580]
add eax, ecx
mov ecx, dword [ebp - 0x52c]
add ecx, eax
mov eax, dword [ebp - 0x580]
lea edx, [ebp - 0x55a]
add edx, eax
movzx eax, byte [ecx]
movsx ecx, byte [edx]
cmp eax, ecx
je 0x403c8f
mov eax, 0
mov dword [ebp - 0x534], eax
jmp 0x403c91
jmp 0x403c36
mov eax, dword [ebp - 0x534]
cmp eax, 1
jne 0x403e45
mov eax, 0
mov dword [ebp - 0x57c], eax
mov esp, dword [ebp - 0x52c]
mov eax, dword [ebp - 0x53c]
mov ecx, dword [ebp - 0x57c]
add eax, ecx
mov ecx, dword [ebp - 0x52c]
add ecx, eax
movzx eax, byte [ecx]
cmp eax, 0x22
jne 0x403dfb
mov eax, dword [ebp - 0x560]
mov ecx, eax
inc eax
mov dword [ebp - 0x560], eax
mov eax, dword [ebp - 0x560]
push eax
mov eax, 0x40574e
push eax
lea eax, [ebp - 0x352]
push eax
call sub.msvcrt.dll_sprintf
add esp, 0xc
mov eax, 0
mov dword [ebp - 0x584], eax
mov eax, 0
mov dword [ebp - 0x588], eax
mov esp, dword [ebp - 0x52c]
mov eax, dword [ebp - 0x588]
cmp eax, 3
jge 0x403d7d
jmp 0x403d45
mov esp, dword [ebp - 0x52c]
mov eax, dword [ebp - 0x588]
mov ecx, eax
inc eax
mov dword [ebp - 0x588], eax
jmp 0x403d14
mov eax, dword [ebp - 0x588]
shl eax, 2
mov ecx, 0x40555c
add ecx, eax
mov eax, dword [ecx]
push eax
lea eax, [ebp - 0x452]
push eax
call fcn.00401751
add esp, 8
cmp eax, 0
jle 0x403d7b
mov eax, 1
mov dword [ebp - 0x584], eax
jmp 0x403d2e
mov eax, dword [ebp - 0x584]
cmp eax, 0
jne 0x403dd6
lea eax, [ebp - 0x452]
push eax
lea eax, [ebp - 0x28a]
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
mov eax, 0x405751
push eax
lea eax, [ebp - 0x1c2]
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
lea eax, [ebp - 0x452]
push eax
mov eax, 0
push eax
mov eax, 0x180
push eax
mov eax, dword [0x406150]
push eax
call sub.user32.dll_SendMessageA
call fcn.00401ab9
mov eax, 0x100
push eax
mov eax, 0
push eax
lea eax, [ebp - 0x452]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
jmp 0x403e45
mov eax, dword [ebp - 0x57c]
lea ecx, [ebp - 0x452]
add ecx, eax
mov eax, dword [ebp - 0x53c]
mov edx, dword [ebp - 0x57c]
add eax, edx
mov edx, dword [ebp - 0x52c]
add edx, eax
movzx eax, byte [edx]
mov byte [ecx], al
mov eax, dword [ebp - 0x57c]
mov ecx, eax
inc eax
mov dword [ebp - 0x57c], eax
mov eax, dword [ebp - 0x57c]
cmp eax, 0xfa
jl 0x403cab
mov eax, dword [ebp - 0x53c]
mov ecx, eax
inc eax
mov dword [ebp - 0x53c], eax
mov eax, dword [ebp - 0x53c]
mov ecx, dword [ebp - 0x458]
cmp eax, ecx
jl 0x403bfb
mov eax, 0x1e
push eax
mov eax, 0
push eax
lea eax, [ebp - 0x55a]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, 0x405753
push eax
lea eax, [ebp - 0x55a]
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
lea eax, [ebp - 0x55a]
push eax
call sub.msvcrt.dll_strlen
add esp, 4
mov dword [ebp - 0x538], eax
mov eax, 0
mov dword [ebp - 0x53c], eax
mov eax, 0
mov dword [ebp - 0x57c], eax
mov esp, dword [ebp - 0x52c]
mov eax, 1
mov dword [ebp - 0x534], eax
mov eax, 0
mov dword [ebp - 0x58c], eax
mov esp, dword [ebp - 0x52c]
mov eax, dword [ebp - 0x58c]
mov ecx, dword [ebp - 0x538]
cmp eax, ecx
jge 0x403f59
jmp 0x403f15
mov esp, dword [ebp - 0x52c]
mov eax, dword [ebp - 0x58c]
mov ecx, eax
inc eax
mov dword [ebp - 0x58c], eax
jmp 0x403edf
mov eax, dword [ebp - 0x53c]
mov ecx, dword [ebp - 0x58c]
add eax, ecx
mov ecx, dword [ebp - 0x52c]
add ecx, eax
mov eax, dword [ebp - 0x58c]
lea edx, [ebp - 0x55a]
add edx, eax
movzx eax, byte [ecx]
movsx ecx, byte [edx]
cmp eax, ecx
je 0x403f57
mov eax, 0
mov dword [ebp - 0x534], eax
jmp 0x403f59
jmp 0x403efe
mov eax, dword [ebp - 0x534]
cmp eax, 1
jne 0x404029
mov eax, 0
mov dword [ebp - 0x57c], eax
mov esp, dword [ebp - 0x52c]
mov eax, dword [ebp - 0x53c]
mov ecx, dword [ebp - 0x57c]
add eax, ecx
mov ecx, dword [ebp - 0x52c]
add ecx, eax
movzx eax, byte [ecx]
cmp eax, 0x22
jne 0x403fdf
lea eax, [ebp - 0x452]
push eax
mov eax, 0
push eax
mov eax, 0x180
push eax
mov eax, dword [0x406150]
push eax
call sub.user32.dll_SendMessageA
call fcn.00401ab9
mov eax, 0x100
push eax
mov eax, 0
push eax
lea eax, [ebp - 0x452]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
jmp 0x404029
mov eax, dword [ebp - 0x57c]
lea ecx, [ebp - 0x452]
add ecx, eax
mov eax, dword [ebp - 0x53c]
mov edx, dword [ebp - 0x57c]
add eax, edx
mov edx, dword [ebp - 0x52c]
add edx, eax
movzx eax, byte [edx]
mov byte [ecx], al
mov eax, dword [ebp - 0x57c]
mov ecx, eax
inc eax
mov dword [ebp - 0x57c], eax
mov eax, dword [ebp - 0x57c]
cmp eax, 0xfa
jl 0x403f73
mov eax, dword [ebp - 0x53c]
mov ecx, eax
inc eax
mov dword [ebp - 0x53c], eax
mov eax, dword [ebp - 0x53c]
mov ecx, dword [ebp - 0x458]
cmp eax, ecx
jl 0x403ec3
mov eax, dword [ebp - 0x52c]
push eax
call sub.msvcrt.dll_free
add esp, 4
mov esp, dword [ebp - 0x530]
leave
ret