Function at 0x140094d9c
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xc0
mov r13, qword [0x140346028]
xor ebx, ebx
vmovaps xmmword [rax - 0x48], xmm6
mov rdi, rcx
vmovaps xmmword [rax - 0x58], xmm7
vmovaps xmmword [rax - 0x68], xmm8
vmovaps xmmword [rax - 0x78], xmm9
mov eax, dword [r13 + 0x1c90]
and byte [rcx + 0xbd], 0xfd
mov dword [rcx + 0xa0], eax
mov qword [rcx + 0x98], rbx
mov qword [rcx + 0x90], rbx
cmp qword [rcx + 0x10], rbx
jne 0x140094e06
call fcn.1400957ec
mov rcx, qword [rdi + 0x38]
mov r12d, 1
test rcx, rcx
je 0x140094e29
mov eax, dword [rdi + 8]
shr eax, 0xc
test r12b, al
je 0x140094e29
call fcn.140089560
mov qword [rdi + 0x38], rbx
mov edx, dword [rdi + 0x28]
mov r11d, 0x400
cmp edx, r12d
jg 0x140094f75
cmp qword [rdi + 0x10], rbx
jne 0x140094f75
test dword [rdi + 8], r11d
jne 0x140094f75
cmp qword [rdi + 0x18], rbx
jne 0x140094f75
cmp byte [r13 + 0xc9], bl
jne 0x140094f75
test edx, edx
je 0x140094f1d
mov rax, qword [rdi + 0x30]
mov rcx, qword [rax]
cmp byte [rcx + 0x30], bl
jne 0x140094f75
cmp edx, r12d
jne 0x140094f1d
mov rbx, qword [rax]
mov eax, dword [rdi + 0xb8]
and eax, 0xfffffebf
bts eax, 7
vmovsd xmm0, qword [rbx + 0x50]
and eax, 0xffffffd7
or eax, 0x10
and eax, 0xfffffffa
or eax, 2
vmovsd qword [rdi + 0x40], xmm0
vmovsd xmm1, qword [rbx + 0x60]
mov dword [rdi + 0xb8], eax
mov rax, qword [rdi + 0x80]
vmovsd qword [rdi + 0x48], xmm1
test rax, rax
je 0x140094edc
cmp qword [r13 + 0x1f50], rax
jne 0x140094edc
mov rcx, rbx
call fcn.140098934
mov rax, qword [rdi + 0x80]
test rax, rax
je 0x140094f1b
mov rdx, qword [rax + 0x38]
mov qword [rbx + 0x38], rdx
mov rax, qword [rdi + 0x80]
mov ecx, dword [rax + 0x40]
mov dword [rbx + 0x40], ecx
mov rax, qword [rdi + 0x80]
cmp byte [rax + 0xce], 0
je 0x140094f1b
mov qword [rdx + 0x88], rbx
mov byte [rbx + 0xce], r12b
xor ebx, ebx
mov rcx, rdi
call fcn.140092ff4
mov cl, byte [rdi + 0xbc]
and cl, 0xef
mov dword [rdi + 0xc], r12d
and cl, 0xf3
mov dword [rdi + 0xb4], ebx
mov byte [rdi + 0xbc], cl
mov eax, dword [r13 + 0x1c90]
mov dword [rdi + 0xa4], eax
test cl, 0x40
je 0x1400957b9
cmp dword [rdi + 0x28], r12d
jne 0x1400957b9
mov rdx, qword [rdi + 0x30]
mov rcx, rdi
mov rdx, qword [rdx]
call fcn.1400940b0
jmp 0x1400957b9
test byte [rdi + 0xbc], r12b
je 0x140094ffa
cmp qword [rdi + 0x80], rbx
jne 0x140094ffa
cmp qword [rdi + 0x10], rbx
jne 0x140094ffa
test dword [rdi + 8], r11d
jne 0x140094ffa
cmp qword [rdi + 0x18], rbx
jne 0x140094ffa
mov r8d, dword [rdi + 0xb0]
test r8d, r8d
je 0x140094fd7
mov ecx, ebx
cmp dword [rdi + 0x28], ebx
jle 0x140094fd7
mov rdx, qword [rdi + 0x30]
mov rax, qword [rdx]
cmp dword [rax + 8], r8d
je 0x140094fc7
add ecx, r12d
add rdx, 8
cmp ecx, dword [rdi + 0x28]
jl 0x140094fb0
jmp 0x140094fd7
mov rax, qword [rdi + 0x30]
movsxd rcx, ecx
mov rdx, qword [rax + rcx*8]
test rdx, rdx
jne 0x140094fde
mov rax, qword [rdi + 0x30]
mov rdx, qword [rax]
cmp byte [rdx + 0xe8], bl
jg 0x140094fee
cmp byte [rdx + 0xe9], bl
jle 0x140094ffa
mov dword [rdi + 0xc], 2
jmp 0x1400957b9
mov ecx, dword [rdi + 8]
mov r15d, ecx
or r15d, dword [rdi + 4]
mov r8d, dword [rdi + 0x28]
test r8d, r8d
jle 0x140095016
mov dl, 8
bt r15d, 0xe
jae 0x140095018
mov dl, bl
mov al, byte [rdi + 0xbc]
mov r10d, ebx
and al, 0xf7
or al, dl
and al, 0xfb
mov byte [rdi + 0xbc], al
test r8d, r8d
jle 0x140095084
mov r9, rbx
mov rax, qword [rdi + 0x30]
mov rdx, qword [r9 + rax]
lea r9, [r9 + 8]
mov al, byte [rdi + 0xbc]
mov cl, byte [rdx + 0xd8]
shl cl, 2
or cl, al
and al, 0xfb
and cl, 4
xor cl, al
mov byte [rdi + 0xbc], cl
cmp r8d, r12d
mov al, byte [rdx + 0x429]
setg cl
and al, 0xfe
or cl, al
add r10d, r12d
mov byte [rdx + 0x429], cl
mov r8d, dword [rdi + 0x28]
cmp r10d, r8d
jl 0x140095035
mov ecx, dword [rdi + 8]
bt r15d, 0xf
jae 0x140095092
and byte [rdi + 0xbc], 0xfb
shr ecx, 0xa
mov rsi, rbx
mov byte [rbp + 0x6f], bl
vxorps xmm9, xmm9, xmm9
test r12b, cl
je 0x1400950b1
mov rsi, qword [rdi + 0x80]
jmp 0x1400952e6
mov rax, qword [rdi + 0x10]
test rax, rax
jne 0x1400952b1
test byte [rdi + 0xbc], r12b
je 0x1400952c9
test r8d, r8d
jle 0x1400950d9
mov rax, qword [rdi + 0x30]
mov rdx, qword [rax]
jmp 0x1400950dc
mov rdx, rbx
mov eax, dword [rdi + 0xb8]
shl eax, 0x1d
sar eax, 0x1d
cmp eax, 2
jne 0x140095107
test rdx, rdx
je 0x14009513c
mov rax, qword [0x140346028]
or dword [rax + 0x1dc0], r12d
vmovsd xmm0, qword [rdx + 0x50]
jmp 0x14009511f
cmp eax, r12d
jne 0x14009513c
mov rax, qword [0x140346028]
or dword [rax + 0x1dc0], r12d
vmovsd xmm0, qword [rdi + 0x40]
mov byte [rax + 0x1dfc], r12b
mov dword [rax + 0x1dc4], r12d
mov qword [rax + 0x1ddc], rbx
vmovsd qword [rax + 0x1dd4], xmm0
mov eax, dword [rdi + 0xb8]
shl eax, 0x1a
sar eax, 0x1d
cmp eax, 2
jne 0x140095167
test rdx, rdx
je 0x14009518e
mov rax, qword [0x140346028]
or dword [rax + 0x1dc0], 2
vmovsd xmm0, qword [rdx + 0x60]
jmp 0x14009517f
cmp eax, r12d
jne 0x14009518e
mov rax, qword [0x140346028]
or dword [rax + 0x1dc0], 2
vmovsd xmm0, qword [rdi + 0x48]
mov dword [rax + 0x1dc8], r12d
vmovsd qword [rax + 0x1de4], xmm0
mov eax, dword [rdi + 0xb8]
and al, 0x38
cmp al, 0x10
jne 0x1400951c0
test rdx, rdx
je 0x1400951c0
mov rcx, qword [0x140346028]
mov al, byte [rdx + 0xd2]
or dword [rcx + 0x1dc0], 8
mov byte [rcx + 0x1dfd], al
mov dword [rcx + 0x1dcc], r12d
mov eax, dword [rdi + 0xb8]
and eax, 0x1c0
cmp eax, 0x80
jne 0x1400951ef
test rdx, rdx
je 0x1400951ef
mov rax, qword [0x140346028]
mov ecx, dword [rdx + 0x40]
bts dword [rax + 0x1dc0], 8
mov dword [rax + 0x1e24], ecx
mov rax, qword [0x140346028]
lea r8, str.DockNode__02X
mov edx, reloc.WS2_32.dll_sendto
lea rcx, [rbp - 0x39]
or dword [rax + 0x1dc0], r11d
vmovups ymm0, ymmword [rdi + 0x5c]
vmovups ymmword [rax + 0x1e2c], ymm0
mov r9d, dword [rdi]
vzeroupper
call fcn.140099d7c
lea rdx, [rbp + 0x67]
mov ecx, r12d
vmovss dword [rbp + 0x67], xmm9
vmovss dword [rbp + 0x6b], xmm9
call fcn.14009f788
xor edx, edx
lea rcx, [rbp - 0x39]
mov r8d, 0x20081139
call fcn.14008c08c
mov ecx, r12d
call fcn.14009f3e0
mov rsi, qword [r13 + 0x1d18]
mov qword [rdi + 0x80], rsi
mov byte [rbp + 0x6f], r12b
vmovss xmm0, dword [rsi + 0x50]
vmovss xmm1, dword [rsi + 0x54]
vmovss dword [rsi + 0x118], xmm0
vmovss dword [rsi + 0x11c], xmm1
mov qword [rsi + 0x450], rdi
mov rcx, qword [rdi + 0x80]
vmovss dword [rdi + 0x40], xmm0
vmovss dword [rdi + 0x44], xmm1
vmovsd xmm0, qword [rsi + 0x58]
vmovsd qword [rdi + 0x48], xmm0
cmp byte [rcx + 0xd5], bl
je 0x1400952bf
call fcn.14008f88c
jmp 0x1400952bf
mov rsi, qword [rax + 0x80]
mov qword [rdi + 0x80], rsi
and dword [rdi + 0xb8], 0xfffffe00
test byte [rdi + 0xbc], 0x40
je 0x1400952e6
mov rdx, qword [rdi + 0x80]
test rdx, rdx
je 0x1400952e6
mov rcx, rdi
call fcn.1400940b0
cmp qword [rdi + 0x10], rbx
jne 0x14009535c
mov rax, qword [r13 + 0x1f50]
test rax, rax
je 0x14009531c
mov rcx, qword [rax + 0x3d0]
mov rax, qword [rcx + 0x448]
test rax, rax
je 0x14009531c
cmp qword [rcx + 0x3c8], rsi
jne 0x14009531c
mov eax, dword [rax]
mov dword [rdi + 0xac], eax
test rsi, rsi
je 0x14009535c
test r15b, 8
je 0x14009535c
mov rdx, qword [rsi + 0x2f8]
mov r8d, 2
mov byte [rbp + 0x67], r12b
lea rcx, [rdx + 0xa8]
call fcn.1400ae6cc
mov rdx, qword [rsi + 0x2f8]
mov r8d, r12d
lea rcx, [rdx + 0xa8]
call fcn.1400ae5d0
jmp 0x14009535f
mov byte [rbp + 0x67], bl
mov r14, qword [rdi + 0x90]
cmp qword [rdi + 0x10], rbx
jne 0x1400954fb
test rsi, rsi
je 0x1400954fb
test r15b, 8
je 0x1400954fb
test r14, r14
je 0x1400954fb
cmp qword [r14 + 0x18], rbx
jne 0x1400954fb
cmp dword [r14 + 0x28], ebx
jne 0x1400954fb
mov rax, qword [0x140346028]
mov cl, byte [rax + 0x20d4]
add rax, 0x20e8
neg cl
sbb rbx, rbx
and rbx, rax
je 0x1400953f1
cmp dword [rbx + 0x14], 0xffffffff
je 0x1400953f1
lea rdx, [rbx + 0x18]
lea rcx, str._IMWINDOW
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
jne 0x1400953f1
mov rdx, qword [rbx]
mov rcx, rsi
mov rdx, qword [rdx]
call fcn.14009305c
xor ebx, ebx
test al, al
jne 0x1400954fe
jmp 0x1400953f3
xor ebx, ebx
mov rax, qword [r14 + 0x10]
mov rcx, r14
jmp 0x140095403
mov rcx, rax
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x1400953fc
vmovss xmm0, dword [rcx + 0x40]
vmovss xmm5, dword [r14 + 0x40]
vcomiss xmm5, xmm0
vmovss xmm6, dword [rcx + 0x44]
vmovss xmm2, dword [r14 + 0x44]
vaddss xmm7, xmm0, dword [rcx + 0x48]
vaddss xmm8, xmm6, dword [rcx + 0x4c]
vaddss xmm4, xmm5, dword [r14 + 0x48]
vaddss xmm1, xmm2, dword [r14 + 0x4c]
vmovss xmm3, dword [0x1401ea4e8]
jbe 0x140095446
vaddss xmm5, xmm5, xmm3
vcomiss xmm7, xmm4
jbe 0x140095450
vsubss xmm4, xmm4, xmm3
vcomiss xmm2, xmm6
jbe 0x14009545a
vaddss xmm2, xmm2, xmm3
vcomiss xmm8, xmm1
jbe 0x140095464
vsubss xmm1, xmm1, xmm3
vcomiss xmm5, xmm4
ja 0x1400954fe
vcomiss xmm2, xmm1
ja 0x1400954fe
mov rcx, qword [rsi + 0x3c8]
vsubss xmm1, xmm1, xmm2
vcvttss2si edx, xmm1
mov word [rbp + 0x79], dx
vsubss xmm0, xmm4, xmm5
vcvttss2si r8d, xmm0
mov word [rbp + 0x77], r8w
mov eax, dword [rbp + 0x77]
mov dword [rsi + 0x2b0], eax
vsubss xmm0, xmm5, dword [rsi + 0x50]
vsubss xmm1, xmm2, dword [rsi + 0x54]
vcvttss2si eax, xmm0
mov word [rbp + 0x77], ax
vcvttss2si eax, xmm1
mov word [rbp + 0x79], ax
mov eax, dword [rbp + 0x77]
mov dword [rsi + 0x2b4], eax
mov word [rbp + 0x77], r8w
mov word [rbp + 0x79], dx
mov eax, dword [rbp + 0x77]
mov dword [rcx + 0x2b0], eax
vsubss xmm0, xmm5, dword [rcx + 0x50]
vsubss xmm1, xmm2, dword [rcx + 0x54]
vcvttss2si eax, xmm0
mov word [rbp + 0x77], ax
vcvttss2si eax, xmm1
mov word [rbp + 0x79], ax
mov eax, dword [rbp + 0x77]
mov dword [rcx + 0x2b4], eax
jmp 0x1400954fe
mov r12b, bl
test rsi, rsi
je 0x1400955bb
cmp qword [rdi + 0x10], rbx
jne 0x140095528
mov r8, qword [rsi + 0x58]
xor r9d, r9d
mov rdx, qword [rsi + 0x50]
mov rcx, rdi
call fcn.14009454c
mov rcx, rdi
call fcn.14009483c
cmp qword [rdi + 0x18], rbx
jne 0x1400955bb
cmp dword [rdi + 0x28], ebx
jne 0x1400955bb
test byte [rdi + 0xbc], 1
je 0x1400955bb
test r15b, 8
jne 0x1400955bb
mov rax, qword [0x140346028]
lea rcx, [rbp - 0x59]
vmovss xmm2, dword [rdi + 0x44]
vmovdqu xmm0, xmmword [rax + 0x196c]
vmovups xmmword [rbp - 0x59], xmm0
vshufps xmm0, xmm0, xmm0, 0xff
vmulss xmm0, xmm0, dword [rax + 0x1638]
vmovss dword [rbp - 0x4d], xmm0
vmovss xmm0, dword [rdi + 0x48]
vaddss xmm1, xmm0, dword [rdi + 0x40]
vaddss xmm0, xmm2, dword [rdi + 0x4c]
vmovss dword [rbp + 0x7b], xmm0
vmovss dword [rbp + 0x77], xmm1
call fcn.140090df0
mov rcx, qword [rsi + 0x2f8]
lea r8, [rbp + 0x77]
and dword [rsp + 0x28], 0
lea rdx, [rdi + 0x40]
mov r9d, eax
vmovss dword [rsp + 0x20], xmm9
call fcn.1400a9e08
xor ebx, ebx
cmp byte [rbp + 0x67], bl
je 0x1400956e8
test byte [rdi + 0xbc], 1
je 0x1400956e8
mov rdx, qword [rsi + 0x2f8]
xor r8d, r8d
lea rcx, [rdx + 0xa8]
call fcn.1400ae5d0
mov rax, qword [0x140346028]
lea rcx, [rbp - 0x49]
vmovdqu xmm0, xmmword [rax + 0x171c]
vmovups xmmword [rbp - 0x49], xmm0
vshufps xmm0, xmm0, xmm0, 0xff
vmulss xmm0, xmm0, dword [rax + 0x1638]
vmovss dword [rbp - 0x3d], xmm0
test r12b, r12b
je 0x14009568e
vmovss xmm1, dword [r14 + 0x40]
vaddss xmm0, xmm1, dword [r14 + 0x48]
vmovss xmm2, dword [r14 + 0x44]
vmovss xmm3, dword [rdi + 0x40]
vmovss xmm4, dword [rdi + 0x44]
vmovss dword [rbp - 0x69], xmm1
vaddss xmm1, xmm2, dword [r14 + 0x4c]
vmovss dword [rbp - 0x5d], xmm1
vaddss xmm1, xmm4, dword [rdi + 0x4c]
vmovss dword [rbp - 0x61], xmm0
vaddss xmm0, xmm3, dword [rdi + 0x48]
vmovss dword [rbp - 0x4d], xmm1
vmovss dword [rbp - 0x65], xmm2
vmovss dword [rbp - 0x59], xmm3
vmovss dword [rbp - 0x55], xmm4
vmovss dword [rbp - 0x51], xmm0
call fcn.140090df0
mov rcx, qword [rsi + 0x2f8]
lea r8, [rbp - 0x69]
mov r9d, eax
lea rdx, [rbp - 0x59]
vmovss dword [rsp + 0x20], xmm9
call fcn.1400adb94
jmp 0x1400956d5
vmovss xmm0, dword [rdi + 0x40]
vaddss xmm1, xmm0, dword [rdi + 0x48]
vmovss xmm2, dword [rdi + 0x44]
vaddss xmm0, xmm2, dword [rdi + 0x4c]
vmovss dword [rbp + 0x6b], xmm0
vmovss dword [rbp + 0x67], xmm1
call fcn.140090df0
mov rcx, qword [rsi + 0x2f8]
lea r8, [rbp + 0x67]
and dword [rsp + 0x28], 0
lea rdx, [rdi + 0x40]
mov r9d, eax
vmovss dword [rsp + 0x20], xmm9
call fcn.1400a9e08
xor ebx, ebx
mov rdx, qword [rsi + 0x2f8]
lea rcx, [rdx + 0xa8]
call fcn.1400ac548
test rsi, rsi
je 0x1400956ff
cmp dword [rdi + 0x28], ebx
jle 0x1400956ff
mov rdx, rsi
mov rcx, rdi
call fcn.1400958b8
jmp 0x140095715
mov al, byte [rdi + 0xbc]
and al, 0xef
mov dword [rdi + 0xb4], ebx
and al, 0xfd
mov byte [rdi + 0xbc], al
mov rax, qword [rdi + 0x38]
test rax, rax
je 0x14009572d
mov ecx, dword [rax + 0x18]
test ecx, ecx
je 0x14009572d
mov dword [rdi + 0xb0], ecx
jmp 0x140095742
cmp dword [rdi + 0x28], ebx
jle 0x140095742
mov rax, qword [rdi + 0x30]
mov rcx, qword [rax]
mov eax, dword [rcx + 8]
mov dword [rdi + 0xb0], eax
test rsi, rsi
je 0x140095773
test byte [rdi + 0xbc], 1
je 0x140095773
cmp qword [rdi + 0x10], rbx
jne 0x140095773
mov rax, qword [r13 + 0x1d38]
test rax, rax
je 0x14009576b
cmp qword [rax + 0x3d8], rsi
je 0x140095773
mov rcx, rsi
call fcn.14008eb88
mov eax, dword [r13 + 0x1c90]
mov dword [rdi + 0xa4], eax
test rsi, rsi
je 0x1400957af
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x140095793
call fcn.140094d9c
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x1400957a1
call fcn.140094d9c
cmp qword [rdi + 0x10], rbx
jne 0x1400957af
mov rcx, rsi
call fcn.1400a1568
cmp byte [rbp + 0x6f], bl
je 0x1400957b9
call fcn.140096fa0
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x58]
vmovaps xmm6, xmmword [r11 - 0x10]
vmovaps xmm7, xmmword [r11 - 0x20]
vmovaps xmm8, xmmword [r11 - 0x30]
vmovaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret