Function at 0x140006520
Capabilities:
Create thread

Disassembly:
push rbp
push rdi
push r12
sub rsp, 0x30
cmp dword [rcx + 0x230], 0
mov ebp, r8d
mov r12, rdx
mov rdi, rcx
je 0x14000657c
lea rcx, [0x14003ded0]
lea rdx, [0x14003ef10]
mov r8d, 0x410
call fcn.1400149b0
lea rcx, [0x14003e2e0]
lea rdx, [0x14003f320]
mov r8d, 0x410
call fcn.1400149b0
mov r11d, dword [0x14003b4c8]
mov eax, dword [0x14003b950]
jmp 0x1400065c8
cmp dword [0x14003f730], 0
jne case.default.0x140006606
lea rcx, [0x14003ded0]
lea rdx, [0x14003e6f0]
mov r8d, 0x410
call fcn.1400149b0
lea rcx, [0x14003e2e0]
lea rdx, [0x14003eb00]
mov r8d, 0x410
call fcn.1400149b0
mov r11d, dword [0x14003a6ac]
mov eax, dword [0x14003b92c]
mov dword [0x14003b4cc], eax
movzx eax, byte [r12]
mov dword [0x14003a6a8], r11d
cmp eax, 0x65
ja case.default.0x140006606
lea rdx, [0x140000000]
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rsi
movzx eax, byte [rdx + rax + 0x6b64]
mov ecx, dword [rdx + rax*4 + 0x6b30]
add rcx, rdx
jmp rcx
mov eax, 1
xchg dword [rdi + 0x234], eax
jmp case.0x140006606.3
cmp ebp, 0xc41
jne case.0x140006606.3
lea ecx, [rbp - 1]
call fcn.140014d40
lea r8d, [rbp - 1]
xor edx, edx
mov rcx, rax
mov rsi, rax
call fcn.140016c20
lea rdx, [r12 + 1]
lea r8d, [rbp - 1]
mov rcx, rsi
call fcn.1400149b0
mov rbx, qword [0x140040510]
mov r9, qword [0x140040518]
cmp rbx, r9
je 0x140006693
mov rax, qword [rbx]
lea r8, [rsi + 4]
mov rcx, qword [rax]
add rcx, 4
sub r8, rcx
movzx edx, word [rcx]
movzx eax, word [rcx + r8]
sub edx, eax
jne 0x140006686
add rcx, 2
test eax, eax
jne 0x140006672
test edx, edx
je 0x1400066e9
add rbx, 8
cmp rbx, r9
jne 0x140006661
mov ecx, 0xc41
call fcn.140014fb0
mov r8d, 0xc40
mov rdx, rsi
mov rbx, rax
mov byte [rax], 5
mov eax, 1
lea rcx, [rbx + 1]
mov dword [rsi + 0x400], eax
call fcn.1400149b0
mov rcx, qword [rdi + 8]
mov r8d, 0xc41
mov r9, qword [rcx]
mov rdx, rbx
call qword [r9 + reloc.WS2_32.dll_recv]
mov rcx, rsi
call fcn.140014990
mov rcx, rbx
call fcn.140014990
jmp case.0x140006606.3
mov rax, qword [rbx]
lea r8, [rsi + 0x202]
mov edx, 0xff
mov rcx, qword [rax]
add rcx, 0x202
call fcn.140015098
mov r9, qword [rbx]
xor edi, edi
lea r8, [0x140005e70]
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], edi
call fcn.140015630
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rsi
call fcn.140014990
jmp case.0x140006606.3
mov ecx, 0xc40
call fcn.140014d40
xor edx, edx
mov r8d, 0xc40
mov rcx, rax
mov rbp, rax
call fcn.140016c20
lea rdx, [r12 + 1]
mov rcx, rbp
mov r8d, 0xc40
call fcn.1400149b0
movsxd rsi, dword [r12 + 0xc41]
mov rcx, rsi
call fcn.140014fb0
lea rdx, [r12 + 0xc45]
mov r8, rsi
mov rcx, rax
mov rdi, rax
call fcn.1400149b0
mov ecx, reloc.WS2_32.dll_recv
call fcn.140014d40
mov r12, rax
mov qword [rsp + 0x68], rax
mov qword [rax], rbp
mov qword [rax + 8], rdi
mov rcx, qword [rax]
mov dword [rcx + 0x404], esi
mov rcx, qword [0x140040518]
mov r8, qword [0x140040510]
lea rax, [rsp + 0x68]
cmp rax, rcx
jae 0x140006882
lea rax, [rsp + 0x68]
cmp r8, rax
ja 0x140006882
mov rdx, qword [0x140040520]
lea rbx, [rsp + 0x68]
xor edi, edi
sub rbx, r8
sar rbx, 3
cmp rcx, rdx
jne 0x14000686d
mov rax, rcx
movabs r9, 0x1ffffffffffffffe
sub rax, r8
sar rax, 3
cmp rax, r9
jbe 0x14000681d
lea rcx, str.vector_T__too_long
call fcn.1400261e0
int3
sub rdx, r8
inc rax
sar rdx, 3
cmp rax, rdx
jbe 0x14000686d
mov r8, rdx
movabs rcx, 0x1fffffffffffffff
shr r8, 1
sub rcx, r8
cmp rcx, rdx
jae 0x140006849
mov rdx, rdi
jmp 0x14000684c
add rdx, r8
cmp rdx, rax
lea rcx, [0x140040510]
cmovb rdx, rax
call fcn.140007ca0
mov rcx, qword [0x140040518]
mov r8, qword [0x140040510]
test rcx, rcx
je 0x14000690e
mov rax, qword [r8 + rbx*8]
mov qword [rcx], rax
jmp 0x140006907
mov rdx, qword [0x140040520]
xor edi, edi
cmp rcx, rdx
jne 0x1400068ff
mov rax, rcx
movabs r9, 0x1ffffffffffffffe
sub rax, r8
sar rax, 3
cmp rax, r9
jbe 0x1400068b6
lea rcx, str.vector_T__too_long
call fcn.1400261e0
int3
sub rdx, r8
inc rax
sar rdx, 3
cmp rax, rdx
jbe 0x1400068ff
mov r8, rdx
movabs rcx, 0x1fffffffffffffff
shr r8, 1
sub rcx, r8
cmp rcx, rdx
jae 0x1400068e2
mov rdx, rdi
jmp 0x1400068e5
add rdx, r8
cmp rdx, rax
lea rcx, [0x140040510]
cmovb rdx, rax
call fcn.140007ca0
mov rcx, qword [0x140040518]
test rcx, rcx
je 0x14000690e
mov qword [rcx], r12
mov rcx, qword [0x140040518]
add rcx, 8
mov qword [rsp + 0x28], rdi
mov r9, r12
mov qword [0x140040518], rcx
lea r8, [0x140005e70]
jmp 0x140006a13
call fcn.140006bd0
mov rbx, qword [0x14003d668]
mov ecx, 0x200
call fcn.140014d40
xor edx, edx
mov r8d, 0x200
mov rcx, rax
mov rdi, rax
call fcn.140016c20
lea r9, [0x14002ea80]
jmp 0x140006a8b
mov ecx, 0xc40
call fcn.140014d40
xor edx, edx
mov r8d, 0xc40
mov rcx, rax
mov rsi, rax
call fcn.140016c20
lea r11d, [rbp - 1]
mov ecx, r11d
mov ebx, r11d
call fcn.140014fb0
lea rdx, [r12 + 1]
mov r8d, ebx
mov rcx, rax
mov rdi, rax
call fcn.1400149b0
mov ecx, reloc.WS2_32.dll_recv
call fcn.140014d40
lea ecx, [rbp - 1]
lea r8, [0x140005e70]
mov qword [rax], rsi
mov qword [rax + 8], rdi
mov dword [rsi + 0x404], ecx
mov rcx, qword [rax]
xor edi, edi
mov r9, rax
mov dword [rcx], 2
mov qword [rsp + 0x28], rdi
jmp 0x140006a13
mov rcx, rdi
call fcn.140006cf0
jmp case.0x140006606.3
mov r8d, ebp
mov rdx, r12
mov rcx, rdi
call fcn.140006ee0
jmp case.0x140006606.3
lea rax, [rsp + 0x50]
xor edi, edi
lea r9, [r12 + 1]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x50], edi
lea r8, [0x140007930]
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], edi
call fcn.140015630
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp case.0x140006606.3
mov edx, dword [r12 + 1]
mov rcx, rdi
call fcn.140007580
mov rbx, qword [0x14003d668]
mov ecx, 0x200
test eax, eax
je 0x140006a6c
call fcn.140014d40
xor edx, edx
mov r8d, 0x200
mov rcx, rax
mov rdi, rax
call fcn.140016c20
lea r9, [0x14002ea90]
jmp 0x140006a8b
call fcn.140014d40
xor edx, edx
mov r8d, 0x200
mov rcx, rax
mov rdi, rax
call fcn.140016c20
lea r9, [0x14002eaa0]
lea rax, [0x14002e220]
lea rcx, [rdi + 2]
lea r8, str._s__s_n
mov edx, 0xff
mov byte [rdi], 1
mov qword [rsp + 0x20], rax
call fcn.140014de4
mov rcx, qword [rbx + 8]
mov r8d, 0x200
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, rdi
call fcn.140014990
jmp case.0x140006606.3
movzx ecx, byte [r12 + 1]
test ecx, ecx
je 0x140006af0
dec ecx
jne case.0x140006606.3
lea r8, [r12 + 2]
lea rdx, str.BEIZHU
mov rcx, rdi
call fcn.140007850
jmp case.0x140006606.3
lea r8, [r12 + 2]
lea rdx, str.FENZU
mov rcx, rdi
call fcn.140007850
jmp case.0x140006606.3
mov eax, 1
mov dword [0x14003f730], eax
jmp case.0x140006606.3
xor edi, edi
mov dword [0x14003f730], edi
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x30
pop r12
pop rdi
pop rbp
ret