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, [0x1400378b0]
lea rdx, [0x1400388f0]
mov r8d, 0x410
call fcn.140011b20
lea rcx, [0x140037cc0]
lea rdx, [0x140038d00]
mov r8d, 0x410
call fcn.140011b20
mov r11d, dword [0x140035138]
mov eax, dword [0x1400355fc]
jmp 0x1400065c8
cmp dword [0x140039110], 0
jne case.default.0x140006606
lea rcx, [0x1400378b0]
lea rdx, [0x1400380d0]
mov r8d, 0x410
call fcn.140011b20
lea rcx, [0x140037cc0]
lea rdx, [0x1400384e0]
mov r8d, 0x410
call fcn.140011b20
mov r11d, dword [0x14003431c]
mov eax, dword [0x1400355f8]
mov dword [0x14003513c], eax
movzx eax, byte [r12]
mov dword [0x140034318], 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.140011eb0
lea r8d, [rbp - 1]
xor edx, edx
mov rcx, rax
mov rsi, rax
call fcn.140013cb0
lea rdx, [r12 + 1]
lea r8d, [rbp - 1]
mov rcx, rsi
call fcn.140011b20
mov rbx, qword [0x140039ef0]
mov r9, qword [0x140039ef8]
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.140012120
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.140011b20
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.140011b00
mov rcx, rbx
call fcn.140011b00
jmp case.0x140006606.3
mov rax, qword [rbx]
lea r8, [rsi + 0x202]
mov edx, 0xff
mov rcx, qword [rax]
add rcx, 0x202
call fcn.140012210
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.1400124e4
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rsi
call fcn.140011b00
jmp case.0x140006606.3
mov ecx, 0xc40
call fcn.140011eb0
xor edx, edx
mov r8d, 0xc40
mov rcx, rax
mov rbp, rax
call fcn.140013cb0
lea rdx, [r12 + 1]
mov rcx, rbp
mov r8d, 0xc40
call fcn.140011b20
movsxd rsi, dword [r12 + 0xc41]
mov rcx, rsi
call fcn.140012120
lea rdx, [r12 + 0xc45]
mov r8, rsi
mov rcx, rax
mov rdi, rax
call fcn.140011b20
mov ecx, reloc.WS2_32.dll_recv
call fcn.140011eb0
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 [0x140039ef8]
mov r8, qword [0x140039ef0]
lea rax, [rsp + 0x68]
cmp rax, rcx
jae 0x140006882
lea rax, [rsp + 0x68]
cmp r8, rax
ja 0x140006882
mov rdx, qword [0x140039f00]
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.140023350
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, [0x140039ef0]
cmovb rdx, rax
call fcn.140007d30
mov rcx, qword [0x140039ef8]
mov r8, qword [0x140039ef0]
test rcx, rcx
je 0x14000690e
mov rax, qword [r8 + rbx*8]
mov qword [rcx], rax
jmp 0x140006907
mov rdx, qword [0x140039f00]
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.140023350
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, [0x140039ef0]
cmovb rdx, rax
call fcn.140007d30
mov rcx, qword [0x140039ef8]
test rcx, rcx
je 0x14000690e
mov qword [rcx], r12
mov rcx, qword [0x140039ef8]
add rcx, 8
mov qword [rsp + 0x28], rdi
mov r9, r12
mov qword [0x140039ef8], rcx
lea r8, [0x140005e70]
jmp 0x140006a13
call fcn.140006bd0
mov rbx, qword [0x140037050]
mov ecx, 0x200
call fcn.140011eb0
xor edx, edx
mov r8d, 0x200
mov rcx, rax
mov rdi, rax
call fcn.140013cb0
lea r9, [0x14002a0a0]
jmp 0x140006a8b
mov ecx, 0xc40
call fcn.140011eb0
xor edx, edx
mov r8d, 0xc40
mov rcx, rax
mov rsi, rax
call fcn.140013cb0
lea r11d, [rbp - 1]
mov ecx, r11d
mov ebx, r11d
call fcn.140012120
lea rdx, [r12 + 1]
mov r8d, ebx
mov rcx, rax
mov rdi, rax
call fcn.140011b20
mov ecx, reloc.WS2_32.dll_recv
call fcn.140011eb0
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.140006f70
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, [0x1400079c0]
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], edi
call fcn.1400124e4
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp case.0x140006606.3
mov edx, dword [r12 + 1]
mov rcx, rdi
call fcn.140007610
mov rbx, qword [0x140037050]
mov ecx, 0x200
test eax, eax
je 0x140006a6c
call fcn.140011eb0
xor edx, edx
mov r8d, 0x200
mov rcx, rax
mov rdi, rax
call fcn.140013cb0
lea r9, [0x14002a0b0]
jmp 0x140006a8b
call fcn.140011eb0
xor edx, edx
mov r8d, 0x200
mov rcx, rax
mov rdi, rax
call fcn.140013cb0
lea r9, [0x14002a0c0]
lea rax, [0x1400298bc]
lea rcx, [rdi + 2]
lea r8, str._s__s_n
mov edx, 0xff
mov byte [rdi], 1
mov qword [rsp + 0x20], rax
call fcn.140011f54
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.140011b00
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.1400078e0
jmp case.0x140006606.3
lea r8, [r12 + 2]
lea rdx, str.FENZU
mov rcx, rdi
call fcn.1400078e0
jmp case.0x140006606.3
mov eax, 1
mov dword [0x140039110], eax
jmp case.0x140006606.3
xor edi, edi
mov dword [0x140039110], edi
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x30
pop r12
pop rdi
pop rbp
ret