Function at 0x7abca0
Capabilities:
Create thread
Terminate thread

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1e0
mov rax, qword [0x007cd058]
xor rax, rsp
mov qword [rsp + 0x1d0], rax
mov rax, qword [rsp + 0x260]
mov rbx, qword [rsp + 0x258]
mov r13, qword [rsp + 0x240]
mov r14, qword [rsp + 0x248]
mov r15, qword [rsp + 0x250]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x268]
mov rdi, rcx
mov ecx, dword [rcx + 0x19ea]
movzx esi, dx
xor edx, edx
mov qword [rsp + 0x58], rax
mov r12, r9
mov rbp, r8
mov qword [rsp + 0x60], rbx
mov eax, edx
cmp ecx, 2
jne 0x7abf38
mov qword [rsp + 0x28], rdx
lea r9, [rsp + 0x70]
lea r8, [0x007aa150]
xor ecx, ecx
mov dword [rsp + 0x20], edx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, 0x1388
mov qword [rdi + 0x19f0], rax
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [rdi + 0x19f8]
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rdi + 0x19f8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0x19f8], 0
cmp byte [0x007d0752], 0
je 0x7abdb6
mov rcx, qword [rdi + 0x19f0]
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rdi + 0x19f0]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0x19f0], 0
mov byte [0x007d0752], 0
cmp byte [rsp + 0x70], 4
jne 0x7abdca
cmp byte [rsp + 0x71], 2
jne 0x7abdca
mov byte [rdi + 0x50], 1
jmp 0x7abdce
mov byte [rdi + 0x50], 0
cmp byte [rdi + 0x50], 0
je 0x7abeb4
cmp dword [rdi + 0x1b0c], 0
mov ecx, dword [rsp + 0x96]
movzx eax, word [rsp + 0xba]
mov dword [rdi + 0x17d7], ecx
mov word [rdi + 0x17fb], ax
mov dword [rdi + 0x19e3], 2
je 0x7abe81
xor eax, eax
mov byte [rsp + 0xc0], 0
mov dword [rsp + 0xc1], eax
mov byte [rsp + 0xc5], al
call sub.WS2_32.dll_htonl
mov ecx, eax
call sub.WS2_32.dll_inet_ntoa
lea r9, [rdi + 0x1a08]
lea rdx, [0x007c1480]
lea rcx, [0x007c1470]
mov r8, rax
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
movzx ecx, word [rdi + 0x17fb]
lea rdx, [rsp + 0xc0]
mov r8d, 0xa
call fcn.007bcd54
lea r9, [rdi + 0x1a08]
lea rdx, [0x007c1450]
lea rcx, [0x007c1470]
mov r8, rax
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea rcx, [rsp + 0x9a]
mov rax, qword [rcx]
mov qword [rdi + 0x17db], rax
mov rax, qword [rcx + 8]
mov qword [rdi + 0x17e3], rax
mov rax, qword [rcx + 0x10]
mov qword [rdi + 0x17eb], rax
mov rax, qword [rcx + 0x18]
mov qword [rdi + 0x17f3], rax
mov rcx, rdi
call fcn.007aaec0
mov rcx, rdi
call fcn.007ab850
test eax, eax
jne 0x7ac364
mov rax, qword [rsp + 0x58]
mov r9, r12
mov r8, rbp
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x50]
movzx edx, si
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], r15
mov rcx, rdi
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r13
call fcn.007ab5d0
test eax, eax
jne 0x7ac364
mov rcx, rdi
call fcn.007aa490
mov rcx, rdi
mov dword [rsp + 0xc0], eax
test eax, eax
je 0x7ac32a
call fcn.007aae80
mov eax, dword [rsp + 0xc0]
jmp 0x7ac364
cmp ecx, 1
jne 0x7ac2b3
mov rcx, rdi
call fcn.007aaec0
mov rcx, rdi
call fcn.007ab850
test eax, eax
jne 0x7abfef
mov rax, qword [rsp + 0x58]
mov r9, r12
mov r8, rbp
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x50]
movzx edx, si
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], r15
mov rcx, rdi
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r13
call fcn.007ab5d0
test eax, eax
jne 0x7ac364
mov rcx, rdi
call fcn.007aa490
test eax, eax
jne 0x7ac364
mov rax, qword [rsp + 0x58]
mov r9, r12
mov r8, rbp
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x50]
movzx edx, si
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], r15
mov rcx, rdi
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r13
call fcn.007ab360
test eax, eax
jne 0x7ac364
mov byte [rdi + 0x50], 1
cmp byte [rdi + 0x50], 0
jne 0x7ac364
xor eax, eax
lea r9, [rsp + 0x70]
lea r8, [0x007aa150]
mov qword [rsp + 0x71], rax
mov qword [rsp + 0x79], rax
mov qword [rsp + 0x81], rax
mov qword [rsp + 0x89], rax
mov qword [rsp + 0x91], rax
mov qword [rsp + 0x99], rax
mov qword [rsp + 0xa1], rax
mov qword [rsp + 0xa9], rax
mov qword [rsp + 0xb1], rax
mov word [rsp + 0xb9], ax
mov byte [rsp + 0xbb], al
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x28], rax
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], 0
mov byte [rsp + 0x70], 0
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, 0x1388
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_Sleep]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TerminateThread]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [rsp + 0x96]
mov ebx, 2
mov word [rdi + 0x182b], bx
call sub.WS2_32.dll_htonl
movzx ecx, word [rsp + 0xba]
mov dword [rdi + 0x182f], eax
call sub.WS2_32.dll_htons
movzx ecx, byte [rdi + 0x1831]
movzx r9d, byte [rdi + 0x1830]
movzx r8d, byte [rdi + 0x182f]
mov word [rdi + 0x182d], ax
movzx eax, byte [rdi + 0x1832]
lea rdx, [0x007c1610]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0xd0]
call fcn.00788954
cmp byte [rsp + 0x70], 4
jne 0x7ac1f5
cmp byte [rsp + 0x71], bl
jne 0x7ac1f5
cmp dword [rdi + 0x1b0c], 0
mov ecx, dword [rsp + 0x96]
movzx eax, word [rsp + 0xba]
mov dword [rdi + 0x17d7], ecx
mov word [rdi + 0x17fb], ax
mov dword [rdi + 0x19e3], ebx
je 0x7ac1c2
xor eax, eax
mov byte [rsp + 0xc8], 0
mov dword [rsp + 0xc9], eax
mov byte [rsp + 0xcd], al
call sub.WS2_32.dll_htonl
mov ecx, eax
call sub.WS2_32.dll_inet_ntoa
lea r9, [rdi + 0x1a08]
lea rdx, [0x007c1480]
lea rcx, [0x007c1470]
mov r8, rax
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
movzx ecx, word [rdi + 0x17fb]
lea r8d, [rbx + 8]
lea rdx, [rsp + 0xc8]
call fcn.007bcd54
lea r9, [rdi + 0x1a08]
lea rdx, [0x007c1450]
lea rcx, [0x007c1470]
mov r8, rax
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea rcx, [rsp + 0x9a]
mov rax, qword [rcx]
mov qword [rdi + 0x17db], rax
mov rax, qword [rcx + 8]
mov qword [rdi + 0x17e3], rax
mov rax, qword [rcx + 0x10]
mov qword [rdi + 0x17eb], rax
mov rax, qword [rcx + 0x18]
mov qword [rdi + 0x17f3], rax
mov rcx, rdi
call fcn.007aaec0
mov rcx, rdi
call fcn.007ab850
test eax, eax
jne 0x7ac364
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
mov r9, r12
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x50]
mov r8, rbp
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], r15
movzx edx, si
mov rcx, rdi
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r13
call fcn.007ab5d0
test eax, eax
jne 0x7ac364
mov rcx, rdi
call fcn.007aa490
test eax, eax
jne 0x7ac364
mov rax, qword [rsp + 0x58]
mov r9, r12
mov r8, rbp
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x50]
movzx edx, si
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], r15
mov rcx, rdi
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r13
call fcn.007ab360
test eax, eax
jne 0x7ac364
mov eax, dword [rdi + 0x429]
mov byte [rdi + 0x50], 1
jmp 0x7ac364
test ecx, ecx
jne 0x7ac364
mov rcx, rdi
call fcn.007aaec0
mov rcx, rdi
call fcn.007ab850
test eax, eax
jne 0x7ac364
mov rax, qword [rsp + 0x58]
mov r9, r12
mov r8, rbp
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x50]
movzx edx, si
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], r15
mov rcx, rdi
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r13
call fcn.007ab5d0
test eax, eax
jne 0x7ac364
mov rcx, rdi
call fcn.007aa490
mov rcx, rdi
mov dword [rsp + 0xc0], eax
test eax, eax
jne 0x7abf27
mov rax, qword [rsp + 0x58]
mov r9, r12
mov r8, rbp
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x50]
movzx edx, si
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r14
mov byte [rdi + 0x50], 1
mov qword [rsp + 0x20], r13
call fcn.007ab360
mov rcx, qword [rsp + 0x1d0]
xor rcx, rsp
call fcn.00787d00
mov rbx, qword [rsp + 0x228]
add rsp, 0x1e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret