Function at 0x180066d70
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf]
sub rsp, 0xc8
mov rax, qword [0x180248b00]
xor rax, rsp
mov qword [rbp - 9], rax
movzx r12d, r9b
mov byte [rbp - 0x69], r12b
movzx r13d, r8b
mov byte [rbp - 0x68], r8b
mov rsi, rdx
mov rdi, rcx
cmp dword [rcx + 0xc], 1
jl 0x180066dc1
mov rcx, qword [rcx]
mov eax, dword [rdx + 0xc]
inc eax
mov dword [rcx + 0x1b8], eax
xor r14d, r14d
cmp dword [rdi + 8], 2
jl 0x180066eea
cmp byte [rdx + 0x38], r14b
jne 0x180066eea
mov rdx, qword [rdx + 0x20]
mov rcx, rdi
call fcn.180064910
mov rbx, rax
test rax, rax
je 0x180066eea
cmp qword [rdi + 0x50], r14
je 0x180066e45
mov r10, qword [rdi + 0x58]
cmp rax, r10
je 0x180066e45
mov r9, qword [rdi + 0x48]
dec r9
shr rax, 5
xor rax, rbx
shr rax, 4
and rax, r9
mov edx, r14d
mov r11, qword [rdi + 0x40]
nop dword [rax + rax]
imul rcx, rax, 0x38
add rcx, r11
mov r8, qword [rcx]
cmp r8, rbx
je 0x180066e48
cmp r8, r10
je 0x180066e45
inc rax
add rax, rdx
and rax, r9
inc rdx
cmp rdx, r9
jbe 0x180066e20
mov rcx, r14
lea r15, [rcx + 8]
test rcx, rcx
cmove r15, r14
test r15, r15
je 0x180066ea9
cmp byte [r15 + 0x2c], r14b
je 0x180066ea9
mov eax, dword [reloc.WS2_32.dll_getpeername]
mov ecx, dword [0x18029da00]
mov edx, dword [0x18029d9d0]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], edx
movzx eax, byte [rbp + 0x7f]
mov byte [rsp + 0x28], al
mov byte [rsp + 0x20], r12b
movzx r9d, r13b
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
call fcn.180065f00
test al, al
jne 0x180067889
cmp byte [r15 + 0x2c], r14b
jne 0x180066eea
cmp byte [rbx + 0x88], r14b
je 0x180066ebb
lea rdx, str.inlining_failed:_function_is_variadic
jmp 0x180066ee2
test r15, r15
jne 0x180066ec9
lea rdx, str.inlining_failed:_cant_inline_recursive_calls
jmp 0x180066ee2
cmp byte [rdi + 0x421], r14b
jne 0x180066edb
cmp byte [rdi + 0x422], r14b
je 0x180066eea
lea rdx, str.inlining_failed:_module_uses_getfenv_setfenv
mov rcx, qword [rdi]
call fcn.18005f040
mov qword [rbp - 0x29], rdi
mov r9d, dword [rdi + 0x40c]
mov dword [rbp - 0x59], r9d
mov dword [rbp - 0x21], r9d
movzx ecx, byte [rsi + 0x38]
mov r8d, dword [rsi + 0x30]
inc r8d
add r8d, ecx
cmp r8d, r12d
cmovb r8d, r12d
cmp byte [rbp + 0x77], 0
je 0x180066ff1
sub r8d, r12d
lea ecx, [r9 + r8]
cmp ecx, 0xff
ja 0x1800678d5
sub r9b, r12b
mov dword [rbp - 0x65], r9d
mov dword [rdi + 0x40c], ecx
mov eax, 0x410
cmp dword [rdi + 0x410], ecx
mov edx, 0x40c
cmovb eax, edx
add rax, rdi
mov eax, dword [rax]
mov dword [rdi + 0x410], eax
mov byte [rbp - 0x5d], 0
mov r15, 0xffffffffffffffff
mov r13d, r15d
cmp dword [rdi + 8], 1
jl 0x1800672d1
cmp byte [rsi + 0x38], 0
jne 0x1800672d1
cmp qword [rdi + 0x168], 0
je 0x18006738d
mov r10, qword [rdi + 0x170]
cmp rsi, r10
je 0x18006738d
mov r9, qword [rdi + 0x160]
dec r9
mov rax, rsi
shr rax, 5
xor rax, rsi
shr rax, 4
and rax, r9
mov rdx, r14
mov r11, qword [rdi + 0x158]
nop
mov rcx, rax
shl rcx, 4
add rcx, r11
mov r8, qword [rcx]
cmp r8, rsi
je 0x18006700a
cmp r8, r10
je 0x18006738d
inc rax
add rax, rdx
and rax, r9
inc rdx
cmp rdx, r9
jbe 0x180066fc0
jmp 0x18006738d
mov dword [rbp - 0x65], r9d
lea ecx, [r9 + r8]
cmp ecx, 0xff
ja 0x1800678be
jmp 0x180066f36
lea r12, [rcx + 8]
test rcx, rcx
cmove r12, r14
test r12, r12
je 0x1800672d1
mov r12d, dword [r12]
mov ebx, r12d
test r12d, r12d
js 0x180067100
mov rax, qword [rdi]
mov ecx, dword [rax + 0x2e0]
shr ecx, 4
test cl, 1
je 0x180067100
lea r9, [rdi + 0xb8]
lea r8, [rdi + 0x90]
mov rdx, qword [rsi + 0x20]
lea rcx, [rbp - 0x49]
call fcn.18005c300
movups xmm1, xmmword [rax]
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x180067083
mov rdx, qword [rsi + 0x28]
mov rdx, qword [rdx + rax*8 - 8]
mov rcx, rdi
call fcn.1800653b0
test al, al
je 0x180067083
mov cl, 1
jmp 0x180067085
xor cl, cl
movq r8, xmm1
psrldq xmm1, 8
test r8, r8
je 0x1800670ca
lea rdx, [0x18021774c]
lea rax, [0x1801c5ec9]
test cl, cl
cmovne rax, rdx
mov qword [rsp + 0x28], rax
mov eax, dword [rsi + 0x30]
mov dword [rsp + 0x20], eax
movq r9, xmm1
lea rdx, str.builtin__s._s__d_s
mov rcx, qword [rdi]
call fcn.18005f040
jmp 0x180067100
movq r8, xmm1
test r8, r8
je 0x180067100
lea rdx, [0x18021774c]
lea rax, [0x1801c5ec9]
test cl, cl
cmovne rax, rdx
mov qword [rsp + 0x20], rax
mov r9d, dword [rsi + 0x30]
lea rdx, str.builtin__s__d_s
mov rcx, qword [rdi]
call fcn.18005f040
cmp ebx, 0x39
jne 0x180067145
cmp byte [rbp + 0x7f], 0
jne 0x18006738d
cmp byte [rbp - 0x69], 1
jne 0x18006738d
mov eax, dword [rbp - 0x65]
mov byte [rsp + 0x30], al
mov byte [rsp + 0x28], 0
movzx eax, byte [rbp + 0x77]
mov byte [rsp + 0x20], al
mov r9b, 1
movzx r8d, byte [rbp - 0x68]
mov rdx, rsi
mov rcx, rdi
call fcn.1800656d0
jmp 0x180067880
mov r13d, ebx
cmp ebx, 0x22
jne 0x1800672d1
cmp qword [rsi + 0x30], 3
jne 0x1800672d1
mov r12, qword [rsi + 0x28]
mov rax, qword [r12 + 8]
mov qword [rbp - 0x19], rax
lea rcx, [rdi + 0xe0]
lea rdx, [rbp - 0x19]
call fcn.180072fc0
test rax, rax
je 0x1800672da
cmp dword [rax], 0
je 0x1800672da
mov rax, qword [r12 + 0x10]
mov qword [rbp - 0x19], rax
lea rdx, [rbp - 0x19]
lea rcx, [rdi + 0xe0]
call fcn.180072fc0
test rax, rax
je 0x1800672da
cmp dword [rax], 0
je 0x1800672da
mov rax, qword [r12 + 8]
mov qword [rbp - 0x19], rax
lea rcx, [rdi + 0xe0]
lea rdx, [rbp - 0x19]
call fcn.180072fc0
test rax, rax
je 0x1800671de
movups xmm2, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
jmp 0x1800671f2
mov qword [rbp - 0x49], r14
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x41], xmm0
movups xmm2, xmmword [rbp - 0x49]
unpckhpd xmm0, xmm0
movsd qword [rbp - 0x39], xmm0
mov rax, qword [r12 + 0x10]
mov qword [rbp - 0x19], rax
lea rcx, [rdi + 0xe0]
lea rdx, [rbp - 0x19]
call fcn.180072fc0
test rax, rax
je 0x18006721f
movups xmm1, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
jmp 0x180067233
mov qword [rbp - 0x49], r14
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x41], xmm0
movups xmm1, xmmword [rbp - 0x49]
unpckhpd xmm0, xmm0
movsd qword [rbp - 0x39], xmm0
movd eax, xmm2
cmp eax, 3
jne 0x18006724b
unpckhpd xmm2, xmm2
cvttsd2si edx, xmm2
jmp 0x18006724e
mov edx, r15d
movd eax, xmm1
cmp eax, 3
jne 0x180067261
unpckhpd xmm1, xmm1
cvttsd2si ecx, xmm1
jmp 0x180067264
mov ecx, r15d
test edx, edx
js 0x1800672d1
test ecx, ecx
jle 0x1800672d1
lea eax, [rcx + rdx]
cmp eax, 0x20
jg 0x1800672d1
shl ecx, 5
sub ecx, 0x20
or ecx, edx
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mov rcx, qword [rdi]
call fcn.18005e780
test eax, eax
js 0x1800678ec
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], 0x3b
mov eax, dword [rbp - 0x65]
mov byte [rsp + 0x30], al
movzx eax, byte [rbp + 0x7f]
mov byte [rsp + 0x28], al
movzx eax, byte [rbp + 0x77]
mov byte [rsp + 0x20], al
movzx r9d, byte [rbp - 0x69]
movzx r8d, byte [rbp - 0x68]
mov rdx, rsi
mov rcx, rdi
call fcn.180065a30
jmp 0x180067880
test r13d, r13d
js 0x18006738d
mov eax, 2
cmp qword [rsi + 0x30], 3
jne 0x180067328
mov rbx, r14
mov r12, qword [rsi + 0x28]
nop dword [rax]
mov rdx, qword [r12]
call fcn.18006ca80
test rax, rax
je 0x180067316
lea rcx, [rdi + 0x68]
lea rdx, [rax + 0x20]
call fcn.180073080
test rax, rax
je 0x180067316
cmp byte [rax + 1], 0
jne 0x18006735b
inc rbx
add r12, 8
cmp rbx, 3
jb 0x1800672f0
mov eax, 2
mov rcx, qword [rsi + 0x30]
cmp rcx, 1
jb 0x18006738d
cmp rcx, rax
ja 0x18006738d
mov rdx, qword [rsi + 0x28]
mov rdx, qword [rdx + rcx*8 - 8]
mov rcx, rdi
call fcn.1800653b0
test al, al
jne 0x180067362
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x38], r13d
jmp 0x1800672a0
mov eax, 3
jmp 0x180067328
cmp dword [rdi + 8], 2
jl 0x18006738d
mov edx, r13d
lea rcx, [rbp - 0x49]
call fcn.18005d750
movsd xmm0, qword [rax]
movsd qword [rbp - 0x19], xmm0
mov ecx, dword [rax + 8]
mov eax, dword [rbp - 0x19]
cmp dword [rsi + 0x30], eax
jne 0x18006738d
test cl, 1
jne 0x18006734c
cmp byte [rsi + 0x38], 0
je 0x180067419
mov rcx, qword [rsi + 0x20]
mov rdx, r14
mov eax, dword [0x1802a8b38]
cmp dword [rcx + 8], eax
cmove rdx, rcx
mov r12, qword [rdx + 0x20]
mov rdx, r12
call fcn.18006ca80
test rax, rax
je 0x1800673e9
lea rcx, [rdi + 0x68]
lea rdx, [rax + 0x20]
call fcn.180073080
test rax, rax
je 0x1800673de
cmp byte [rax + 1], 0
je 0x1800673de
movzx ecx, byte [rax]
mov dword [rbp - 0x5d], ecx
mov eax, ecx
jmp 0x1800673e5
mov eax, r15d
mov byte [rbp - 0x5d], 0xff
test eax, eax
jns 0x180067450
mov ecx, dword [rbp - 0x65]
mov byte [rbp - 0x5d], cl
mov qword [rbp - 0x49], rdi
mov ebx, dword [rdi + 0x40c]
mov dword [rbp - 0x41], ebx
movzx eax, cl
inc eax
mov dword [rdi + 0x40c], eax
movzx r8d, cl
mov rdx, r12
mov rcx, rdi
call fcn.18006bf40
nop
jmp 0x18006744a
test r13d, r13d
jns 0x180067450
mov rdx, qword [rsi + 0x20]
mov qword [rbp - 0x49], rdi
mov ebx, dword [rdi + 0x40c]
mov dword [rbp - 0x41], ebx
mov ecx, dword [rbp - 0x65]
movzx eax, cl
inc eax
mov dword [rdi + 0x40c], eax
movzx r8d, cl
mov rcx, rdi
call fcn.18006bf40
nop
mov dword [rdi + 0x40c], ebx
mov byte [rbp - 0x61], 0
mov rax, r14
mov rcx, qword [rsi + 0x30]
test rcx, rcx
je 0x1800674d7
mov r15d, dword [rbp - 0x65]
nop dword [rax]
nop dword [rax + rax]
lea r12, [rax + 1]
movzx r8d, al
add r8b, byte [rsi + 0x38]
mov rdx, qword [rsi + 0x28]
inc r8b
mov rdx, qword [rdx + rax*8]
add r8b, r15b
cmp r12, rcx
jne 0x18006749c
mov rcx, rdi
call fcn.180065570
mov byte [rbp - 0x61], al
jmp 0x1800674c4
mov qword [rbp - 0x49], rdi
mov ebx, dword [rdi + 0x40c]
mov dword [rbp - 0x41], ebx
movzx eax, r8b
inc eax
mov dword [rdi + 0x40c], eax
mov rcx, rdi
call fcn.18006bf40
nop
mov dword [rdi + 0x40c], ebx
mov rax, r12
mov rcx, qword [rsi + 0x30]
cmp r12, rcx
jb 0x180067470
mov r15, 0xffffffffffffffff
mov rax, qword [rsi + 0x20]
cmp dword [rdi + 0xc], 1
jl 0x1800674ef
mov rcx, qword [rdi]
mov eax, dword [rax + 0x14]
inc eax
mov dword [rcx + 0x1b8], eax
cmp byte [rsi + 0x38], 0
je 0x1800676c1
mov rcx, qword [rsi + 0x20]
mov r12, r14
mov eax, dword [0x1802a8b38]
cmp dword [rcx + 8], eax
cmove r12, rcx
cmp dword [rdi + 0xc], 1
jl 0x180067523
mov rcx, qword [rdi]
mov eax, dword [r12 + 0x30]
inc eax
mov dword [rcx + 0x1b8], eax
mov rbx, qword [r12 + 0x28]
nop dword [rax + rax]
inc r15
cmp byte [rbx + r15], 0
jne 0x180067530
mov qword [rbp - 0x49], rbx
mov qword [rbp - 0x41], r15
lea rdx, [rbp - 0x49]
mov rcx, qword [rdi]
call fcn.18005ea60
mov dword [rbp - 0x19], eax
test eax, eax
js 0x1800678fd
mov r13, qword [rdi]
mov rdx, r15
test r15, r15
je 0x180067591
lea r8, [rbx - 1]
add r8, rdx
nop dword [rax + rax]
mov ecx, r15d
shl ecx, 5
mov eax, r15d
shr eax, 2
add ecx, eax
movzx eax, byte [r8]
add ecx, eax
xor r15d, ecx
lea r8, [r8 - 1]
sub rdx, 1
jne 0x180067570
movzx ecx, r15b
shl ecx, 8
movzx eax, byte [rbp - 0x5d]
or ecx, eax
shl ecx, 8
mov r15d, dword [rbp - 0x65]
movzx eax, r15b
or ecx, eax
shl ecx, 8
or ecx, 0x14
mov dword [rbp - 0x65], ecx
mov rdx, qword [r13 + 0x30]
cmp rdx, qword [r13 + 0x38]
je 0x1800675c7
mov dword [rdx], ecx
add qword [r13 + 0x30], 4
jmp 0x1800675d4
lea r8, [rbp - 0x65]
lea rcx, [r13 + 0x28]
call fcn.18004a840
lea rcx, [r13 + 0x40]
lea r8, [r13 + 0x1b8]
mov rdx, qword [r13 + 0x48]
cmp rdx, qword [r13 + 0x50]
je 0x1800675f5
mov eax, dword [r8]
mov dword [rdx], eax
add qword [r13 + 0x48], 4
jmp 0x1800675fa
call fcn.18004a840
mov rbx, qword [rdi]
mov eax, dword [rbp - 0x19]
mov dword [rbp - 0x19], eax
lea rcx, [rbx + 0x28]
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x18006761a
mov dword [rdx], eax
add qword [rbx + 0x30], 4
jmp 0x180067623
lea r8, [rbp - 0x19]
call fcn.18004a840
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x180067644
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x180067649
call fcn.18004a840
mov r11, qword [r12 + 0x20]
mov ecx, dword [r11 + 8]
mov rax, r14
cmp ecx, dword [0x1802a8b98]
cmove rax, r11
test rax, rax
jne 0x18006776b
mov rdx, r14
cmp ecx, dword [0x1802a8b58]
cmove rdx, r11
test rdx, rdx
jne 0x18006768c
mov rdx, r14
cmp ecx, dword [0x1802a8b80]
cmove rdx, r11
test rdx, rdx
je 0x18006769e
mov rdx, qword [rdx + 0x20]
call fcn.18006ca80
test rax, rax
jne 0x18006776b
movzx r8d, byte [rbp - 0x5d]
mov dword [rsp + 0x20], 2
mov r9d, 4
mov rdx, r11
mov rcx, rdi
call fcn.180070c10
jmp 0x18006776b
test r13d, r13d
js 0x180067767
mov rbx, qword [rdi]
lea rcx, [rbx + 0x28]
mov rdx, qword [rcx + 8]
mov r15, rdx
sub r15, qword [rcx]
sar r15, 2
movzx eax, r13b
shl eax, 8
or eax, 0x44
mov dword [rbp - 0x19], eax
cmp rdx, qword [rcx + 0x10]
je 0x1800676fb
mov dword [rdx], eax
add qword [rcx + 8], 4
jmp 0x180067704
lea r8, [rbp - 0x19]
call fcn.18004a840
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x180067725
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x18006772a
call fcn.18004a840
mov r9b, 1
movzx r8d, byte [rbp - 0x65]
mov rdx, qword [rsi + 0x20]
mov rcx, rdi
call fcn.18006b900
mov rax, qword [rdi]
mov rdx, qword [rax + 0x28]
mov rcx, qword [rax + 0x30]
sub rcx, rdx
sar rcx, 2
sub ecx, r15d
dec ecx
movzx eax, cl
cmp eax, ecx
jne 0x1800678a9
shl ecx, 0x18
or dword [rdx + r15*4], ecx
mov r15d, dword [rbp - 0x65]
mov rbx, qword [rdi]
movzx r12d, byte [rbp - 0x69]
cmp byte [rbp + 0x7f], 0
je 0x18006777d
xor cl, cl
jmp 0x180067782
lea ecx, [r12 + 1]
cmp byte [rbp - 0x61], 0
je 0x18006778c
xor al, al
jmp 0x180067795
movzx eax, byte [rsi + 0x38]
inc al
add al, byte [rsi + 0x30]
movzx ecx, cl
shl ecx, 8
movzx eax, al
or ecx, eax
shl ecx, 8
movzx eax, r15b
or ecx, eax
shl ecx, 8
or ecx, 0x15
mov dword [rbp - 0x19], ecx
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x1800677c5
mov dword [rdx], ecx
add qword [rbx + 0x30], 4
jmp 0x1800677d2
lea r8, [rbp - 0x19]
lea rcx, [rbx + 0x28]
call fcn.18004a840
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x1800677f3
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x1800677f8
call fcn.18004a840
cmp byte [rbp + 0x77], 0
jne 0x180067880
movzx esi, r12b
test r12b, r12b
je 0x180067880
movzx r12d, byte [rbp - 0x68]
mov rbx, qword [rdi]
lea eax, [r15 + r14]
movzx edx, al
shl edx, 8
lea eax, [r14 + r12]
movzx ecx, al
or edx, ecx
shl edx, 8
or edx, 6
mov dword [rbp - 0x19], edx
lea rcx, [rbx + 0x28]
mov rax, qword [rbx + 0x30]
cmp rax, qword [rbx + 0x38]
je 0x180067846
mov dword [rax], edx
add qword [rbx + 0x30], 4
jmp 0x180067852
lea r8, [rbp - 0x19]
mov rdx, rax
call fcn.18004a840
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x180067873
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x180067878
call fcn.18004a840
inc r14
cmp r14, rsi
jb 0x180067810
mov eax, dword [rbp - 0x59]
mov dword [rdi + 0x40c], eax
mov rcx, qword [rbp - 9]
xor rcx, rsp
call fcn.18017a790
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rcx, qword [rsi + 0x20]
add rcx, 0xc
lea rdx, str.Exceeded_jump_distance_limit__simplify_the_code_to_compile
call fcn.1800642d0
int3
lea rcx, [rsi + 0xc]
mov r9d, 0xff
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.1800642d0
int3
lea rcx, [rsi + 0xc]
mov r9d, 0xff
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.1800642d0
int3
lea rcx, [rsi + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.1800642d0
int3
lea rcx, [r12 + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.1800642d0
int3