Function at 0x14021ebe0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x298
lea rbp, [rsp + 0x2d0]
xor ebx, ebx
mov qword [rbp - 0x298], rbx
xorps xmm4, xmm4
movaps xmmword [rbp - 0x290], xmm4
movabs rbx, 0xfffffffffffffdc0
movaps xmmword [rbp + rbx - 0x40], xmm4
movaps xmmword [rbp + rbx - 0x30], xmm4
movaps xmmword [rbp + rbx - 0x20], xmm4
add rbx, 0x30
jne 0x14021ec18
mov qword [rbp + 0x10], rcx
mov rsi, rcx
xor ebx, ebx
xor r14d, r14d
xor r15d, r15d
mov eax, dword [rsi + 0x38]
mov dword [rbp - 0x3c], eax
cmp dword [rbp - 0x3c], 2
ja case.default.0x14021ec5f
mov eax, dword [rbp - 0x3c]
lea rcx, [0x14050d668]
mov ecx, dword [rcx + rax*4]
lea rdx, [0x14021ec3c]
add rcx, rdx
jmp rcx
lea rax, [0x14033ca68]
cmp qword [rax - 8], 0
jne 0x14021f893
mov r13, qword [0x140636aa8]
mov rax, qword [r13 + 8]
mov ecx, dword [rax + 0x38]
sub ecx, dword [rax + 0x40]
jne 0x14021ec8b
call fcn.14020e350
lea rdi, [rsi + 0x48]
lea rcx, [0x140364118]
call fcn.14000b620
mov r14, rax
mov rcx, r14
call fcn.140177950
mov rcx, rdi
mov rdx, r14
call fcn.14000b8a0
lea rcx, [0x140364248]
call fcn.14000b620
mov rdi, rax
mov rcx, rdi
call fcn.140177b00
lea rcx, [rsi + 0x10]
mov rdx, rdi
call fcn.14000b8a0
mov r13, qword [r13 + 0x10]
lea rcx, [0x140415f68]
mov edx, reloc.WS2_32.dll_recv
call fcn.14000b740
mov rdi, rax
mov rcx, r13
mov rdx, rdi
mov rax, qword [r13]
call qword [rax + 0x38]
lea rcx, [rsi + 0x50]
mov rdx, rdi
call fcn.14000b8a0
mov rcx, qword [rsi]
mov rdx, qword [rsi + 0x50]
call fcn.1401a6760
cmp byte [rax], al
mov qword [rbp - 0x78], rax
mov rcx, qword [rbp - 0x78]
test dword [rcx + 0x34], 0x1600000
jne 0x14021ed7f
xor ecx, ecx
mov dword [rsi + 0x38], ecx
lea rcx, [rsi + 0x88]
mov rdx, qword [rbp - 0x78]
call fcn.14000b8a0
lea rdx, [rsi + 0x40]
mov rcx, rsi
call fcn.1402e1ac0
mov r8, rax
lea rdx, [rbp - 0x78]
lea rcx, [0x14033b238]
call fcn.1402e7910
jmp 0x14022066f
mov rcx, qword [rbp - 0x78]
mov edx, dword [rcx + 0x34]
and edx, 0x11000000
cmp edx, 0x1000000
je 0x14021ed9b
xor edx, edx
call fcn.14010a020
mov rcx, qword [rbp - 0x78]
mov rdx, qword [rcx + 0x38]
lea rcx, [rsi + 0x18]
call fcn.14000b8a0
mov rcx, qword [rsi + 0x18]
mov rcx, qword [rcx + 0x18]
mov rdx, qword [rsi + 0x50]
call fcn.1401a43a0
test eax, eax
jne 0x14021f8dd
mov rcx, qword [rsi + 0x18]
mov r14, qword [rcx + 0x10]
lea rcx, [0x14033ca68]
cmp qword [rcx - 8], 0
jne 0x14021f8d3
mov r13, qword [0x140636aa8]
mov rdi, qword [r13 + 8]
lea rcx, [0x1403a6290]
call fcn.14000b620
mov r15, rax
mov rcx, r15
mov rdx, rdi
call fcn.1400037d7
lea r8, [rbp - 0x130]
mov rcx, r14
mov rdx, r15
call fcn.1402d3700
mov r15, rax
test r15, r15
je 0x14021f8ad
mov rcx, qword [r13 + 8]
mov rdx, r15
cmp dword [rcx], ecx
call fcn.14024d240
mov r12, rax
lea rcx, [0x14033ca70]
cmp qword [rcx - 8], 0
jne 0x14021f8a3
mov rcx, qword [0x140636ab0]
mov rdi, qword [rcx + 8]
lea rcx, [rbp - 0xe0]
mov edx, 0x25
mov r8d, 1
call fcn.140109610
movups xmm0, xmmword [rbp - 0xe0]
movups xmmword [rbp - 0xa0], xmm0
movups xmm0, xmmword [rbp - 0xd0]
movups xmmword [rbp - 0x90], xmm0
mov rcx, qword [rbp - 0xc0]
mov qword [rbp - 0x80], rcx
mov ecx, dword [rbp - 0x90]
cmp ecx, dword [rbp - 0x80]
ja 0x14021f89d
mov rdx, qword [rbp - 0x88]
mov r8d, ecx
lea rdx, [rdx + r8*2]
mov r8d, dword [rbp - 0x80]
sub r8d, ecx
mov rcx, rdx
cmp r8d, 0x25
jb 0x14021f045
lea rdx, [0x14031a500]
add rdx, 0xc
mov r8d, 0x4a
call fcn.14009ff80
mov ecx, dword [rbp - 0x90]
add ecx, 0x25
mov dword [rbp - 0x90], ecx
lea rcx, [rbp - 0xa0]
mov rdx, r15
lea r8, [0x140329a58]
call fcn.1402d3c60
lea rcx, [rbp - 0xa0]
call fcn.140109790
mov r8, rax
mov edx, 2
mov rcx, qword [rdi + 8]
call qword [rdi + 0x20]
xor ecx, ecx
mov qword [rsi + 0x30], rcx
mov rcx, qword [rsi + 0x18]
mov rcx, qword [rcx + 8]
call fcn.14020f0c0
mov rdi, rax
mov rcx, rdi
call fcn.14020f260
mov rbx, rax
mov rax, rdi
xor edx, edx
div rbx
mov rdi, rax
lea rcx, [0x140367428]
call fcn.14000b620
mov r14, rax
mov rcx, qword [rsi + 0x18]
mov rdx, qword [rcx + 8]
lea rcx, [r14 + 8]
call fcn.14000b830
mov rcx, rbx
call fcn.14020f060
lea rcx, [r14 + 0x10]
mov rdx, rax
call fcn.14000b830
mov rcx, rdi
call fcn.14020f060
lea rcx, [r14 + 0x18]
mov rdx, rax
call fcn.14000b830
add rsi, 0x50
lea rdi, [r14 + 0x20]
call fcn.14000ba20
mov rsi, qword [rbp + 0x10]
mov rax, qword [rsi + 0x18]
lea rsi, [rax + 0x20]
lea rdi, [r14 + 0x28]
call fcn.14000ba20
mov rsi, qword [r13 + 0x10]
lea rcx, [0x140415f68]
mov edx, 0x20
call fcn.14000b740
mov rdi, rax
mov rcx, rsi
mov rdx, rdi
mov rax, qword [rsi]
call qword [rax + 0x38]
lea rcx, [r14 + 0x30]
mov rdx, rdi
call fcn.14000b830
mov rsi, qword [rbp + 0x10]
mov rcx, qword [rsi + 8]
mov rcx, qword [rcx + 0x18]
mov rdx, rsi
test rcx, rcx
jne 0x14021f05d
mov rax, r14
xor r8d, r8d
mov dword [rax + 0x38], r8d
lea rcx, [rdx + 0x20]
mov rdx, r14
call fcn.14000b8a0
mov rcx, qword [rsi]
mov rcx, qword [rcx + 0x30]
test rcx, rcx
jne 0x14021f066
mov rcx, qword [rsi + 8]
mov rax, qword [rcx + 0x18]
test rax, rax
jne 0x14021f07e
xor ebx, ebx
lea rcx, [0x140351660]
call fcn.14000b620
mov rdi, rax
mov rcx, rdi
mov edx, pe_nt_image_headers64
call fcn.1400f9870
mov qword [rbp - 0x238], rdi
jmp 0x14021f08f
lea rcx, [rbp - 0xa0]
lea rdx, [0x14031a500]
call fcn.140109ac0
jmp 0x14021eee4
mov rax, r14
mov r8d, dword [rcx + 0x1c]
jmp 0x14021eff5
movzx ecx, byte [rcx + 0xd4]
test ecx, ecx
je 0x14021f011
mov rcx, qword [rsi + 0x20]
add dword [rcx + 0x38], 0x2710
jmp 0x14021f011
mov ecx, dword [rax + 0x18]
test cl, 2
je 0x14021f01e
mov rcx, qword [rsi + 0x20]
neg dword [rcx + 0x38]
jmp 0x14021f01e
lea rcx, [0x140351060]
call fcn.14000b620
mov r14, rax
lea r8, [0x14033c750]
cmp qword [r8 - 8], 0
jne 0x14021f5d9
mov r8, qword [0x1406365e8]
mov r8, qword [r8 + 8]
mov rdx, rdi
mov rcx, r14
xor r9d, r9d
call fcn.1400f7950
mov qword [rbp - 0x240], r14
lea rcx, [0x140415f68]
mov edx, 0x20
call fcn.14000b740
mov qword [rbp - 0x248], rax
lea rcx, [0x140415f68]
mov edx, 0x20
call fcn.14000b740
mov qword [rbp - 0x250], rax
mov rdx, qword [r12 + 8]
test rdx, rdx
jne 0x14021f111
xor ecx, ecx
xor r8d, r8d
jmp 0x14021f119
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
xorps xmm0, xmm0
movups xmmword [rbp - 0x140], xmm0
mov qword [rbp - 0x1f0], rcx
mov dword [rbp - 0x1e8], r8d
lea rdx, [rbp - 0x1f0]
lea rcx, [rbp - 0x140]
mov r8d, 1
mov r9d, 1
call fcn.14016be00
mov rax, qword [rbp - 0x140]
mov qword [rbp - 0x288], rax
mov r8d, dword [rbp - 0x138]
mov dword [rbp - 0x1dc], r8d
mov rcx, qword [r13 + 0x10]
mov rdx, qword [rbp - 0x248]
mov r10, qword [rcx]
call qword [r10 + 0x38]
mov rcx, rdi
xor edx, edx
call fcn.1400f9c80
mov rcx, rdi
mov rdx, qword [rbp - 0x248]
xor r8d, r8d
mov r9d, 0x20
call fcn.1400fa5a0
mov r8, qword [rsi + 0x20]
mov rdx, r14
lea rcx, [0x140337b40]
call fcn.1402eca50
cmp byte [rdi + 0x2b], 0
je 0x14021f5a3
mov eax, dword [rdi + 0x1c]
sub eax, dword [rdi + 0x18]
add eax, 0xffffffe0
mov r8d, eax
mov dword [rbp - 0xa4], r8d
cmp r8d, 0x90
jg 0x14021f5ab
mov rcx, rdi
call fcn.1400f9ad0
mov qword [rbp - 0x258], rax
mov rcx, qword [r13 + 0x10]
mov r8d, dword [rbp - 0xa4]
mov r9d, r8d
neg r9d
add r9d, 0xc0
add r8d, 0x20
mov rdx, rax
mov r10, qword [rcx]
call qword [r10 + 0x40]
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rbp - 0x258]
xor r8d, r8d
mov r9d, 0xe0
cmp dword [rcx], ecx
call fcn.1401749a0
mov qword [rbp - 0x280], rax
cmp byte [rax], al
mov rdx, qword [rbp - 0x258]
test rdx, rdx
je 0x14021f35a
mov rcx, qword [rdx]
call fcn.140129190
cmp eax, 1
mov rax, qword [rbp - 0x280]
jne 0x14021f598
mov rcx, rax
xor edx, edx
call fcn.1400aa2e0
mov edx, eax
mov rcx, qword [rbp - 0x280]
mov r8d, dword [rcx + 8]
test r8d, r8d
jl 0x14021f58d
mov dword [rsp + 0x20], r8d
mov r8, qword [rbp - 0x258]
mov r9d, 0xe0
call fcn.1400aa7f0
mov rcx, qword [rbp - 0x258]
mov edx, 0x20
mov r8d, 0xc0
call fcn.1402b4c10
mov rax, qword [rbp - 0x258]
test rax, rax
je 0x14021f592
cmp dword [rax + 8], 0x100
jb 0x14021f592
lea rcx, [rax + 0x10]
add rcx, 0x20
mov qword [rbp - 0x200], rcx
mov dword [rbp - 0x1f8], 0xe0
lea rcx, [rbp - 0x200]
mov rdx, qword [rbp - 0x248]
mov r8, qword [rbp - 0x250]
mov r9d, 1
call fcn.14020e5a0
mov qword [rbp - 0x260], rax
mov rcx, qword [rsi + 0x10]
mov rdx, rax
cmp dword [rcx], ecx
call fcn.140174950
xor ecx, ecx
test rax, rax
je 0x14021f366
cmp dword [rax + 8], 0x20
jl 0x14021f366
mov rdx, qword [rbp - 0x258]
cmp dword [rdx + 8], 0x20
jl 0x14021f358
mov r8d, ecx
mov r10, qword [rbp - 0x248]
movzx r9d, byte [r10 + r8 + 0x10]
movzx r11d, byte [rax + r8 + 0x10]
xor r9d, r11d
mov byte [rdx + r8 + 0x10], r9b
inc ecx
cmp ecx, 0x20
jl 0x14021f331
jmp 0x14021f3ae
jmp 0x14021f366
mov rax, qword [rbp - 0x280]
jmp 0x14021f25e
mov r9d, ecx
mov r10, qword [rbp - 0x248]
movzx r9d, byte [r10 + r9 + 0x10]
cmp ecx, dword [rax + 8]
jae 0x14021f4be
mov r8d, ecx
movzx r8d, byte [rax + r8 + 0x10]
xor r9d, r8d
mov rdx, qword [rbp - 0x258]
cmp ecx, dword [rdx + 8]
jae 0x14021f4be
mov r8d, ecx
mov byte [rdx + r8 + 0x10], r9b
inc ecx
cmp ecx, 0x20
jl 0x14021f4b9
mov rax, qword [rbp - 0x260]
cmp byte [rax], al
mov rcx, qword [rdx]
call fcn.140129190
cmp eax, 1
jne 0x14021f598
mov rcx, qword [rbp - 0x260]
xor edx, edx
call fcn.1400aa2e0
mov edx, eax
mov rcx, qword [rbp - 0x260]
mov r8d, dword [rcx + 8]
test r8d, r8d
jl 0x14021f58d
mov dword [rsp + 0x20], r8d
mov r8, qword [rbp - 0x258]
mov r9d, 0x20
call fcn.1400aa7f0
mov rdx, qword [rbp - 0x258]
lea rcx, [rdx + 0x10]
mov edx, dword [rdx + 8]
xorps xmm0, xmm0
movups xmmword [rbp - 0x150], xmm0
mov qword [rbp - 0x1f0], rcx
mov dword [rbp - 0x1e8], edx
lea rdx, [rbp - 0x1f0]
lea rcx, [rbp - 0x150]
mov r8d, 1
mov r9d, 1
call fcn.14016be00
mov rax, qword [rbp - 0x150]
mov qword [rbp - 0x290], rax
mov r8d, dword [rbp - 0x148]
mov dword [rbp - 0x1e0], r8d
mov qword [rbp - 0x160], rax
mov dword [rbp - 0x158], r8d
mov r10, qword [rbp - 0x288]
mov qword [rbp - 0x210], r10
mov r9d, dword [rbp - 0x1dc]
mov dword [rbp - 0x208], r9d
lea rdx, [rbp - 0x210]
lea rcx, [rbp - 0x160]
call fcn.14016cd40
test eax, eax
jge 0x14021f582
mov rdx, qword [r12 + 0x10]
test rdx, rdx
jne 0x14021f4c3
xor ecx, ecx
xor r8d, r8d
jmp 0x14021f4cb
jmp 0x14021f366
call fcn.14012bdc0
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
xorps xmm0, xmm0
movups xmmword [rbp - 0x170], xmm0
mov qword [rbp - 0x1f0], rcx
mov dword [rbp - 0x1e8], r8d
lea rdx, [rbp - 0x1f0]
lea rcx, [rbp - 0x170]
mov r8d, 1
mov r9d, 1
call fcn.14016be00
mov rbx, qword [rbp - 0x290]
mov qword [rbp - 0x210], rbx
mov ebx, dword [rbp - 0x1e0]
mov dword [rbp - 0x208], ebx
movups xmm0, xmmword [rbp - 0x170]
movups xmmword [rbp - 0x220], xmm0
mov rbx, qword [rbp - 0x288]
mov qword [rbp - 0x230], rbx
mov eax, dword [rbp - 0x1dc]
mov dword [rbp - 0x228], eax
lea rdx, [rbp - 0x210]
lea r8, [rbp - 0x220]
lea r9, [rbp - 0x230]
lea rcx, [rbp - 0x100]
call fcn.14016c4f0
movups xmm0, xmmword [rbp - 0x100]
movups xmmword [rbp - 0x210], xmm0
lea rcx, [rbp - 0x210]
call fcn.14020f1c0
mov rbx, rax
test rbx, rbx
je 0x14021f16c
jmp 0x14021f5e3
call fcn.14012bd90
call fcn.1400c2550
int3
mov ecx, 9
call fcn.1400c28d0
int3
xor ecx, ecx
call fcn.1400c2bc0
int3
lea rcx, [0x1403874e0]
call fcn.14000b620
mov dword [rax + 0x48], 0x80131500
lea rcx, [0x140318630]
mov qword [rax + 8], rcx
mov dword [rax + 0x48], 0x80131600
mov rcx, rax
call fcn.14000bba0
int3
call fcn.140001caf
jmp 0x14021f0b0
cmp dword [rbp - 0x3c], 0
jge 0x14021f607
cmp byte [r14 + 0x18], 0
je 0x14021f5fc
mov rcx, qword [r14 + 8]
mov rax, qword [rcx]
call qword [rax + 0x70]
jmp 0x14021f607
mov rcx, qword [r14 + 8]
mov rax, qword [rcx]
call qword [rax + 0x60]
nop
cmp dword [rbp - 0x3c], 0
jge 0x14021f61a
mov rcx, rdi
lea r10, [0x140341200]
call qword [r10]
mov r9, qword [rsi + 0x20]
mov rdx, qword [r9 + 0x18]
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x30], rbx
mov rdx, qword [r9 + 0x20]
mov r8, qword [r9 + 0x28]
mov r9, qword [r9 + 0x10]
mov rcx, qword [rsi]
call fcn.1401a67b0
cmp byte [rax], al
mov qword [rbp - 0xb0], rax
mov rcx, qword [rbp - 0xb0]
test dword [rcx + 0x34], 0x1600000
jne 0x14021f6c4
mov dword [rsi + 0x38], 1
lea rcx, [rsi + 0x90]
mov rdx, qword [rbp - 0xb0]
call fcn.14000b8a0
lea rdx, [rsi + 0x40]
mov rcx, rsi
call fcn.1402e1ac0
mov r8, rax
lea rdx, [rbp - 0xb0]
lea rcx, [0x14033b298]
call fcn.1402e7910
jmp 0x14022066f
mov rcx, qword [rbp - 0xb0]
mov edx, dword [rcx + 0x34]
and edx, 0x11000000
cmp edx, 0x1000000
je 0x14021f6e3
xor edx, edx
call fcn.14010a020
mov rax, qword [rbp - 0xb0]
mov r13, qword [rax + 0x38]
call fcn.1400b27b0
mov word [rbp - 0x50], 0
mov qword [rbp - 0x48], rax
test r13, r13
je 0x14021f713
lea rcx, [0x140367658]
xor edx, edx
cmp qword [r13], rcx
cmovne r13, rdx
mov rdi, r13
test rdi, rdi
je 0x14021f86d
mov rcx, qword [rdi + 8]
mov rdx, qword [rsi + 0x50]
call fcn.1401a43a0
test eax, eax
jne 0x14021f847
mov rdx, qword [rsi + 0x18]
mov rdx, qword [rdx + 0x20]
mov rcx, qword [rdi + 0x10]
call fcn.1401a43a0
test eax, eax
jne 0x14021f821
mov rdx, qword [rsi + 0x18]
mov rdx, qword [rdx + 0x20]
mov r8, qword [rsi + 0x20]
mov r8, qword [r8 + 0x30]
lea r9, [rsi + 0x48]
lea rcx, [rbp - 0xf0]
call fcn.14020ecf0
mov r14, qword [rbp - 0xf0]
mov r15, qword [rbp - 0xe8]
mov rcx, qword [rdi + 0x18]
test rcx, rcx
jne 0x14021f903
xor edx, edx
xor r8d, r8d
mov qword [rbp - 0x200], rdx
mov dword [rbp - 0x1f8], r8d
lea rcx, [rbp - 0x200]
mov rdx, r14
mov r8, r15
xor r9d, r9d
call fcn.14020e5a0
mov rbx, rax
lea rcx, [0x140351660]
call fcn.14000b620
mov r13, rax
mov rcx, r13
mov rdx, rbx
mov r8d, 1
call fcn.1400f98e0
lea rcx, [0x140350fb0]
call fcn.14000b620
mov rdi, rax
lea r8, [0x14033c750]
cmp qword [r8 - 8], 0
jne 0x14021f81a
mov r8, qword [0x1406365e8]
mov r8, qword [r8 + 8]
mov rdx, r13
mov rcx, rdi
xor r9d, r9d
call fcn.1400f7420
lea rcx, [rsi + 0x28]
mov rdx, rdi
call fcn.14000b8a0
jmp 0x14021f910
call fcn.140001caf
jmp 0x14021f7f0
lea rcx, [0x1403874e0]
call fcn.14000b620
mov rdi, rax
mov rcx, rdi
lea rdx, [0x14031a618]
call fcn.1400af150
mov rcx, rdi
call fcn.14000bba0
lea rcx, [0x1403874e0]
call fcn.14000b620
mov r14, rax
mov rcx, r14
lea rdx, [0x140316978]
call fcn.1400af150
mov rcx, r14
call fcn.14000bba0
lea rcx, [0x1403874e0]
call fcn.14000b620
mov r13, rax
mov rcx, r13
lea rdx, [0x14032ce88]
call fcn.1400af150
mov rcx, r13
call fcn.14000bba0
call fcn.14000244f
jmp 0x14021ec73
call fcn.1400c2550
int3
call fcn.14000246f
jmp 0x14021ee45
lea rcx, [0x1403874e0]
call fcn.14000b620
mov r15, rax
mov rcx, r15
lea rdx, [0x14030e2c8]
call fcn.1400af150
mov rcx, r15
call fcn.14000bba0
call fcn.14000244f
jmp 0x14021eddf
lea rcx, [0x1403874e0]
call fcn.14000b620
mov rbx, rax
mov rcx, rbx
lea rdx, [0x140316978]
call fcn.1400af150
mov rcx, rbx
call fcn.14000bba0
lea rdx, [rcx + 0x10]
mov r8d, dword [rcx + 8]
jmp 0x14021f78d
cmp dword [rbp - 0x3c], 2
je 0x140220352
mov rcx, qword [rsi + 0x28]
mov edx, setsockopt
cmp dword [rcx], ecx
call fcn.1400f7740
mov rdi, rax
mov rcx, qword [rsi + 0x28]
xor edx, edx
call fcn.1401a2970
mov r13, rax
test r13, r13
je 0x1402200a9
lea rcx, [0x1403676c8]
cmp qword [r13], rcx
jne 0x1402200a9
mov rcx, qword [rsi + 0x28]
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov r12, rax
mov rcx, qword [rsi + 0x28]
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
call qword [rax + 0x50]
sub r12, rax
cmp r12, 0x10
jge 0x140220083
mov r9d, dword [rbx + 8]
sub r9d, r12d
add r9d, 0xffffffec
mov rcx, qword [rsi + 0x48]
mov rdx, rbx
mov r8d, setsockopt
cmp dword [rcx], ecx
call fcn.1401749a0
mov rcx, rax
mov rdx, rdi
xor r8d, r8d
call fcn.1402b3a80
test eax, eax
je 0x14022005d
mov rcx, qword [r13 + 0x20]
mov rdx, qword [rsi + 0x50]
call fcn.1401a43a0
test eax, eax
jne 0x140220037
mov rdx, qword [rsi + 0x18]
mov rdx, qword [rdx + 0x20]
mov rcx, qword [r13 + 0x28]
call fcn.1401a43a0
test eax, eax
jne 0x140220011
mov rdx, qword [r13 + 0x10]
test rdx, rdx
jne 0x1402200cf
xor ecx, ecx
xor r8d, r8d
xorps xmm0, xmm0
movups xmmword [rbp - 0x180], xmm0
mov qword [rbp - 0x1f0], rcx
mov dword [rbp - 0x1e8], r8d
lea rdx, [rbp - 0x1f0]
lea rcx, [rbp - 0x180]
mov r8d, 1
mov r9d, 1
call fcn.14016be00
lea rcx, [rsi + 0x58]
mov rdx, qword [rbp - 0x180]
call fcn.14000b8a0
mov edx, dword [rbp - 0x178]
mov dword [rsi + 0x60], edx
mov rdx, qword [r13 + 8]
test rdx, rdx
jne 0x1402200dc
xor ecx, ecx
xor r8d, r8d
xorps xmm0, xmm0
movups xmmword [rbp - 0x190], xmm0
mov qword [rbp - 0x1f0], rcx
mov dword [rbp - 0x1e8], r8d
lea rdx, [rbp - 0x1f0]
lea rcx, [rbp - 0x190]
mov r8d, 1
mov r9d, 1
call fcn.14016be00
lea rcx, [rsi + 0x68]
mov rdx, qword [rbp - 0x190]
call fcn.14000b8a0
mov ecx, dword [rbp - 0x188]
mov dword [rsi + 0x70], ecx
movups xmm0, xmmword [rsi + 0x68]
movups xmmword [rbp - 0x210], xmm0
lea rcx, [rbp - 0x210]
mov edx, dword [r13 + 0x18]
call fcn.14020d980
mov rcx, qword [rsi + 8]
xor edx, edx
mov qword [rcx + 0x60], rdx
mov rdi, qword [rsi + 8]
mov rdx, qword [r13 + 0x30]
xorps xmm0, xmm0
movups xmmword [rbp - 0x1a0], xmm0
lea rcx, [rbp - 0x1a0]
call fcn.1400b2db0
mov rcx, qword [rbp - 0x198]
mov rdx, qword [rbp - 0x48]
movabs rax, 0x3fffffffffffffff
and rcx, rax
movabs rax, 0x4000000000000000
or rcx, rax
movabs rax, 0x3fffffffffffffff
and rdx, rax
movabs rax, 0x4000000000000000
or rdx, rax
call fcn.1400b25a0
mov qword [rdi + 0x58], rax
lea rcx, [0x14033ca70]
cmp qword [rcx - 8], 0
jne 0x14021ff5e
mov rcx, qword [0x140636ab0]
mov rdi, qword [rcx + 8]
lea rcx, [rbp - 0x128]
mov edx, 0x2a
mov r8d, 3
call fcn.140109610
movups xmm0, xmmword [rbp - 0x128]
movups xmmword [rbp - 0xa0], xmm0
movups xmm0, xmmword [rbp - 0x118]
movups xmmword [rbp - 0x90], xmm0
mov rcx, qword [rbp - 0x108]
mov qword [rbp - 0x80], rcx
mov ecx, dword [rbp - 0x90]
cmp ecx, dword [rbp - 0x80]
ja 0x14021ff73
mov rdx, qword [rbp - 0x88]
mov eax, ecx
lea rdx, [rdx + rax*2]
mov eax, dword [rbp - 0x80]
sub eax, ecx
cmp eax, 0xd
jb 0x1402200e9
lea rcx, [0x140326a60]
add rcx, 0xc
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0xa]
movups xmmword [rdx], xmm0
movups xmmword [rdx + 0xa], xmm1
mov ecx, dword [rbp - 0x90]
add ecx, 0xd
mov dword [rbp - 0x90], ecx
mov rdx, qword [rsi + 8]
mov rdx, qword [rdx + 0x58]
lea rcx, [rbp - 0xa0]
call fcn.1402d3b40
mov ecx, dword [rbp - 0x90]
cmp ecx, dword [rbp - 0x80]
ja 0x14021ff73
mov rdx, qword [rbp - 0x88]
mov eax, ecx
lea rdx, [rdx + rax*2]
mov eax, dword [rbp - 0x80]
sub eax, ecx
cmp eax, 0xb
jb 0x140220101
lea rcx, [0x140302218]
add rcx, 0xc
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 6]
movups xmmword [rdx], xmm0
movups xmmword [rdx + 6], xmm1
mov ecx, dword [rbp - 0x90]
add ecx, 0xb
mov dword [rbp - 0x90], ecx
cmp byte [r13], r13b
lea rcx, [r13 + 0x30]
call fcn.1400b22f0
mov rdx, rax
lea rcx, [rbp - 0xa0]
call fcn.1402d6400
mov ecx, dword [rbp - 0x90]
cmp ecx, dword [rbp - 0x80]
ja 0x14021ff73
mov rdx, qword [rbp - 0x88]
mov eax, ecx
lea rdx, [rdx + rax*2]
mov eax, dword [rbp - 0x80]
sub eax, ecx
cmp eax, 0xe
jb 0x140220119
lea rcx, [0x140301a58]
add rcx, 0xc
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0xc]
movups xmmword [rdx], xmm0
movups xmmword [rdx + 0xc], xmm1
mov ecx, dword [rbp - 0x90]
add ecx, 0xe
mov dword [rbp - 0x90], ecx
lea rcx, [rbp - 0x50]
call fcn.1400b2e50
mov qword [rbp - 0x1a8], rax
lea rcx, [rbp - 0x1a8]
call fcn.1400b22f0
mov rdx, rax
lea rcx, [rbp - 0xa0]
call fcn.1402d6400
mov ecx, dword [rbp - 0x90]
cmp ecx, dword [rbp - 0x80]
ja 0x14021ff73
mov rdx, qword [rbp - 0x88]
mov eax, ecx
lea rdx, [rdx + rax*2]
mov eax, dword [rbp - 0x80]
sub eax, ecx
cmp eax, 4
jb 0x140220131
lea rcx, [0x140301a38]
add rcx, 0xc
mov rax, qword [rcx]
mov qword [rdx], rax
mov ecx, dword [rbp - 0x90]
add ecx, 4
mov dword [rbp - 0x90], ecx
lea rcx, [rbp - 0xa0]
call fcn.140109790
mov r8, rax
mov edx, 1
mov rcx, qword [rdi + 8]
call qword [rdi + 0x20]
lea rcx, [0x140415f68]
mov edx, pe_nt_image_headers64
call fcn.14000b740
mov rdi, rax
lea rcx, [0x14033ca68]
cmp qword [rcx - 8], 0
jne 0x14021ff54
mov rcx, qword [0x140636aa8]
mov r12, rcx
mov rcx, qword [r12 + 0x10]
mov rdx, rdi
mov rax, qword [rcx]
call qword [rax + 0x38]
add rdi, 0x10
mov edx, pe_nt_image_headers64
xorps xmm0, xmm0
movups xmmword [rbp - 0x1b8], xmm0
mov qword [rbp - 0x1f0], rdi
mov dword [rbp - 0x1e8], edx
lea rdx, [rbp - 0x1f0]
lea rcx, [rbp - 0x1b8]
mov r8d, 1
mov r9d, 1
call fcn.14016be00
lea rcx, [rsi + 0x78]
mov rdx, qword [rbp - 0x1b8]
call fcn.14000b8a0
mov ecx, dword [rbp - 0x1b0]
mov dword [rsi + 0x80], ecx
mov edx, dword [r13 + 0x18]
xorps xmm0, xmm0
movups xmmword [rbp - 0x1c8], xmm0
lea rcx, [rbp - 0x1c8]
call fcn.14016bc90
movups xmm0, xmmword [rbp - 0x1c8]
movups xmmword [rbp - 0x210], xmm0
movups xmm0, xmmword [rsi + 0x78]
movups xmmword [rbp - 0x220], xmm0
movups xmm0, xmmword [rsi + 0x68]
movups xmmword [rbp - 0x230], xmm0
lea rdx, [rbp - 0x210]
lea r8, [rbp - 0x220]
lea r9, [rbp - 0x230]
lea rcx, [rbp - 0x60]
call fcn.14016c4f0
movups xmm0, xmmword [rsi + 0x58]
movups xmmword [rbp - 0x210], xmm0
movups xmm0, xmmword [rsi + 0x68]
movups xmmword [rbp - 0x220], xmm0
lea rcx, [rbp - 0x210]
lea rdx, [rbp - 0x220]
call fcn.14020de10
movups xmm0, xmmword [rbp - 0x60]
movups xmmword [rbp - 0x210], xmm0
movups xmm0, xmmword [rsi + 0x68]
movups xmmword [rbp - 0x220], xmm0
lea rcx, [rbp - 0x210]
lea rdx, [rbp - 0x220]
call fcn.14020de10
lea rcx, [0x140367738]
call fcn.14000b620
mov r13, rax
add rsi, 0x50
lea rdi, [r13 + 0x18]
call fcn.14000ba20
mov rsi, qword [rbp + 0x10]
mov rax, qword [rsi + 0x18]
lea rsi, [rax + 0x20]
lea rdi, [r13 + 0x20]
call fcn.14000ba20
mov rsi, qword [rbp + 0x10]
mov r8, qword [rsi + 0x30]
mov qword [r13 + 0x10], r8
xor r8d, r8d
mov dword [rbp - 0x1d0], r8d
lea rcx, [r13 + 8]
mov qword [rbp - 0x298], rcx
mov qword [rbp - 0x200], r8
xor r8d, r8d
mov dword [rbp - 0x1f8], r8d
mov dword [rsp + 0x20], 1
lea r8, [rbp - 0x1d0]
mov qword [rsp + 0x28], r8
lea r8, [rbp - 0x200]
lea rcx, [rbp - 0x60]
xor edx, edx
mov r9d, 1
call fcn.14016ce80
mov rcx, qword [rbp - 0x298]
mov rdx, rax
call fcn.14000b830
lea rcx, [0x140351660]
call fcn.14000b620
mov rbx, rax
mov rcx, rbx
mov edx, 0x180
call fcn.1400f9870
mov rcx, rbx
mov qword [rbp - 0x268], rcx
jmp 0x140220149
call fcn.14000244f
jmp 0x14021fd6a
call fcn.14000246f
jmp 0x14021fb45
mov ecx, 0x28
call fcn.1400c2990
int3
call fcn.1400c2550
int3
lea rcx, [0x1403874e0]
call fcn.14000b620
mov rbx, rax
mov rcx, rbx
lea rdx, [0x14032dae8]
call fcn.1400af150
mov rcx, rbx
call fcn.14000bba0
lea rcx, [0x1403874e0]
call fcn.14000b620
mov rbx, rax
mov rcx, rbx
lea rdx, [0x14031a618]
call fcn.1400af150
mov rcx, rbx
call fcn.14000bba0
lea rcx, [0x1403874e0]
call fcn.14000b620
mov rbx, rax
mov rcx, rbx
lea rdx, [0x140316978]
call fcn.1400af150
mov rcx, rbx
call fcn.14000bba0
lea rcx, [0x1403874e0]
call fcn.14000b620
mov rbx, rax
mov rcx, rbx
lea rdx, [0x14032ce10]
call fcn.1400af150
mov rcx, rbx
call fcn.14000bba0
lea rcx, [0x1403874e0]
call fcn.14000b620
mov rbx, rax
mov rcx, rbx
lea rdx, [0x14031a618]
call fcn.1400af150
mov rcx, rbx
call fcn.14000bba0
lea rcx, [0x1403874e0]
call fcn.14000b620
mov rbx, rax
mov rcx, rbx
lea rdx, [0x140316978]
call fcn.1400af150
mov rcx, rbx
call fcn.14000bba0
lea rcx, [0x1403874e0]
call fcn.14000b620
mov rbx, rax
mov rcx, rbx
lea rdx, [0x140309d30]
call fcn.1400af150
mov rcx, rbx
call fcn.14000bba0
lea rcx, [0x1403874e0]
call fcn.14000b620
mov r15, rax
mov rcx, r15
lea rdx, [0x140326e08]
call fcn.1400af150
mov rcx, r15
call fcn.14000bba0
lea rcx, [0x1403874e0]
call fcn.14000b620
mov r14, rax
mov rcx, r14
lea rdx, [0x14032ce40]
call fcn.1400af150
mov rcx, r14
call fcn.14000bba0
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
jmp 0x14021f9f6
lea rcx, [rdx + 0x10]
mov r8d, dword [rdx + 8]
jmp 0x14021fa58
lea rcx, [rbp - 0xa0]
lea rdx, [0x140326a60]
call fcn.140109ac0
jmp 0x14021fbe0
lea rcx, [rbp - 0xa0]
lea rdx, [0x140302218]
call fcn.140109ac0
jmp 0x14021fc46
lea rcx, [rbp - 0xa0]
lea rdx, [0x140301a58]
call fcn.140109ac0
jmp 0x14021fcb4
lea rcx, [rbp - 0xa0]
lea rdx, [0x140301a38]
call fcn.140109ac0
jmp 0x14021fd29
mov edx, setsockopt
call fcn.1400f9c80
lea rcx, [0x140351060]
call fcn.14000b620
mov rbx, rax
lea r8, [0x14033c750]
cmp qword [r8 - 8], 0
jne 0x1402202b2
mov r8, qword [0x1406365e8]
mov r8, qword [r8 + 8]
mov rdx, qword [rbp - 0x268]
mov rcx, rbx
xor r9d, r9d
call fcn.1400f7950
mov rdx, rbx
mov qword [rbp - 0x270], rdx
mov r8, r13
lea rcx, [0x140337ba0]
call fcn.1402eca50
mov rcx, qword [rbp - 0x268]
call fcn.1400f9c40
mov ebx, eax
mov edx, ebx
neg edx
add edx, 0x7ffffff0
mov ecx, edx
sar ecx, 0x1f
and ecx, 0xf
add ecx, edx
and ecx, 0xfffffff0
mov edi, edx
sub edi, ecx
lea edx, [rbx + rdi]
movsxd rdx, edx
mov rcx, qword [rbp - 0x268]
call fcn.1400fa410
mov rcx, qword [rbp - 0x268]
call fcn.1400f9ad0
mov qword [rbp - 0x278], rax
mov rcx, qword [r12 + 0x10]
mov rdx, rax
mov r8d, ebx
mov r9d, edi
mov r10, qword [rcx]
call qword [r10 + 0x40]
mov rcx, qword [rsi + 0x48]
lea r9d, [rbx - 0x14]
mov rdx, qword [rbp - 0x278]
mov r8d, setsockopt
cmp dword [rcx], ecx
call fcn.1401749a0
mov rcx, rax
mov rdx, qword [rbp - 0x278]
xor r8d, r8d
cmp dword [rcx], ecx
call fcn.1400aaa60
add ebx, edi
mov r12, qword [rbp - 0x278]
test r12, r12
jne 0x14022025b
test ebx, ebx
jne 0x140220255
xor ecx, ecx
xor ebx, ebx
jmp 0x14022026b
call fcn.1400c2550
int3
cmp dword [r12 + 8], ebx
jb 0x140220255
cmp byte [r12], r12b
lea rcx, [r12 + 0x10]
mov qword [rbp - 0x200], rcx
mov dword [rbp - 0x1f8], ebx
lea rcx, [rbp - 0x200]
mov rdx, r14
mov r8, r15
mov r9d, 1
call fcn.14020e5a0
mov rbx, rax
cmp dword [rbp - 0x3c], 0
jge 0x1402202c7
mov rdx, qword [rbp - 0x270]
cmp byte [rdx + 0x18], 0
je 0x1402202bc
mov rcx, qword [rdx + 8]
mov rax, qword [rcx]
call qword [rax + 0x70]
jmp 0x1402202c7
call fcn.140001caf
jmp 0x140220174
mov rcx, qword [rdx + 8]
mov rax, qword [rcx]
call qword [rax + 0x60]
nop
cmp dword [rbp - 0x3c], 0
jge 0x1402202de
mov rcx, qword [rbp - 0x268]
lea r10, [0x140341200]
call qword [r10]
mov rcx, qword [rsi]
mov rdx, qword [r13 + 0x18]
mov r8, qword [r13 + 0x20]
mov r9, rbx
call fcn.1401a6840
cmp byte [rax], al
mov qword [rbp - 0xb8], rax
mov rcx, qword [rbp - 0xb8]
test dword [rcx + 0x34], 0x1600000
jne 0x140220377
mov dword [rbp - 0x3c], 2
mov dword [rsi + 0x38], 2
lea rcx, [rsi + 0x98]
mov rdx, qword [rbp - 0xb8]
call fcn.14000b8a0
lea rdx, [rsi + 0x40]
mov rcx, rsi
call fcn.1402e1ac0
mov r8, rax
lea rdx, [rbp - 0xb8]
lea rcx, [0x14033b2f8]
call fcn.1402e7910
jmp 0x1402205f2
mov rcx, qword [rsi + 0x98]
mov qword [rbp - 0xb8], rcx
xor ecx, ecx
mov qword [rsi + 0x98], rcx
mov dword [rbp - 0x3c], 0xffffffff
mov dword [rsi + 0x38], 0xffffffff
mov rcx, qword [rbp - 0xb8]
mov edx, dword [rcx + 0x34]
and edx, 0x11000000
cmp edx, 0x1000000
je 0x140220396
xor edx, edx
call fcn.14010a020
mov rdx, qword [rbp - 0xb8]
mov r14, qword [rdx + 0x38]
movups xmm0, xmmword [rsi + 0x58]
movups xmmword [rbp - 0x210], xmm0
movups xmm0, xmmword [rsi + 0x78]
movups xmmword [rbp - 0x220], xmm0
movups xmm0, xmmword [rsi + 0x68]
movups xmmword [rbp - 0x230], xmm0
lea rdx, [rbp - 0x210]
lea r8, [rbp - 0x220]
lea r9, [rbp - 0x230]
lea rcx, [rbp - 0x70]
call fcn.14016c4f0
xor r8d, r8d
mov dword [rbp - 0x1d8], r8d
mov qword [rbp - 0x200], r8
xor r8d, r8d
mov dword [rbp - 0x1f8], r8d
mov dword [rsp + 0x20], 1
lea r8, [rbp - 0x1d8]
mov qword [rsp + 0x28], r8
lea r8, [rbp - 0x200]
lea rcx, [rbp - 0x70]
xor edx, edx
mov r9d, 1
call fcn.14016ce80
mov r15, rax
mov rcx, qword [rsi + 0x48]
mov rdx, r15
cmp dword [rcx], ecx
call fcn.140174950
mov rbx, rax
test rbx, rbx
jne 0x140220446
xor ecx, ecx
xor edx, edx
jmp 0x14022044d
lea rcx, [rbx + 0x10]
mov edx, dword [rbx + 8]
cmp edx, 8
jl 0x14021ff68
mov rcx, qword [rcx]
mov qword [rsi + 0x30], rcx
test r14, r14
je 0x140220472
lea rcx, [0x140367800]
xor edx, edx
cmp qword [r14], rcx
cmovne r14, rdx
mov r13, r14
test r13, r13
je 0x14021ffeb
mov rcx, qword [r13 + 8]
mov rdx, qword [rsi + 0x50]
call fcn.1401a43a0
test eax, eax
jne 0x14021ffc5
mov rdx, qword [rsi + 0x18]
mov rdx, qword [rdx + 0x20]
mov rcx, qword [r13 + 0x10]
call fcn.1401a43a0
test eax, eax
jne 0x14021ff9f
lea rcx, [0x140415f68]
mov edx, 0x29
call fcn.14000b740
mov rdi, rax
mov rcx, qword [rsi + 0x20]
mov rcx, qword [rcx + 0x30]
mov rdx, rdi
xor r8d, r8d
cmp dword [rcx], ecx
call fcn.1400aaa60
mov byte [rdi + 0x30], 1
mov dword [rsp + 0x20], 8
mov rcx, rbx
mov r8, rdi
xor edx, edx
mov r9d, 0x21
call fcn.1400aa7f0
mov r14, qword [r13 + 0x18]
mov rcx, qword [rsi + 0x48]
mov rdx, rdi
cmp dword [rcx], ecx
call fcn.140174950
mov rcx, rax
mov edx, 4
call fcn.1402b3d80
mov rdx, rax
mov rcx, r14
xor r8d, r8d
call fcn.1402b3a80
test eax, eax
je 0x14021ff79
mov rcx, qword [rsi + 8]
test rbx, rbx
je 0x14021ff73
cmp dword [rbx + 8], 0xc
jb 0x14021ff73
lea rdx, [rbx + 0x10]
add rdx, 0xc
mov eax, dword [rbx + 8]
add eax, 0xfffffff4
cmp eax, 8
jl 0x14021ff68
mov rdx, qword [rdx]
mov qword [rcx + 0x38], rdx
mov rcx, qword [rsi + 8]
lea rcx, [rcx + 8]
mov rdx, r15
call fcn.14000b830
mov rcx, qword [rsi + 8]
mov rdx, qword [rsi + 0x20]
mov rdx, qword [rdx + 0x30]
test rdx, rdx
jne 0x140220586
xor eax, eax
xor r8d, r8d
jmp 0x14022058e
lea rax, [rdx + 0x10]
mov r8d, dword [rdx + 8]
cmp r8d, 8
jl 0x14021ff68
mov rdx, qword [rax]
mov rax, qword [rsi + 0x18]
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x1402205b0
xor r8d, r8d
xor r10d, r10d
jmp 0x1402205b8
lea r8, [rax + 0x10]
mov r10d, dword [rax + 8]
cmp r10d, 8
jl 0x14021ff68
xor rdx, qword [r8]
mov qword [rcx + 0x50], rdx
mov rcx, qword [rsi + 8]
mov rdx, qword [rcx + 0x50]
mov qword [rcx + 0x48], rdx
cmp dword [rbp - 0x3c], 0
jge 0x1402205fc
mov rcx, qword [rsi + 0x28]
test rcx, rcx
je 0x1402205fc
mov edx, 1
cmp dword [rcx], ecx
call fcn.1400f7550
jmp 0x1402205fc
mov rcx, rsp
call fcn.140220794
jmp 0x14022066f
mov dword [rsi + 0x38], 0xfffffffe
xor ecx, ecx
mov qword [rsi + 0x48], rcx
mov qword [rsi + 0x10], rcx
mov qword [rsi + 0x50], rcx
mov qword [rsi + 0x18], rcx
mov qword [rsi + 0x20], rcx
mov qword [rsi + 0x28], rcx
mov qword [rsi + 0x58], rcx
mov qword [rsi + 0x60], rcx
mov qword [rsi + 0x68], rcx
mov qword [rsi + 0x70], rcx
mov qword [rsi + 0x78], rcx
mov qword [rsi + 0x80], rcx
add rsi, 0x40
cmp qword [rsi], 0
jne 0x140220665
lea rcx, [0x14033c6e0]
cmp qword [rcx - 8], 0
jne 0x140220684
mov rcx, qword [0x140636540]
mov rdx, qword [rcx + 0x20]
mov rcx, rsi
call fcn.14000b8a0
jmp 0x14022066f
mov rcx, qword [rsi]
xor edx, edx
call fcn.140254510
nop
add rsp, 0x298
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.140001b2f
jmp 0x140220650
add byte [rdi], bl
outsb dx, byte [rsi]
add byte [rbp], dh