Function at 0x180002100
Capabilities:
Create thread

Disassembly:
push rdi
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rsi
mov rsi, rdx
mov rdi, rcx
cmp qword [rcx + 8], 0
jne 0x18000213f
cmp qword [rdx], 0
jne 0x18000213f
cmp dword [rcx + 0x588], 0
jne 0x18000213f
mov ebx, 0x80070057
jmp 0x180002458
cmp qword [rdx + 0x18], 0
je 0x180002163
mov rax, qword [rdx + 0x18]
mov rcx, qword [rax]
mov qword [rdi + 0x590], rcx
mov rax, qword [rdx + 0x18]
mov rcx, qword [rax + 8]
mov qword [rdi + 0x598], rcx
mov rcx, rdi
call fcn.180001980
mov ebx, eax
test eax, eax
js 0x180002458
mov rax, qword [rsi]
mov qword [rdi + 8], rax
mov eax, dword [rsi + 0xc]
mov dword [rdi + 0xb8], eax
mov eax, dword [rsi + 8]
mov dword [rdi + 0xbc], eax
cmp dword [rdi + 0x588], 1
jne 0x1800022cd
mov rax, qword [rsi + 0x20]
mov qword [rdi + 0x5b8], rax
mov rax, qword [rsi + 0x28]
mov qword [rdi + 0x5c0], rax
mov rax, qword [rsi + 0x30]
mov qword [rdi + 0x5c8], rax
mov rax, qword [rsi + 0x40]
mov qword [rdi + 0x5d8], rax
mov rax, qword [rsi + 0x38]
mov qword [rdi + 0x5d0], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rdi + 0x5b0], rax
test rax, rax
jne 0x180002234
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x180002204
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x18000220c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
bt ebx, 0x1d
jae 0x180002225
test ebx, ebx
jle 0x1800022a3
movzx ebx, bx
or ebx, 0xa0070000
jmp 0x1800022a3
test ebx, ebx
jle 0x1800022a3
movzx ebx, bx
or ebx, 0x80070000
jmp 0x1800022a3
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r9, rdi
lea r8, [0x1800020f0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rdi + 0x5a8], rax
test rax, rax
jne 0x1800022b2
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x180002279
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x180002281
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
bt ebx, 0x1d
jae 0x180002296
test ebx, ebx
jle 0x1800022a3
movzx ebx, bx
or ebx, 0xa0070000
jmp 0x1800022a3
test ebx, ebx
jle 0x1800022a3
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0x180002458
mov eax, ebx
jmp 0x180002485
or edx, 0xffffffff
mov rcx, qword [rdi + 0x5b0]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor edx, edx
mov rcx, qword [rdi + 8]
call sub.IMM32.dll_ImmAssociateContext
mov ecx, 0x38
call fcn.180037904
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1800022eb
mov rcx, rax
call fcn.180015fa0
jmp 0x1800022ed
xor eax, eax
mov qword [rdi + 0x558], rax
test rax, rax
jne 0x180002303
mov ebx, 0x8007000e
jmp 0x180002458
mov rcx, rdi
call fcn.180001730
mov ebx, eax
test eax, eax
js 0x180002458
cmp dword [rdi + 0x588], 0
jne 0x180002416
lea r9, [rdi + 0x580]
lea r8, [0x1800f4060]
mov edx, 0x12d
mov rcx, qword [0x180131f48]
call fcn.18001a1f0
mov ecx, dword [rdi + 0xdc]
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov qword [rdi + 0xe0], rax
mov r8d, dword [rdi + 0xdc]
mov edx, 1
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreatePen]
mov qword [rdi + 0xe8], rax
mov r8, rdi
mov edx, 0xffffffeb
mov rcx, qword [rdi + 8]
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
lea r8, [0x180002bd0]
mov edx, 0xfffffffc
mov rcx, qword [rdi + 8]
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
mov qword [rdi], rax
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 0xa]
mov rcx, qword [rdi + 8]
call qword [sym.imp.USER32.dll_SetTimer]
xor edx, edx
mov rcx, qword [rdi + 8]
call sub.IMM32.dll_ImmAssociateContext
cmp dword [rdi + 0x530], 0
je 0x1800023d3
mov rcx, rdi
call fcn.180001850
mov ebx, eax
test eax, eax
js 0x180002458
cmp dword [rdi + 0xc4], 0
jne 0x180002416
lea r8, [rdi + 0xf0]
mov edx, 0xcc
lea r9d, [rdx + 0x38]
mov rcx, qword [0x180131f48]
call qword [sym.imp.USER32.dll_LoadStringW]
lea r8, [rdi + 0x2f8]
mov edx, 0xcd
lea r9d, [rdx + 0x37]
mov rcx, qword [0x180131f48]
call qword [sym.imp.USER32.dll_LoadStringW]
mov rdx, qword [rdi + 0x538]
test rdx, rdx
je 0x180002430
mov rcx, rdi
call fcn.180001ab0
mov ebx, eax
test eax, eax
js 0x180002458
mov rdx, qword [rdi + 0x540]
test rdx, rdx
je 0x18000244a
mov rcx, rdi
call fcn.180001ab0
mov ebx, eax
test eax, eax
js 0x180002458
mov dword [rdi + 0x5f0], 1
xor eax, eax
jmp 0x180002485
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x180002483
cmp dword [rdi + 0x588], 0
jne 0x18000247f
xor r9d, r9d
xor r8d, r8d
mov edx, 0x466
call qword [sym.imp.USER32.dll_PostMessageW]
mov eax, ebx
jmp 0x180002485
mov eax, ebx
jmp 0x180002485
mov eax, ebx
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret