Function at 0x140022457
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
cmp ecx, 4
ja case.default.0x140022482
mov ecx, ecx
mov eax, ecx
lea rcx, [0x140022d50]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
imul ecx, dword [0x14029a6c0], 0x9f612a74
mov eax, dword [rax + 0x318]
imul edx, dword [0x14029a6c4], 0x7113068e
add ecx, edx
add ecx, 0x567fe5c7
mov edx, dword [0x14029a6c8]
mov r8d, dword [0x14029a6cc]
shrd r8d, edx, 6
and ecx, eax
xor r8d, 0x7469fa71
cmp ecx, r8d
je 0x140022bf7
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rcx, qword [rcx + rax*8]
lea rax, [rcx + 0x310]
movzx edx, byte [0x14029a6d8]
movzx r8d, byte [0x14029a6d9]
mov r9d, edx
shl r9d, 5
lea edx, [r9 + rdx*2]
mov r9d, r8d
shl r9d, 5
add r9d, r8d
neg r9d
mov r8d, r9d
add r8b, dl
add r8b, 0x20
cmp byte [rax + 5], r8b
je 0x140022be6
lea rdx, [rcx + 0x315]
movabs r8, 0x922e4e5a1b0820a0
movabs r9, 0x2f9d954b5acd7cbe
movabs r10, 0xa3e9b028457b27ed
movabs r11, 0x9d2f8d8973276901
movabs rsi, 0xbf8b9d335b20753b
movabs rdi, 0x6303909fabbee656
movabs rbx, 0xf44e92ad72474573
movabs r14, 0x3337405b69bff4b6
movabs r15, 0x7d09456afc63d1d5
xor r12d, r12d
mov ecx, dword [0x14029a6e0]
imul ebp, dword [0x14029a6e8], 0xfac0a956
shl ecx, 5
sub ebp, ecx
mov ecx, ebp
add cl, 0x55
mov r13, r12
shl r13, cl
mov rcx, qword [0x14029a6f0]
imul rcx, r8
mov rbp, qword [0x14029a6f8]
imul rbp, r9
add rbp, rcx
add rbp, r10
mov ecx, r13d
shr rbp, cl
mov ecx, ebp
xor byte [rax + r12], bpl
mov rcx, qword [0x14029a700]
imul rcx, r11
mov r13, qword [0x14029a708]
imul r13, rsi
add r13, rcx
add r12, rdi
mov rcx, r12
add rcx, r13
mov r12, qword [str.HxM3]
imul r12, rbx
mov r13, qword [0x14029a718]
imul r13, r14
add r13, r12
add r13, r15
mov r12, rcx
cmp rcx, r13
jne 0x140022596
jmp 0x140022bca
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
imul ecx, dword [0x14029a720], 0xbbb0c42
mov eax, dword [rax + 0x324]
imul edx, dword [0x14029a724], 0xe734e7be
add ecx, edx
add ecx, 0x7d00a29d
and ecx, eax
imul edx, dword [0x14029a728], 0x35c1aa91
imul r8d, dword [0x14029a72c], 0x6b26602b
add edx, r8d
add edx, 0x89c2ed82
cmp ecx, edx
je 0x140022c39
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rcx, qword [rcx + rax*8]
lea rax, [rcx + 0x31c]
mov dl, byte [0x14029a738]
mov r8b, byte [0x14029a739]
shr r8b, 6
shl dl, 2
or dl, r8b
xor dl, 0xbf
cmp byte [rax + 6], dl
je 0x140022be6
lea rdx, [rcx + 0x322]
movabs r8, 0xab6945ad54bc8017
movabs r9, 0x438e56db017358d
movabs r10, 0xfd6ac75ed5b24a1
movabs r11, 0xa45a00b90748410a
movabs rsi, 0xe01ba0f286ea472e
movabs rdi, 0x2632ec56347eeed1
movabs rbx, 0xc1cf314f0db6a27d
xor r14d, r14d
mov ecx, dword [0x14029a740]
shr ecx, 0x17
xor cl, 0xb8
mov r15, r14
shl r15, cl
mov rcx, qword [0x14029a748]
imul rcx, r8
mov r12, qword [0x14029a750]
imul r12, r9
add r12, rcx
add r12, r10
mov ecx, r15d
shr r12, cl
mov ecx, r12d
xor byte [rax + r14], r12b
mov rcx, qword [0x14029a758]
mov r15, qword [0x14029a760]
shrd r15, rcx, 0x10
xor r15, r11
add r15, r14
mov rcx, qword [0x14029a768]
imul rcx, rsi
mov r14, qword [0x14029a770]
imul r14, rdi
add r14, rcx
mov rcx, r14
add rcx, rbx
mov r14, r15
cmp r15, rcx
jne 0x140022717
jmp 0x140022bca
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
imul ecx, dword [0x14029a60c], 0xe7160912
mov eax, dword [rax + 0x2fc]
imul edx, dword [0x14029a610], 0x90506ed3
add ecx, edx
add ecx, 0x6d028c7d
and ecx, eax
imul edx, dword [0x14029a614], 0x3c4a932d
imul r8d, dword [0x14029a618], 0x769715f1
add edx, r8d
add edx, 0x5bb9f80a
cmp ecx, edx
je 0x140022c81
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rcx, qword [rcx + rax*8]
lea rax, [rcx + 0x2f1]
movzx edx, byte [0x14029a624]
movzx r8d, byte [reloc.WS2_32.dll_closesocket]
mov r9d, edx
shl edx, 6
sub r9d, edx
mov edx, r9d
imul r8d, r8d, 0xffffff8e
add r8b, r9b
add r8b, 0xd3
cmp byte [rax + 8], r8b
je 0x140022be6
lea rdx, [rcx + 0x2f9]
movabs r8, 0x3b13abd089427272
movabs r9, 0x8e66e1d62896fb7
movabs r10, 0x4781846cb054c9fe
xor ecx, ecx
imul r11d, dword [0x14029a628], 0xe015e99a
imul esi, dword [0x14029a630], 0x24212ebb
mov rdi, rcx
add esi, r11d
mov ecx, esi
add cl, 0x6f
mov r11, rdi
shl r11, cl
mov rcx, qword [0x14029a638]
mov rsi, qword [0x14029a640]
shrd rsi, rcx, 0x14
xor rsi, r8
mov ecx, r11d
shr rsi, cl
mov ecx, esi
xor byte [rax + rdi], sil
mov rcx, qword [0x14029a648]
mov r11, qword [0x14029a650]
shrd r11, rcx, 0x1e
xor r11, r9
add r11, rdi
mov rcx, qword [0x14029a658]
mov rsi, qword [0x14029a660]
shrd rsi, rcx, 0x32
xor rsi, r10
mov rcx, r11
cmp r11, rsi
jne 0x140022865
jmp 0x140022bca
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
imul ecx, dword [0x14029a668], 0x23e7cf9f
mov eax, dword [rax + 0x30c]
imul edx, dword [0x14029a66c], 0x12ef9632
add ecx, edx
add ecx, 0x702c98d8
and ecx, eax
imul edx, dword [0x14029a670], 0x9dbf0100
imul r8d, dword [0x14029a674], 0xffc8278f
add edx, r8d
add edx, 0xf478b569
cmp ecx, edx
je 0x140022cc3
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rcx, qword [rcx + rax*8]
lea rax, [rcx + 0x300]
mov dl, byte [0x14029a680]
mov r8b, byte [0x14029a681]
shr r8b, 7
add dl, dl
or dl, r8b
xor dl, 0x4c
cmp byte [rax + 8], dl
je 0x140022be6
lea rdx, [rcx + 0x308]
movabs r8, 0x92a4af8862a47010
movabs r9, 0x5a26193c23c530f0
movabs r10, 0x7859a8d24e1c49fd
movabs r11, 0x4e0d2583bde37d52
movabs rsi, 0x2dbab6f87270f516
xor edi, edi
mov rcx, qword [0x14029a688]
shr rcx, 0x1d
xor cl, 0x78
mov rbx, rdi
shl rbx, cl
mov rcx, qword [0x14029a690]
imul rcx, r8
mov r14, qword [0x14029a698]
imul r14, r9
add r14, rcx
add r14, r10
mov ecx, ebx
shr r14, cl
mov ecx, r14d
xor byte [rax + rdi], r14b
mov rcx, qword [0x14029a6a0]
mov rbx, qword [0x14029a6a8]
shrd rbx, rcx, 0x19
xor rbx, r11
add rbx, rdi
mov rcx, qword [0x14029a6b0]
mov rdi, qword [0x14029a6b8]
shrd rdi, rcx, 0x36
mov rcx, rdi
xor rcx, rsi
mov rdi, rbx
cmp rbx, rcx
jne 0x1400229bd
jmp 0x140022bca
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
imul ecx, dword [0x14029a778], 0x6f47d3d8
mov eax, dword [rax + 0x334]
imul edx, dword [0x14029a77c], 0xe229319
add ecx, edx
add ecx, 0xb52e9cbb
and ecx, eax
imul edx, dword [str._fy..DA], 0x6998faab
imul r8d, dword [0x14029a784], 0x2e5ccb47
add edx, r8d
add edx, 0xa75dcc4a
cmp ecx, edx
je 0x140022d0b
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rcx, qword [rcx + rax*8]
lea rax, [rcx + 0x328]
movzx edx, byte [0x14029a790]
mov r8b, byte [0x14029a791]
imul edx, edx, 0xffffff99
shl r8b, 5
sub dl, r8b
add dl, 0x61
cmp byte [rax + 8], dl
je 0x140022be6
lea rdx, [rcx + 0x330]
movabs r8, 0xb11ed75eb5d507eb
movabs r9, 0xb440116a96481c20
movabs r10, 0x1138aec838998360
movabs r11, 0x2c55a8e262442d
movabs rsi, 0x63854b60c7deb530
movabs rdi, 0x427d17d5ecdfc42e
movabs rbx, 0x7bd3d63954253744
movabs r14, 0x8d63717cb3a63ffe
movabs r15, 0x87f98dbe14140330
xor r12d, r12d
imul ecx, dword [0x14029a798], 0x1d58bf63
imul ebp, dword [0x14029a7a0], 0xb2610953
add ebp, ecx
mov ecx, ebp
add cl, 0x54
mov r13, r12
shl r13, cl
mov rcx, qword [0x14029a7a8]
imul rcx, r8
mov rbp, qword [0x14029a7b0]
imul rbp, r9
add rbp, rcx
add rbp, r10
mov ecx, r13d
shr rbp, cl
mov ecx, ebp
xor byte [rax + r12], bpl
mov rcx, qword [0x14029a7b8]
imul rcx, r11
mov r13, qword [0x14029a7c0]
imul r13, rsi
add r13, rcx
add r12, rdi
mov rcx, r12
add rcx, r13
mov r12, qword [0x14029a7c8]
imul r12, rbx
mov r13, qword [0x14029a7d0]
imul r13, r14
add r13, r12
add r13, r15
mov r12, rcx
cmp rcx, r13
jne 0x140022b37
mov cl, byte [0x14029a7d8]
mov r8b, byte [0x14029a7d9]
shr r8b, 6
shl cl, 2
or cl, r8b
xor cl, 0xfe
mov byte [rdx], cl
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, dword [0x14029a6d0]
mov edx, dword [0x14029a6d4]
shrd edx, ecx, 0xd
xor edx, 0xa5c890c7
or eax, edx
mov ecx, dword [0x1402bcbf8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
mov dword [rcx + 0x318], eax
lea rcx, [0x14002f18e]
call fcn.1400d8bb4
jmp 0x1400224dd
imul ecx, dword [0x14029a730], 0x196c1f88
imul edx, dword [0x14029a734], 0xba5a0e09
add ecx, edx
add ecx, 0x5846ee5c
or eax, ecx
mov ecx, dword [0x1402bcbf8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
mov dword [rcx + 0x324], eax
lea rcx, [0x14002f233]
call fcn.1400d8bb4
jmp 0x14002268a
mov ecx, dword [0x14029a61c]
mov edx, dword [0x14029a620]
shrd edx, ecx, 0x1e
xor edx, 0x967a6da5
or eax, edx
mov ecx, dword [0x1402bcbf8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
mov dword [rcx + 0x2fc], eax
lea rcx, [0x14002f03d]
call fcn.1400d8bb4
jmp 0x1400227f4
imul ecx, dword [0x14029a678], 0x98d3eddc
imul edx, dword [0x14029a67c], 0xe84338b7
add ecx, edx
add ecx, 0x928eebd6
or eax, ecx
mov ecx, dword [0x1402bcbf8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
mov dword [rcx + 0x30c], eax
lea rcx, [0x14002f0e4]
call fcn.1400d8bb4
jmp 0x140022946
mov ecx, dword [0x14029a788]
mov edx, dword [0x14029a78c]
shrd edx, ecx, 0x11
xor edx, 0x11c7a71c
or eax, edx
mov ecx, dword [0x1402bcbf8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
mov dword [rcx + 0x334], eax
lea rcx, [0x14002f2ba]
call fcn.1400d8bb4
jmp 0x140022a95