Function at 0x45bec0
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.00415f60
mov qword [rbp + 0x60], 0
cmp byte [rbp + 0x128], 0
je 0x45bffa
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, [0x0045baa0]
lea rdx, [rbp + 0x58]
call sub.user32.dll_EnumWindows
cmp dword [rbp + 0x68], 0x7fffffff
jge 0x45bffa
cmp dword [rbp + 0x68], 0
jge 0x45bf56
mov dword [rbp + 0x68], 0
cmp dword [rbp + 0x6c], 0
jge 0x45bf63
mov dword [rbp + 0x6c], 0
mov eax, dword [rbp + 0x70]
cmp eax, dword [rbp + 0x110]
jle 0x45bf77
mov eax, dword [rbp + 0x110]
mov dword [rbp + 0x70], eax
mov eax, dword [rbp + 0x74]
cmp eax, dword [rbp + 0x118]
jle 0x45bf8b
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, [0x0045bc00]
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 0x45bffa
mov rcx, qword [rbp + 0x60]
call sub.gdi32.dll_DeleteObject
mov qword [rbp + 0x60], 0
cmp byte [rbp + 0x128], 0
je 0x45c00e
cmp qword [rbp + 0x60], 0
je 0x45c1ab
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.004583d0
test al, al
je 0x45c1ab
cmp qword [rbp + 0x60], 0
je 0x45c0b1
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 0x45c11a
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 0x45c18f
cmp byte [rbp + 0x120], 0
je 0x45c137
mov rcx, rbp
mov rdx, qword [rbp + 0x90]
call fcn.0045bce0
mov rcx, qword [0x00457e98]
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.00458510
mov rcx, rbx
test rax, rax
jne 0x45c184
mov rdx, rax
jmp 0x45c188
lea rdx, [rax + 0x60]
call fcn.00415fa0
jmp 0x45c1ca
mov rcx, qword [rbp + 0xa0]
mov rdx, qword [rbp + 0x98]
mov r8, qword [rbp + 0x90]
call fcn.004584e0
jmp 0x45c1ca
cmp qword [rbp + 0x60], 0
je 0x45c1ca
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