Function at 0x140031f30
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
mov dword [rsp - 0x38], edi
push rdi
push r12
push r13
push r14
mov dword [rsp - 0x44], 0x6e5209de
push r15
mov rbp, rsp
sub rsp, 0x70
xor ebx, ebx
mov dword [rsp - 0x44], 0x7c2ea224
mov r12, rdx
test dword [rcx + 0x40], 0x4000
mov r14, rcx
mov r13, r13
mov r13d, ebx
mov edi, ebx
jne 0x14003224d
lea ecx, [rbx + 0x30]
mov dword [rsp - 0x38], 0x15fcea4f
call fcn.140073cf0
test rax, rax
je 0x140031fd2
mov dword [rsp - 0x44], ebx
mov rdx, qword [r14 + 0x70]
mov r8b, 0x7a
sub r8b, 0x52
mov dword [rsp - 0x2c], esi
xor r8b, 0x2f
xor r8b, 0x15
add r8b, 0x68
xchg r13, r13
xor r8b, 0x66
xor r8b, 0x1d
add rdx, 0x30
mov dword [rsp - 0x28], edi
mov rcx, rax
call fcn.14006cf50
mov rdi, rax
mov dword [rsp - 0x38], 0x7235cc50
mov rcx, rdi
call fcn.14006d2f0
test al, al
je 0x140032986
mov dword [rsp - 0x1c], ebp
call fcn.140074df0
movzx ebx, ax
shl ebx, 0x10
call fcn.140074df0
mov dword [rsp - 0xc], edx
movzx r9d, ax
mov edx, 0x3d69b12a
add edx, 0x10c61003
add edx, 0x2450261a
xchg rbp, rbp
xor edx, 0x1f0739d3
xor edx, 0xca1931e
add edx, 0x4fb99ad
sub edx, 0x1700cf92
xchg r9, r9
or r9d, ebx
mov r8d, 0x4c5ee7ad
xor r8d, 0x7b7e047f
xor r8d, 0xcb71e3e
mov dword [rsp - 0xc], esi
add r8d, 0x2f46e76e
xor r8d, 0x797931bb
add r8d, 0x2617edb4
mov r12, r12
xor r8d, 0xff68557c
mov rcx, rdi
call fcn.14006dc00
mov rcx, r14
mov r11, r11
mov r13d, eax
call fcn.1400319f0
mov r8d, eax
xor r9d, r9d
mov rcx, rcx
mov edx, 0x254a01f3
add edx, 0x11bcb488
sub edx, 0x280f1ac6
xchg r13, r13
add edx, 0x13bc127d
xor edx, 0x6d67b997
mov rcx, rdi
call fcn.14006dd20
mov dword [rsp - 0x2c], edx
mov r15, rax
test rax, rax
je 0x14003224b
mov dword [rsp - 0xc], ebx
nop
movabs r8, 0xffffffff3e628c76
sub r8, 0x30e4efa5
mov rcx, rcx
add r8, 0x59fae473
xor r8, 0x78c95905
add r8, 0x4629a7d2
mov dword [rsp - 0x30], esp
add r8, 0x7fffffff
xor r8, 0x1a247fed
lea rcx, [rbp - 0x50]
mov dword [rsp - 0x30], 0x3946f30f
mov rdx, rax
call fcn.140005d40
mov rdx, qword [r14 + 0x70]
lea rcx, [rbp - 0x40]
xchg rbp, rbp
add rdx, 0x20
mov r8d, 0x4dc7dc95
xor r8d, 0x59a8220d
add r8d, 0x45cd128
mov rsp, rsp
xor r8d, 0x1dcc05ca
xor r8d, 0x5df071f
sub r8d, 0xdfccb9
mov r9, r9
mov rbx, qword [rax]
call fcn.14006a7b0
mov rdx, rax
xchg r14, r14
lea rcx, [rbp - 0x30]
mov r8, rbx
call fcn.14006a4f0
xchg r11, r11
mov rdx, rax
mov r9, r12
mov r8d, r13d
mov dword [rsp - 0x38], edi
mov rcx, r14
call fcn.140032ad0
cmp qword [rbp - 0x28], 4
xchg rcx, rcx
movzx ebx, al
jbe 0x14003219b
mov rcx, qword [rbp - 0x30]
mov r11, r11
call fcn.140073d00
cmp qword [rbp - 0x38], 4
jbe 0x1400321ae
mov rcx, qword [rbp - 0x40]
xchg r11, r11
call fcn.140073d00
cmp byte [rbp - 0x48], 0
je 0x1400321c5
mov dword [rsp - 0x1c], 0x55cff3c9
mov rcx, qword [rbp - 0x50]
call fcn.140073d00
test bl, bl
mov dword [rsp - 0x30], 0x7d9eee30
je 0x140032243
test rdi, rdi
je 0x140032222
mov rcx, rdi
mov dword [rsp - 0x10], 0x7634e482
call fcn.14006d130
mov edx, 0x30d6d9af
add edx, 0x2e68d068
xor edx, 0x6c226a0a
mov rsp, rsp
xor edx, 0x23317c33
add edx, 0x4ec31eed
xor edx, 0xe1cd3d
mov dword [rsp - 0x10], 0x2e631de3
sub edx, 0x5e0e15f6
mov rcx, rdi
call fcn.140073d00
mov rcx, r15
mov dword [rsp - 0x20], edi
call fcn.140073d00
mov al, 0x48
sub al, 0x1d
add al, 0xa
mov dword [rsp - 0x2c], ebp
sub al, 6
xor al, 0x5d
sub al, 0x71
jmp 0x140032aa9
mov rcx, r15
call fcn.140073d00
xor ebx, ebx
mov rdx, r12
mov dword [rsp - 0xc], ebp
mov rcx, r14
call fcn.140032ec0
test al, al
mov dword [rsp - 0x40], 0x644425ad
je 0x140032a53
test rdi, rdi
je 0x140032a3f
mov dword [rbp + 0x40], 0x3463cdb8
mov r14, r14
add dword [rbp + 0x40], 0x106d3be2
sub dword [rbp + 0x40], 0xe1a8b67
add dword [rbp + 0x40], 0x36d4e82
xor dword [rbp + 0x40], 0x65ceece3
mov dword [rsp - 0x44], esi
add dword [rbp + 0x40], 0x164d1c55
mov rcx, rbx
mov eax, dword [rbp + 0x40]
mov dword [rbp + 0x40], eax
mov rsi, rsi
mov qword [rbp - 0x48], 0x386292b7
sub qword [rbp - 0x48], 0x2c11bae4
add qword [rbp - 0x48], 0x6f4c5a8e
mov dword [rsp - 0x30], ebx
sub qword [rbp - 0x48], 0x14bc2cbd
sub qword [rbp - 0x48], 0x66e105a0
movsx eax, byte [rbp + rcx + 0x40]
mov word [rbp + rcx*2 - 0x50], ax
mov dword [rsp - 0x44], ecx
inc rcx
cmp rcx, qword [rbp - 0x48]
jb 0x1400322de
mov dword [rsp - 0x34], 0x7f583154
mov r9d, 0x232d5bed
xor r9d, 0xde5a5a6
sub r9d, 0x214c0c1e
sub r9d, 0x99e0c53
mov r11, r11
xor r9d, 0x3577405d
xor r9d, 0x36a9a58d
lea rdx, [rbp - 0x20]
xchg r9, r9
lea rcx, [0x1400a5f50]
lea r8d, [r9 - 5]
call fcn.14006f470
mov rdx, rax
mov dword [rsp - 0x14], edx
lea r8, [rbp - 0x50]
lea rcx, [rbp - 0x30]
call fcn.14006a200
mov dword [rsp - 0x38], 0x651d7ef5
cmp qword [rbp - 0x18], 4
jbe 0x14003236f
mov rcx, qword [rbp - 0x20]
xchg rcx, rcx
call fcn.140073d00
cmp qword [rbp - 0x48], 4
jbe 0x140032383
mov dword [rsp - 0x20], esp
mov rcx, qword [rbp - 0x50]
call fcn.140073d00
mov rdx, qword [r14 + 0x70]
lea rcx, [rbp - 0x20]
xchg rsp, rsp
add rdx, 0x20
mov r8d, 0x2903f8a5
add r8d, 0x484491ab
sub r8d, 0x5ed9b1cc
mov dword [rsp - 0xc], 0x4dead304
xor r8d, 0x33368099
add r8d, 0x59b0f7d7
sub r8d, 0x57ef098a
mov rsp, rsp
sub r8d, 0x231a460e
call fcn.14006a7b0
mov rdx, rax
lea r8, [rbp - 0x30]
mov r9, r9
lea rcx, [rbp - 0x40]
call fcn.14006a200
cmp qword [rbp - 0x18], 4
mov dword [rsp - 0x30], esi
jbe 0x140032401
mov rcx, qword [rbp - 0x20]
call fcn.140073d00
mov dword [rsp - 0x30], 0x1c21f2c3
mov r12, qword [r12]
lea rcx, [rbp - 0x50]
mov edx, r13d
call fcn.14006b7c0
mov r12, r12
mov r8d, 0x690a1e96
sub r8d, 0x60b67bfd
xor r8d, 0x7711b2fe
sub r8d, 0x4fa46f02
mov r8, r8
xor r8d, 0x7077f950
xor r8d, 0x39d085c8
sub r8d, 0x663addfb
mov r14, r14
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x50]
call fcn.14006b840
test al, al
xchg rcx, rcx
je 0x1400329ce
mov eax, dword [r14 + 0x50]
lea rdx, [rbp + 0x50]
mov r12, r12
xor eax, 0x27223355
lea rcx, [rbp - 0x50]
mov dword [rbp + 0x50], eax
mov r8d, 0x5e04950e
mov dword [rsp - 0x40], esp
xor r8d, 0x4e2002bc
add r8d, 0x6573e3a1
sub r8d, 0x3bb831a5
sub r8d, 0x39e049a6
mov dword [rsp - 0x2c], ebx
mov eax, dword [r14 + 0x54]
xor eax, 0x27223355
mov dword [rbp + 0x54], eax
xchg rdx, rdx
call fcn.14006c290
test al, al
je 0x1400329ce
mov eax, dword [r14 + 0x5c]
mov dword [rsp - 0x14], 0x49d45d24
lea rdx, [rbp + 0x40]
xor eax, 0x27223355
lea rcx, [rbp - 0x50]
mov dword [rsp - 0x40], ecx
mov r8d, 0x2b8d4d
xor r8d, 0x75a1421d
sub r8d, 0x559738f5
add r8d, 0x51bd1f99
xchg r12, r12
xor r8d, 0x246809f6
xor r8d, 0x5ae5958
sub r8d, 0x5076e556
mov r9, r9
mov dword [rbp + 0x40], eax
call fcn.14006c290
test al, al
je 0x1400329ce
mov dword [rsp - 0x40], edi
lea rdx, [r14 + 0x68]
mov r8d, 0x3284804e
add r8d, 0x8568085
mov rcx, rcx
xor r8d, 0x331c14db
add r8d, 0x34402270
sub r8d, 0x3e073674
lea rcx, [rbp - 0x50]
mov dword [rsp - 0x10], 0x3396e426
call fcn.14006c290
test al, al
je 0x1400329ce
mov dword [rsp - 0x18], 0xc442ceb
test dword [r14 + 0x40], 0x2000
pushf
mov eax, 0x2b5efff3
xchg rdi, rdi
sub eax, 0x35ba5fc
add eax, 0x25b623c2
xor eax, 0xa2f9fdd
mov dword [rsp - 0x2c], 0x755d599d
add eax, 0x1309874b
sub eax, 0x5aa068b0
popf
mov dword [rsp - 0x1c], 0x3a07ee8c
pushf
mov r15d, 0x2704c134
add r15d, 0x435ac7b0
sub r15d, 0x24184142
mov r9, r9
sub r15d, 0x15911505
sub r15d, 0xd0f3682
sub r15d, 0x23a5fc1c
mov dword [rsp - 0x20], ebx
popf
cmovne r15d, eax
xor esi, esi
nop
xchg rsp, rsp
mov rax, qword [r14 + 0x60]
lea rdx, [rbp - 0x20]
mov r8d, 0x33ed9268
sub r8d, 0x1d7d327d
mov r10, r10
add r8d, 0x5027db73
xor r8d, 0x49b99fd0
xor r8d, 0x2f21a49e
xchg rsp, rsp
lea rcx, [rbp - 0x50]
movups xmm0, xmmword [rsi + rax]
xorps xmm0, xmmword [0x1400a9f70]
mov dword [rsp - 0xc], edx
movaps xmmword [rbp - 0x20], xmm0
call fcn.14006c290
test al, al
mov dword [rsp - 0x2c], esp
je 0x1400329ce
inc rbx
add rsi, 0x10
cmp rbx, r15
mov dword [rsp - 0x1c], 0x5b44df0a
jb 0x1400325eb
test dword [r14 + 0x40], 0x2000
xorps xmm0, xmm0
pushf
mov dword [rsp - 0x14], 0x540b5635
mov ebx, 0x53f2eabe
sub ebx, 0xeb79ce8
add ebx, 0x32b4ee8d
xchg r15, r15
sub ebx, 0x53f90428
xor ebx, 0x2db6e1a5
xor ebx, 0xe412661
popf
mov dword [rsp - 0x44], edi
pushf
mov ecx, 0x1a88a158
xor ecx, 0x66e75210
sub ecx, 0x344afbdf
mov rdi, rdi
xor ecx, 0x3cf2c515
sub ecx, 0x74d6317d
popf
mov dword [rsp - 0x14], edi
cmovne ebx, ecx
movups xmmword [rbp - 0x10], xmm0
je 0x140032722
mov dword [rsp - 0x14], ebx
nop dword [rax + rax]
mov r8d, 0x5f39231
add r8d, 0x119101a3
mov dword [rsp - 0x30], ebx
sub r8d, 0x1013a14b
add r8d, 0x767c7961
sub r8d, 0x7ded6bda
lea rdx, [rbp - 0x10]
xchg r10, r10
lea rcx, [rbp - 0x50]
call fcn.14006c290
test al, al
je 0x1400329ce
xchg rbp, rbp
inc rbx
cmp rbx, 0xffff
jb 0x1400326d5
mov r8d, dword [rbp + 0x54]
mov r14, r14
lea rcx, [rbp - 0x50]
imul r8d, dword [rbp + 0x50]
mov rdx, r12
mov dword [rsp - 0x24], esp
shl r8d, 2
call fcn.14006c290
test al, al
xchg rdi, rdi
je 0x1400329ce
lea rcx, [rbp - 0x50]
call fcn.14006c4e0
mov dword [rsp - 0xc], edx
lea rcx, [rbp - 0x50]
call fcn.14006b830
lea rdx, [rbp - 0x30]
mov dword [rsp - 0x40], ebp
lea rcx, [rbp - 0x20]
call fcn.140005a90
mov rcx, r14
mov rbx, rax
xchg rcx, rcx
call fcn.1400319f0
mov r9, qword [rbx]
mov r8d, eax
mov edx, 0x25243b0e
mov rcx, rcx
add edx, 0x51f7b2d7
sub edx, 0x659d3762
add edx, 0x500dfa9
mov dword [rsp - 0x34], edx
add edx, 0x4f460e9
add edx, 0x34602090
mov rcx, rdi
call fcn.14006e450
xchg r12, r12
cmp byte [rbp - 0x18], 0
je 0x1400327cf
mov rcx, qword [rbp - 0x20]
call fcn.140073d00
xchg rcx, rcx
mov r9d, r13d
mov edx, 0x51580883
add edx, 0x8a371de
xor edx, 0x6aca684f
mov dword [rsp - 0x30], ebx
add edx, 0x7a37917
sub edx, 0x185b0f35
xor edx, 0x6dad6bb5
mov rsi, rsi
mov r8d, 0x6cae1a6c
add r8d, 0x5f1237
sub r8d, 0x235fe3bb
mov dword [rsp - 0x44], edx
xor r8d, 0x79e245f0
xor r8d, 0xf6989af1
mov rcx, rdi
mov rsi, rsi
call fcn.14006e3f0
mov rcx, rdi
call fcn.14006de60
xchg rbx, rbx
test al, al
jne 0x1400329d7
mov r14, qword [rbp - 0x38]
mov dword [rsp - 0x28], edx
lea rsi, [rbp - 0x40]
cmp r14, 4
pushf
mov eax, 0x5837b9c5
mov dword [rsp - 0xc], ebx
xor eax, 0x431a83a6
xor eax, 0x6ba355d0
sub eax, 0x6583d1f6
xor eax, 0xb0a9dbf
mov rdi, rdi
popf
cmova rsi, qword [rbp - 0x40]
lea rcx, [r14 + 1]
mov dword [rsp - 0xc], 0x1eb7fc45
mul rcx
pushf
movabs rcx, 0xffffffff7f83e728
xchg r8, r8
sub rcx, 0x17e220a8
xor rcx, 0x323692da
xor rcx, 0x68a35cb5
add rcx, 0xc6a43f7
xchg rdi, rdi
add rcx, 0x7fffffff
add rcx, 0x3661b31a
popf
mov rsi, rsi
cmovo rax, rcx
mov rcx, rax
call fcn.140073cf0
xor r10d, r10d
mov dword [rsp - 0x34], 0x3984b1ec
mov rbx, rax
mov r9d, r10d
test r14, r14
mov rbp, rbp
je 0x14003295d
mov r8, rax
sub rsi, rax
mov dword [rsp - 0x38], esi
nop
movzx ecx, r9b
lea r8, [r8 + 2]
xchg rsi, rsi
and cl, 3
mov edx, 0x51c6ae2c
sub edx, 0x46730ad
mov r8, r8
sub edx, 0x207f10c3
sub edx, 0xb488e7
add edx, 0x707dfb9
xchg r9, r9
add edx, 0x39ffb6f1
xor edx, 0x756024fa
shl cl, 3
inc r9
mov r13, r13
sar edx, cl
movsx eax, dl
xor ax, word [rsi + r8 - 2]
mov dword [rsp - 0x2c], edx
mov word [r8 - 2], ax
cmp r9, r14
jb 0x1400328fa
mov dword [rsp - 0xc], ebx
mov word [rbx + r14*2], r10w
mov rcx, rbx
mov rax, qword [0x1400a4c20]
mov dword [rsp - 0x14], esi
xor rax, qword [0x1400a4ab0]
call rax
mov rcx, rbx
call fcn.140073d00
xchg r11, r11
jmp 0x1400329d7
test rdi, rdi
je 0x1400329c6
mov rcx, rdi
mov r11, r11
call fcn.14006d130
mov edx, 0x1ed9e5be
add edx, 0x1b000ce6
mov dword [rsp - 0x24], 0x2d7f3c81
add edx, 0x1bc4a09c
xor edx, 0x2b5b34f3
sub edx, 0x7ec5a783
mov rcx, rdi
xchg r15, r15
call fcn.140073d00
mov rdi, rbx
jmp 0x14003224d
lea rcx, [rbp - 0x50]
call fcn.14006b830
mov rcx, rdi
call fcn.14006d130
mov dword [rsp - 0x34], edx
mov edx, 0x57e2c5aa
add edx, 0x1b14346
xor edx, 0x7dd664b3
mov r11, r11
xor edx, 0x55c5cddd
xor edx, 0x6cab35bc
sub edx, 0x1d2c93f2
mov rcx, rdi
mov dword [rsp - 0x38], 0x101d2edb
call fcn.140073d00
cmp qword [rbp - 0x38], 4
jbe 0x140032a2c
mov rcx, qword [rbp - 0x40]
xchg r8, r8
call fcn.140073d00
cmp qword [rbp - 0x28], 4
jbe 0x140032a3f
xchg rdi, rdi
mov rcx, qword [rbp - 0x30]
call fcn.140073d00
mov al, 0x6f
sub al, 0xf
xchg r10, r10
sub al, 0x41
add al, 0x23
sub al, 0x25
sub al, 0x1c
xchg rdx, rdx
jmp 0x140032aa9
test rdi, rdi
je 0x140032aa7
mov dword [rsp - 0x38], 0x12b4ca83
mov rcx, rdi
call fcn.14006d130
mov edx, 0x3a9e1b97
xchg rsi, rsi
xor edx, 0xf287627
add edx, 0xfce0474
sub edx, 0x4fec231
mov rdi, rdi
sub edx, 0x2efcc970
add edx, 0x2832d8f7
sub edx, 0x39bbbf4a
mov rcx, rdi
mov dword [rsp - 0x20], 0x5e422d42
call fcn.140073d00
xor al, al
mov rbx, qword [rsp + 0xb8]
mov r10, r10
add rsp, 0x70
pop r15
pop r14
pop r13
xchg r15, r15
pop r12
pop rdi
pop rsi
mov r15, r15
pop rbp
ret