Function at 0x14001b6d0
Capabilities:
Encode data using xor
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r13
sub rsp, 0x1c0
mov rax, qword [0x1400a2078]
xor rax, rsp
mov qword [rsp + 0x190], rax
mov rax, qword [rsp + 0x210]
mov ebp, 2
mov qword [rsp + 0x68], rax
mov rbx, r9
mov rax, qword [rsp + 0x218]
mov rsi, r8
mov qword [rsp + 0x70], rax
mov rdi, rdx
mov rax, qword [rsp + 0x220]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x228]
movsxd r13, ecx
mov ecx, dword [0x1400aa9b4]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x230]
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x58], r13d
mov dword [rsp + 0x50], ebp
test ecx, ecx
jne 0x14001b768
call sub.KERNEL32.dll_GetCurrentProcessId
mov ecx, eax
mov dword [0x1400aa9b4], eax
mov rax, qword [0x1400aa958]
lea r8, str.St__s__lx__lx__s_s_s__s
mov qword [rsp + 0x48], rax
mov r9, rdi
mov qword [rsp + 0x40], rbx
mov edx, 0x100
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ecx
lea rcx, [rsp + 0x90]
mov dword [rsp + 0x20], 0x134b105
call fcn.140027a40
movsxd rbx, eax
cmp rbx, 0x100
jb 0x14001b7ce
mov r8, rdi
lea rcx, str.buf_too_small:_nbname____s__nsname____s_
mov rdx, rsi
call fcn.140019410
jmp 0x14001bdd4
lea r8, [rsp + 0x90]
xor edi, edi
add r8, rbx
lea rax, [rsp + 0x90]
lea rdx, [rsp + 0x90]
lea r9, [0x140000000]
cmp rax, r8
jae 0x14001b81e
nop word [rax + rax]
movzx ecx, byte [rdx]
mov eax, edi
xor rcx, rax
shr edi, 8
movzx eax, cl
inc rdx
xor edi, dword [r9 + rax*4 + 0x90090]
cmp rdx, r8
jb 0x14001b800
xor r9d, r9d
lea rdx, [rsp + 0x90]
mov r8d, ebx
mov rcx, r13
call qword [sym.imp.WS2_32.dll_send]
cmp ebx, eax
je 0x14001b84f
mov r8d, ebx
lea rcx, str.socket_write_returned__d_rather_than__d
mov edx, eax
call fcn.140019410
jmp 0x14001bdd4
mov rbx, qword [rsp + 0x60]
xor r9d, r9d
mov rdx, rbx
mov r8d, 0x7ff
mov rcx, r13
call qword [sym.imp.WS2_32.dll_recv]
movsxd rcx, eax
test eax, eax
js 0x14001b879
cmp rcx, 0x7ff
jbe 0x14001b87b
xor ecx, ecx
mov eax, ecx
lea rdx, [0x140092c08]
mov qword [rsp + 0x1b8], r12
mov r8d, 3
mov qword [rsp + 0x1b0], r14
mov rcx, rbx
mov qword [rsp + 0x1a8], r15
mov byte [rax + rbx], 0
call fcn.140051c70
test eax, eax
jne 0x14001bd7e
movzx ecx, byte [rbx + 3]
lea r10, [rbx + 3]
xor r14d, r14d
mov rax, r10
cmp cl, 0x20
jg 0x14001b8e3
nop dword [rax]
inc rax
test cl, cl
je 0x14001bdad
movzx ecx, byte [rax]
cmp cl, 0x20
jle 0x14001b8d0
movzx edx, cl
cmp edx, 0x20
jbe 0x14001b924
nop dword [rax + rax]
shl r14d, 4
lea ecx, [rdx - 0x30]
mov r8d, r14d
cmp ecx, 9
ja 0x14001b905
lea r14d, [rdx - 0x30]
jmp 0x14001b915
lea ecx, [rdx - 0x61]
cmp ecx, 5
ja 0x14001bdad
lea r14d, [rdx - 0x57]
movsx edx, byte [rax + 1]
inc rax
or r14d, r8d
cmp edx, 0x20
jg 0x14001b8f0
movzx ecx, byte [rax]
xor r8d, r8d
cmp cl, 0x20
jg 0x14001b943
nop
inc rax
test cl, cl
je 0x14001bdad
movzx ecx, byte [rax]
cmp cl, 0x20
jle 0x14001b930
movzx edx, cl
cmp edx, 0x20
jbe 0x14001b984
nop dword [rax + rax]
shl r8d, 4
lea ecx, [rdx - 0x30]
mov r9d, r8d
cmp ecx, 9
ja 0x14001b965
lea r8d, [rdx - 0x30]
jmp 0x14001b975
lea ecx, [rdx - 0x61]
cmp ecx, 5
ja 0x14001bdad
lea r8d, [rdx - 0x57]
movsx edx, byte [rax + 1]
inc rax
or r8d, r9d
cmp edx, 0x20
jg 0x14001b950
movzx ecx, byte [rax]
cmp cl, 0x20
jg 0x14001b9a3
nop dword [rax]
inc rax
test cl, cl
je 0x14001bdad
movzx ecx, byte [rax]
cmp cl, 0x20
jle 0x14001b990
mov dword [rsp + 0x54], 0
mov r12d, 1
cmp cl, 0x2d
jne 0x14001b9c7
inc rax
mov dword [rsp + 0x54], r12d
cmp byte [rax], 0x20
jle 0x14001bdad
movzx ecx, byte [rax]
xor r15d, r15d
cmp cl, 0x20
jg 0x14001b9e5
inc rax
test cl, cl
je 0x14001bdad
movzx ecx, byte [rax]
cmp cl, 0x20
jle 0x14001b9d2
movzx edx, cl
cmp edx, 0x20
jbe 0x14001ba24
nop dword [rax]
shl r15d, 4
lea ecx, [rdx - 0x30]
mov r9d, r15d
cmp ecx, 9
ja 0x14001ba05
lea r15d, [rdx - 0x30]
jmp 0x14001ba15
lea ecx, [rdx - 0x61]
cmp ecx, 5
ja 0x14001bdad
lea r15d, [rdx - 0x57]
movsx edx, byte [rax + 1]
inc rax
or r15d, r9d
cmp edx, 0x20
jg 0x14001b9f0
movzx ecx, byte [rax]
xor esi, esi
cmp cl, 0x20
jg 0x14001ba43
nop
inc rax
test cl, cl
je 0x14001bdad
movzx ecx, byte [rax]
cmp cl, 0x20
jle 0x14001ba30
movzx edx, cl
cmp edx, 0x20
jbe 0x14001ba81
nop dword [rax + rax]
shl esi, 4
lea ecx, [rdx - 0x30]
mov r9d, esi
cmp ecx, 9
ja 0x14001ba63
lea esi, [rdx - 0x30]
jmp 0x14001ba72
lea ecx, [rdx - 0x61]
cmp ecx, 5
ja 0x14001bdad
lea esi, [rdx - 0x57]
movsx edx, byte [rax + 1]
inc rax
or esi, r9d
cmp edx, 0x20
jg 0x14001ba50
cmp byte [rax], 0x20
lea r11, [rax + 1]
mov qword [rsp + 0x78], r11
jne 0x14001bdad
mov edx, esi
mov r9, r11
inc rdx
add rdx, rax
cmp r11, rdx
jae 0x14001bab5
cmp byte [r9], 0
je 0x14001bdad
inc r9
cmp r9, rdx
jb 0x14001baa3
movzx eax, byte [r9]
xor ebp, ebp
mov rdx, r9
cmp al, 0x20
jg 0x14001bad4
inc rdx
test al, al
je 0x14001bda9
movzx eax, byte [rdx]
cmp al, 0x20
jle 0x14001bac2
movzx ecx, al
cmp ecx, 0x20
jbe 0x14001bb11
nop dword [rax]
shl ebp, 4
lea eax, [rcx - 0x30]
mov r11d, ebp
cmp eax, 9
ja 0x14001baf3
lea ebp, [rcx - 0x30]
jmp 0x14001bb02
lea eax, [rcx - 0x61]
cmp eax, 5
ja 0x14001bda9
lea ebp, [rcx - 0x57]
movsx ecx, byte [rdx + 1]
inc rdx
or ebp, r11d
cmp ecx, 0x20
jg 0x14001bae0
cmp byte [rdx], 0
jne 0x14001bda9
cmp r10, r9
jae 0x14001bb54
lea r13, [0x140000000]
nop word [rax + rax]
movzx ecx, byte [r10]
mov eax, edi
xor rcx, rax
shr edi, 8
movzx eax, cl
inc r10
xor edi, dword [r13 + rax*4 + 0x90090]
cmp r10, r9
jb 0x14001bb30
mov r13d, dword [rsp + 0x58]
mov ecx, r8d
mov edx, r14d
shr ecx, 0x10
imul r9d, ecx, 0x41a7
mov eax, ecx
shl eax, 0x10
mov ecx, edi
sub r8d, eax
imul r11d, r8d, 0x41a7
mov r10d, r11d
shr r10d, 0x10
add r9d, r10d
shl r10d, 0x10
mov eax, r9d
shl r9d, 0x10
shr eax, 0xf
imul r8d, eax, 0x7fffffff
sub r9d, r8d
sub r9d, r10d
lea ebx, [r9 + r11]
lea eax, [rbx - 0x7fffffff]
test eax, eax
cmovns ebx, eax
call fcn.14001b5c0
mov r11d, eax
mov ecx, ebx
shr ecx, 0x10
xor r11d, ebx
imul edx, ecx, 0x41a7
mov eax, ecx
shl eax, 0x10
mov r10d, r12d
sub ebx, eax
imul r9d, ebx, 0x41a7
mov r8d, r9d
shr r8d, 0x10
add edx, r8d
shl r8d, 0x10
mov eax, edx
shl edx, 0x10
shr eax, 0xf
imul ecx, eax, 0x7fffffff
sub edx, ecx
sub edx, r8d
lea ebx, [rdx + r9]
mov r9d, 0x8000
lea eax, [rbx - 0x7fffffff]
test eax, eax
cmovns ebx, eax
mov r8d, ebx
nop dword [rax]
test r12b, r8b
je 0x14001bc3b
mov edx, r11d
mov ecx, r11d
and edx, r10d
and ecx, r9d
mov eax, edx
or eax, ecx
xor eax, r11d
mov r11d, eax
or r11d, r10d
test ecx, ecx
cmove r11d, eax
test edx, edx
je 0x14001bc3b
or r11d, r9d
shr r9d, 1
add r10d, r10d
shr r8d, 1
cmp r9d, r10d
ja 0x14001bc10
mov r9d, 0x80000000
mov r10d, r9d
test r8b, 1
je 0x14001bc7e
mov edx, r11d
mov ecx, r11d
and edx, r12d
and ecx, r10d
mov eax, edx
or eax, ecx
xor eax, r11d
mov r11d, eax
or r11d, r12d
test ecx, ecx
cmove r11d, eax
test edx, edx
je 0x14001bc7e
or r11d, r10d
shr r10d, 1
add r12d, r12d
shr r8d, 1
cmp r10d, r12d
ja 0x14001bc52
mov r10d, 0x10000
test r8b, 1
je 0x14001bcbe
mov edx, r11d
mov ecx, r11d
and edx, r10d
and ecx, r9d
mov eax, edx
or eax, ecx
xor eax, r11d
mov r11d, eax
or r11d, r10d
test ecx, ecx
cmove r11d, eax
test edx, edx
je 0x14001bcbe
or r11d, r9d
shr r9d, 1
add r10d, r10d
shr r8d, 1
cmp r9d, r10d
ja 0x14001bc92
cmp r11d, ebp
jne 0x14001bda4
mov ecx, ebx
xor ebp, ebp
shr ecx, 0x10
imul r8d, ecx, 0x41a7
mov eax, ecx
shl eax, 0x10
mov ecx, r11d
sub ebx, eax
imul r10d, ebx, 0x41a7
mov r9d, r10d
shr r9d, 0x10
add r8d, r9d
shl r9d, 0x10
mov eax, r8d
shl r8d, 0x10
shr eax, 0xf
imul edx, eax, 0x7fffffff
sub r8d, edx
sub r8d, r9d
lea edx, [r8 + r10]
lea eax, [rdx - 0x7fffffff]
test eax, eax
cmovns edx, eax
call fcn.14001b5c0
movsxd rdx, dword [0x1400aa92c]
lea r8, [0x140000000]
mov rcx, qword [rsp + 0x68]
mov dword [r8 + rdx*4 + 0xaa920], eax
inc edx
mov dword [0x1400aa92c], edx
test rcx, rcx
je 0x14001bdbc
mov eax, dword [rsp + 0x54]
mov dword [rcx], eax
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x80]
mov dword [rax], r15d
mov rax, qword [rsp + 0x78]
mov qword [rcx], rax
mov rax, qword [rsp + 0x88]
mov dword [rax], esi
jmp 0x14001bdbc
mov r8d, 4
lea rdx, str.No:
mov rcx, rbx
call fcn.140051c70
test eax, eax
jne 0x14001bdad
lea rdx, [rbx + 4]
lea rcx, str.ampl_lic:__s
jmp 0x14001bdb7
mov rbx, qword [rsp + 0x60]
mov ebp, dword [rsp + 0x50]
mov rdx, rbx
lea rcx, str.Bad_reply_from_ampl_lic:___s_
call fcn.140019410
mov r14, qword [rsp + 0x1b0]
mov r12, qword [rsp + 0x1b8]
mov r15, qword [rsp + 0x1a8]
movsxd rbx, r13d
mov edx, 2
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_shutdown]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
mov eax, ebp
mov rcx, qword [rsp + 0x190]
xor rcx, rsp
call fcn.140042470
add rsp, 0x1c0
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret