Function at 0x140055170
Capabilities:
Create thread
Enumerate gui resources

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov r12, r9
mov r15, r8
mov rbx, rdx
mov rsi, rcx
mov rax, qword [rcx + 0x10a80]
xor ebp, ebp
cmp dword [rax + 0xe9e8], ebp
je 0x140055273
cmp qword [rax + 0xea28], rbp
je 0x140055220
cmp qword [rcx + 0x10a70], rbp
je 0x140055220
cmp byte [rax + 0xea78], bpl
je 0x140055220
lea r8, str.schook
lea edx, [rbp + 0x10]
lea rcx, [0x14021fa68]
call fcn.14015b9d4
mov dword [rsp + 0x70], ebp
cmp qword [rbx], rbp
jne 0x140055206
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ebp
mov r9, rsi
lea r8, [0x140034db0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rbx], rax
mov r8, r15
mov rdx, qword [rsi + 0x10a70]
mov rcx, rsi
call fcn.140034e30
test al, al
jne 0x140055554
mov rax, qword [rsi + 0x10a80]
cmp byte [rax + 0xea78], bpl
je 0x140055273
cmp dword [rax + 0xe9f4], ebp
jne 0x140055273
cmp dword [rax + 0xe9f8], ebp
je 0x140055273
lea r8, [0x1401f19e8]
mov edx, reloc.WS2_32.dll_recv
lea rcx, [0x14021fa68]
call fcn.14015b9d4
mov rax, qword [rsi + 0x10a80]
mov dword [rax + 0xe9f8], ebp
mov rax, qword [rsi + 0x10a80]
mov qword [rax + 0xe980], rbp
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r14d, eax
mov edx, 4
mov eax, 8
mov rcx, qword [0x14022a710]
cmp dword [rcx + 0xe30], ebp
cmovne edx, eax
mov rcx, qword [rsi + 0x10a80]
mov dword [rcx + 0x808], edx
mov dword [rcx + 0x80c], ebp
movzx edx, byte [rsp + 0x90]
test dl, dl
je 0x1400552c9
mov rcx, qword [rsi + 0x10a80]
mov dword [rcx + 0xeb20], ebp
mov dword [rsi + 0x10b00], r14d
mov rax, qword [0x14022a710]
cmp dword [rax + 0xe3c], ebp
jne 0x1400552f4
mov rax, qword [rsi + 0x10a80]
cmp byte [rax + 0xea78], bpl
jne 0x14005543d
test dl, dl
jne 0x14005543d
mov eax, r14d
sub eax, dword [rsi + 0x10b00]
cmp eax, 0x32
jle 0x14005543d
inc dword [r12]
mov r8, qword [rsi + 0x10a80]
cmp qword [r8 + 0xe458], rbp
jne 0x140055337
mov qword [r8 + 0xe9a8], rbp
movzx ecx, word [r8 + 0xe462]
movzx eax, word [r8 + 0xe460]
mov dword [rsp + 0x3c], ecx
jmp 0x1400553a1
cmp byte [r8 + 0xeab1], bpl
je 0x14005538b
mov edx, dword [r8 + 8]
mov r9d, dword [r8 + 0xc]
mov ecx, dword [r8 + 0xe478]
sub ecx, 2
je 0x140055372
cmp ecx, 1
jne 0x140055380
mov edx, dword [r8 + 0x7c4]
mov r9d, dword [r8 + 0x7c8]
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x3c], r9d
jmp 0x1400553a5
mov edx, dword [r8 + 0x8e0]
mov r9d, dword [r8 + 0x8e4]
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x3c], r9d
jmp 0x1400553a5
movsxd rax, dword [r8 + 4]
lea rcx, [rax + rax*4]
mov edx, dword [r8 + rcx*4 + 0xc]
mov eax, dword [r8 + rcx*4 + 8]
mov dword [rsp + 0x3c], edx
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rbp
call fcn.140021170
cmp eax, 2
je 0x1400553cc
lea r8, [rsp + 0x30]
mov rdx, r15
mov rcx, qword [rsi + 0x10a80]
call fcn.14004bea0
test al, al
je 0x1400553d3
mov byte [rsi + 0x10b68], bpl
cmp dword [r12], 0x14
jle 0x14005543d
mov rbx, qword [rsi + 0x10a80]
lea rcx, [0x1401e9c5c]
call fcn.14015b020
mov rdi, rax
mov r9d, dword [rbx + 0x8e4]
mov r8d, dword [rbx + 0x8e0]
mov edx, dword [rbx + 0x8dc]
mov ecx, dword [rbx + 0x8d8]
call qword [sym.imp.GDI32.dll_CreateRectRgn]
mov rbx, rax
mov rcx, qword [r15]
mov r9d, 2
mov r8, rax
mov rdx, rcx
call qword [sym.imp.GDI32.dll_CombineRgn]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, rdi
call fcn.14014e740
mov dword [r12], ebp
mov rax, qword [0x14022a710]
cmp dword [rax + 0xe38], ebp
jne 0x14005545c
mov rax, qword [rsi + 0x10a80]
cmp byte [rax + 0xea78], bpl
jne 0x140055478
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rbp, rax
test rax, rax
je 0x140055478
mov r8, rax
mov rdx, r15
mov rcx, rsi
call fcn.1400540a0
mov rcx, qword [0x14022a710]
cmp dword [rcx + 0xe34], 0
jne 0x140055498
mov rcx, qword [rsi + 0x10a80]
cmp byte [rcx + 0xea78], 0
jne 0x1400554d8
lea rcx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x1400554d8
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.USER32.dll_WindowFromPoint]
mov rbx, rax
test rax, rax
je 0x1400554d8
cmp rax, rbp
je 0x1400554d8
call qword [sym.imp.USER32.dll_GetDesktopWindow]
cmp rbx, rax
je 0x1400554d8
mov r8, rbx
mov rdx, r15
mov rcx, rsi
call fcn.1400540a0
mov rax, qword [0x140227bc8]
test rax, rax
jne 0x140055501
lea ecx, [rax + 0x30]
call fcn.140147b18
mov qword [rsp + 0x30], rax
mov rcx, rax
call fcn.14007e8d0
nop
mov qword [0x140227bc8], rax
mov rcx, rax
cmp byte [rax + 0x15], 0
je 0x140055554
mov eax, r14d
sub eax, dword [rsi + 0x10b04]
cmp eax, 0x1388
jle 0x140055554
mov dword [rsi + 0x10b04], r14d
test rcx, rcx
jne 0x140055545
mov ecx, gethostbyname
call fcn.140147b18
mov qword [rsp + 0x70], rax
mov rcx, rax
call fcn.14007e8d0
nop
mov qword [0x140227bc8], rax
xor edx, edx
lea rcx, [0x14007ec90]
call qword [sym.imp.USER32.dll_EnumWindows]
mov rbx, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret