Function at 0x140047770
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov qword [rsp + 0x10], r8
mov r15, rdx
mov r12, rcx
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
mov r14, qword [rcx]
mov rbx, qword [r9]
mov r10, qword [rax]
imul eax, dword [0x1402a1768], 0xef25d602
imul edx, dword [0x1402a176c], 0x7b8aad6c
add edx, eax
sub edx, dword [rcx + 8]
add edx, 0x9d5d5fd8
mov esi, edx
mov rax, qword [0x1402a1770]
mov rcx, qword [0x1402a1778]
shrd rcx, rax, 0x33
movabs rax, 0xf24766d047386ece
xor rax, rcx
mov ecx, edx
mov r9, rax
shl r9, cl
mov rax, r14
shr rax, cl
movabs rcx, 0xb30e4ebea0669948
imul rcx, qword [0x1402a1780]
movabs rdx, 0xdbd0a77fd123de66
imul rdx, qword [0x1402a1788]
add rdx, rcx
movabs rcx, 0x297d54fbf4e96d5f
add rcx, rdx
mov rdi, rcx
mov ecx, dword [0x1402a1790]
mov edx, dword [0x1402a1794]
shrd edx, ecx, 0x1f
add rdi, r9
xor edx, 0x22964de6
cmp eax, edx
mov qword [rsp + 0x28], r9
jbe 0x14004785c
mov r11d, 0x3b9aca00
mov edx, 0xa
jmp 0x140047a38
mov ecx, dword [0x1402a1798]
mov edx, dword [0x1402a179c]
shrd edx, ecx, 0x13
xor edx, 0xf97b067a
cmp eax, edx
jbe 0x140047886
mov r11d, 0x5f5e100
mov edx, 9
jmp 0x140047a38
mov ecx, dword [0x1402a17a0]
mov edx, dword [0x1402a17a4]
shrd edx, ecx, 0x1d
xor edx, 0xf8992c6
cmp eax, edx
jbe 0x1400478b0
mov r11d, 0x989680
mov edx, 8
jmp 0x140047a38
mov ecx, dword [0x1402a17a8]
mov edx, dword [0x1402a17ac]
shrd edx, ecx, 0xf
xor edx, 0x10a2e9cc
cmp eax, edx
jbe 0x1400478da
mov r11d, 0xf4240
mov edx, 7
jmp 0x140047a38
mov ecx, dword [0x1402a17b0]
mov edx, dword [0x1402a17b4]
shrd edx, ecx, 6
xor edx, 0x328bf54c
cmp eax, edx
jbe 0x140047904
mov r11d, 0x186a0
mov edx, 6
jmp 0x140047a38
imul ecx, dword [0x1402a17b8], 0x40f771f3
imul edx, dword [0x1402a17bc], 0x52dc8e27
add ecx, edx
add ecx, 0x98c0d5c4
cmp eax, ecx
jbe 0x140047934
mov r11d, 0x2710
mov edx, 5
jmp 0x140047a38
imul ecx, dword [0x1402a17c0], 0x345605d5
imul edx, dword [0x1402a17c4], 0xc1baf99a
add ecx, edx
add ecx, 0x8a55346f
cmp eax, ecx
jbe 0x140047964
mov r11d, 0x3e8
mov edx, 4
jmp 0x140047a38
mov ecx, dword [0x1402a17c8]
mov edx, dword [0x1402a17cc]
shrd edx, ecx, 0xf
xor edx, 0xb6d50bcd
cmp eax, edx
jbe 0x14004798e
mov r11d, 0x64
mov edx, 3
jmp 0x140047a38
imul ecx, dword [0x1402a17d0], 0x4bf24e47
imul edx, dword [0x1402a17d4], 0xe4f8ee6f
add ecx, edx
add ecx, 0x98c68cb9
imul edx, dword [0x1402a17d8], 0xcc067ffd
imul r8d, dword [0x1402a17dc], 0x85a0bbc0
mov r9d, dword [0x1402a17e0]
mov r13, r10
mov r10d, dword [0x1402a17e4]
shrd r10d, r9d, 0xf
xor r10d, 0xdfd9d24c
mov r9d, dword [0x1402a17e8]
mov r11d, dword [0x1402a17ec]
shrd r11d, r9d, 2
xor r11d, 0xb83925a9
imul r9d, dword [0x1402a17f0], 0x200aea94
mov rbp, rsi
imul esi, dword [0x1402a17f4], 0x140182d6
cmp eax, ecx
mov ecx, r8d
lea ecx, [rdx + rcx - 0x4517b23f]
cmovbe ecx, r10d
mov r10, r13
mov edx, esi
mov rsi, rbp
mov r8d, r9d
lea edx, [r8 + rdx + 0x8ce2287]
cmova edx, r11d
mov r11d, ecx
mov r13, r14
mov qword [rsp + 0x20], rbx
sub r13, rbx
mov rbp, r14
mov qword [rsp + 0x18], r10
sub rbp, r10
mov qword [rsp + 0x30], rdi
mov rbx, rdi
and rbx, r14
mov qword [rsp], rsi
mov ecx, esi
mov r9d, edx
mov qword [rsp + 8], r15
xor edx, edx
div r11d
mov esi, edx
movzx edx, byte [0x1402a17f8]
movzx r8d, byte [0x1402a17f9]
imul edx, edx, 0x4a
imul r8d, r8d, 0x5b
mov r10d, r8d
add r10b, dl
mov r8d, r9d
add r10b, al
add r10b, 0x1e
movsxd rax, dword [r15]
mov edx, eax
imul r9d, dword [0x1402a17fc], 0x3951a02b
imul edi, dword [0x1402a1800], 0xb5ed547
add edi, r9d
mov r9d, edi
add edx, r9d
add edx, 0x6bc701c1
mov dword [r15], edx
mov byte [r12 + rax], r10b
mov eax, dword [0x1402a1804]
mov edx, dword [0x1402a1808]
shrd edx, eax, 0x15
mov r9d, edx
xor r9d, 0xcfc30c84
add r9d, r8d
mov eax, esi
mov rdx, rax
shl rdx, cl
add rdx, rbx
mov r15, r13
sub r15, rdx
jae 0x140047dac
imul eax, dword [0x1402a1810], 0xd2f4a025
imul edx, dword [0x1402a1814], 0xf6997eeb
lea r10d, [rax + rdx]
add r10d, 0x2e7c31c8
mov eax, r11d
xor edx, edx
div r10d
mov r11d, eax
imul edx, dword [0x1402a1818], 0xb8a671ed
imul r10d, dword [0x1402a181c], 0xee3cc25e
mov eax, r10d
add edx, eax
add edx, 0x7c4fefe1
mov eax, esi
cmp r8d, edx
mov r15, qword [rsp + 8]
ja 0x140047a67
mov rax, qword [rsp]
mov ecx, eax
mov r11, rbx
xor esi, esi
mov r14, rbp
mov rdx, r13
mov qword [rsp], r12
mov rdi, rdx
mov rax, qword [0x1402a1820]
mov rdx, qword [0x1402a1828]
shrd rdx, rax, 0x2f
movabs rax, 0x112089e333b5cc4a
xor rdx, rax
imul rdx, r11
mov rax, rdx
shr rdx, cl
mov rbx, r14
mov r8d, esi
mov r9b, byte [0x1402a1830]
mov r10b, byte [0x1402a1831]
shr r10b, 3
shl r9b, 5
or r9b, r10b
xor r9b, 0x58
add r9b, dl
mov r14, qword [rsp + 8]
movsxd rdx, dword [r14]
imul r10d, dword [0x1402a1834], 0xef9758c5
imul r11d, dword [0x1402a1838], 0xdf727be
mov esi, edx
add r11d, r10d
mov r10d, r11d
mov r11d, edx
add r10d, r11d
add r10d, 0x7ff3545
mov dword [r14], r10d
mov r10, qword [rsp]
mov byte [r10 + rdx], r9b
imul edx, dword [0x1402a183c], 0xfa7d6561
imul r9d, dword [0x1402a1840], 0x859ba665
and rax, qword [rsp + 0x30]
add r9d, edx
mov edx, r8d
mov r8d, r9d
lea r13d, [rdx + r8]
add r13d, 0x6bd57996
mov rbp, qword [0x1402a1848]
mov r8, qword [0x1402a1850]
mov rdx, rbp
movabs r9, 0x87200fcda54eee36
imul rdx, r9
mov r9, r8
movabs r10, 0xe54b4565af68e83b
imul r9, r10
mov r10, r9
add r10, rdx
movabs rdx, 0x58510de04dbe4a5c
add r10, rdx
imul r10, rdi
mov r15, qword [0x1402a1858]
mov rdx, r15
movabs r9, 0xdeb9e1d703e50cb9
imul rdx, r9
mov r12, qword [0x1402a1860]
movabs r9, 0x37232b6b74aded08
imul r12, r9
mov r9, rdx
add r9, r12
movabs rdx, 0xa2c9339e275f5a3f
add r9, rdx
imul r9, rbx
mov rdx, r10
mov r11, rax
mov esi, r13d
mov r14, r9
sub r10, rax
jb 0x140047b67
movabs rdx, 0xa2c9339e275f5a3f
movabs r11, 0x58510de04dbe4a5c
mov rcx, qword [rsp + 0x10]
sub dword [rcx], r13d
cmp rax, r9
mov r14, qword [rsp]
mov r13, qword [rsp + 0x28]
jae 0x140047e43
cmp r10, r13
jb 0x140047e43
mov rcx, qword [rsp + 8]
movsxd rsi, dword [rcx]
add r12, rdx
movabs rcx, 0x21461e28fc1af347
imul r15, rcx
sub r12, r15
imul rbx, r12
mov rcx, rbx
sub rbx, rax
movabs rdx, 0x1ab4ba9a509717c5
imul r8, rdx
mov rdx, r11
sub rdx, r8
movabs r8, 0x78dff0325ab111ca
imul rbp, r8
sub rdx, rbp
imul rdi, rdx
add rax, r13
sub rdi, rax
neg rcx
mov rdx, rax
mov r11, rdi
mov r8, rbx
cmp rdx, r9
jb 0x140047d70
lea rax, [rcx + rdx]
cmp r8, rax
jbe 0x140047e43
mov al, byte [0x1402a1868]
mov r10b, byte [0x1402a1869]
shr r10b, 4
shl al, 4
or al, r10b
xor al, 0xe6
add byte [r14 + rsi - 1], al
sub r11, r13
setb al
cmp rdx, r9
jae 0x140047e43
sub r8, r13
add rdx, r13
test al, al
je 0x140047d5e
jmp 0x140047e43
mov rax, qword [rsp + 0x10]
add dword [rax], r9d
mov r11d, r11d
mov eax, r11d
mov rcx, qword [rsp]
shl rax, cl
cmp rdx, rbp
jae 0x140047e43
cmp r15, rax
jb 0x140047e43
mov rsi, r12
mov rcx, qword [rsp + 8]
movsxd rcx, dword [rcx]
mov r8, r14
mov r12, qword [rsp + 0x18]
sub r8, r12
sub r8, rdx
sub r12, r14
sub r14, qword [rsp + 0x20]
add rdx, rax
sub r14, rdx
mov r9, r14
cmp rdx, rbp
jb 0x140047e03
lea r10, [r12 + rdx]
cmp r8, r10
jbe 0x140047e43
movzx r10d, byte [0x1402a180c]
movzx r11d, byte [reloc.WS2_32.dll_shutdown]
imul r10d, r10d, 0x7a
imul r11d, r11d, 0xffffff93
add r11b, r10b
add r11b, byte [rsi + rcx - 1]
add r11b, 0x37
mov byte [rsi + rcx - 1], r11b
sub r9, rax
setb r11b
cmp rdx, rbp
jae 0x140047e43
sub r8, rax
add rdx, rax
test r11b, r11b
je 0x140047df5
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret