Function at 0x456d9c
Capabilities:
Access peb ldr_data
Get graphical window text
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], edx
mov esi, eax
xor eax, eax
push ebp
push 0x45732c
push dword fs:[eax]
mov dword fs:[eax], esp
mov ebx, 0xff
mov eax, ebx
call fcn.00408c48
mov dword [ebp - 4], eax
mov eax, ebx
call fcn.00408c48
mov edi, eax
lea eax, [ebp - 8]
push eax
push esi
call sub.user32.dll_GetWindowThreadProcessId
mov dword [ebp - 0xc], eax
push ebx
push edi
push esi
call sub.user32.dll_GetClassNameA
push ebx
mov eax, dword [ebp - 4]
push eax
push esi
call sub.user32.dll_GetWindowTextA
mov edx, dword [0x454dd4]
mov eax, 0x84
call fcn.004045f0
mov ebx, eax
lea edx, [ebp - 0x10]
mov eax, edi
call fcn.00408c34
mov edx, dword [ebp - 0x10]
mov eax, ebx
call fcn.00403a88
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.00408c34
mov edx, dword [ebp - 0x14]
lea eax, [ebx + 4]
call fcn.00403a88
mov dword [ebx + 8], esi
mov eax, dword [ebp - 8]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x10], eax
push 0xfffffffffffffff8
push esi
call sub.user32.dll_GetWindowLongA
mov dword [ebx + 0x14], eax
push 0xfffffffffffffffc
push esi
call sub.user32.dll_GetWindowLongA
mov dword [ebx + 0x18], eax
push 0xfffffffffffffffa
push esi
call sub.user32.dll_GetWindowLongA
mov dword [ebx + 0x1c], eax
push 0xfffffffffffffff4
push esi
call sub.user32.dll_GetWindowLongA
mov dword [ebx + 0x20], eax
push 0xffffffffffffffeb
push esi
call sub.user32.dll_GetWindowLongA
mov dword [ebx + 0x24], eax
push 0xfffffffffffffff0
push esi
call sub.user32.dll_GetWindowLongA
mov dword [ebx + 0x28], eax
push 0xffffffffffffffec
push esi
call sub.user32.dll_GetWindowLongA
mov dword [ebx + 0x2c], eax
lea eax, [ebx + 0x30]
push eax
push esi
call sub.user32.dll_GetWindowRect
lea eax, [ebx + 0x40]
push eax
push esi
call sub.user32.dll_GetClientRect
push 0xffffffffffffffe0
push esi
call sub.user32.dll_GetClassLongA
mov dword [ebx + 0x50], eax
push 0xffffffffffffffec
push esi
call sub.user32.dll_GetClassLongA
mov dword [ebx + 0x54], eax
push 0xffffffffffffffee
push esi
call sub.user32.dll_GetClassLongA
mov dword [ebx + 0x58], eax
push 0xffffffffffffffe8
push esi
call sub.user32.dll_GetClassLongA
mov dword [ebx + 0x5c], eax
push 0xfffffffffffffff0
push esi
call sub.user32.dll_GetClassLongA
mov dword [ebx + 0x60], eax
push 0xfffffffffffffff6
push esi
call sub.user32.dll_GetClassLongA
mov dword [ebx + 0x64], eax
push 0xfffffffffffffff4
push esi
call sub.user32.dll_GetClassLongA
mov dword [ebx + 0x68], eax
push 0xfffffffffffffff2
push esi
call sub.user32.dll_GetClassLongA
mov dword [ebx + 0x6c], eax
push 0xffffffffffffffe6
push esi
call sub.user32.dll_GetClassLongA
mov dword [ebx + 0x70], eax
mov dl, 1
mov eax, dword [0x40e5cc]
call fcn.00402d3c
mov dword [ebx + 0x74], eax
push esi
call sub.user32.dll_IsWindowVisible
neg eax
sbb eax, eax
neg eax
mov byte [ebx + 0x80], al
test byte [ebx + 0x2e], 0x80
je 0x456f38
mov edx, 0x457344
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2b], 0x40
je 0x456f4b
mov edx, 0x457358
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2b], 2
je 0x456f5e
mov edx, 0x45736c
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2b], 4
je 0x456f71
mov edx, 0x457384
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2b], 8
je 0x456f84
mov edx, 0x45739c
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2a], 0x40
je 0x456f97
mov edx, 0x4573b0
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2a], 2
je 0x456faa
mov edx, 0x4573c4
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2a], 0x10
je 0x456fbd
mov edx, 0x4573d8
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2b], 1
je 0x456fd0
mov edx, 0x4573ec
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2a], 1
je 0x456fe3
mov edx, 0x457400
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2b], 0x20
je 0x456ff6
mov edx, 0x457418
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2a], 2
je 0x457009
mov edx, 0x45742c
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x28], 0
je 0x45701c
mov edx, 0x457444
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2b], 0x80
je 0x45702f
mov edx, 0x45745c
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2a], 8
je 0x457042
mov edx, 0x457470
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2a], 1
je 0x457055
mov edx, 0x457484
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2a], 4
je 0x457068
mov edx, 0x457498
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2b], 0x10
je 0x45707b
mov edx, 0x4574b0
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2a], 0x20
je 0x45708e
mov edx, 0x4574c4
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov dl, 1
mov eax, dword [0x40e5cc]
call fcn.00402d3c
mov esi, eax
mov dword [ebx + 0x78], esi
test byte [ebx + 0x2c], 0x10
je 0x4570b1
mov edx, 0x4574d8
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2c], 1
je 0x4570c4
mov edx, 0x4574f4
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2c], 4
je 0x4570d7
mov edx, 0x457510
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2c], 8
je 0x4570ea
mov edx, 0x457530
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2c], 0x20
je 0x4570fd
mov edx, 0x457548
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2c], 0x40
je 0x457110
mov edx, 0x457564
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2c], 0x80
je 0x457123
mov edx, 0x45757c
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2d], 1
je 0x457136
mov edx, 0x457598
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2d], 2
je 0x457149
mov edx, 0x4575b4
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2d], 4
je 0x45715c
mov edx, 0x4575d0
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2d], 0x10
je 0x457171
mov edx, 0x4575ec
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
jmp 0x45717e
mov edx, 0x457600
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2d], 0x20
je 0x457193
mov edx, 0x457614
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
jmp 0x4571a0
mov edx, 0x457630
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2d], 0x40
je 0x4571b5
mov edx, 0x45764c
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
jmp 0x4571c2
mov edx, 0x457668
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2e], 1
je 0x4571d5
mov edx, 0x457688
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2e], 2
je 0x4571e8
mov edx, 0x4576a4
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x2e], 4
je 0x4571fb
mov edx, 0x4576c0
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov dl, 1
mov eax, dword [0x40e5cc]
call fcn.00402d3c
mov esi, eax
mov dword [ebx + 0x7c], esi
test byte [ebx + 0x71], 0x10
je 0x45721e
mov edx, 0x4576d8
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x70], 1
je 0x457231
mov edx, 0x4576f4
mov eax, dword [ebx + 0x7c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x70], 2
je 0x457244
mov edx, 0x457708
mov eax, dword [ebx + 0x7c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x70], 4
je 0x457257
mov edx, 0x45771c
mov eax, dword [ebx + 0x7c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x70], 8
je 0x45726a
mov edx, 0x457734
mov eax, dword [ebx + 0x7c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x70], 0x20
je 0x45727d
mov edx, 0x457748
mov eax, dword [ebx + 0x7c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x70], 0x40
je 0x457290
mov edx, 0x45775c
mov eax, dword [ebx + 0x7c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x70], 0x80
je 0x4572a3
mov edx, 0x457770
mov eax, dword [ebx + 0x7c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x71], 1
je 0x4572b6
mov edx, 0x457784
mov eax, dword [ebx + 0x7c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x71], 2
je 0x4572c9
mov edx, 0x457798
mov eax, dword [ebx + 0x7c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x71], 8
je 0x4572dc
mov edx, 0x4577ac
mov eax, dword [ebx + 0x7c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x71], 0x20
je 0x4572ef
mov edx, 0x4577c0
mov eax, dword [ebx + 0x7c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test byte [ebx + 0x71], 0x40
je 0x457302
mov edx, 0x4577dc
mov eax, dword [ebx + 0x7c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebp - 4]
call fcn.00408c94
mov eax, edi
call fcn.00408c94
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x457333
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00403a58
ret