Function at 0x45bfc0
Capabilities:
Enumerate gui resources

Disassembly:
push rbp
push rsi
push rbx
sub rsp, 0xd0
mov rbp, rsp
mov rbx, rcx
mov rsi, rdx
mov dword [rbp + 0x100], r8d
mov dword [rbp + 0x108], r9d
mov rcx, rbx
call fcn.00416190
mov qword [rbp + 0x60], 0
cmp byte [rbp + 0x128], 0
je 0x45c0fa
mov eax, dword [rbp + 0x100]
mov dword [rbp + 0x58], eax
mov eax, dword [rbp + 0x108]
mov dword [rbp + 0x5c], eax
mov dword [rbp + 0x68], 0x7fffffff
mov dword [rbp + 0x6c], 0x7fffffff
mov dword [rbp + 0x70], 0x80000000
mov dword [rbp + 0x74], 0x80000000
lea rcx, [0x0045bba0]
lea rdx, [rbp + 0x58]
call sub.user32.dll_EnumWindows
cmp dword [rbp + 0x68], 0x7fffffff
jge 0x45c0fa
cmp dword [rbp + 0x68], 0
jge 0x45c056
mov dword [rbp + 0x68], 0
cmp dword [rbp + 0x6c], 0
jge 0x45c063
mov dword [rbp + 0x6c], 0
mov eax, dword [rbp + 0x70]
cmp eax, dword [rbp + 0x110]
jle 0x45c077
mov eax, dword [rbp + 0x110]
mov dword [rbp + 0x70], eax
mov eax, dword [rbp + 0x74]
cmp eax, dword [rbp + 0x118]
jle 0x45c08b
mov eax, dword [rbp + 0x118]
mov dword [rbp + 0x74], eax
mov eax, dword [rbp + 0x70]
sub eax, dword [rbp + 0x68]
mov dword [rbp + 0x110], eax
mov eax, dword [rbp + 0x74]
sub eax, dword [rbp + 0x6c]
mov dword [rbp + 0x118], eax
mov eax, dword [rbp + 0x68]
add dword [rbp + 0x100], eax
mov eax, dword [rbp + 0x6c]
add dword [rbp + 0x108], eax
mov eax, dword [rbp + 0x100]
mov dword [rbp + 0x58], eax
mov eax, dword [rbp + 0x108]
mov dword [rbp + 0x5c], eax
lea rcx, [0x0045bd00]
lea rdx, [rbp + 0x58]
call sub.user32.dll_EnumWindows
mov rcx, qword [rbp + 0x60]
lea rdx, [rbp + 0x78]
call sub.gdi32.dll_GetRgnBox
cmp eax, 1
jne 0x45c0fa
mov rcx, qword [rbp + 0x60]
call sub.gdi32.dll_DeleteObject
mov qword [rbp + 0x60], 0
cmp byte [rbp + 0x128], 0
je 0x45c10e
cmp qword [rbp + 0x60], 0
je 0x45c2ab
mov ecx, dword [rbp + 0x110]
mov edx, dword [rbp + 0x118]
lea r8, [rbp + 0xa8]
lea r9, [rbp + 0xa0]
lea rax, [rbp + 0x98]
mov qword [rsp + 0x20], rax
lea rax, [rbp + 0x90]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x88]
mov qword [rsp + 0x30], rax
call fcn.004584d0
test al, al
je 0x45c2ab
cmp qword [rbp + 0x60], 0
je 0x45c1b1
mov dword [rbp + 0x78], 0
mov dword [rbp + 0x7c], 0
mov eax, dword [rbp + 0x110]
mov dword [rbp + 0x80], eax
mov eax, dword [rbp + 0x118]
mov dword [rbp + 0x84], eax
xor rcx, rcx
call sub.gdi32.dll_GetStockObject
mov rcx, qword [rbp + 0x90]
lea rdx, [rbp + 0x78]
mov r8, rax
call sub.user32.dll_FillRect
mov rcx, qword [rbp + 0x90]
mov rdx, qword [rbp + 0x60]
call sub.gdi32.dll_SelectClipRgn
mov rcx, qword [rbp + 0x90]
xor rdx, rdx
xor r8, r8
mov r9d, dword [rbp + 0x110]
mov eax, dword [rbp + 0x118]
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], rsi
mov eax, dword [rbp + 0x100]
mov dword [rsp + 0x30], eax
mov eax, dword [rbp + 0x108]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x40], 0xcc0020
call sub.gdi32.dll_BitBlt
test eax, eax
setne sil
cmp qword [rbp + 0x60], 0
je 0x45c21a
mov rcx, qword [rbp + 0x90]
xor rdx, rdx
call sub.gdi32.dll_SelectClipRgn
mov rcx, qword [rbp + 0x60]
call sub.gdi32.dll_DeleteObject
test sil, sil
je 0x45c28f
cmp byte [rbp + 0x120], 0
je 0x45c237
mov rcx, rbp
mov rdx, qword [rbp + 0x90]
call fcn.0045bde0
mov rcx, qword [0x00457f98]
mov dl, 1
lea r8, [rbp + 0xa8]
mov r9, qword [rbp + 0xa0]
mov rax, qword [rbp + 0x98]
mov qword [rsp + 0x20], rax
mov rax, qword [rbp + 0x90]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x88]
mov qword [rsp + 0x30], rax
call fcn.00458610
mov rcx, rbx
test rax, rax
jne 0x45c284
mov rdx, rax
jmp 0x45c288
lea rdx, [rax + 0x60]
call fcn.004161d0
jmp 0x45c2ca
mov rcx, qword [rbp + 0xa0]
mov rdx, qword [rbp + 0x98]
mov r8, qword [rbp + 0x90]
call fcn.004585e0
jmp 0x45c2ca
cmp qword [rbp + 0x60], 0
je 0x45c2ca
mov rcx, qword [rbp + 0x90]
xor rdx, rdx
call sub.gdi32.dll_SelectClipRgn
mov rcx, qword [rbp + 0x60]
call sub.gdi32.dll_DeleteObject
mov rax, rbx
lea rsp, [rbp + 0xd0]
pop rbx
pop rsi
pop rbp
ret