Function at 0x10009580
Capabilities:
Get graphical window text

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x38
lea eax, [esp + 4]
push ebx
push ebp
push esi
push edi
push 0x32
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClassNameA]
test eax, eax
je 0x10009d20
lea edx, [esp + 0x14]
test edx, edx
jne 0x100095ad
xor eax, eax
jmp 0x100095c7
mov cl, byte [esp + 0x14]
lea eax, [esp + 0x14]
test cl, cl
je 0x100095c1
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x100095b9
lea ecx, [esp + 0x14]
sub eax, ecx
lea esi, [eax + 1]
push esi
call fcn.10030d66
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x10], edi
je 0x10009618
lea edx, [esp + 0x14]
test edx, edx
je 0x100095fa
test esi, esi
je 0x100095fa
lea ecx, [esp + 0x14]
dec esi
sub ecx, edi
inc esi
mov dl, byte [ecx + eax]
mov byte [eax], dl
inc eax
dec esi
jne 0x100095f1
mov al, byte [edi]
mov ecx, edi
test al, al
je 0x10009618
mov al, byte [ecx]
cmp al, 0x61
jl 0x10009610
cmp al, 0x7a
jg 0x10009610
sub al, 0x20
mov byte [ecx], al
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x10009602
mov eax, str.ThunderRT6TextBox
test eax, eax
je 0x1000963d
mov cl, byte [str.ThunderRT6TextBox]
mov eax, str.ThunderRT6TextBox
test cl, cl
je 0x10009638
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10009630
sub eax, str.ThunderRT6TextBox
lea esi, [eax + 1]
push esi
call fcn.10030d66
mov ebp, eax
add esp, 4
test ebp, ebp
mov ecx, esi
je 0x1000968c
mov edx, str.ThunderRT6TextBox
test edx, edx
je 0x1000966d
test ecx, ecx
je 0x1000966d
dec ecx
sub edx, ebp
lea esi, [ecx + 1]
mov cl, byte [edx + eax]
mov byte [eax], cl
inc eax
dec esi
jne 0x10009664
mov al, byte [ebp]
mov ecx, ebp
test al, al
je 0x1000968c
mov al, byte [ecx]
cmp al, 0x61
jl 0x10009684
cmp al, 0x7a
jg 0x10009684
sub al, 0x20
mov byte [ecx], al
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x10009676
test edi, edi
jne 0x10009694
xor ecx, ecx
jmp 0x100096a8
mov cl, byte [edi]
mov eax, edi
test cl, cl
je 0x100096a4
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1000969c
sub eax, edi
mov ecx, eax
test ebp, ebp
jne 0x100096b0
xor eax, eax
jmp 0x100096c3
mov dl, byte [ebp]
mov eax, ebp
test dl, dl
je 0x100096c1
mov dl, byte [eax + 1]
inc eax
test dl, dl
jne 0x100096b9
sub eax, ebp
cmp ecx, eax
jle 0x100096cd
movsx esi, byte [eax + edi]
jmp 0x1000973a
jge 0x100096d7
movsx esi, byte [ecx + ebp]
neg esi
jmp 0x1000973a
test edi, edi
je 0x10009d71
test ebp, ebp
je 0x10009d71
push 4
push ecx
call fcn.1003114a
mov esi, dword [esp + 0x18]
add esp, 8
xor ebx, ebx
mov edi, ebp
test eax, eax
jle 0x10009711
mov ecx, dword [esi]
add esi, 4
sub ecx, dword [edi]
add edi, 4
test ecx, ecx
jne 0x1000975d
inc ebx
cmp ebx, eax
jl 0x100096fe
test edx, edx
je 0x10009732
xor ebx, ebx
mov ecx, esi
test edx, edx
jle 0x10009732
sub edi, esi
movsx esi, byte [edi + ecx]
movsx eax, byte [ecx]
sub eax, esi
inc ecx
test eax, eax
jne 0x10009734
inc ebx
cmp ebx, edx
jl 0x1000971f
xor eax, eax
mov edi, dword [esp + 0x10]
mov esi, eax
push edi
call fcn.10030d5b
push ebp
call fcn.10030d5b
add esp, 8
test esi, esi
je 0x10009d20
lea edx, [esp + 0x14]
test edx, edx
jne 0x10009761
xor eax, eax
jmp 0x1000977b
mov eax, ecx
jmp 0x10009734
mov cl, byte [esp + 0x14]
lea eax, [esp + 0x14]
test cl, cl
je 0x10009775
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x1000976d
lea ecx, [esp + 0x14]
sub eax, ecx
lea esi, [eax + 1]
push esi
call fcn.10030d66
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x10], edi
mov ecx, esi
je 0x100097d0
lea edx, [esp + 0x14]
test edx, edx
je 0x100097b2
test ecx, ecx
je 0x100097b2
dec ecx
lea edx, [esp + 0x14]
sub edx, edi
lea esi, [ecx + 1]
mov cl, byte [edx + eax]
mov byte [eax], cl
inc eax
dec esi
jne 0x100097a9
mov al, byte [edi]
mov ecx, edi
test al, al
je 0x100097d0
mov al, byte [ecx]
cmp al, 0x61
jl 0x100097c8
cmp al, 0x7a
jg 0x100097c8
sub al, 0x20
mov byte [ecx], al
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x100097ba
mov edx, str.Edit
test edx, edx
jne 0x100097dd
xor eax, eax
jmp 0x100097f9
mov cl, byte [str.Edit]
mov eax, str.Edit
test cl, cl
je 0x100097f4
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x100097ec
sub eax, str.Edit
lea esi, [eax + 1]
push esi
call fcn.10030d66
mov ebp, eax
add esp, 4
test ebp, ebp
mov ecx, esi
je 0x1000984f
mov eax, str.Edit
test eax, eax
je 0x10009830
test ecx, ecx
je 0x10009830
dec ecx
mov edx, str.Edit
mov eax, ebp
sub edx, ebp
lea esi, [ecx + 1]
mov cl, byte [edx + eax]
mov byte [eax], cl
inc eax
dec esi
jne 0x10009827
mov al, byte [ebp]
mov ecx, ebp
test al, al
je 0x1000984f
mov al, byte [ecx]
cmp al, 0x61
jl 0x10009847
cmp al, 0x7a
jg 0x10009847
sub al, 0x20
mov byte [ecx], al
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x10009839
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x1000985b
xor ecx, ecx
jmp 0x1000986f
mov cl, byte [edx]
mov eax, edx
test cl, cl
je 0x1000986b
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10009863
sub eax, edx
mov ecx, eax
test ebp, ebp
jne 0x10009877
xor eax, eax
jmp 0x1000988a
mov bl, byte [ebp]
mov eax, ebp
test bl, bl
je 0x10009888
mov bl, byte [eax + 1]
inc eax
test bl, bl
jne 0x10009880
sub eax, ebp
cmp ecx, eax
jle 0x10009894
movsx esi, byte [eax + edx]
jmp 0x10009901
jge 0x1000989e
movsx esi, byte [ecx + ebp]
neg esi
jmp 0x10009901
test edx, edx
je 0x10009d68
test ebp, ebp
je 0x10009d68
push 4
push ecx
call fcn.1003114a
mov esi, dword [esp + 0x18]
add esp, 8
xor ebx, ebx
mov edi, ebp
test eax, eax
jle 0x100098d8
mov ecx, dword [esi]
add esi, 4
sub ecx, dword [edi]
add edi, 4
test ecx, ecx
jne 0x10009924
inc ebx
cmp ebx, eax
jl 0x100098c5
test edx, edx
je 0x100098f9
xor ebx, ebx
mov ecx, esi
test edx, edx
jle 0x100098f9
sub edi, esi
movsx esi, byte [edi + ecx]
movsx eax, byte [ecx]
sub eax, esi
inc ecx
test eax, eax
jne 0x100098fb
inc ebx
cmp ebx, edx
jl 0x100098e6
xor eax, eax
mov edx, dword [esp + 0x10]
mov esi, eax
push edx
call fcn.10030d5b
push ebp
call fcn.10030d5b
add esp, 8
test esi, esi
je 0x10009d20
lea edx, [esp + 0x14]
test edx, edx
jne 0x10009928
xor eax, eax
jmp 0x10009942
mov eax, ecx
jmp 0x100098fb
mov cl, byte [esp + 0x14]
lea eax, [esp + 0x14]
test cl, cl
je 0x1000993c
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10009934
lea ecx, [esp + 0x14]
sub eax, ecx
lea esi, [eax + 1]
push esi
call fcn.10030d66
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x10], edi
mov ecx, esi
je 0x10009997
lea edx, [esp + 0x14]
test edx, edx
je 0x10009979
test ecx, ecx
je 0x10009979
dec ecx
lea edx, [esp + 0x14]
sub edx, edi
lea esi, [ecx + 1]
mov cl, byte [edx + eax]
mov byte [eax], cl
inc eax
dec esi
jne 0x10009970
mov al, byte [edi]
mov ecx, edi
test al, al
je 0x10009997
mov al, byte [ecx]
cmp al, 0x61
jl 0x1000998f
cmp al, 0x7a
jg 0x1000998f
sub al, 0x20
mov byte [ecx], al
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x10009981
mov edx, str.ThunderRT6ComboBox
test edx, edx
jne 0x100099a4
xor eax, eax
jmp 0x100099c0
mov cl, byte [str.ThunderRT6ComboBox]
mov eax, str.ThunderRT6ComboBox
test cl, cl
je 0x100099bb
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x100099b3
sub eax, str.ThunderRT6ComboBox
lea esi, [eax + 1]
push esi
call fcn.10030d66
mov ebp, eax
add esp, 4
test ebp, ebp
mov ecx, esi
je 0x10009a16
mov eax, str.ThunderRT6ComboBox
test eax, eax
je 0x100099f7
test ecx, ecx
je 0x100099f7
dec ecx
mov edx, str.ThunderRT6ComboBox
mov eax, ebp
sub edx, ebp
lea esi, [ecx + 1]
mov cl, byte [edx + eax]
mov byte [eax], cl
inc eax
dec esi
jne 0x100099ee
mov al, byte [ebp]
mov ecx, ebp
test al, al
je 0x10009a16
mov al, byte [ecx]
cmp al, 0x61
jl 0x10009a0e
cmp al, 0x7a
jg 0x10009a0e
sub al, 0x20
mov byte [ecx], al
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x10009a00
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x10009a22
xor ecx, ecx
jmp 0x10009a36
mov cl, byte [edx]
mov eax, edx
test cl, cl
je 0x10009a32
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10009a2a
sub eax, edx
mov ecx, eax
test ebp, ebp
jne 0x10009a3e
xor eax, eax
jmp 0x10009a51
mov bl, byte [ebp]
mov eax, ebp
test bl, bl
je 0x10009a4f
mov bl, byte [eax + 1]
inc eax
test bl, bl
jne 0x10009a47
sub eax, ebp
cmp ecx, eax
jle 0x10009a5b
movsx esi, byte [eax + edx]
jmp 0x10009ac8
jge 0x10009a65
movsx esi, byte [ecx + ebp]
neg esi
jmp 0x10009ac8
test edx, edx
je 0x10009d5f
test ebp, ebp
je 0x10009d5f
push 4
push ecx
call fcn.1003114a
mov esi, dword [esp + 0x18]
add esp, 8
xor ebx, ebx
mov edi, ebp
test eax, eax
jle 0x10009a9f
mov ecx, dword [esi]
add esi, 4
sub ecx, dword [edi]
add edi, 4
test ecx, ecx
jne 0x10009aeb
inc ebx
cmp ebx, eax
jl 0x10009a8c
test edx, edx
je 0x10009ac0
xor ebx, ebx
mov ecx, esi
test edx, edx
jle 0x10009ac0
sub edi, esi
movsx esi, byte [edi + ecx]
movsx eax, byte [ecx]
sub eax, esi
inc ecx
test eax, eax
jne 0x10009ac2
inc ebx
cmp ebx, edx
jl 0x10009aad
xor eax, eax
mov edx, dword [esp + 0x10]
mov esi, eax
push edx
call fcn.10030d5b
push ebp
call fcn.10030d5b
add esp, 8
test esi, esi
je 0x10009d20
lea edx, [esp + 0x14]
test edx, edx
jne 0x10009aef
xor eax, eax
jmp 0x10009b09
mov eax, ecx
jmp 0x10009ac2
mov cl, byte [esp + 0x14]
lea eax, [esp + 0x14]
test cl, cl
je 0x10009b03
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10009afb
lea ecx, [esp + 0x14]
sub eax, ecx
lea esi, [eax + 1]
push esi
call fcn.10030d66
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x10], edi
mov ecx, esi
je 0x10009b5e
lea edx, [esp + 0x14]
test edx, edx
je 0x10009b40
test ecx, ecx
je 0x10009b40
dec ecx
lea edx, [esp + 0x14]
sub edx, edi
lea esi, [ecx + 1]
mov cl, byte [edx + eax]
mov byte [eax], cl
inc eax
dec esi
jne 0x10009b37
mov al, byte [edi]
mov ecx, edi
test al, al
je 0x10009b5e
mov al, byte [ecx]
cmp al, 0x61
jl 0x10009b56
cmp al, 0x7a
jg 0x10009b56
sub al, 0x20
mov byte [ecx], al
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x10009b48
mov edx, str.ComboBox
test edx, edx
jne 0x10009b6b
xor eax, eax
jmp 0x10009b87
mov cl, byte [str.ComboBox]
mov eax, str.ComboBox
test cl, cl
je 0x10009b82
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10009b7a
sub eax, str.ComboBox
lea esi, [eax + 1]
push esi
call fcn.10030d66
mov ebp, eax
add esp, 4
test ebp, ebp
mov ecx, esi
je 0x10009bdd
mov eax, str.ComboBox
test eax, eax
je 0x10009bbe
test ecx, ecx
je 0x10009bbe
dec ecx
mov edx, str.ComboBox
mov eax, ebp
sub edx, ebp
lea esi, [ecx + 1]
mov cl, byte [edx + eax]
mov byte [eax], cl
inc eax
dec esi
jne 0x10009bb5
mov al, byte [ebp]
mov ecx, ebp
test al, al
je 0x10009bdd
mov al, byte [ecx]
cmp al, 0x61
jl 0x10009bd5
cmp al, 0x7a
jg 0x10009bd5
sub al, 0x20
mov byte [ecx], al
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x10009bc7
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x10009be9
xor ecx, ecx
jmp 0x10009bfd
mov cl, byte [edx]
mov eax, edx
test cl, cl
je 0x10009bf9
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10009bf1
sub eax, edx
mov ecx, eax
test ebp, ebp
jne 0x10009c05
xor eax, eax
jmp 0x10009c18
mov bl, byte [ebp]
mov eax, ebp
test bl, bl
je 0x10009c16
mov bl, byte [eax + 1]
inc eax
test bl, bl
jne 0x10009c0e
sub eax, ebp
cmp ecx, eax
jle 0x10009c22
movsx esi, byte [eax + edx]
jmp 0x10009c93
jge 0x10009c2c
movsx esi, byte [ecx + ebp]
neg esi
jmp 0x10009c93
test edx, edx
je 0x10009d56
test ebp, ebp
je 0x10009d56
push 4
push ecx
call fcn.1003114a
mov esi, dword [esp + 0x18]
add esp, 8
xor ebx, ebx
mov edi, ebp
test eax, eax
jle 0x10009c6a
mov ecx, dword [esi]
add esi, 4
sub ecx, dword [edi]
add edi, 4
test ecx, ecx
jne 0x10009ceb
inc ebx
cmp ebx, eax
jl 0x10009c53
test edx, edx
je 0x10009c8b
xor ebx, ebx
mov ecx, esi
test edx, edx
jle 0x10009c8b
sub edi, esi
movsx esi, byte [ecx + edi]
movsx eax, byte [ecx]
sub eax, esi
inc ecx
test eax, eax
jne 0x10009c8d
inc ebx
cmp ebx, edx
jl 0x10009c78
xor eax, eax
mov edx, dword [esp + 0x10]
mov esi, eax
push edx
call fcn.10030d5b
push ebp
call fcn.10030d5b
add esp, 8
test esi, esi
je 0x10009d20
push 0x7d0
call fcn.10030d66
mov edi, dword [esp + 0x50]
add esp, 4
mov esi, eax
push 0x7d0
push esi
push edi
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov ecx, dword [0x1004aa24]
cmp ecx, 3
ja case.default.0x10009cd1
jmp dword [ecx*4 + 0x10009d7c]
mov edx, dword [0x1004aa20]
push edx
push eax
push esi
call fcn.100011b0
add esp, 0xc
jmp case.default.0x10009cd1
mov eax, ecx
jmp 0x10009c8d
push eax
push esi
call section..text
jmp 0x10009d08
push eax
push esi
call fcn.10001090
jmp 0x10009d08
push eax
push esi
call fcn.10001120
add esp, 8
push esi
push 0
push 0xc
push edi
call dword [sym.imp.USER32.dll_SendMessageA]
push esi
call fcn.10030d5b
add esp, 4
mov eax, dword [esp + 0x4c]
mov edi, dword [sym.imp.USER32.dll_GetWindow]
push 5
push eax
call edi
push 0
push eax
call edi
mov esi, eax
test esi, esi
je 0x10009d4e
push esi
call fcn.10009580
add esp, 4
push 2
push esi
call edi
mov esi, eax
test esi, esi
jne 0x10009d3a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
push 0
push 0
call fcn.1003116f
push 0
push 0
call fcn.1003116f
push 0
push 0
call fcn.1003116f
push 0
push 0
call fcn.1003116f
mov edi, edi
fcomp dword [eax + eax + 0x9cef10]
adc al, bh
pushfd
add byte [eax], dl
add dword [ebp - 0x6f6ff000], ebx
nop
nop
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 8]
push esi
push edi
push eax
call fcn.100037e0
add esp, 4
push 5
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov edi, dword [sym.imp.USER32.dll_GetWindow]
push eax
call edi
push 0
push eax
call edi
mov esi, eax
test esi, esi
je 0x10009dfb
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
lea ecx, [ebp + 8]
push ecx
push esi
call ebx
test eax, eax
je 0x10009def
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x20]
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 4]
cmp edx, eax
jne 0x10009def
push esi
call fcn.10009580
add esp, 4
push 2
push esi
call edi
mov esi, eax
test esi, esi
jne 0x10009dc5
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret