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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x78]
sub rsp, 0x140
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
mov r12, r9
mov rax, r8
mov r13, rcx
add r8, 0x18
cmp qword [r8 + 0x18], 0x10
jb 0x18002ca35
mov r8, qword [r8]
mov r9d, dword [rax + 0x10]
lea rdx, str._s:_d
lea rcx, [rbp - 0x60]
call fcn.18000f45c
xor esi, esi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x30], sil
lea rax, [rbp - 0x60]
mov rbx, 0xffffffffffffffff
nop
inc rbx
cmp byte [rax + rbx], sil
jne 0x18002ca70
cmp rbx, 0xf
ja 0x18002caa4
mov qword [rsp + 0x40], rbx
mov r8, rbx
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x30]
call fcn.18009fc20
mov byte [rsp + rbx + 0x30], sil
mov r14, qword [rsp + 0x30]
jmp 0x18002cb4b
movabs rdi, 0x7fffffffffffffff
cmp rbx, rdi
ja 0x18002d568
mov rax, rbx
or rax, 0xf
cmp rax, rdi
jbe 0x18002caec
movabs rax, 0x8000000000000027
mov rcx, rax
call fcn.18009d1b8
test rax, rax
je 0x18002d74a
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x18002cb29
mov rdi, rax
mov ecx, socket
cmp rax, rcx
cmovb rdi, rcx
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x18002cb17
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18002d501
jmp 0x18002cacd
test rcx, rcx
je 0x18002cb26
call fcn.18009d1b8
mov r14, rax
jmp 0x18002cb29
mov r14, rsi
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rdi
mov r8, rbx
lea rdx, [rbp - 0x60]
mov rcx, r14
call fcn.18009fc20
mov byte [r14 + rbx], sil
mov qword [rsp + 0x30], r14
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov rax, rdx
sub rax, rcx
mov ebx, 0x202c
cmp rax, 2
jb 0x18002cb87
lea rax, [rcx + 2]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x30]
cmp rdx, 0x10
cmovae rax, r14
mov word [rax + rcx], bx
mov byte [rax + rcx + 2], 0
jmp 0x18002cba8
mov qword [rsp + 0x20], 2
lea r9, [0x1800eb2e0]
xor r8d, r8d
lea edx, [r8 + 2]
lea rcx, [rsp + 0x30]
call fcn.1800037a0
lea rcx, [r13 + 0x28]
lea rdx, [rsp + 0x60]
call fcn.18001df90
nop
lea r9, [rsp + 0x60]
mov rdi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x78]
cmp r15, 0x10
cmovae r9, rdi
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov rax, rdx
sub rax, rcx
mov r14, qword [rsp + 0x70]
cmp r14, rax
ja 0x18002cc1d
lea rax, [r14 + rcx]
mov qword [rsp + 0x40], rax
lea rbx, [rsp + 0x30]
cmp rdx, 0x10
cmovae rbx, qword [rsp + 0x30]
add rbx, rcx
mov r8, r14
mov rdx, r9
mov rcx, rbx
call fcn.18009fc20
mov byte [r14 + rbx], 0
mov ebx, 0x202c
jmp 0x18002cc3c
mov qword [rsp + 0x20], r14
xor r8d, r8d
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.1800037a0
mov r15, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x60]
cmp r15, 0x10
jb 0x18002cc73
lea rdx, [r15 + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x18002cc6b
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002d56e
mov rcx, rdi
call fcn.18009d1f4
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov rax, rdx
sub rax, rcx
cmp rax, 2
jb 0x18002ccac
lea rax, [rcx + 2]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x30]
cmp rdx, 0x10
cmovae rax, qword [rsp + 0x30]
mov word [rax + rcx], bx
mov byte [rax + rcx + 2], 0
jmp 0x18002cccd
mov qword [rsp + 0x20], 2
lea r9, [0x1800eb2e0]
xor r8d, r8d
lea edx, [r8 + 2]
lea rcx, [rsp + 0x30]
call fcn.1800037a0
lea rdx, [rsp + 0x60]
mov rcx, r13
call fcn.18001ea60
nop
mov r9, rax
cmp qword [rax + 0x18], 0x10
jb 0x18002cce8
mov r9, qword [rax]
mov rdi, qword [rax + 0x10]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov rax, rdx
sub rax, rcx
cmp rdi, rax
ja 0x18002cd30
lea rax, [rdi + rcx]
mov qword [rsp + 0x40], rax
lea rbx, [rsp + 0x30]
cmp rdx, 0x10
cmovae rbx, qword [rsp + 0x30]
add rbx, rcx
mov r8, rdi
mov rdx, r9
mov rcx, rbx
call fcn.18009fc20
mov byte [rbx + rdi], 0
jmp 0x18002cd46
mov qword [rsp + 0x20], rdi
xor r8d, r8d
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.1800037a0
nop
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x18002cd83
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002cd7e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002d574
call fcn.18009d1f4
mov edx, 4
movabs r8, 0xd993efbb19cfe32d
mov r14d, dword [0x18010bb98]
cmp byte [0x18010a364], 0
je 0x18002ce51
lea rbx, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rbx, qword [rsp + 0x30]
mov dword [rsp + 0x50], 0x7da18265
mov dword [rsp + 0x54], 0xb2f287c8
mov dword [rsp + 0x58], 0x3cefd948
mov word [rsp + 0x5c], 0xefc8
mov rcx, qword gs:[0x58]
mov rcx, qword [rcx + r14*8]
mov eax, dword [rdx + rcx]
cmp dword [0x18010d1b8], eax
jg 0x18002d507
jmp 0x18002cdfe
movabs r8, 0xd993efbb19cfe32d
lea rdx, [0x180105fb8]
cmp byte [0x180105fc6], 0
je 0x18002ce44
mov r9, rsi
nop dword [rax]
nop word [rax + rax]
movzx ecx, r9b
and cl, 7
shl cl, 3
mov rax, r8
shr rax, cl
xor byte [r9 + rdx], al
inc r9
cmp r9, 0xe
jb 0x18002ce20
mov byte [0x180105fc6], 0
mov r8, rbx
mov ecx, 5
call fcn.18006a848
mov r15d, 1
mov ebx, r15d
mov r13, qword [rbp + 0x88]
lea rdx, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rdx, qword [rsp + 0x30]
xor r9d, r9d
mov r8d, dword [rsp + 0x40]
mov rcx, r13
call qword [sym.imp.WS2_32.dll_send]
movsxd rdi, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [r12], eax
test edi, edi
jg 0x18002cf8d
cmp eax, 0x2733
je 0x18002ceaa
cmp eax, 0x2749
jne 0x18002cf8d
cmp byte [0x18010a364], 0
je 0x18002cf6f
movdqa xmm6, xmmword [0x1800ec650]
movdqa xmm7, xmmword [0x1800ec580]
movdqa xmm8, xmmword [0x1800ec8b0]
mov word [rbp - 0x70], 0xcd03
mov rcx, qword gs:[0x58]
mov edx, 4
mov rcx, qword [rcx + r14*8]
mov eax, dword [rdx + rcx]
cmp dword [0x18010d1d4], eax
jg 0x18002d57a
cmp byte [0x180105f23], 0
je 0x18002cf50
mov rdx, rsi
movabs r13, 0xd993efbb19cfe32d
lea r15, [0x180105ef0]
nop dword [rax]
nop dword [rax + rax]
movzx ecx, dl
and cl, 7
shl cl, 3
mov rax, r13
shr rax, cl
xor byte [rdx + r15], al
inc rdx
cmp rdx, 0x33
jb 0x18002cf20
mov byte [0x180105f23], 0
mov r15d, 1
mov r13, qword [rbp + 0x88]
mov eax, dword [r12]
mov dword [rsp + 0x20], eax
mov r9d, edi
mov r8, r13
lea rdx, [0x180105ef0]
mov ecx, 2
call fcn.18006a848
mov eax, ebx
imul eax, ebx
imul ecx, eax, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
cmp ebx, 5
jle 0x18002ce61
jmp 0x18002d05d
cmp byte [0x18010a364], 0
je 0x18002d05d
movdqa xmm6, xmmword [0x1800ebf00]
movdqa xmm7, xmmword [0x1800ec290]
movdqa xmm8, xmmword [0x1800ec770]
mov rcx, qword gs:[0x58]
mov edx, 4
mov rcx, qword [rcx + r14*8]
mov eax, dword [rdx + rcx]
cmp dword [0x18010d1b4], eax
jg 0x18002d5da
lea rbx, [0x180106100]
cmp byte [0x180106130], 0
je 0x18002d042
mov r10, rsi
mov r11, r15
sub r11, rbx
movabs r13, 0xd993efbb19cfe32d
nop word [rax + rax]
lea rdx, [r10 + rbx]
movzx ecx, r10b
and cl, 7
shl cl, 3
mov rax, r13
shr rax, cl
xor byte [rdx], al
lea ecx, [r11 + rdx]
and cl, 7
shl cl, 3
mov r8, r13
shr r8, cl
xor byte [rdx + 1], r8b
add r10, 2
cmp r10, 0x30
jb 0x18002d000
mov byte [0x180106130], 0
mov r13, qword [rbp + 0x88]
mov eax, dword [r12]
mov dword [rsp + 0x20], eax
mov r9d, edi
mov r8, r13
mov rdx, rbx
mov ecx, 2
call fcn.18006a848
cmp rdi, qword [rsp + 0x40]
jne 0x18002d262
cmp byte [0x18010a364], 0
je 0x18002d129
movdqa xmm6, xmmword [0x1800ec190]
movdqa xmm7, xmmword [0x1800ec360]
movdqa xmm8, xmmword [0x1800ec6d0]
mov dword [rbp - 0x70], 0x72ae8b5e
mov word [rbp - 0x6c], 0xefde
mov rcx, qword gs:[0x58]
mov edx, 4
mov rcx, qword [rcx + r14*8]
mov eax, dword [rdx + rcx]
cmp dword [0x18010d1c4], eax
jg 0x18002d62d
lea rbx, [0x180106310]
cmp byte [0x180106346], 0
je 0x18002d11c
mov r10, rsi
mov r11, r15
sub r11, rbx
movabs rdx, 0xd993efbb19cfe32d
nop
lea r9, [r10 + rbx]
movzx ecx, r10b
and cl, 7
shl cl, 3
mov rax, rdx
shr rax, cl
xor byte [r9], al
lea ecx, [r9 + r11]
and cl, 7
shl cl, 3
mov r8, rdx
shr r8, cl
xor byte [r9 + 1], r8b
add r10, 2
cmp r10, 0x36
jb 0x18002d0e0
mov byte [0x180106346], 0
mov rdx, rbx
mov ecx, 5
call fcn.18006a848
mov word [rbp + 0x90], 0
mov edi, r15d
mov ebx, 0x3e8
nop word [rax + rax]
xor r9d, r9d
mov r8d, r15d
lea rdx, [rbp + 0x90]
mov rcx, r13
call qword [sym.imp.WS2_32.dll_recv]
mov r14d, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [r12], eax
test r14d, r14d
jg 0x18002d358
cmp eax, 0x2733
jne 0x18002d358
cmp byte [0x18010a364], 0
je 0x18002d23f
movdqa xmm6, xmmword [0x1800ec650]
movdqa xmm7, xmmword [0x1800ec570]
movdqa xmm8, xmmword [0x1800ec8b0]
mov word [rbp - 0x70], 0xcd03
mov rcx, qword gs:[0x58]
mov eax, dword [0x18010bb98]
mov edx, 4
mov rcx, qword [rcx + rax*8]
mov eax, dword [rdx + rcx]
cmp dword [0x18010d1e8], eax
jg 0x18002d694
cmp byte [0x180105ee3], 0
je 0x18002d220
mov rdx, rsi
movabs r13, 0xd993efbb19cfe32d
lea r15, [0x180105eb0]
nop word [rax + rax]
movzx ecx, dl
and cl, 7
shl cl, 3
mov rax, r13
shr rax, cl
xor byte [rdx + r15], al
inc rdx
cmp rdx, 0x33
jb 0x18002d1f0
mov byte [0x180105ee3], 0
mov r15d, 1
mov r13, qword [rbp + 0x88]
mov eax, dword [r12]
mov dword [rsp + 0x20], eax
mov r9d, r14d
mov r8, r13
lea rdx, [0x180105eb0]
mov ecx, 2
call fcn.18006a848
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_Sleep]
inc edi
add ebx, 0x3e8
cmp ebx, 0x1388
jle 0x18002d140
mov r14d, dword [0x18010bb98]
cmp byte [0x18010a364], 0
je 0x18002d2ea
movdqa xmm6, xmmword [0x1800ec2b0]
movdqa xmm7, xmmword [0x1800ec120]
mov dword [rbp - 0x80], 0x37bd865b
mov rcx, qword gs:[0x58]
mov eax, r14d
mov edx, 4
mov rcx, qword [rcx + rax*8]
mov eax, dword [rdx + rcx]
cmp dword [0x18010d1bc], eax
jg 0x18002d6f4
lea rdx, [0x180105f30]
cmp byte [0x180105f55], 0
je 0x18002d2e0
movzx ecx, sil
and cl, 7
shl cl, 3
movabs rax, 0xd993efbb19cfe32d
shr rax, cl
xor byte [rsi + rdx], al
inc rsi
cmp rsi, 0x25
jb 0x18002d2b6
mov byte [0x180105f55], 0
mov ecx, 5
call fcn.18006a848
mov esi, 0xffffffff
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x18002d32c
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002d327
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002d74a
call fcn.18009d1f4
mov eax, esi
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp byte [0x18010a364], 0
je 0x18002d427
movdqa xmm6, xmmword [0x1800ec850]
movdqa xmm7, xmmword [0x1800ec450]
movdqa xmm8, xmmword [0x1800ec890]
mov word [rbp - 0x70], 0xe303
mov rcx, qword gs:[0x58]
mov eax, dword [0x18010bb98]
mov edx, 4
mov rcx, qword [rcx + rax*8]
mov eax, dword [rdx + rcx]
cmp dword [0x18010d198], eax
jg 0x18002d4a3
lea r11, [0x180105f80]
cmp byte [0x180105fb2], 0
je 0x18002d40c
mov r10, rsi
sub r15, r11
movabs rdx, 0xd993efbb19cfe32d
nop dword [rax + rax]
lea r9, [r10 + r11]
movzx ecx, r10b
and cl, 7
shl cl, 3
mov rax, rdx
shr rax, cl
xor byte [r9], al
lea ecx, [r9 + r15]
and cl, 7
shl cl, 3
mov r8, rdx
shr r8, cl
xor byte [r9 + 1], r8b
add r10, 2
cmp r10, 0x32
jb 0x18002d3d0
mov byte [0x180105fb2], 0
mov eax, dword [r12]
mov dword [rsp + 0x20], eax
mov r9d, r14d
mov r8, r13
mov rdx, r11
mov ecx, 2
call fcn.18006a848
cmp edi, 5
jg 0x18002d25b
cmp byte [rbp + 0x90], 0x2b
jne 0x18002d25b
cmp byte [0x18010a364], 0
je 0x18002d2ef
call fcn.18002d750
cmp byte [rax + 0x4b], 0
je 0x18002d491
mov r9, rsi
movabs r10, 0xd993efbb19cfe32d
nop dword [rax]
nop word [rax + rax]
movzx ecx, r9b
and cl, 7
shl cl, 3
mov r8, r10
shr r8, cl
xor byte [r9 + rax], r8b
inc r9
cmp r9, 0x4b
jb 0x18002d470
mov byte [rax + 0x4b], 0
mov rdx, rax
mov ecx, 5
call fcn.18006a848
jmp 0x18002d2ef
lea rcx, [0x18010d198]
call fcn.18009d704
cmp dword [0x18010d198], 0xffffffff
jne 0x18002d3ab
mov byte [0x180105fb2], 1
movaps xmmword [0x180105f80], xmm6
movaps xmmword [0x180105f90], xmm7
movaps xmmword [0x180105fa0], xmm8
movzx eax, word [rbp - 0x70]
mov word [0x180105fb0], ax
lea rcx, [0x1800ce090]
call fcn.18009d564
lea rcx, [0x18010d198]
call fcn.18009d6a4
jmp 0x18002d3ab
call fcn.180001df0
nop
lea rcx, [0x18010d1b8]
call fcn.18009d704
cmp dword [0x18010d1b8], 0xffffffff
jne 0x18002cdf4
mov byte [0x180105fc6], 1
movsd xmm0, qword [rsp + 0x50]
movsd qword [0x180105fb8], xmm0
mov eax, dword [rsp + 0x58]
mov dword [0x180105fc0], eax
movzx eax, word [rsp + 0x5c]
mov word [0x180105fc4], ax
lea rcx, [0x1800ce170]
call fcn.18009d564
lea rcx, [0x18010d1b8]
call fcn.18009d6a4
jmp 0x18002cdf4
call fcn.180001e88
nop
call fcn.1800a45b8
int3
call fcn.1800a45b8
int3
lea rcx, [0x18010d1d4]
call fcn.18009d704
cmp dword [0x18010d1d4], 0xffffffff
jne 0x18002cef7
mov word [0x180105f22], 0x1cf
movaps xmmword [0x180105ef0], xmm6
movaps xmmword [0x180105f00], xmm7
movaps xmmword [0x180105f10], xmm8
movzx eax, word [rbp - 0x70]
mov word [0x180105f20], ax
lea rcx, [0x1800ce140]
call fcn.18009d564
lea rcx, [0x18010d1d4]
call fcn.18009d6a4
jmp 0x18002cef7
lea rcx, [0x18010d1b4]
call fcn.18009d704
cmp dword [0x18010d1b4], 0xffffffff
jne 0x18002cfd4
mov byte [0x180106130], 1
movaps xmmword [0x180106100], xmm6
movaps xmmword [0x180106110], xmm7
movaps xmmword [0x180106120], xmm8
lea rcx, [0x1800ce120]
call fcn.18009d564
lea rcx, [0x18010d1b4]
call fcn.18009d6a4
jmp 0x18002cfd4
lea rcx, [0x18010d1c4]
call fcn.18009d704
cmp dword [0x18010d1c4], 0xffffffff
jne 0x18002d0bc
mov byte [0x180106346], 1
movaps xmmword [0x180106310], xmm6
movaps xmmword [0x180106320], xmm7
movaps xmmword [0x180106330], xmm8
mov eax, dword [rbp - 0x70]
mov dword [0x180106340], eax
movzx eax, word [rbp - 0x6c]
mov word [0x180106344], ax
lea rcx, [0x1800ce0f0]
call fcn.18009d564
lea rcx, [0x18010d1c4]
call fcn.18009d6a4
jmp 0x18002d0bc
lea rcx, [0x18010d1e8]
call fcn.18009d704
cmp dword [0x18010d1e8], 0xffffffff
jne 0x18002d1ca
mov word [0x180105ee2], 0x1cf
movaps xmmword [0x180105eb0], xmm6
movaps xmmword [0x180105ec0], xmm7
movaps xmmword [0x180105ed0], xmm8
movzx eax, word [rbp - 0x70]
mov word [0x180105ee0], ax
lea rcx, [0x1800ce0c0]
call fcn.18009d564
lea rcx, [0x18010d1e8]
call fcn.18009d6a4
jmp 0x18002d1ca
lea rcx, [0x18010d1bc]
call fcn.18009d704
cmp dword [0x18010d1bc], 0xffffffff
jne 0x18002d2a6
mov word [0x180105f54], 0x1bb
movaps xmmword [0x180105f30], xmm6
movaps xmmword [0x180105f40], xmm7
mov eax, dword [rbp - 0x80]
mov dword [0x180105f50], eax
lea rcx, [0x1800ce030]
call fcn.18009d564
lea rcx, [0x18010d1bc]
call fcn.18009d6a4
jmp 0x18002d2a6
call fcn.1800a45b8
int3