Function at 0x405745
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x247c
call fcn.0040be90
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov dword [ebp - 0x247c], eax
mov ecx, dword [ebp - 0x247c]
sub ecx, 0xbe2
mov dword [ebp - 0x247c], ecx
cmp dword [ebp - 0x247c], 0x58
ja case.0x40578d.22
mov eax, dword [ebp - 0x247c]
xor edx, edx
mov dl, byte [eax + 0x4063b5]
jmp dword [edx*4 + 0x406359]
mov ecx, dword [0x4a6140]
add ecx, 0xbe8
push ecx
mov edx, dword [0x4a5540]
push edx
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
test eax, eax
jne 0x4057b7
jmp case.0x40578d.22
push 0x3e8
lea eax, [ebp - 0x830]
push eax
push 0xc12
mov ecx, dword [0x4a5d2c]
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
lea edx, [ebp - 0x438]
push edx
push 0x40ec2c
lea eax, [ebp - 0x830]
push eax
call dword [sym.imp.MSVCRT.dll_sscanf]
add esp, 0xc
cmp eax, 1
jne 0x405825
mov ecx, dword [0x4a6140]
imul ecx, ecx, 0x9650
mov edx, dword [ecx + 0x40f044]
or edx, 0x20
mov eax, dword [0x4a6140]
imul eax, eax, 0x9650
mov dword [eax + 0x40f044], edx
jmp 0x405842
push 0
push 0x4a6190
push 0xcac
call fcn.00409a9b
add esp, 4
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp case.0x40578d.22
mov ecx, dword [0x4a6140]
imul ecx, ecx, 0x9650
mov dword [ecx + 0x41864c], 1
jmp case.0x40578d.22
mov edx, dword [0x4a6140]
imul edx, edx, 0x9650
mov dword [edx + 0x41864c], 2
jmp case.0x40578d.22
mov eax, dword [ebp + 8]
push eax
call fcn.00405606
add esp, 4
jmp case.0x40578d.22
mov ecx, dword [ebp + 8]
push ecx
call fcn.004056c0
add esp, 4
jmp case.0x40578d.22
mov edx, dword [0x4a6140]
imul edx, edx, 0x9650
mov eax, dword [edx + 0x40f044]
or al, 2
mov ecx, dword [0x4a6140]
imul ecx, ecx, 0x9650
mov dword [ecx + 0x40f044], eax
mov edx, dword [0x4a6140]
imul edx, edx, 0x9650
mov byte [edx + 0x418670], 1
jmp case.0x40578d.22
mov eax, dword [0x4a6140]
imul eax, eax, 0x9650
mov ecx, dword [eax + 0x40f044]
or ecx, 2
mov edx, dword [0x4a6140]
imul edx, edx, 0x9650
mov dword [edx + 0x40f044], ecx
mov eax, dword [0x4a6140]
imul eax, eax, 0x9650
mov byte [eax + 0x418670], 2
jmp case.0x40578d.22
mov ecx, dword [0x4a6140]
imul ecx, ecx, 0x9650
mov edx, dword [ecx + 0x40f044]
or edx, 2
mov eax, dword [0x4a6140]
imul eax, eax, 0x9650
mov dword [eax + 0x40f044], edx
mov ecx, dword [0x4a6140]
imul ecx, ecx, 0x9650
mov byte [ecx + 0x418670], 3
jmp case.0x40578d.22
call fcn.004080b2
push 5
mov edx, dword [0x40f038]
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
jmp case.0x40578d.22
push 0x3e8
lea eax, [ebp - 0x17d8]
push eax
push 0xca1
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x3e8
lea ecx, [ebp - 0xc20]
push ecx
push 0xca2
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
push 4
lea edx, [ebp - 0xc20]
push edx
lea eax, [ebp - 0x17d8]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x4059ef
mov edx, dword [0x4a6140]
imul edx, edx, 0x9650
add edx, 0x418658
mov dword [edx], 0
mov dword [edx + 4], 0
jmp case.0x40578d.22
mov eax, dword [0x4a6140]
imul eax, eax, 0x9650
mov ecx, dword [eax + 0x40f044]
or ecx, 4
mov edx, dword [0x4a6140]
imul edx, edx, 0x9650
mov dword [edx + 0x40f044], ecx
mov eax, dword [0x4a6140]
imul eax, eax, 0x9650
mov byte [eax + 0x418671], 1
jmp case.0x40578d.22
mov ecx, dword [0x4a6140]
imul ecx, ecx, 0x9650
mov edx, dword [ecx + 0x40f044]
or edx, 4
mov eax, dword [0x4a6140]
imul eax, eax, 0x9650
mov dword [eax + 0x40f044], edx
mov ecx, dword [0x4a6140]
imul ecx, ecx, 0x9650
mov byte [ecx + 0x418671], 2
jmp case.0x40578d.22
mov edx, dword [0x4a6140]
add edx, 0xbe8
push edx
mov eax, dword [0x4a5540]
push eax
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
test eax, eax
jne 0x405a91
jmp case.0x40578d.22
mov ecx, dword [0x4a6140]
imul ecx, ecx, 0x9650
mov edx, dword [ecx + 0x40f044]
or edx, 0x40
mov eax, dword [0x4a6140]
imul eax, eax, 0x9650
mov dword [eax + 0x40f044], edx
jmp case.0x40578d.22
mov ecx, dword [0x4a6140]
add ecx, 0xbe8
push ecx
mov edx, dword [0x4a5540]
push edx
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
test eax, eax
jne 0x405adf
jmp case.0x40578d.22
mov eax, dword [0x4a6140]
imul eax, eax, 0x9650
mov ecx, dword [eax + 0x40f044]
or cl, 0x80
mov edx, dword [0x4a6140]
imul edx, edx, 0x9650
mov dword [edx + 0x40f044], ecx
jmp case.0x40578d.22
mov eax, dword [0x4a6140]
add eax, 0xbe8
push eax
mov ecx, dword [0x4a5540]
push ecx
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
test eax, eax
jne 0x405b2b
jmp case.0x40578d.22
mov edx, dword [0x4a6140]
imul edx, edx, 0x9650
mov eax, dword [edx + 0x40f044]
or ah, 1
mov ecx, dword [0x4a6140]
imul ecx, ecx, 0x9650
mov dword [ecx + 0x40f044], eax
jmp case.0x40578d.22
mov edx, dword [0x4a6140]
add edx, 0xbe8
push edx
mov eax, dword [0x4a5540]
push eax
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
test eax, eax
jne 0x405b79
jmp case.0x40578d.22
mov ecx, dword [0x4a6140]
imul ecx, ecx, 0x9650
mov edx, dword [ecx + 0x40f044]
or dh, 2
mov eax, dword [0x4a6140]
imul eax, eax, 0x9650
mov dword [eax + 0x40f044], edx
jmp case.0x40578d.22
mov ecx, dword [0x4a6140]
add ecx, 0xbe8
push ecx
mov edx, dword [0x4a5540]
push edx
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
test eax, eax
jne 0x405bc7
jmp case.0x40578d.22
mov eax, dword [0x4a6140]
imul eax, eax, 0x9650
mov ecx, dword [eax + 0x40f044]
or ch, 4
mov edx, dword [0x4a6140]
imul edx, edx, 0x9650
mov dword [edx + 0x40f044], ecx
jmp case.0x40578d.22
mov eax, dword [0x4a6140]
add eax, 0xbe8
push eax
mov ecx, dword [0x4a5540]
push ecx
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
test eax, eax
jne 0x405c13
jmp case.0x40578d.22
mov edx, dword [0x4a6140]
imul edx, edx, 0x9650
mov eax, dword [edx + 0x40f044]
or ah, 8
mov ecx, dword [0x4a6140]
imul ecx, ecx, 0x9650
mov dword [ecx + 0x40f044], eax
jmp case.0x40578d.22
mov edx, dword [0x4a6140]
imul edx, edx, 0x9650
xor eax, eax
cmp dword [edx + 0x418650], 0
sete al
mov ecx, dword [0x4a6140]
imul ecx, ecx, 0x9650
mov dword [ecx + 0x418650], eax
jmp case.0x40578d.22
push 0x3e8
lea edx, [ebp - 0x1008]
push edx
push 0xca5
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x3e8
lea eax, [ebp - 0x13f0]
push eax
push 0xca6
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x3e8
lea ecx, [ebp - 0x3e8]
push ecx
push 0xbe6
mov edx, dword [0x4a5d2c]
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
lea eax, [ebp - 0x1008]
push eax
lea ecx, [ebp - 0x3e8]
push ecx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x405d50
lea edx, [ebp - 0x13f0]
push edx
push 0xbe6
mov eax, dword [0x4a5d2c]
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.0040981e
add esp, 8
push 0xc0d
mov ecx, dword [0x4a5d2c]
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.004097e3
add esp, 4
push 1
push 0
push 0x4023cd
push 1
push 0x3e8
call dword [sym.imp.WINMM.dll_timeSetEvent]
mov dword [0x4a6148], eax
mov dword [0x4a614c], 0
jmp 0x405db3
lea edx, [ebp - 0x13f0]
push edx
lea eax, [ebp - 0x3e8]
push eax
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x405db3
lea ecx, [ebp - 0x1008]
push ecx
push 0xbe6
mov edx, dword [0x4a5d2c]
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.0040981e
add esp, 8
push 0xc0d
mov eax, dword [0x4a5d2c]
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.004097d2
add esp, 4
mov ecx, dword [0x4a6148]
push ecx
call dword [sym.imp.WINMM.dll_timeKillEvent]
jmp case.0x40578d.22
push 0x4c
push 0
lea edx, [ebp - 0x434]
push edx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x434], 0x4c
mov eax, dword [ebp + 8]
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x428], 0x40ec30
mov dword [ebp - 0x41c], 0
mov dword [ebp - 0x410], 0
mov dword [ebp - 0x408], 0
mov dword [ebp - 0x418], 0x4a5940
mov dword [ebp - 0x414], 0x3e8
lea ecx, [ebp - 0x434]
push ecx
call sub.comdlg32.dll_GetSaveFileNameA
test eax, eax
jne 0x405e2f
jmp case.0x40578d.22
push 0x4a5940
call sub.MSVCRT.dll_strlen
add esp, 4
lea edx, [eax + 0x4a593c]
mov dword [ebp - 0x834], edx
push 0x40ec48
mov eax, dword [ebp - 0x834]
push eax
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
je 0x405e79
push 0x4a5940
push 0x40ec50
push 0x4a5940
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
push 0x40ec58
push 0x4a5940
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
mov dword [ebp - 0x838], eax
cmp dword [ebp - 0x838], 0
jne 0x405ebd
push 0
push 0x4a6194
push 0xcab
call fcn.00409a9b
add esp, 4
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp case.0x40578d.22
push str.mfc_time_setpoint_unit__n
mov ecx, dword [ebp - 0x838]
push ecx
call dword [sym.imp.MSVCRT.dll_fprintf]
add esp, 8
mov dword [ebp - 0x444], 0
jmp 0x405eed
mov edx, dword [ebp - 0x444]
add edx, 1
mov dword [ebp - 0x444], edx
cmp dword [ebp - 0x444], 0x10
jge 0x405fc8
mov dword [ebp - 0x448], 0
jmp 0x405f15
mov eax, dword [ebp - 0x448]
add eax, 1
mov dword [ebp - 0x448], eax
mov ecx, dword [ebp - 0x444]
imul ecx, ecx, 0x9650
mov edx, dword [ebp - 0x448]
cmp edx, dword [ecx + 0x41867c]
jge 0x405fc3
mov eax, dword [ebp - 0x444]
imul eax, eax, 0x9650
mov ecx, dword [ebp - 0x448]
imul ecx, ecx, 0xbc4
mov edx, dword [eax + 0x418674]
lea eax, [edx + ecx + 0x7dc]
push eax
mov ecx, dword [ebp - 0x444]
imul ecx, ecx, 0x9650
mov edx, dword [ebp - 0x448]
imul edx, edx, 0xbc4
mov eax, dword [ecx + 0x418674]
lea ecx, [eax + edx + 0x3f4]
push ecx
mov edx, dword [ebp - 0x444]
imul edx, edx, 0x9650
mov eax, dword [ebp - 0x448]
imul eax, eax, 0xbc4
mov ecx, dword [edx + 0x418674]
lea edx, [ecx + eax + 0xc]
push edx
mov eax, dword [ebp - 0x444]
push eax
push str._x__s__s__s_n
mov ecx, dword [ebp - 0x838]
push ecx
call dword [sym.imp.MSVCRT.dll_fprintf]
add esp, 0x18
jmp 0x405f06
jmp 0x405ede
mov edx, dword [ebp - 0x838]
push edx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
jmp case.0x40578d.22
push 0x4c
push 0
lea eax, [ebp - 0x434]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x434], 0x4c
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x430], ecx
mov dword [ebp - 0x428], str.CSV_File__.csv_
mov dword [ebp - 0x41c], 0
mov dword [ebp - 0x410], 0
mov dword [ebp - 0x408], 0
mov dword [ebp - 0x418], 0x4a5940
mov dword [ebp - 0x414], 0x3e8
lea edx, [ebp - 0x434]
push edx
call sub.comdlg32.dll_GetOpenFileNameA
test eax, eax
jne 0x406054
jmp case.0x40578d.22
push 0x4a5940
call sub.MSVCRT.dll_strlen
add esp, 4
lea eax, [eax + 0x4a593c]
mov dword [ebp - 0x834], eax
push str..csv
mov ecx, dword [ebp - 0x834]
push ecx
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
je 0x40609e
push 0x4a5940
push str._s.csv
push 0x4a5940
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
push 0x40ecb0
push 0x4a5940
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
mov dword [ebp - 0x838], eax
cmp dword [ebp - 0x838], 0
jne 0x4060e2
push 0
push 0x4a6198
push 0xcab
call fcn.00409a9b
add esp, 4
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp case.0x40578d.22
push 0x3e8
call dword [sym.imp.MSVCRT.dll_malloc]
add esp, 4
mov dword [ebp - 0x440], eax
mov edx, dword [ebp - 0x838]
push edx
push 0x3e8
mov eax, dword [ebp - 0x440]
push eax
call dword [sym.imp.MSVCRT.dll_fgets]
add esp, 0xc
mov dword [ebp - 0x43c], eax
mov dword [ebp - 0x444], 0
jmp 0x406133
mov ecx, dword [ebp - 0x444]
add ecx, 1
mov dword [ebp - 0x444], ecx
cmp dword [ebp - 0x444], 0x10
jge 0x406159
mov edx, dword [ebp - 0x444]
imul edx, edx, 0x9650
add edx, 0x40f040
push edx
call fcn.0040990e
add esp, 4
jmp 0x406124
cmp dword [ebp - 0x43c], 0
je 0x406335
lea eax, [ebp - 0x183c]
push eax
lea ecx, [ebp - 0x18a8]
push ecx
lea edx, [ebp - 0x18ac]
push edx
lea eax, [ebp - 0x18b4]
push eax
lea ecx, [ebp - 0x18b0]
push ecx
lea edx, [ebp - 0x1844]
push edx
push str._d_____d__:__d__:__d______0_9.__________n_
mov eax, dword [ebp - 0x43c]
push eax
call dword [sym.imp.MSVCRT.dll_sscanf]
add esp, 0x20
mov dword [ebp - 0x1840], eax
cmp dword [ebp - 0x1840], 6
jne 0x40630e
lea ecx, [ebp - 0x183c]
push ecx
lea edx, [ebp - 0x18a8]
push edx
call fcn.00407c4b
add esp, 8
mov word [ebp - 0x2474], ax
movsx eax, word [ebp - 0x2474]
cmp eax, 0x1000
jg 0x4061ee
movsx ecx, word [ebp - 0x2474]
test ecx, ecx
jge 0x406216
mov word [ebp - 0x2474], 0xfff
push 0
push 0x4a619c
push 0xcad
call fcn.00409a9b
add esp, 4
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x406260
movsx edx, word [ebp - 0x2474]
test edx, edx
jge 0x406249
mov word [ebp - 0x2474], 0
push 0
push 0x4a61a0
push 0xcad
call fcn.00409a9b
add esp, 4
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x406260
movsx eax, word [ebp - 0x2474]
cmp eax, 0x1000
jne 0x406260
mov word [ebp - 0x2474], 0xfff
mov ecx, dword [ebp - 0x18b0]
imul ecx, ecx, 0xe10
mov edx, dword [ebp - 0x18b4]
imul edx, edx, 0x3c
mov eax, dword [ebp - 0x18ac]
add eax, ecx
add edx, eax
mov dword [ebp - 0x2470], edx
mov ecx, dword [ebp - 0x18ac]
push ecx
mov edx, dword [ebp - 0x18b4]
push edx
mov eax, dword [ebp - 0x18b0]
push eax
push 0x40ece4
lea ecx, [ebp - 0x246c]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x14
lea edx, [ebp - 0x18a8]
push edx
push 0x40ecf0
lea eax, [ebp - 0x2084]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea ecx, [ebp - 0x183c]
push ecx
push 0x40ecf4
lea edx, [ebp - 0x1c9c]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea eax, [ebp - 0x2478]
push eax
mov ecx, dword [ebp - 0x1844]
imul ecx, ecx, 0x9650
add ecx, 0x40f040
push ecx
call fcn.00409944
add esp, 8
call fcn.004080b2
mov edx, dword [ebp - 0x838]
push edx
push 0x3e8
mov eax, dword [ebp - 0x440]
push eax
call dword [sym.imp.MSVCRT.dll_fgets]
add esp, 0xc
mov dword [ebp - 0x43c], eax
jmp 0x406159
mov ecx, dword [ebp - 0x440]
push ecx
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov edx, dword [ebp - 0x838]
push edx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov esp, ebp
pop ebp
ret