Function at 0x14003f9b0
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
mov rsi, rcx
call fcn.1400b0650
call fcn.1400b06d0
call fcn.1400b0750
call fcn.1400b07d0
call fcn.1400b0840
cdqe
movabs rcx, 0xeead16bb39a9172d
imul rcx, qword [0x140284d90]
movabs rdx, 0xf364ce094f020c80
imul rdx, qword [0x140284d98]
lea rbx, [0x1400efe70]
add rdx, rcx
movabs rcx, 0x1801fccde8edb586
add rcx, rdx
cmp rcx, qword [rbx + rax*8]
je 0x14003fc4a
lea r14, [0x1400effe0]
xor r15d, r15d
nop dword [rax]
call fcn.1400b08b0
cdqe
lea rcx, [0x1400efe90]
mov rax, qword [rcx + rax*8]
add rax, r15
mov r13d, dword [rsi + rax*4 + 4]
call fcn.1400b0920
cdqe
lea rcx, [0x1400efea8]
and r13d, dword [rcx + rax*4]
call fcn.1400b09b0
cdqe
lea rcx, [0x1400efec0]
mov rax, qword [rcx + rax*8]
add rax, r15
mov r12d, dword [rsi + rax*4 + 4]
call fcn.1400b0a40
cdqe
lea rcx, [0x1400efed8]
and r12d, dword [rcx + rax*4]
or r12d, r13d
call fcn.1400b0ac0
cdqe
lea rcx, [0x1400efee4]
movzx ecx, byte [rcx + rax*4]
mov r13d, r12d
shr r13d, cl
call fcn.1400b0b50
cdqe
lea rcx, [0x1400efef0]
mov ebp, dword [rcx + rax*4]
and ebp, r12d
call fcn.1400b0bd0
cdqe
lea rcx, [0x1400efefc]
xor ebp, dword [rcx + rax*4]
call fcn.1400b0c60
cdqe
lea rcx, [0x1400eff08]
xor r12d, dword [rcx + rax*4]
or r12d, ebp
call fcn.1400b0ce0
cdqe
mov ecx, dword [0x140284da0]
mov edx, dword [0x140284da4]
shrd edx, ecx, 0x16
xor edx, 0xef4726a7
imul ecx, dword [0x140284da8], 0xf32894f6
imul r8d, dword [0x140284dac], 0x1a94135d
lea r9, [0x1400eff14]
cmp r12d, dword [r9 + rax*4]
mov eax, r8d
lea ebp, [rcx + rax + 0x217f5ecb]
cmove ebp, edx
call fcn.1400b0d60
cdqe
lea rcx, [0x1400eff20]
mov r12d, dword [rcx + rax*4]
xor r12d, r13d
call fcn.1400b0de0
cdqe
lea rcx, [0x1400eff2c]
mov edi, dword [rcx + rax*4]
xor edi, ebp
or edi, r13d
or r12d, ebp
call fcn.1400b0e50
cdqe
lea rcx, [0x1400eff38]
and edi, dword [rcx + rax*4]
xor edi, r12d
call fcn.1400b0ed0
cdqe
lea rcx, [0x1400eff44]
mov ebp, dword [rcx + rax*4]
xor ebp, edi
call fcn.1400b0f60
cdqe
lea rcx, [0x1400eff50]
mov rax, qword [rcx + rax*8]
add rax, r15
mov r12d, dword [rsi + rax*4 + 4]
call fcn.1400b0fe0
cdqe
lea rcx, [0x1400eff68]
xor edi, dword [rcx + rax*4]
call fcn.1400b1060
cdqe
lea rcx, [0x1400eff74]
mov eax, dword [rcx + rax*4]
and eax, edi
and eax, ebp
mov ebp, eax
or ebp, edi
call fcn.1400b10f0
cdqe
lea rcx, [0x1400eff80]
mov edi, dword [rcx + rax*4]
and edi, r12d
call fcn.1400b1170
cdqe
lea rcx, [0x1400eff8c]
or edi, dword [rcx + rax*4]
call fcn.1400b11f0
cdqe
lea rcx, [0x1400eff98]
and r12d, dword [rcx + rax*4]
xor r12d, edi
xor r12d, ebp
call fcn.1400b1280
cdqe
lea rcx, [0x1400effa4]
xor r12d, dword [rcx + rax*4]
mov dword [rsi + r15*4 + 4], r12d
call fcn.1400b1300
call fcn.1400b1390
call fcn.1400b1410
call fcn.1400b1490
call fcn.1400b1500
cdqe
mov rdi, r15
add rdi, qword [r14 + rax*8]
call fcn.1400b0840
cdqe
mov r15, rdi
cmp rdi, qword [rbx + rax*8]
jne 0x14003fa30
mov edi, dword [rsi + 0xd50]
lea r13, [0x1400f0170]
mov ebp, 0xe3
nop dword [rax]
mov ebx, edi
call fcn.1400b1570
cdqe
lea rcx, [0x1400efff8]
and ebx, dword [rcx + rax*4]
call fcn.1400b15f0
cdqe
lea rcx, [0x1400f0010]
mov rax, qword [rcx + rax*8]
add rax, rbp
mov edi, dword [rsi + rax*4 + 4]
call fcn.1400b1680
cdqe
lea rcx, [0x1400f0028]
mov r14d, dword [rcx + rax*4]
and r14d, edi
call fcn.1400b1710
cdqe
lea rcx, [0x1400f0034]
xor r14d, dword [rcx + rax*4]
call fcn.1400b17a0
cdqe
lea rcx, [0x1400f0040]
mov r15d, dword [rcx + rax*4]
and r15d, edi
call fcn.1400b1820
cdqe
lea rcx, [0x1400f004c]
mov r12d, dword [rcx + rax*4]
and r12d, edi
call fcn.1400b18b0
cdqe
lea rcx, [0x1400f0058]
xor r12d, dword [rcx + rax*4]
or r12d, r14d
or r15d, r12d
call fcn.1400b1940
cdqe
lea rcx, [0x1400f0064]
xor r12d, dword [rcx + rax*4]
and r12d, ebx
xor r15d, ebx
call fcn.1400b19c0
cdqe
lea rcx, [0x1400f0070]
xor r15d, dword [rcx + rax*4]
or r15d, r12d
call fcn.1400b1a50
cdqe
lea rcx, [0x1400f007c]
movzx ecx, byte [rcx + rax*4]
mov ebx, r15d
shr ebx, cl
call fcn.1400b1ac0
cdqe
lea rcx, [0x1400f0088]
mov r15d, dword [rcx + rax*4]
and r15d, edi
call fcn.1400b1b30
mov eax, dword [0x140284db8]
mov ecx, dword [0x140284dbc]
shrd ecx, eax, 0xb
mov r12d, ecx
xor r12d, 0x44c68405
call fcn.1400b1bb0
cdqe
lea rcx, [0x1400f0094]
mov r14d, dword [rcx + rax*4]
xor r14d, ebx
imul eax, dword [0x140284dc0], 0x17cabb7
imul ecx, dword [0x140284dc4], 0x352cf466
mov edx, dword [0x140284dc8]
mov r8d, dword [0x140284dcc]
shrd r8d, edx, 8
xor r8d, 0x9f79914e
cmp r15d, r12d
lea r15d, [rax + rcx - 0x4ba028b]
cmovne r15d, r8d
call fcn.1400b1c40
cdqe
lea rcx, [0x1400f00a0]
xor ebx, dword [rcx + rax*4]
and ebx, r15d
call fcn.1400b1cb0
cdqe
lea rcx, [0x1400f00ac]
xor r15d, dword [rcx + rax*4]
and r15d, r14d
mov r14d, r15d
or r14d, ebx
call fcn.1400b1d20
cdqe
lea rcx, [0x1400f00c0]
mov rax, qword [rcx + rax*8]
add rax, rbp
mov ebx, dword [rsi + rax*4 + 4]
call fcn.1400b1d90
cdqe
lea rcx, [0x1400f00d8]
mov r15d, dword [rcx + rax*4]
and r15d, r14d
call fcn.1400b1e10
cdqe
mov r12d, r15d
lea rcx, [0x1400f00e4]
or r12d, dword [rcx + rax*4]
call fcn.1400b1e90
cdqe
mov r15d, r14d
lea rcx, [0x1400f00f0]
and r15d, dword [rcx + rax*4]
xor r15d, r12d
call fcn.1400b1f00
cdqe
lea rcx, [0x1400f00fc]
mov r14d, dword [rcx + rax*4]
xor r14d, r15d
call fcn.1400b1f80
cdqe
lea rcx, [0x1400f0108]
mov r12d, dword [rcx + rax*4]
and r12d, ebx
call fcn.1400b2010
cdqe
lea rcx, [0x1400f0114]
or r12d, dword [rcx + rax*4]
call fcn.1400b2090
cdqe
lea rcx, [0x1400f0120]
and ebx, dword [rcx + rax*4]
xor ebx, r12d
call fcn.1400b2120
cdqe
lea rcx, [0x1400f012c]
mov r12d, dword [rcx + rax*4]
xor r12d, ebx
call fcn.1400b21b0
cdqe
lea rcx, [0x1400f0138]
xor r15d, dword [rcx + rax*4]
and r15d, r12d
call fcn.1400b2220
cdqe
lea rcx, [0x1400f0144]
xor ebx, dword [rcx + rax*4]
and ebx, r14d
or ebx, r15d
mov dword [rsi + rbp*4 + 4], ebx
call fcn.1400b22a0
cdqe
mov rbx, rbp
lea rcx, [0x1400f0150]
add rbx, qword [rcx + rax*8]
call fcn.1400b2320
cdqe
mov rbp, rbx
cmp rbx, qword [r13 + rax*8]
jne 0x14003fc60
call fcn.1400b23a0
call fcn.1400b2420
call fcn.1400b24a0
call fcn.1400b2530
mov edi, dword [rsi + 4]
mov ebx, dword [rsi + 0x1380]
call fcn.1400b25a0
cdqe
lea rcx, [0x1400f01ac]
mov ebp, dword [rcx + rax*4]
or ebp, edi
call fcn.1400b2620
cdqe
lea rcx, [0x1400f01b8]
and ebx, dword [rcx + rax*4]
call fcn.1400b26b0
cdqe
lea rcx, [0x1400f01c4]
or ebx, dword [rcx + rax*4]
and ebx, ebp
call fcn.1400b2730
cdqe
lea rcx, [0x1400f01d0]
mov eax, dword [rcx + rax*4]
and eax, edi
mov ebp, eax
or ebp, ebx
call fcn.1400b27b0
cdqe
lea rcx, [0x1400f01dc]
movzx ecx, byte [rcx + rax*4]
shr ebp, cl
call fcn.1400b2840
cdqe
lea rcx, [0x1400f01e8]
and edi, dword [rcx + rax*4]
call fcn.1400b28d0
mov eax, dword [0x140284dd8]
mov ecx, dword [0x140284ddc]
shrd ecx, eax, 0x1c
xor ecx, 0x39b54ff1
imul eax, dword [0x140284de0], 0xd1afbc41
imul edx, dword [0x140284de4], 0xe2869a3e
imul r8d, dword [0x140284de8], 0x58f4896b
imul r9d, dword [0x140284dec], 0x7d5ae142
cmp edi, ecx
mov ecx, edx
lea eax, [rax + rcx + 0x6d773dde]
mov ecx, r9d
mov edx, r8d
lea ecx, [rdx + rcx + 0x34eaa3e2]
cmove ecx, eax
mov ebx, ecx
xor ebx, ebp
mov ebp, dword [rsi + 0x634]
call fcn.1400b2950
cdqe
lea rcx, [0x1400f01f4]
mov edi, dword [rcx + rax*4]
xor edi, ebx
call fcn.1400b29d0
cdqe
lea rcx, [0x1400f0200]
mov r14d, dword [rcx + rax*4]
and r14d, ebp
call fcn.1400b2a50
cdqe
lea rcx, [0x1400f020c]
or r14d, dword [rcx + rax*4]
call fcn.1400b2ad0
cdqe
lea rcx, [0x1400f0218]
and ebp, dword [rcx + rax*4]
xor ebp, r14d
call fcn.1400b2b60
cdqe
lea rcx, [0x1400f0224]
mov r14d, dword [rcx + rax*4]
xor r14d, ebp
call fcn.1400b2be0
cdqe
lea rcx, [0x1400f0230]
xor ebx, dword [rcx + rax*4]
and ebx, r14d
call fcn.1400b2c70
cdqe
lea rcx, [0x1400f023c]
xor ebp, dword [rcx + rax*4]
and ebp, edi
or ebp, ebx
mov dword [rsi + 0x9c0], ebp
call fcn.1400b2d00
imul eax, dword [0x140284df0], 0xc11e20e0
imul ecx, dword [0x140284df4], 0x8d25d621
add eax, ecx
add eax, 0x7faedd62
mov dword [rsi], eax
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret