Function at 0x14018cbb0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
mov qword [rbp - 0x29], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
movaps xmmword [rax - 0x38], xmm6
mov edi, r9d
movaps xmm6, xmm2
mov rsi, rdx
mov r15, rcx
cmp qword [rcx + 0xa0], 0
je 0x14018de79
mov rax, qword [rcx - 0x10]
add rcx, 0xfffffffffffffff0
call qword [rax + 0x138]
mov rax, qword [r15 - 0x10]
mov r9b, 1
mov r8d, edi
mov rdx, rsi
lea rcx, [r15 - 0x10]
call qword [rax + pe_nt_image_headers64]
mov rcx, qword [r15 + 0x88]
mov rax, qword [rcx]
call qword [rax + gethostname]
mov r14, rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
mov ebx, eax
mov rdx, qword [r14]
mov rcx, r14
call qword [rdx + reloc.WS2_32.dll_recv]
lea rcx, vtable.artemis::TRect_int_.0
mov qword [rbp - 1], rcx
xor edi, edi
mov qword [rbp + 7], rdi
mov dword [rbp + 0xf], eax
mov dword [rbp + 0x13], ebx
lea ecx, [rax - 1]
mov dword [rbp + 0x17], ecx
lea eax, [rbx - 1]
mov dword [rbp + 0x1b], eax
lea rsi, [r15 + 0x2b8]
mov qword [rsp + 0x20], rdi
xor r9d, r9d
lea r8, [rbp - 1]
mov rdx, rsi
lea rcx, [rbp - 0x21]
call fcn.140122900
cmp byte [rbp - 9], dil
je 0x14018de79
mov rcx, qword [r15 + 0x88]
mov rax, qword [rcx]
call qword [rax + 0x50]
cmp eax, 1
jne 0x14018cd13
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + reloc.WS2_32.dll_htonl]
test eax, eax
jg 0x14018ccda
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + reloc.WS2_32.dll_recv]
test eax, eax
jg 0x14018ccda
mov ebx, dword [rbp + 0x17]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x28]
cmp eax, ebx
jl 0x14018ccda
mov ebx, dword [rbp + 0x1b]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
cmp eax, ebx
jge 0x14018ccec
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x58]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x78]
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
mov rcx, r14
call fcn.14017ec60
mov rcx, qword [r15 + 0x88]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x58]
jmp 0x14018de79
mulss xmm6, dword [0x1404106b8]
addss xmm6, dword [0x140410440]
movaps xmm0, xmm6
call fcn.1402960d0
cvttss2si ebx, xmm0
cmp qword [r15 + 0xb0], 0
jne 0x14018cd4a
mov rcx, qword [r15 + 0xa0]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov esi, eax
jmp 0x14018cd4f
mov esi, 2
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x20]
sub eax, 1
je 0x14018d28e
cmp eax, 1
jne 0x14018de79
mov ecx, dword [r15 + 0xf0]
test ecx, ecx
je 0x14018d224
sub ecx, eax
je 0x14018d089
sub ecx, eax
je 0x14018cf04
sub ecx, eax
je 0x14018cdfd
cmp ecx, eax
jne 0x14018de79
sub esi, eax
je 0x14018cdcf
cmp esi, eax
jne 0x14018de79
mov esi, 0xff
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
mov rcx, r14
cmp ebx, esi
jne 0x14018cdc2
call fcn.140181690
jmp 0x14018de79
mov r9d, ebx
call fcn.140181c70
jmp 0x14018de79
mov esi, 0xff
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
mov rcx, r14
cmp ebx, esi
jne 0x14018cdf0
call fcn.140180f00
jmp 0x14018de79
mov r9d, ebx
call fcn.1401810b0
jmp 0x14018de79
mov esi, 0xff
mov rcx, r14
cmp ebx, esi
jne 0x14018cee4
mov r12, qword [r15 + 0x2d8]
mov esi, dword [r15 + 0xf4]
mov eax, dword [rbp - 0x19]
lea ebx, [rax*4]
mov eax, dword [rbp - 0x21]
lea r15d, [rax*4]
mov rax, qword [r14]
call qword [rax + 0x58]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x58]
mov r13d, dword [rbp - 0xd]
test r13d, r13d
jle 0x14018de79
movsxd rbx, ebx
mov qword [rbp - 0x39], rbx
movsxd rax, r15d
mov qword [rbp + 0x67], rax
mov r15d, dword [rbp - 0x11]
nop
mov rax, qword [r14]
mov edx, dword [rbp - 0x15]
add edx, edi
mov rcx, r14
call qword [rax + 0x60]
add rbx, rax
mov rax, qword [r12]
mov edx, dword [rbp - 0x1d]
add edx, edi
mov rcx, r12
call qword [rax + 0x60]
mov r8, qword [rbp + 0x67]
add r8, rax
test r15d, r15d
jle 0x14018ced4
lea rcx, [r8 + 2]
mov rdx, rbx
sub rdx, r8
mov r9, r15
nop dword [rax]
mov r8d, dword [rcx - 2]
mov eax, r8d
and eax, 0xffffff
cmp eax, esi
je 0x14018cec6
mov byte [rbx], r8b
movzx eax, byte [rcx - 1]
mov byte [rdx + rcx - 1], al
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
mov byte [rdx + rcx + 1], 0xff
add rbx, 4
add rcx, 4
sub r9, 1
jne 0x14018cea0
inc edi
cmp edi, r13d
mov rbx, qword [rbp - 0x39]
jl 0x14018ce60
jmp 0x14018de79
mov dword [rsp + 0x20], ebx
mov r9d, dword [r15 + 0xf4]
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
call fcn.1401833b0
jmp 0x14018de79
sub esi, 1
je 0x14018cf40
cmp esi, 1
jne 0x14018de79
mov esi, 0xff
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
mov rcx, r14
cmp ebx, esi
jne 0x14018cf33
call fcn.140182ae0
jmp 0x14018de79
mov r9d, ebx
call fcn.140182d10
jmp 0x14018de79
mov esi, 0xff
mov rcx, r14
cmp ebx, esi
jne 0x14018d071
mov r15, qword [r15 + 0x2d8]
mov eax, dword [rbp - 0x19]
lea ebx, [rax*4]
mov eax, dword [rbp - 0x21]
lea r12d, [rax*4]
mov rax, qword [r14]
call qword [rax + 0x58]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x58]
mov r13d, dword [rbp - 0xd]
test r13d, r13d
jle 0x14018de79
movsxd rbx, ebx
mov qword [rbp - 0x39], rbx
movsxd rax, r12d
mov qword [rbp + 0x67], rax
mov r12d, dword [rbp - 0x11]
nop word [rax + rax]
mov rax, qword [r14]
mov edx, dword [rbp - 0x15]
add edx, edi
mov rcx, r14
call qword [rax + 0x60]
add rbx, rax
mov rax, qword [r15]
mov edx, dword [rbp - 0x1d]
add edx, edi
mov rcx, r15
call qword [rax + 0x60]
mov r9, qword [rbp + 0x67]
add r9, rax
test r12d, r12d
jle 0x14018d05d
sub r9, rbx
mov r10, r12
nop word [rax + rax]
movzx edx, byte [rbx + 3]
mov r8d, esi
sub r8d, edx
movzx ecx, byte [rbx + r9]
movzx eax, byte [rbx]
imul eax, edx
shr eax, 8
imul eax, ecx
shr eax, 8
imul ecx, r8d
sar ecx, 8
add al, cl
mov byte [rbx], al
movzx ecx, byte [rbx + r9 + 1]
movzx eax, byte [rbx + 1]
imul eax, edx
shr eax, 8
imul eax, ecx
shr eax, 8
imul ecx, r8d
sar ecx, 8
add al, cl
mov byte [rbx + 1], al
movzx eax, byte [rbx + r9 + 2]
movzx ecx, byte [rbx + 2]
imul ecx, edx
shr ecx, 8
imul ecx, eax
shr ecx, 8
imul r8d, eax
sar r8d, 8
add cl, r8b
mov byte [rbx + 2], cl
mov byte [rbx + 3], sil
lea rbx, [rbx + 4]
sub r10, 1
jne 0x14018cfe0
inc edi
cmp edi, r13d
mov rbx, qword [rbp - 0x39]
jl 0x14018cfa0
jmp 0x14018de79
mov r9d, ebx
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
call fcn.140182420
jmp 0x14018de79
sub esi, 1
je 0x14018d0c5
cmp esi, 1
jne 0x14018de79
mov esi, 0xff
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
mov rcx, r14
cmp ebx, esi
jne 0x14018d0b8
call fcn.1401804f0
jmp 0x14018de79
mov r9d, ebx
call fcn.140180780
jmp 0x14018de79
mov esi, 0xff
mov rcx, r14
cmp ebx, esi
jne 0x14018d20c
mov r15, qword [r15 + 0x2d8]
mov eax, dword [rbp - 0x19]
lea ebx, [rax*4]
mov eax, dword [rbp - 0x21]
lea r12d, [rax*4]
mov rax, qword [r14]
call qword [rax + 0x58]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x58]
mov r13d, dword [rbp - 0xd]
test r13d, r13d
jle 0x14018de79
movsxd rbx, ebx
mov qword [rbp - 0x39], rbx
movsxd rax, r12d
mov qword [rbp + 0x67], rax
mov r12d, dword [rbp - 0x11]
nop
mov rax, qword [r14]
mov edx, dword [rbp - 0x15]
add edx, edi
mov rcx, r14
call qword [rax + 0x60]
add rbx, rax
mov rax, qword [r15]
mov edx, dword [rbp - 0x1d]
add edx, edi
mov rcx, r15
call qword [rax + 0x60]
mov r10, qword [rbp + 0x67]
add r10, rax
test r12d, r12d
jle 0x14018d1f8
sub r10, rbx
mov r11, r12
nop word [rax + rax]
movzx ecx, byte [r10 + rbx]
movzx edx, byte [rbx]
add edx, ecx
movzx r8d, byte [rbx + 3]
mov r9d, esi
sub r9d, r8d
cmp edx, 0x100
cmovae edx, esi
imul edx, r8d
shr edx, 8
mov eax, r9d
imul eax, ecx
sar eax, 8
add dl, al
mov byte [rbx], dl
movzx ecx, byte [r10 + rbx + 1]
movzx edx, byte [rbx + 1]
add edx, ecx
cmp edx, 0x100
cmovae edx, esi
imul edx, r8d
shr edx, 8
mov eax, r9d
imul eax, ecx
sar eax, 8
add dl, al
mov byte [rbx + 1], dl
movzx eax, byte [r10 + rbx + 2]
movzx ecx, byte [rbx + 2]
add ecx, eax
cmp ecx, 0x100
cmovae ecx, esi
imul ecx, r8d
shr ecx, 8
imul r9d, eax
sar r9d, 8
add cl, r9b
mov byte [rbx + 2], cl
mov byte [rbx + 3], sil
lea rbx, [rbx + 4]
sub r11, 1
jne 0x14018d160
inc edi
cmp edi, r13d
mov rbx, qword [rbp - 0x39]
jl 0x14018d120
jmp 0x14018de79
mov r9d, ebx
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
call fcn.140180280
jmp 0x14018de79
sub esi, 1
je 0x14018d260
cmp esi, 1
jne 0x14018de79
mov esi, 0xff
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
mov rcx, r14
cmp ebx, esi
jne 0x14018d253
call fcn.14017f5b0
jmp 0x14018de79
mov r9d, ebx
call fcn.14017fb60
jmp 0x14018de79
mov esi, 0xff
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
mov rcx, r14
cmp ebx, esi
jne 0x14018d281
call fcn.14017efd0
jmp 0x14018de79
mov r9d, ebx
call fcn.14017f0c0
jmp 0x14018de79
mov ecx, dword [r15 + 0xf0]
test ecx, ecx
je 0x14018dd3c
sub ecx, 1
je 0x14018d995
sub ecx, 1
je 0x14018d63e
sub ecx, 1
je 0x14018d45b
cmp ecx, 1
jne 0x14018de79
sub esi, ecx
je 0x14018d2fb
cmp esi, ecx
jne 0x14018de79
mov esi, 0xff
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
mov rcx, r14
cmp ebx, esi
jne 0x14018d2ee
call fcn.140180ba0
jmp 0x14018de79
mov r9d, ebx
call fcn.140180d40
jmp 0x14018de79
mov esi, 0xff
mov rcx, r14
cmp ebx, esi
jne 0x14018d443
mov r12, qword [r15 + 0x2d8]
mov eax, dword [rbp - 0x19]
lea ebx, [rax*4]
mov eax, dword [rbp - 0x21]
lea r15d, [rax*4]
mov rax, qword [r14]
call qword [rax + 0x58]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x58]
cmp dword [rbp - 0xd], 0
jle 0x14018de79
movsxd rbx, ebx
mov qword [rbp - 0x39], rbx
movsxd r15, r15d
mov qword [rbp + 0x67], r15
mov r13d, dword [rbp - 0x11]
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r14]
mov edx, dword [rbp - 0x15]
add edx, edi
mov rcx, r14
call qword [rax + 0x60]
add rbx, rax
mov rax, qword [r12]
mov edx, dword [rbp - 0x1d]
add edx, edi
mov rcx, r12
call qword [rax + 0x60]
lea rcx, [rax + r15]
test r13d, r13d
jle 0x14018d42f
lea r10, [rcx + 2]
mov r11, rbx
sub r11, rcx
mov r15, r13
nop word [rax + rax]
movzx r9d, byte [r10 - 2]
movzx ecx, byte [rbx]
mov eax, r9d
imul eax, ecx
shr eax, 8
sub r9d, eax
add r9d, ecx
movzx ecx, byte [r10 - 1]
movzx r8d, byte [r11 + r10 - 1]
mov eax, r8d
imul eax, ecx
shr eax, 8
sub r8d, eax
add r8d, ecx
movzx ecx, byte [r10]
movzx edx, byte [r11 + r10]
mov eax, edx
imul eax, ecx
shr eax, 8
sub edx, eax
add edx, ecx
test r9d, 0xffffff00
movzx eax, r9b
cmovne eax, esi
mov byte [rbx], al
test r8d, 0xffffff00
movzx eax, r8b
cmovne eax, esi
mov byte [r11 + r10 - 1], al
test edx, 0xffffff00
movzx eax, dl
cmovne eax, esi
mov byte [r11 + r10], al
lea rbx, [rbx + 4]
lea r10, [r10 + 4]
sub r15, 1
jne 0x14018d3a0
mov r15, qword [rbp + 0x67]
inc edi
cmp edi, dword [rbp - 0xd]
mov rbx, qword [rbp - 0x39]
jl 0x14018d360
jmp 0x14018de79
mov r9d, ebx
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
call fcn.140180a00
jmp 0x14018de79
mov esi, 0xff
mov r12, qword [r15 + 0x2d8]
mov eax, dword [rbp - 0x19]
mov rcx, r14
cmp ebx, esi
jne 0x14018d53e
mov esi, dword [r15 + 0xf4]
lea ebx, [rax*4]
mov eax, dword [rbp - 0x21]
lea r15d, [rax*4]
mov rax, qword [r14]
call qword [rax + 0x58]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x58]
mov r13d, dword [rbp - 0xd]
test r13d, r13d
jle 0x14018de79
movsxd rbx, ebx
mov qword [rbp - 0x39], rbx
movsxd rax, r15d
mov qword [rbp + 0x67], rax
mov r15d, dword [rbp - 0x11]
nop dword [rax]
mov rax, qword [r14]
mov edx, dword [rbp - 0x15]
add edx, edi
mov rcx, r14
call qword [rax + 0x60]
add rbx, rax
mov rax, qword [r12]
mov edx, dword [rbp - 0x1d]
add edx, edi
mov rcx, r12
call qword [rax + 0x60]
mov rdx, qword [rbp + 0x67]
add rdx, rax
test r15d, r15d
jle 0x14018d52e
lea rcx, [rdx + 2]
mov r8, rbx
sub r8, rdx
mov r9, r15
nop dword [rax]
mov edx, dword [rcx - 2]
mov eax, edx
and eax, 0xffffff
cmp eax, esi
je 0x14018d520
mov byte [rbx], dl
movzx eax, byte [rcx - 1]
mov byte [r8 + rcx - 1], al
movzx eax, byte [rcx]
mov byte [r8 + rcx], al
add rbx, 4
add rcx, 4
sub r9, 1
jne 0x14018d500
inc edi
cmp edi, r13d
mov rbx, qword [rbp - 0x39]
jl 0x14018d4c0
jmp 0x14018de79
mov r15d, dword [r15 + 0xf4]
lea esi, [rax*4]
mov eax, dword [rbp - 0x21]
lea r13d, [rax*4]
mov rax, qword [r14]
call qword [rax + 0x58]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x58]
cmp dword [rbp - 0xd], 0
jle 0x14018de79
movsxd rsi, esi
mov qword [rbp - 0x39], rsi
movsxd rax, r13d
mov qword [rbp + 0x67], rax
mov r13d, dword [rbp - 0x11]
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r14]
mov edx, dword [rbp - 0x15]
add edx, edi
mov rcx, r14
call qword [rax + 0x60]
add rsi, rax
mov rax, qword [r12]
mov edx, dword [rbp - 0x1d]
add edx, edi
mov rcx, r12
call qword [rax + 0x60]
mov rdx, qword [rbp + 0x67]
add rdx, rax
test r13d, r13d
jle 0x14018d62a
sub rdx, rsi
mov r9, r13
nop dword [rax]
nop word [rax + rax]
mov r8d, dword [rdx + rsi]
mov eax, r8d
and eax, 0xffffff
cmp eax, r15d
je 0x14018d620
movzx ecx, byte [rsi]
movzx eax, r8b
sub eax, ecx
imul eax, ebx
sar eax, 8
add al, cl
mov byte [rsi], al
movzx eax, byte [rsi + 1]
movzx ecx, byte [rdx + rsi + 1]
sub ecx, eax
imul ecx, ebx
sar ecx, 8
add cl, al
mov byte [rsi + 1], cl
movzx ecx, byte [rsi + 2]
movzx eax, byte [rdx + rsi + 2]
sub eax, ecx
imul eax, ebx
sar eax, 8
add al, cl
mov byte [rsi + 2], al
add rsi, 4
sub r9, 1
jne 0x14018d5d0
inc edi
cmp edi, dword [rbp - 0xd]
mov rsi, qword [rbp - 0x39]
jl 0x14018d590
jmp 0x14018de79
sub esi, 1
je 0x14018d7a9
cmp esi, 1
jne 0x14018de79
mov esi, 0xff
mov rcx, r14
cmp ebx, esi
jne 0x14018d791
mov rsi, qword [r15 + 0x2d8]
mov eax, dword [rbp - 0x19]
lea ebx, [rax*4]
mov eax, dword [rbp - 0x21]
lea r15d, [rax*4]
mov rax, qword [r14]
call qword [rax + 0x58]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x58]
mov r12d, dword [rbp - 0xd]
test r12d, r12d
jle 0x14018de79
movsxd r13, ebx
movsxd rax, r15d
mov qword [rbp + 0x67], rax
mov r15d, dword [rbp - 0x11]
nop word [rax + rax]
mov rax, qword [r14]
mov edx, dword [rbp - 0x15]
add edx, edi
mov rcx, r14
call qword [rax + 0x60]
lea rbx, [rax + r13]
mov rax, qword [rsi]
mov edx, dword [rbp - 0x1d]
add edx, edi
mov rcx, rsi
call qword [rax + 0x60]
mov rcx, qword [rbp + 0x67]
add rcx, rax
test r15d, r15d
jle 0x14018d781
lea rdx, [rcx + 3]
mov r10, rbx
sub r10, rcx
mov r9, r15
nop dword [rax]
movzx r8d, byte [rdx]
test r8b, r8b
je 0x14018d76f
movzx eax, byte [rdx - 3]
not al
movzx ecx, al
movzx eax, r8b
imul ecx, eax
xor ecx, 0xff00
sar ecx, 8
movzx eax, byte [rbx]
imul ecx, eax
sar ecx, 8
mov byte [rbx], cl
movzx eax, byte [rdx - 2]
not al
movzx ecx, al
movzx eax, byte [rdx]
imul ecx, eax
xor ecx, 0xff00
sar ecx, 8
movzx eax, byte [r10 + rdx - 2]
imul ecx, eax
sar ecx, 8
mov byte [r10 + rdx - 2], cl
movzx eax, byte [rdx - 1]
not al
movzx ecx, al
movzx eax, byte [rdx]
imul ecx, eax
xor ecx, 0xff00
sar ecx, 8
movzx eax, byte [r10 + rdx - 1]
imul ecx, eax
sar ecx, 8
mov byte [r10 + rdx - 1], cl
add rbx, 4
add rdx, 4
sub r9, 1
jne 0x14018d6f0
inc edi
cmp edi, r12d
jl 0x14018d6b0
jmp 0x14018de79
mov r9d, ebx
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
call fcn.140182290
jmp 0x14018de79
mov esi, 0xff
mov eax, dword [rbp - 0x19]
mov rcx, r14
cmp ebx, esi
jne 0x14018d88d
mov rsi, qword [r15 + 0x2d8]
lea ebx, [rax*4]
mov eax, dword [rbp - 0x21]
lea r15d, [rax*4]
mov dword [rbp + 0x67], r15d
mov rax, qword [r14]
call qword [rax + 0x58]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x58]
mov r12d, dword [rbp - 0xd]
test r12d, r12d
jle 0x14018de79
movsxd r13, ebx
mov r15d, dword [rbp - 0x11]
nop dword [rax]
mov rax, qword [r14]
mov edx, dword [rbp - 0x15]
add edx, edi
mov rcx, r14
call qword [rax + 0x60]
lea rbx, [rax + r13]
mov rax, qword [rsi]
mov edx, dword [rbp - 0x1d]
add edx, edi
mov rcx, rsi
call qword [rax + 0x60]
movsxd rdx, dword [rbp + 0x67]
add rdx, rax
test r15d, r15d
jle 0x14018d87d
sub rdx, rbx
mov r8, r15
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rdx + rbx]
movzx eax, byte [rbx]
imul ecx, eax
shr ecx, 8
mov byte [rbx], cl
movzx ecx, byte [rdx + rbx + 1]
movzx eax, byte [rbx + 1]
imul ecx, eax
shr ecx, 8
mov byte [rbx + 1], cl
movzx ecx, byte [rdx + rbx + 2]
movzx eax, byte [rbx + 2]
imul ecx, eax
shr ecx, 8
mov byte [rbx + 2], cl
lea rbx, [rbx + 4]
sub r8, 1
jne 0x14018d840
inc edi
cmp edi, r12d
jl 0x14018d800
jmp 0x14018de79
mov r15, qword [r15 + 0x2d8]
lea esi, [rax*4]
mov eax, dword [rbp - 0x21]
lea r12d, [rax*4]
mov rax, qword [r14]
call qword [rax + 0x58]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x58]
mov r13d, dword [rbp - 0xd]
test r13d, r13d
jle 0x14018de79
movsxd rsi, esi
mov qword [rbp - 0x39], rsi
movsxd rax, r12d
mov qword [rbp + 0x67], rax
mov r12d, dword [rbp - 0x11]
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [r14]
mov edx, dword [rbp - 0x15]
add edx, edi
mov rcx, r14
call qword [rax + 0x60]
add rsi, rax
mov rax, qword [r15]
mov edx, dword [rbp - 0x1d]
add edx, edi
mov rcx, r15
call qword [rax + 0x60]
mov rdx, qword [rbp + 0x67]
add rdx, rax
test r12d, r12d
jle 0x14018d981
sub rdx, rsi
mov r8, r12
movzx eax, byte [rdx + rsi]
not al
movzx ecx, al
imul ecx, ebx
xor ecx, 0xff00
sar ecx, 8
movzx eax, byte [rsi]
imul ecx, eax
sar ecx, 8
mov byte [rsi], cl
movzx eax, byte [rdx + rsi + 1]
not al
movzx ecx, al
imul ecx, ebx
xor ecx, 0xff00
sar ecx, 8
movzx eax, byte [rsi + 1]
imul ecx, eax
sar ecx, 8
mov byte [rsi + 1], cl
movzx eax, byte [rdx + rsi + 2]
not al
movzx ecx, al
imul ecx, ebx
xor ecx, 0xff00
sar ecx, 8
movzx eax, byte [rsi + 2]
imul ecx, eax
sar ecx, 8
mov byte [rsi + 2], cl
lea rsi, [rsi + 4]
sub r8, 1
jne 0x14018d911
inc edi
cmp edi, r13d
mov rsi, qword [rbp - 0x39]
jl 0x14018d8e0
jmp 0x14018de79
sub esi, 1
je 0x14018dafb
cmp esi, 1
jne 0x14018de79
mov esi, 0xff
mov rcx, r14
cmp ebx, esi
jne 0x14018dae3
mov r12, qword [r15 + 0x2d8]
mov eax, dword [rbp - 0x19]
lea ebx, [rax*4]
mov eax, dword [rbp - 0x21]
lea r15d, [rax*4]
mov rax, qword [r14]
call qword [rax + 0x58]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x58]
cmp dword [rbp - 0xd], 0
jle 0x14018de79
movsxd rbx, ebx
mov qword [rbp - 0x39], rbx
movsxd r15, r15d
mov qword [rbp + 0x67], r15
mov r13d, dword [rbp - 0x11]
nop
mov rax, qword [r14]
mov edx, dword [rbp - 0x15]
add edx, edi
mov rcx, r14
call qword [rax + 0x60]
add rbx, rax
mov rax, qword [r12]
mov edx, dword [rbp - 0x1d]
add edx, edi
mov rcx, r12
call qword [rax + 0x60]
lea rcx, [rax + r15]
test r13d, r13d
jle 0x14018dacf
lea r10, [rcx + 1]
mov r11, rbx
sub r11, rcx
mov r15, r13
nop word [rax + rax]
movzx eax, byte [r10 + 2]
test al, al
je 0x14018dab9
movzx edx, al
movzx r8d, byte [r10 - 1]
imul r8d, edx
shr r8d, 8
movzx eax, byte [rbx]
add r8d, eax
movzx r9d, byte [r10]
imul r9d, edx
shr r9d, 8
movzx eax, byte [r10 + r11]
add r9d, eax
movzx ecx, byte [r10 + 1]
imul ecx, edx
shr ecx, 8
movzx eax, byte [r10 + r11 + 1]
add ecx, eax
movzx eax, r8b
cmp r8d, 0x100
cmovae eax, esi
mov byte [rbx], al
movzx eax, r9b
cmp r9d, 0x100
cmovae eax, esi
mov byte [r10 + r11], al
movzx eax, cl
cmp ecx, 0x100
cmovae eax, esi
mov byte [r10 + r11 + 1], al
add rbx, 4
add r10, 4
sub r15, 1
jne 0x14018da40
mov r15, qword [rbp + 0x67]
inc edi
cmp edi, dword [rbp - 0xd]
mov rbx, qword [rbp - 0x39]
jl 0x14018da00
jmp 0x14018de79
mov r9d, ebx
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
call fcn.1401800e0
jmp 0x14018de79
mov esi, 0xff
mov eax, dword [rbp - 0x19]
mov rcx, r14
cmp ebx, esi
jne 0x14018dc2b
mov rbx, qword [r15 + 0x2d8]
mov qword [rbp - 0x39], rbx
lea r15d, [rax*4]
mov eax, dword [rbp - 0x21]
lea r12d, [rax*4]
mov rax, qword [r14]
call qword [rax + 0x58]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x58]
cmp dword [rbp - 0xd], 0
jle 0x14018de79
movsxd r15, r15d
mov qword [rbp - 0x31], r15
movsxd rax, r12d
mov qword [rbp + 0x67], rax
mov r13d, dword [rbp - 0x11]
nop word [rax + rax]
mov rax, qword [r14]
mov edx, dword [rbp - 0x15]
add edx, edi
mov rcx, r14
call qword [rax + 0x60]
lea r12, [rax + r15]
mov rax, qword [rbx]
mov edx, dword [rbp - 0x1d]
add edx, edi
mov rcx, rbx
call qword [rax + 0x60]
mov rcx, qword [rbp + 0x67]
add rcx, rax
test r13d, r13d
jle 0x14018dc1b
lea rbx, [rcx + 2]
mov r15, r12
sub r15, rcx
nop word [rax + rax]
movzx edx, byte [rbx - 2]
movzx eax, byte [r12]
add edx, eax
movzx r9d, byte [rbx - 1]
movzx r8d, byte [r15 + rbx - 1]
movzx r11d, byte [rbx]
movzx r10d, byte [r15 + rbx]
movzx eax, dl
cmp edx, 0x100
cmovae eax, esi
mov byte [r12], al
lea ecx, [r8 + r9]
add r8b, r9b
movzx eax, r8b
cmp ecx, 0x100
cmovae eax, esi
mov byte [r15 + rbx - 1], al
lea ecx, [r10 + r11]
add r10b, r11b
movzx eax, r10b
cmp ecx, 0x100
cmovae eax, esi
mov byte [r15 + rbx], al
lea r12, [r12 + 4]
lea rbx, [rbx + 4]
sub r13, 1
jne 0x14018dba0
mov rbx, qword [rbp - 0x39]
mov r13d, dword [rbp - 0x11]
mov r15, qword [rbp - 0x31]
inc edi
cmp edi, dword [rbp - 0xd]
jl 0x14018db60
jmp 0x14018de79
mov r12, qword [r15 + 0x2d8]
lea r15d, [rax*4]
mov eax, dword [rbp - 0x21]
lea r13d, [rax*4]
mov rax, qword [r14]
call qword [rax + 0x58]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x58]
cmp dword [rbp - 0xd], 0
jle 0x14018de79
movsxd r15, r15d
mov qword [rbp - 0x31], r15
movsxd rax, r13d
mov qword [rbp + 0x67], rax
mov r13d, dword [rbp - 0x11]
mov rax, qword [r14]
mov edx, dword [rbp - 0x15]
add edx, edi
mov rcx, r14
call qword [rax + 0x60]
add r15, rax
mov rax, qword [r12]
mov edx, dword [rbp - 0x1d]
add edx, edi
mov rcx, r12
call qword [rax + 0x60]
mov rcx, qword [rbp + 0x67]
add rcx, rax
test r13d, r13d
jle 0x14018dd28
lea r9, [rcx + 2]
mov r10, r15
sub r10, rcx
mov r11, r13
nop
movzx r8d, byte [r9 - 2]
imul r8d, ebx
sar r8d, 8
movzx eax, byte [r15]
add r8d, eax
movzx edx, byte [r9 - 1]
imul edx, ebx
sar edx, 8
movzx eax, byte [r10 + r9 - 1]
add edx, eax
movzx ecx, byte [r9]
imul ecx, ebx
sar ecx, 8
movzx eax, byte [r10 + r9]
add ecx, eax
test r8d, 0xffffff00
movzx eax, r8b
cmovne eax, esi
mov byte [r15], al
test edx, 0xffffff00
movzx eax, dl
cmovne eax, esi
mov byte [r10 + r9 - 1], al
test ecx, 0xffffff00
movzx eax, cl
cmovne eax, esi
mov byte [r10 + r9], al
lea r15, [r15 + 4]
lea r9, [r9 + 4]
sub r11, 1
jne 0x14018dcb0
inc edi
cmp edi, dword [rbp - 0xd]
mov r15, qword [rbp - 0x31]
jl 0x14018dc71
jmp 0x14018de79
sub esi, 1
je 0x14018dd78
cmp esi, 1
jne 0x14018de79
mov esi, 0xff
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
mov rcx, r14
cmp ebx, esi
jne 0x14018dd6b
call fcn.14017ed30
jmp 0x14018de79
mov r9d, ebx
call fcn.14017ee70
jmp 0x14018de79
mov esi, 0xff
mov rcx, r14
cmp ebx, esi
jne 0x14018dd99
lea r8, [rbp - 0x21]
mov rdx, qword [r15 + 0x2d8]
call fcn.14017ec60
jmp 0x14018de79
mov r15, qword [r15 + 0x2d8]
mov eax, dword [rbp - 0x19]
lea esi, [rax*4]
mov eax, dword [rbp - 0x21]
lea r12d, [rax*4]
mov rax, qword [r14]
call qword [rax + 0x58]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x58]
mov r13d, dword [rbp - 0xd]
test r13d, r13d
jle 0x14018de79
movsxd rsi, esi
mov qword [rbp - 0x31], rsi
movsxd rax, r12d
mov qword [rbp + 0x67], rax
mov r12d, dword [rbp - 0x11]
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r14]
mov edx, dword [rbp - 0x15]
add edx, edi
mov rcx, r14
call qword [rax + 0x60]
add rsi, rax
mov rax, qword [r15]
mov edx, dword [rbp - 0x1d]
add edx, edi
mov rcx, r15
call qword [rax + 0x60]
mov rdx, qword [rbp + 0x67]
add rdx, rax
test r12d, r12d
jle 0x14018de6a
sub rdx, rsi
mov r8, r12
movzx eax, byte [rsi]
movzx ecx, byte [rdx + rsi]
sub ecx, eax
imul ecx, ebx
sar ecx, 8
add cl, al
mov byte [rsi], cl
movzx eax, byte [rsi + 1]
movzx ecx, byte [rdx + rsi + 1]
sub ecx, eax
imul ecx, ebx
sar ecx, 8
add cl, al
mov byte [rsi + 1], cl
movzx eax, byte [rsi + 2]
movzx ecx, byte [rdx + rsi + 2]
sub ecx, eax
imul ecx, ebx
sar ecx, 8
add cl, al
mov byte [rsi + 2], cl
lea rsi, [rsi + 4]
sub r8, 1
jne 0x14018de21
inc edi
cmp edi, r13d
mov rsi, qword [rbp - 0x31]
jl 0x14018ddf0
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret