Function at 0x403f8b
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 [0x40618c]
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 [0x406154]
push eax
call sub.user32.dll_SendMessageA
mov eax, 0x405755
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.0040181c
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.0040487c
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 0x4041b9
jmp 0x404175
mov esp, dword [ebp - 0x52c]
mov eax, dword [ebp - 0x580]
mov ecx, eax
inc eax
mov dword [ebp - 0x580], eax
jmp 0x40413f
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 0x4041b7
mov eax, 0
mov dword [ebp - 0x534], eax
jmp 0x4041b9
jmp 0x40415e
mov eax, dword [ebp - 0x534]
cmp eax, 1
jne 0x40436d
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 0x404323
mov eax, dword [ebp - 0x560]
mov ecx, eax
inc eax
mov dword [ebp - 0x560], eax
mov eax, dword [ebp - 0x560]
push eax
mov eax, 0x405759
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 0x4042a5
jmp 0x40426d
mov esp, dword [ebp - 0x52c]
mov eax, dword [ebp - 0x588]
mov ecx, eax
inc eax
mov dword [ebp - 0x588], eax
jmp 0x40423c
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.004017df
add esp, 8
cmp eax, 0
jle 0x4042a3
mov eax, 1
mov dword [ebp - 0x584], eax
jmp 0x404256
mov eax, dword [ebp - 0x584]
cmp eax, 0
jne 0x4042fe
lea eax, [ebp - 0x452]
push eax
lea eax, [ebp - 0x28a]
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
mov eax, 0x40575c
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 [0x40617c]
push eax
call sub.user32.dll_SendMessageA
call fcn.00401b47
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 0x40436d
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 0x4041d3
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 0x404123
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, 0x40575e
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 0x404481
jmp 0x40443d
mov esp, dword [ebp - 0x52c]
mov eax, dword [ebp - 0x58c]
mov ecx, eax
inc eax
mov dword [ebp - 0x58c], eax
jmp 0x404407
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 0x40447f
mov eax, 0
mov dword [ebp - 0x534], eax
jmp 0x404481
jmp 0x404426
mov eax, dword [ebp - 0x534]
cmp eax, 1
jne 0x404551
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 0x404507
lea eax, [ebp - 0x452]
push eax
mov eax, 0
push eax
mov eax, 0x180
push eax
mov eax, dword [0x40617c]
push eax
call sub.user32.dll_SendMessageA
call fcn.00401b47
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 0x404551
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 0x40449b
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 0x4043eb
mov eax, dword [ebp - 0x52c]
push eax
call sub.msvcrt.dll_free
add esp, 4
mov esp, dword [ebp - 0x530]
leave
ret