Function at 0x20021e7c
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0x10
push ebx
xor ebx, ebx
cmp dword [0x2002dce0], ebx
je 0x20022932
push ebp
push esi
push edi
call fcn.2000c724
push ebx
push ebx
push ebx
push ebx
mov dword [esp + 0x24], eax
call fcn.2000d82e
add esp, 0x10
cmp dword [0x2002dcec], ebx
je 0x20021fcc
xor ebp, ebp
cmp dword [0x2002db0c], ebx
jl 0x20021fcc
xor esi, esi
mov eax, dword [0x2002dcec]
mov ecx, dword [0x2002dce0]
push ebx
add eax, esi
push dword [eax + 0xab8]
push dword [esp + 0x1c]
push dword [ecx + 0x4d0]
push dword [0x2003f03c]
push eax
push ebx
call fcn.200179a0
mov ecx, dword [0x2002dcec]
mov dword [esi + ecx + 0xabc], eax
mov eax, dword [0x2002dcec]
add eax, esi
add esp, 0x1c
cmp dword [eax + 0xabc], ebx
je 0x20021fb9
lea ecx, [eax + 0xb0]
xor edi, edi
cmp ecx, ebx
je 0x20021f2a
cmp word [ecx], bx
je 0x20021f2a
push ecx
call fcn.2000c479
pop ecx
jmp 0x20021f76
add eax, 0x8b0
push eax
call fcn.20004465
test eax, eax
mov eax, dword [0x2002dcec]
pop ecx
je 0x20021f4d
push 1
push ebx
push ebx
lea eax, [esi + eax + 0x8b0]
push eax
jmp 0x20021f6e
add eax, esi
cmp word [eax + 0x8b0], 0x23
jne 0x20021f78
push 1
add eax, 0x8b2
push 0x20002260
push eax
call fcn.200042be
pop ecx
push eax
push ebx
call fcn.2001fbd2
add esp, 0x10
mov edi, eax
mov ecx, dword [0x2002dcec]
xor eax, eax
cmp dword [esi + ecx + 0xab8], 0x800
setne al
push eax
push ebx
push ebp
push 0x11
call fcn.2000d82e
add esp, 0x10
cmp edi, ebx
je 0x20021fb9
mov eax, dword [0x2002dcec]
push edi
push dword [esi + eax + 0xabc]
call dword [sym.imp.USER32.dll_SetWindowTextW]
push edi
call sub.MSVCRT.dll_free
pop ecx
inc ebp
add esi, 0xacc
cmp ebp, dword [0x2002db0c]
jle 0x20021ec2
cmp dword [0x2002dcf8], ebx
je 0x20022043
xor edi, edi
cmp dword [0x2002db18], ebx
jl 0x20022043
xor esi, esi
push dword [esp + 0x14]
mov ecx, dword [0x2002dce0]
push dword [ecx + 0x4d0]
mov eax, dword [0x2002dcf8]
push dword [0x2003f03c]
add eax, esi
push eax
add eax, 0xb0
push eax
call fcn.2001791f
mov ecx, dword [0x2002dcf8]
mov dword [esi + ecx + 0x150], eax
mov eax, dword [0x2002dcf8]
add esp, 0x14
cmp dword [esi + eax + 0x150], ebx
je 0x20022034
push ebx
push ebx
push edi
push 6
call fcn.2000d82e
add esp, 0x10
inc edi
add esi, 0x154
cmp edi, dword [0x2002db18]
jle 0x20021fe0
cmp dword [0x2002dce4], ebx
je 0x20022132
xor ebp, ebp
cmp dword [0x2002db04], ebx
jl 0x20022132
xor esi, esi
push dword [esp + 0x14]
mov ecx, dword [0x2002dce0]
push dword [ecx + 0x4d0]
mov eax, dword [0x2002dce4]
push dword [0x2003f03c]
add eax, esi
push eax
add eax, 0xb0
push eax
call fcn.200177c8
mov ecx, dword [0x2002dce4]
mov dword [esi + ecx + 0x360], eax
mov eax, dword [0x2002dce4]
add eax, esi
mov edi, dword [eax + 0x360]
add esp, 0x14
cmp edi, ebx
je 0x2002211f
xor ecx, ecx
cmp dword [eax + 0x35c], ebx
sete cl
push ecx
push edi
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, dword [0x2002dce4]
push 0xfffffffffffffffc
push dword [esi + eax + 0x360]
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, dword [0x2002dce4]
push fcn.20016de9
mov dword [esi + ecx + 0x364], eax
mov eax, dword [0x2002dce4]
push 0xfffffffffffffffc
push dword [esi + eax + 0x360]
call dword [sym.imp.USER32.dll_SetWindowLongW]
push ebx
push ebx
push ebp
push 1
call fcn.2000d82e
mov ecx, dword [0x2002dce4]
xor eax, eax
cmp dword [esi + ecx + 0x35c], ebx
sete al
push eax
push ebx
push ebp
push 0xf
call fcn.2000d82e
add esp, 0x20
inc ebp
add esi, 0x368
cmp ebp, dword [0x2002db04]
jle 0x2002205f
cmp dword [0x2002dcf0], ebx
je 0x2002225e
xor edi, edi
cmp dword [0x2002db10], ebx
jl 0x2002225e
xor esi, esi
mov eax, dword [0x2002dcf0]
add eax, esi
mov ecx, dword [eax + 0xaf8]
cmp ecx, ebx
je 0x2002217b
push 0x2000297c
push ecx
call fcn.2000c702
pop ecx
pop ecx
mov ecx, dword [0x2002dcf0]
mov dword [esi + ecx + 0xafc], eax
jmp 0x20022185
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xafc], ecx
mov eax, dword [0x2002dcf0]
mov ecx, dword [0x2002dce0]
add eax, esi
push dword [eax + 0xaf4]
push dword [eax + 0xafc]
push dword [ecx + 0x4d0]
push dword [0x2003f03c]
push eax
add eax, 0xb0
push eax
call fcn.20017947
mov ecx, dword [0x2002dcf0]
mov dword [esi + ecx + 0x8b0], eax
mov eax, dword [0x2002dcf0]
add eax, esi
mov ecx, dword [eax + 0x8b0]
add esp, 0x18
cmp ecx, ebx
je 0x2002224b
cmp word [eax + 0x8d4], bx
je 0x2002220f
push 0xfffffffffffffffc
push ecx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, dword [0x2002dcf0]
push 0x200199c2
mov dword [esi + ecx + 0xb00], eax
mov eax, dword [0x2002dcf0]
push 0xfffffffffffffffc
push dword [esi + eax + 0x8b0]
call dword [sym.imp.USER32.dll_SetWindowLongW]
push ebx
push ebx
push edi
push 3
call fcn.2000d82e
mov eax, dword [0x2002dcf0]
add eax, esi
add esp, 0x10
lea ecx, [eax + 0x8c4]
push ecx
push dword [eax + 0x8b0]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [0x2002dcf0]
add eax, esi
push eax
add eax, 0x8b4
push eax
call fcn.20018e5f
pop ecx
pop ecx
inc edi
add esi, 0xb04
cmp edi, dword [0x2002db10]
jle 0x2002214e
cmp dword [0x2002dcf4], ebx
mov edi, 0xf1
je 0x20022344
cmp dword [0x2002db14], ebx
mov dword [esp + 0x18], ebx
jl 0x20022344
xor esi, esi
push dword [esp + 0x14]
mov ecx, dword [0x2002dce0]
push dword [ecx + 0x4d0]
mov eax, dword [0x2002dcf4]
push dword [0x2003f03c]
add eax, esi
push eax
add eax, 0xb0
push eax
call fcn.200178cf
mov ecx, dword [0x2002dcf4]
mov dword [esi + ecx + 0x360], eax
mov eax, dword [0x2002dcf4]
add eax, esi
mov ebp, dword [eax + 0x360]
add esp, 0x14
cmp ebp, ebx
je 0x2002232a
xor ecx, ecx
cmp dword [eax + 0x358], 0xffffffff
setg cl
push ecx
push ebp
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, dword [0x2002dcf4]
push ebx
add eax, esi
push dword [eax + 0x35c]
push edi
push dword [eax + 0x360]
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
push ebx
push dword [esp + 0x20]
push 4
call fcn.2000d82e
mov ecx, dword [0x2002dcf4]
xor eax, eax
cmp dword [esi + ecx + 0x358], 0xffffffff
setg al
push eax
push ebx
push dword [esp + 0x30]
push 0xa
call fcn.2000d82e
add esp, 0x20
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
add esi, 0x364
cmp eax, dword [0x2002db14]
jle 0x20022281
cmp dword [0x2002dcfc], ebx
je 0x20022425
cmp dword [0x2002db1c], ebx
mov dword [esp + 0x18], ebx
jl 0x20022425
xor esi, esi
push dword [esp + 0x14]
mov ecx, dword [0x2002dce0]
push dword [ecx + 0x4d0]
mov eax, dword [0x2002dcfc]
push dword [0x2003f03c]
add eax, esi
push eax
add eax, 0xb0
push eax
call fcn.200178f7
mov ecx, dword [0x2002dcfc]
mov dword [esi + ecx + 0x360], eax
mov eax, dword [0x2002dcfc]
add eax, esi
mov ebp, dword [eax + 0x360]
add esp, 0x14
cmp ebp, ebx
je 0x2002240b
xor ecx, ecx
cmp dword [eax + 0x358], 0xffffffff
setg cl
push ecx
push ebp
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, dword [0x2002dcfc]
push ebx
add eax, esi
push dword [eax + 0x35c]
push edi
push dword [eax + 0x360]
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
push ebx
push dword [esp + 0x20]
push 5
call fcn.2000d82e
mov ecx, dword [0x2002dcfc]
xor eax, eax
cmp dword [esi + ecx + 0x358], 0xffffffff
setg al
push eax
push ebx
push dword [esp + 0x30]
push 0xd
call fcn.2000d82e
add esp, 0x20
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
add esi, 0x368
cmp eax, dword [0x2002db1c]
jle 0x20022362
mov eax, dword [0x2002dd00]
cmp eax, ebx
je 0x2002256a
xor edi, edi
cmp dword [0x2002db20], ebx
jl 0x2002256a
xor esi, esi
push dword [esp + 0x14]
mov ecx, dword [0x2002dce0]
push dword [ecx + 0x4d0]
add eax, esi
push dword [0x2003f03c]
push eax
add eax, 0xb0
push eax
call fcn.200178a7
mov ecx, dword [0x2002dd00]
mov dword [esi + ecx + 0x3558], eax
mov eax, dword [0x2002dd00]
add esp, 0x14
cmp dword [esi + eax + 0x3558], ebx
je 0x20022557
cmp word [esi + eax + 0x358], bx
mov byte [esp + 0x13], bl
je 0x200224e5
movzx ecx, byte [esp + 0x13]
imul ecx, ecx, 0xa0
add ecx, esi
lea ecx, [ecx + eax + 0x358]
push ecx
push ebx
push 0x143
push dword [esi + eax + 0x3558]
call dword [sym.imp.USER32.dll_SendMessageW]
inc byte [esp + 0x13]
cmp byte [esp + 0x13], 0x50
mov eax, dword [0x2002dd00]
je 0x200224e5
movzx ecx, byte [esp + 0x13]
imul ecx, ecx, 0xa0
add ecx, esi
cmp word [ecx + eax + 0x358], bx
jne 0x20022496
add eax, esi
lea ecx, [eax + 0xb0]
push ecx
push ebx
push 0x14d
push dword [eax + 0x3558]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [0x2002dd00]
push 0xfffffffffffffffc
push dword [esi + eax + 0x3558]
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, dword [0x2002dd00]
push 0x20017068
mov dword [esi + ecx + 0x355c], eax
mov eax, dword [0x2002dd00]
push 0xfffffffffffffffc
push dword [esi + eax + 0x3558]
call dword [sym.imp.USER32.dll_SetWindowLongW]
push ebx
push ebx
push edi
push 7
call fcn.2000d82e
push 1
push ebx
push edi
push 0x10
call fcn.2000d82e
mov eax, dword [0x2002dd00]
add esp, 0x20
inc edi
add esi, 0x3560
cmp edi, dword [0x2002db20]
jle 0x20022442
cmp dword [0x2002dd04], ebx
je 0x200225dd
xor edi, edi
cmp dword [0x2002db24], ebx
jl 0x200225dd
xor esi, esi
mov eax, dword [0x2002dd04]
mov eax, dword [esi + eax + 0xa0]
cmp eax, ebx
jbe 0x200225c1
push 0x2000dc62
push eax
lea eax, [edi + 1]
push eax
push ebx
call dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [0x2002dd04]
mov dword [esi + ecx + 0x2ac], eax
mov eax, dword [0x2002dd04]
add eax, esi
cmp dword [eax + 0x2ac], ebx
jne 0x200225c1
mov dword [eax + 0xa0], ebx
push ebx
push ebx
push edi
push 8
call fcn.2000d82e
add esp, 0x10
inc edi
add esi, 0x2b0
cmp edi, dword [0x2002db24]
jle 0x2002257e
cmp dword [0x2002dd10], ebx
je 0x2002261e
xor esi, esi
cmp dword [0x2002db2c], ebx
jl 0x2002261e
xor edi, edi
mov eax, dword [0x2002dd10]
add eax, edi
push dword [eax + 4]
push dword [eax]
mov eax, dword [0x2002dce0]
push esi
push dword [eax + 0x4d0]
call dword [sym.imp.USER32.dll_RegisterHotKey]
inc esi
add edi, 0x210
cmp esi, dword [0x2002db2c]
jle 0x200225f1
cmp dword [0x2002dd08], ebx
je 0x20022641
mov eax, dword [0x2002dce0]
push 1
push dword [eax + 0x4c0]
push dword [eax + 0x4d0]
call fcn.20019868
add esp, 0xc
cmp dword [0x2002dd14], ebx
je 0x200226e3
xor edi, edi
cmp dword [0x2002db34], ebx
jl 0x200226e3
xor esi, esi
mov eax, dword [0x2002dce0]
push dword [eax + 0x4d0]
mov eax, dword [0x2002dd14]
push dword [0x2003f03c]
add eax, esi
push eax
call fcn.20017847
mov ecx, dword [0x2002dd14]
mov dword [esi + ecx + 0xb4], eax
mov eax, dword [0x2002dd14]
add eax, esi
mov ecx, dword [eax + 0xb4]
add esp, 0xc
cmp ecx, ebx
je 0x200226d0
mov eax, dword [eax + 0xb0]
cmp eax, 0x64
jle 0x200226c2
cmp eax, ebx
jge 0x200226c2
push ebx
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
push ebx
push ebx
push edi
push 9
call fcn.2000d82e
add esp, 0x10
jmp 0x200226d0
push ebx
push eax
push 0x402
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
inc edi
add esi, 0xb8
cmp edi, dword [0x2002db34]
jle 0x2002265d
cmp dword [0x2002dd0c], ebx
je 0x200227e0
xor ebp, ebp
cmp dword [0x2002db30], ebx
jl 0x200227e0
xor esi, esi
mov ecx, dword [0x2002dd0c]
mov eax, dword [esp + 0x14]
mov dword [esi + ecx + 0x304], eax
mov eax, dword [0x2002dd0c]
mov edx, dword [0x2002dce0]
mov edx, dword [edx + 0x4d0]
add eax, esi
mov ecx, dword [eax + 0x304]
push ebx
push ecx
push edx
push dword [0x2003f03c]
push eax
push ebx
call fcn.20017947
mov ecx, dword [0x2002dd0c]
mov dword [esi + ecx + 0xb0], eax
mov eax, dword [0x2002dd0c]
add eax, esi
mov ecx, dword [eax + 0xb0]
add esp, 0x18
cmp ecx, ebx
je 0x200227cd
add eax, 0xd0
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [0x2002dd0c]
lea edx, [esi + eax]
mov ecx, dword [edx + 0xb4]
cmp ecx, ebx
je 0x20022799
xor eax, eax
mov dword [esp + 0x18], ebx
lea edi, [esp + 0x1c]
stosd dword es:[edi], eax
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push dword [edx + 0xb0]
call fcn.2001e4c3
jmp 0x200227cd
push 0xfffffffffffffffc
push dword [edx + 0xb0]
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, dword [0x2002dd0c]
push 0x20019b0c
mov dword [esi + ecx + 0x30c], eax
mov eax, dword [0x2002dd0c]
push 0xfffffffffffffffc
push dword [esi + eax + 0xb0]
call dword [sym.imp.USER32.dll_SetWindowLongW]
inc ebp
add esi, 0x310
cmp ebp, dword [0x2002db30]
jle 0x200226ff
cmp dword [0x2002dce8], ebx
je 0x2002292f
xor ebp, ebp
cmp dword [0x2002db08], ebx
jl 0x20022913
xor esi, esi
mov eax, dword [0x2002dce8]
add eax, esi
mov ecx, dword [eax + 0x4c0]
cmp ecx, 1
mov edx, 0x800000
jne 0x20022818
add edx, 0x20
jmp 0x20022822
cmp ecx, 3
jne 0x20022822
mov edx, 0x800800
mov ecx, dword [0x2002dce0]
push ebx
push edx
push dword [esp + 0x1c]
push dword [ecx + 0x4d0]
push dword [0x2003f03c]
push eax
add eax, 0xb0
push eax
call fcn.20017973
mov ecx, dword [0x2002dce8]
mov dword [esi + ecx + 0x4c4], eax
mov eax, dword [0x2002dce8]
add eax, esi
mov edi, dword [eax + 0x4c4]
add esp, 0x1c
cmp edi, ebx
je 0x20022900
xor ecx, ecx
cmp dword [eax + 0x4c0], 2
setne cl
push ecx
push edi
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, dword [0x2002dce8]
push 0xfffffffffffffffc
push dword [esi + eax + 0x4c4]
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, dword [0x2002dce8]
push 0x2001711f
mov dword [esi + ecx + 0x4c8], eax
mov eax, dword [0x2002dce8]
push 0xfffffffffffffffc
push dword [esi + eax + 0x4c4]
call dword [sym.imp.USER32.dll_SetWindowLongW]
push ebx
push ebx
push ebp
push 2
call fcn.2000d82e
mov ecx, dword [0x2002dce8]
xor eax, eax
cmp dword [esi + ecx + 0x4c0], 2
setne al
push eax
push ebx
push ebp
push 0xe
call fcn.2000d82e
mov ecx, dword [0x2002dce8]
xor eax, eax
cmp dword [esi + ecx + 0x4c0], 3
sete al
push eax
push ebx
push ebp
push 0x12
call fcn.2000d82e
add esp, 0x30
inc ebp
add esi, 0x4cc
cmp ebp, dword [0x2002db08]
jle 0x200227fc
mov eax, dword [0x2002dce0]
cmp dword [eax + 0x4c4], 0xffffffff
je 0x2002292f
push 1
push dword [eax + 0x4d0]
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret