Function at 0x10000438c
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rbp
mov qword [rsp + 8], rcx
push rsi
push rdi
push r12
sub rsp, 0x50
mov rsi, qword [0x100015620]
mov rax, qword [0x100015628]
mov r12d, edx
mov edi, 1
xor ebx, ebx
jmp 0x100004446
cmp edi, ebx
jl 0x10000444f
mov rbp, qword [rsi]
cmp rbp, rbx
je 0x100004442
mov r9, qword [rbp + 0x10]
mov qword [rsp + 0x80], rbx
cmp r9, rbx
jne 0x1000043e5
mov edi, ebx
jmp 0x100004442
mov rcx, qword [rbp + 0x18]
lea r8, [rsp + 0x80]
lea rdx, [0x1000023f8]
call r9
cmp eax, ebx
mov edi, eax
jl 0x100004428
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rbp]
mov r9d, 1
lea rax, [rbp + 0x28]
lea r8d, [r9 + 3]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ole32.dll_CoRegisterClassObject]
mov edi, eax
mov rcx, qword [rsp + 0x80]
cmp rcx, rbx
je 0x10000443b
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, qword [0x100015628]
add rsi, 8
cmp rsi, rax
jb 0x1000043c0
mov esi, 0x80004005
cmp edi, ebx
jne 0x1000044b8
cmp byte [0x100015d10], bl
je 0x1000044be
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [0x100015d00], rax
cmp rax, rbx
je 0x1000044b4
lea rax, [rsp + 0x70]
lea r9, [0x100015cb0]
lea r8, [0x100004ffc]
mov qword [rsp + 0x28], rax
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], ebx
call qword [sym.imp.KERNEL32.dll_CreateThread]
cmp rax, rbx
jne 0x1000044be
mov rcx, qword [0x100015d00]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, esi
jmp 0x1000044be
mov byte [0x100015d10], bl
cmp edi, ebx
jge 0x1000044c9
mov eax, edi
jmp 0x10000465a
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
lea rcx, [0x100015d30]
xor r9d, r9d
mov r8, rbx
mov rdx, rax
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], ebx
call fcn.100004a00
cmp dword [0x100015d18], ebx
jbe 0x10000455f
mov rcx, qword [0x100015d38]
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, qword [0x100015d38]
xor r9d, r9d
lea edx, [r9 + 0x10]
xor r8d, r8d
call qword [sym.imp.USER32.dll_PostMessageW]
mov r9d, dword [0x100015d18]
mov r8, qword [0x100015d20]
mov rdx, qword [0x100015d38]
mov rcx, qword [0x100015d28]
call fcn.100009a08
cmp eax, ebx
jl 0x10000465a
cmp qword [0x100015d28], rbx
jne 0x100004658
jmp 0x10000465a
mov r8, qword [0x100015d20]
mov rdx, qword [0x100015d38]
mov rcx, qword [0x100015d28]
xor r9d, r9d
call fcn.100009a08
cmp eax, ebx
jl 0x10000465a
mov rcx, qword [0x100015d28]
cmp rcx, rbx
je 0x10000465a
mov qword [rsp + 0x70], rbx
mov rax, qword [rcx]
lea rdx, [rsp + 0x70]
call qword [rax + 0x98]
cmp eax, ebx
jl 0x10000465a
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.USER32.dll_IsWindow]
cmp eax, ebx
jne 0x1000045c5
mov eax, esi
jmp 0x10000465a
mov rcx, qword [rsp + 0x70]
lea rdx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_GetClientRect]
lea rcx, [rsp + 0x40]
xor r8d, r8d
mov edx, 0xc80000
call qword [sym.imp.USER32.dll_AdjustWindowRect]
mov esi, dword [rsp + 0x48]
mov edi, dword [rsp + 0x4c]
mov rcx, qword [0x100015d38]
sub esi, dword [rsp + 0x40]
sub edi, dword [rsp + 0x44]
lea rdx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov r8d, dword [rsp + 0x44]
mov edx, dword [rsp + 0x40]
mov rcx, qword [0x100015d38]
mov r9d, esi
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], edi
call qword [sym.imp.USER32.dll_MoveWindow]
mov rcx, qword [rsp + 0x70]
mov edx, 1
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, qword [0x100015d38]
mov edx, r12d
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, qword [0x100015d38]
call qword [sym.imp.USER32.dll_BringWindowToTop]
xor eax, eax
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret