Function at 0x4bf58c
Capabilities:
Create thread

Disassembly:
mov rax, rsp
push rsi
push rdi
push r13
sub rsp, 0x110
mov qword [rsp + 0xd8], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov rdi, rcx
mov rcx, qword [rcx + 0x828]
xor ebp, ebp
cmp rcx, rbp
je 0x4bf5ce
mov rax, qword [rcx]
lea edx, [rbp + 1]
call qword [rax]
mov qword [rdi + 0x828], rbp
mov rcx, qword [rdi + 0x830]
cmp rcx, rbp
je 0x4bf5eb
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rdi + 0x830], rbp
cmp byte [rdi + 0xa59], bpl
jne 0x4bf98f
mov rax, qword [0x00862cb8]
cmp byte [rax + 0x30c9], bpl
jne 0x4bf620
mov rcx, qword [rax + 0xb8]
cmp rcx, rbp
je 0x4bf620
mov edx, 0x249
call fcn.0041024c
jmp 0x4bf626
mov al, byte [rax + 0x2cea]
cmp al, bpl
je 0x4bf652
mov r9d, 0x124
lea r8, str.greylink_5.98
mov rdx, qword [0x00871158]
mov rcx, qword [rdi + 8]
call qword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x4bf97c
mov rax, qword [rdi + 0x58]
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x130]
lea rdx, str.MainToolBar
lea rcx, [rsp + 0x48]
call fcn.004021a8
nop
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x30]
mov rcx, qword [0x008bb580]
call fcn.0052fb74
nop
lea rax, [rsp + 0x48]
mov r13d, 0x100
mov rcx, qword [rsp + 0x70]
cmp rcx, rax
je 0x4bf6bf
cmp rcx, rbp
je 0x4bf6bf
mov rdx, qword [rsp + 0x48]
sub rdx, rcx
cmp rdx, r13
jbe 0x4bf6ba
call fcn.006a4944
jmp 0x4bf6bf
call fcn.006a3610
xor edx, edx
mov rcx, rdi
call fcn.004be9c4
lea r11, [rsp + 0x78]
mov qword [rsp + 0x98], r11
lea rax, [rsp + 0x78]
mov qword [rsp + 0xa0], rax
mov byte [rsp + 0x78], bpl
lea rax, [rsp + 0xa8]
mov qword [rsp + 0xc8], rax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0xd0], rax
mov byte [rsp + 0xa8], bpl
mov dword [rsp + 0xe0], gethostbyname
lea rdx, [rsp + 0xe0]
mov rcx, qword [rdi + 8]
call qword [sym.imp.USER32.dll_GetWindowPlacement]
mov dword [rsp + 0x38], ebp
mov dword [rsp + 0x3c], ebp
mov dword [rsp + 0x40], ebp
mov dword [rsp + 0x44], ebp
lea rdx, [rsp + 0x38]
mov rcx, qword [rdi + 8]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov rbx, qword [0x00862cb8]
cmp byte [rbx + 0x3140], bpl
jne 0x4bf774
mov rcx, qword [rbx + 0xb8]
cmp rcx, rbp
je 0x4bf774
mov edx, 0x2c0
call fcn.0041024c
jmp 0x4bf77a
mov al, byte [rbx + 0x2d61]
cmp al, bpl
je 0x4bf792
mov eax, dword [rdi + 0x114]
mov dword [rbx + 0x28c0], eax
mov byte [rbx + 0x2fa7], 1
mov ecx, dword [rsp + 0xe8]
cmp ecx, 5
je 0x4bf7a3
cmp ecx, 1
jne 0x4bf813
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x48]
call fcn.0055a5e0
nop
mov rbx, qword [0x00862cb8]
lea rcx, [rbx + 0x2100]
cmp rax, rcx
je 0x4bf7d3
mov r8, qword [rax + 0x20]
mov rdx, qword [rax + 0x28]
call fcn.0040289c
mov byte [rbx + 0x2f2c], 1
lea rax, [rsp + 0x48]
mov rcx, qword [rsp + 0x70]
cmp rcx, rax
je 0x4bf807
cmp rcx, rbp
je 0x4bf807
mov rdx, qword [rsp + 0x48]
sub rdx, rcx
cmp rdx, r13
jbe 0x4bf802
call fcn.006a4944
jmp 0x4bf807
call fcn.006a3610
mov ecx, dword [rsp + 0xe8]
cmp ecx, 1
je 0x4bf81d
cmp ecx, 5
je 0x4bf81d
cmp ecx, 3
jne 0x4bf831
mov rax, qword [0x00862cb8]
mov dword [rax + 0x280c], ecx
mov byte [rax + 0x2f7a], 1
xor edx, edx
mov rcx, qword [rdi + 8]
call qword [sym.imp.USER32.dll_ShowWindow]
lea rcx, [rdi + 0x378]
call fcn.005361cc
lea r11, [rdi + 0xa8]
mov qword [rsp + 0x30], r11
mov rsi, qword [0x008bb610]
lea rcx, [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea r8, [rsp + 0x30]
mov rdx, qword [rsi + 0x18]
mov rcx, qword [rsi + 0x10]
call fcn.00414c64
cmp rax, qword [rsi + 0x18]
je 0x4bf89d
mov r8, qword [rsi + 0x18]
lea rdx, [rax + 8]
cmp rdx, r8
je 0x4bf898
sub r8, rdx
je 0x4bf898
mov rcx, rax
call fcn.006a4bf0
add qword [rsi + 0x18], 0xfffffffffffffff8
lea rcx, [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [0x00862ce0]
call fcn.005b9b34
mov rcx, qword [0x008bb550]
call fcn.00626954
mov byte [rdi + 0xb18], 1
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, qword [rdi + 0xb20]
call qword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov rcx, rdi
call fcn.004bb024
lea r11, [rsp + 0x130]
mov qword [rsp + 0x28], r11
mov dword [rsp + 0x20], ebp
mov r9, rdi
lea r8, [0x004b725c]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rdi + 0xb00], rax
mov byte [rdi + 0xa59], 1
lea rax, [rsp + 0xa8]
mov rcx, qword [rsp + 0xd0]
cmp rcx, rax
je 0x4bf94c
cmp rcx, rbp
je 0x4bf94c
mov rdx, qword [rsp + 0xa8]
sub rdx, rcx
cmp rdx, r13
jbe 0x4bf946
call fcn.006a4944
jmp 0x4bf94c
call fcn.006a3610
nop
lea rax, [rsp + 0x78]
mov rcx, qword [rsp + 0xa0]
cmp rcx, rax
je 0x4bf97c
cmp rcx, rbp
je 0x4bf97c
mov rdx, qword [rsp + 0x78]
sub rdx, rcx
cmp rdx, r13
jbe 0x4bf977
call fcn.006a4944
jmp 0x4bf97c
call fcn.006a3610
mov rax, qword [rsp + 0x150]
mov dword [rax], 1
jmp 0x4bfa39
mov rcx, qword [rdi + 0xb78]
cmp rcx, 0xffffffffffffffff
je 0x4bf9ba
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rdi + 0xb78]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
or qword [rdi + 0xb78], 0xffffffffffffffff
mov edx, 0xea60
mov rcx, qword [rdi + 0xb00]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rdi + 0xb00]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0xb00], rbp
mov rcx, qword [rdi + 0x338]
call qword [sym.imp.USER32.dll_DestroyIcon]
mov rcx, qword [rdi + 0x340]
call qword [sym.imp.USER32.dll_DestroyIcon]
mov rcx, qword [rdi + 0x348]
call qword [sym.imp.USER32.dll_DestroyIcon]
mov rcx, qword [rdi + 0x350]
call qword [sym.imp.USER32.dll_DestroyIcon]
mov rcx, qword [rdi + 0x9d8]
call qword [sym.imp.USER32.dll_DestroyIcon]
mov rcx, qword [rdi + 0x358]
call qword [sym.imp.USER32.dll_DestroyIcon]
mov r11, qword [rsp + 0x150]
mov dword [r11], ebp
xor eax, eax
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r13
pop rdi
pop rsi
ret