Function at 0x140031930
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
mov dword [rsp - 0x2c], 0x110c31ea
push rdi
push r12
push r13
push r14
mov r14, r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov dword [rsp - 0x1c], 0x4ae12f45
xor ebx, ebx
mov r12, rdx
test dword [rcx + 0x40], 0x4000
mov r14, rcx
mov dword [rsp - 0x3c], 0x2ce8d3a9
mov r13d, ebx
mov edi, ebx
jne 0x140031c43
lea ecx, [rbx + 0x30]
mov dword [rsp - 0x34], 0x5266588a
call fcn.140072200
test rax, rax
je 0x1400319c6
mov dword [rsp - 0x3c], esi
mov rdx, qword [r14 + 0x70]
mov r8b, 0x43
xor r8b, 0x5d
add r8b, 0x1d
mov dword [rsp - 0x34], 0x447b36e0
xor r8b, 0x38
xor r8b, 2
add rdx, 0x30
mov rcx, rax
xchg r10, r10
call fcn.14006b470
mov rdi, rax
mov rcx, rdi
call fcn.14006b800
mov rbp, rbp
test al, al
je 0x1400323b9
call fcn.140073340
movzx ebx, ax
mov r15, r15
shl ebx, 0x10
call fcn.140073340
movzx r9d, ax
mov edx, 0x61f11c84
mov r12, r12
sub edx, 0xb404b
sub edx, 0x23e6e744
add edx, 0xaa93144
add edx, 0x72bf16c
mov dword [rsp - 0x3c], esi
or r9d, ebx
mov r8d, 0x7e5701a7
sub r8d, 0x1c53aef0
mov dword [rsp - 0x28], 0x3352c898
add r8d, 0x1171676
xor r8d, 0x1897c42b
xor r8d, 0x1a256d31
mov dword [rsp - 0x3c], 0x71a3cf33
xor r8d, 0xa77f57de
mov rcx, rdi
call fcn.14006c140
xchg r10, r10
mov rcx, r14
mov r13d, eax
call fcn.140031400
mov r8d, eax
xchg r10, r10
xor r9d, r9d
mov edx, 0x188eb37
add edx, 0x43f3ac49
mov dword [rsp - 0x40], 0x3057ddd5
add edx, 0x44c1437
add edx, 0x3317e3fe
xor edx, 0x33349810
mov rsi, rsi
mov rcx, rdi
call fcn.14006c260
mov r15, rax
test rax, rax
mov r12, r12
je 0x140031c41
nop
movabs r8, 0xffffffff2d9b786a
xor r8, 0x520f8d2
mov dword [rsp - 0x18], ebp
sub r8, 0x6465925
add r8, 0x31b88f13
sub r8, 0x156e1c15
mov dword [rsp - 0x3c], edi
sub r8, 0x21fafdf
add r8, 0x7fffffff
add r8, 0x4360154e
xchg r8, r8
lea rcx, [rbp - 0x50]
mov rdx, rax
call fcn.140005b10
mov dword [rsp - 0x18], esp
mov rdx, qword [r14 + 0x70]
lea rcx, [rbp - 0x40]
add rdx, 0x20
xchg r8, r8
mov r8d, 0x7fee0f0d
sub r8d, 0xbbbc7a4
sub r8d, 0xf10e730
mov dword [rsp - 0xc], 0x55c4f7ba
sub r8d, 0x20dfdd47
sub r8d, 0x7cb7934
add r8d, 0x472ba27
mov dword [rsp - 0xc], 0x2bba80a8
xor r8d, 0x40e8c3b9
mov rbx, qword [rax]
call fcn.140068a50
mov rdx, rax
mov dword [rsp - 0x40], 0x577602a4
lea rcx, [rbp - 0x30]
mov r8, rbx
call fcn.140068790
mov dword [rsp - 0x2c], 0x7eb2fd94
mov rdx, rax
mov r9, r12
mov r8d, r13d
mov rsp, rsp
mov rcx, r14
call fcn.140032510
cmp qword [rbp - 0x28], 4
movzx ebx, al
mov dword [rsp - 0x18], 0x75b646ce
jbe 0x140031bad
mov rcx, qword [rbp - 0x30]
call fcn.140072210
xchg r12, r12
cmp qword [rbp - 0x38], 4
jbe 0x140031bc0
mov rcx, qword [rbp - 0x40]
xchg r15, r15
call fcn.140072210
cmp byte [rbp - 0x48], 0
je 0x140031bd2
mov rcx, qword [rbp - 0x50]
mov r11, r11
call fcn.140072210
test bl, bl
je 0x140031c39
test rdi, rdi
mov dword [rsp - 0x28], 0x7d0a864d
je 0x140031c1a
mov rcx, rdi
call fcn.14006b630
mov rcx, rcx
mov edx, 0x730dc6c2
xor edx, 0x82991e6
sub edx, 0x1e83c68a
mov dword [rsp - 0x20], esi
xor edx, 0x30357758
sub edx, 0x6c95e792
mov rcx, rdi
call fcn.140072210
mov r13, r13
mov rcx, r15
call fcn.140072210
mov al, 0x7a
xor al, 0x23
xchg r14, r14
xor al, 0x14
add al, 0x31
xor al, 0x1c
sub al, 0x61
xchg r9, r9
jmp 0x1400324e3
mov rcx, r15
call fcn.140072210
xor ebx, ebx
mov rdx, r12
mov dword [rsp - 0x40], ecx
mov rcx, r14
call fcn.140032910
test al, al
je 0x14003249b
mov rbx, rbx
test rdi, rdi
je 0x140032485
mov dword [rbp + 0x40], 0x1449052d
add dword [rbp + 0x40], 0x3878754
mov rbx, rbx
xor dword [rbp + 0x40], 0x431e6bf
add dword [rbp + 0x40], 0x3b3fd5ef
xor dword [rbp + 0x40], 0x79ad4bb0
add dword [rbp + 0x40], 0x34bfff62
mov rdx, rdx
xor dword [rbp + 0x40], 0x540436b4
mov rcx, rbx
mov eax, dword [rbp + 0x40]
mov dword [rbp + 0x40], eax
xchg r13, r13
mov qword [rbp - 0x48], 0x2fe297cb
xor qword [rbp - 0x48], 0x3101eb
xor qword [rbp - 0x48], 0x337d2ebc
mov rbp, rbp
add qword [rbp - 0x48], 0x34260105
sub qword [rbp - 0x48], 0x379ce91d
sub qword [rbp - 0x48], 0x5a79c9f
xchg r9, r9
sub qword [rbp - 0x48], 0x139033e1
movsx eax, byte [rbp + rcx + 0x40]
mov word [rbp + rcx*2 - 0x50], ax
inc rcx
mov dword [rsp - 0xc], ebx
cmp rcx, qword [rbp - 0x48]
jb 0x140031ce7
mov r9d, 0x7a6399b7
mov r8, r8
sub r9d, 0x27ec1984
sub r9d, 0x3ddfcb72
add r9d, 0x20839a65
mov dword [rsp - 0x30], 0x15f96fbb
sub r9d, 0x1a6ccf05
xor r9d, 0x1aae802b
lea rdx, [rbp - 0x20]
lea rcx, [0x1400a3f20]
xchg r10, r10
lea r8d, [r9 - 5]
call fcn.14006d970
mov rdx, rax
lea r8, [rbp - 0x50]
xchg r15, r15
lea rcx, [rbp - 0x30]
call fcn.140068480
cmp qword [rbp - 0x18], 4
jbe 0x140031d6f
mov rdx, rdx
mov rcx, qword [rbp - 0x20]
call fcn.140072210
cmp qword [rbp - 0x48], 4
xchg rsp, rsp
jbe 0x140031d85
mov rcx, qword [rbp - 0x50]
call fcn.140072210
mov r9, r9
mov rdx, qword [r14 + 0x70]
lea rcx, [rbp - 0x20]
add rdx, 0x20
mov r8d, 0x68dd6504
mov r10, r10
xor r8d, 0x64e16383
add r8d, 0x546499b5
sub r8d, 0xb641e9e
mov rbp, rbp
add r8d, 0x1676fed3
sub r8d, 0x6bb38015
call fcn.140068a50
mov rdx, rax
mov dword [rsp - 0x40], 0x230d6b4
lea r8, [rbp - 0x30]
lea rcx, [rbp - 0x40]
call fcn.140068480
mov r13, r13
cmp qword [rbp - 0x18], 4
jbe 0x140031df3
mov rcx, qword [rbp - 0x20]
call fcn.140072210
mov rdi, rdi
mov r12, qword [r12]
lea rcx, [rbp - 0x50]
mov edx, r13d
mov dword [rsp - 0x1c], ecx
call fcn.140069ab0
mov r8d, 0xf4abc7c
add r8d, 0x26d9de40
xor r8d, 0xed83080
mov dword [rsp - 0x34], 0x562cbf3b
add r8d, 0x26960a86
sub r8d, 0xe45d481
sub r8d, 0x1a883e14
sub r8d, 0x36c4a22b
mov dword [rsp - 0xc], ebx
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x50]
call fcn.140069b40
mov dword [rsp - 0x38], 0x6bc924cb
test al, al
je 0x14003240d
mov eax, dword [r14 + 0x50]
lea rdx, [rbp + 0x50]
xchg r8, r8
xor eax, 0x49322ea4
lea rcx, [rbp - 0x50]
mov dword [rbp + 0x50], eax
mov r8d, 0x215667b8
xchg rdi, rdi
xor r8d, 0x73d17eb7
add r8d, 0x6b7f4ef
xor r8d, 0x5e6b20a0
mov rcx, rcx
sub r8d, 0x7542d56
mov eax, dword [r14 + 0x54]
xor eax, 0x49322ea4
mov dword [rbp + 0x54], eax
xchg rdi, rdi
call fcn.14006a7b0
test al, al
je 0x14003240d
mov eax, dword [r14 + 0x5c]
mov r12, r12
lea rdx, [rbp + 0x40]
xor eax, 0x49322ea4
lea rcx, [rbp - 0x50]
mov r8d, 0xa141547
xchg r10, r10
xor r8d, 0x79ed20a
add r8d, 0x432e6f9f
xor r8d, 0x47be5b23
mov dword [rsp - 0x40], esp
xor r8d, 0x47d96a97
sub r8d, 0x23386399
sub r8d, 0x2da5a3bb
mov dword [rbp + 0x40], eax
mov dword [rsp - 0x10], 0x4bb28425
call fcn.14006a7b0
test al, al
je 0x14003240d
mov r12, r12
lea rdx, [r14 + 0x68]
mov r8d, 0x3aef2645
sub r8d, 0x20357051
add r8d, 0x5ede3749
xchg rdx, rdx
xor r8d, 0x5aaa7d1c
xor r8d, 0xcb69138
xor r8d, 0x2f8b011d
mov rdx, rdx
lea rcx, [rbp - 0x50]
call fcn.14006a7b0
test al, al
je 0x14003240d
mov rcx, rcx
test dword [r14 + 0x40], 0x2000
pushf
mov eax, 0x1f2f5bb4
xor eax, 0x436544de
xchg rdx, rdx
xor eax, 0x7b508b15
sub eax, 0x5409b1f
xor eax, 0x5bbaf73c
mov dword [rsp - 0x18], ebp
sub eax, 0x67464fa7
xor eax, 0x131cbe4a
popf
pushf
mov dword [rsp - 0x18], 0x4591b80e
mov r15d, 0x439b06a4
xor r15d, 0x3db7af7e
sub r15d, 0x3a47deb9
add r15d, 0x2fcbf8d7
mov rcx, rcx
xor r15d, 0x59f12318
add r15d, 0x316e80fe
sub r15d, 0x5baf61df
popf
xchg r14, r14
cmovne r15d, eax
xor esi, esi
nop
xchg r14, r14
mov rax, qword [r14 + 0x60]
lea rdx, [rbp - 0x20]
mov r8d, 0x25c90d74
mov dword [rsp - 0x28], 0x5b73924b
add r8d, 0x2d7ec555
add r8d, 0x7414164
xor r8d, 0x2a7b8f38
xchg r12, r12
sub r8d, 0x70f29b05
lea rcx, [rbp - 0x50]
movups xmm0, xmmword [rsi + rax]
xorps xmm0, xmmword [0x1400a7f40]
xchg rbp, rbp
movaps xmmword [rbp - 0x20], xmm0
call fcn.14006a7b0
test al, al
je 0x14003240d
mov dword [rsp - 0x30], 0x73293439
inc rbx
add rsi, 0x10
cmp rbx, r15
mov dword [rsp - 0xc], ecx
jb 0x140031fea
test dword [r14 + 0x40], 0x2000
xorps xmm0, xmm0
pushf
mov dword [rsp - 0x14], 0x3226c5e6
mov ebx, 0xba32851
xor ebx, 0x22605a88
xor ebx, 0x2208d886
mov dword [rsp - 0x3c], 0x47c73bdd
xor ebx, 0x5a74a8ed
xor ebx, 0x6930d0e1
sub ebx, 0x388ed254
popf
mov dword [rsp - 0x24], esp
pushf
mov ecx, 0x35fce699
add ecx, 0xbded980
mov dword [rsp - 0x20], edi
sub ecx, 0x2ecfdd43
xor ecx, 0x610e2314
sub ecx, 0x2e497c59
sub ecx, 0x43bc446a
mov rbx, rbx
popf
cmovne ebx, ecx
movups xmmword [rbp - 0x10], xmm0
mov dword [rsp - 0x10], esi
je 0x140032138
nop dword [rax + rax]
mov r8d, 0x59a42276
add r8d, 0x1183eec4
xchg rsp, rsp
sub r8d, 0x3dc5ebdb
add r8d, 0x3b993dd7
sub r8d, 0x68fb6326
xchg rsi, rsi
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x50]
call fcn.14006a7b0
test al, al
mov dword [rsp - 0x20], 0x5f8cfc55
je 0x14003240d
inc rbx
cmp rbx, 0xffff
mov dword [rsp - 0x18], ecx
jb 0x1400320e3
mov r8d, dword [rbp + 0x54]
lea rcx, [rbp - 0x50]
imul r8d, dword [rbp + 0x50]
mov dword [rsp - 0xc], 0x1c1c5446
mov rdx, r12
shl r8d, 2
call fcn.14006a7b0
test al, al
mov dword [rsp - 0x14], 0x2bad88dd
je 0x14003240d
lea rcx, [rbp - 0x50]
call fcn.14006aa10
mov dword [rsp - 0x44], esi
lea rcx, [rbp - 0x50]
call fcn.140069b30
lea rdx, [rbp - 0x30]
mov dword [rsp - 0x10], 0x7081cc7d
lea rcx, [rbp - 0x20]
call fcn.140005870
mov rcx, r14
xchg rdi, rdi
mov rbx, rax
call fcn.140031400
mov r9, qword [rbx]
mov r8d, eax
mov dword [rsp - 0x20], esi
mov edx, 0x67e51999
xor edx, 0x7cf546a1
sub edx, 0x9ceb7be
mov r9, r9
add edx, 0x43f6524d
sub edx, 0x87846dd
xor edx, 0x36ba54f
mov rcx, rdi
mov r15, r15
call fcn.14006c9b0
cmp byte [rbp - 0x18], 0
je 0x1400321f4
mov dword [rsp - 0x18], 0x47339d95
mov rcx, qword [rbp - 0x20]
call fcn.140072210
mov r9d, r13d
mov dword [rsp - 0x44], esi
mov edx, 0xd3b8b54
add edx, 0x11c33fe5
xor edx, 0x24dd5be1
xchg r11, r11
xor edx, 0x6a3cc0ba
add edx, 0x23917e1d
sub edx, 0x23dcb6da
mov r8d, 0x7ffc27cb
xchg rsp, rsp
xor r8d, 0x24c31226
sub r8d, 0x1abefdbd
add r8d, 0x3dec2c72
sub r8d, 0x581da15
mov dword [rsp - 0x10], ecx
sub r8d, 0x6ec9e264
xor r8d, 0xccf73fc0
mov rcx, rdi
mov r12, r12
call fcn.14006c940
mov rcx, rdi
call fcn.14006c3a0
mov dword [rsp - 0x24], 0x61e8a766
test al, al
jne 0x140032416
mov r14, qword [rbp - 0x38]
mov dword [rsp - 0x10], 0x26462548
lea rsi, [rbp - 0x40]
cmp r14, 4
pushf
mov eax, 0x1e685e50
xchg r13, r13
add eax, 0x25f046a7
xor eax, 0x4469e384
xor eax, 0x68da1ca3
mov dword [rsp - 0x2c], esi
xor eax, 0x3435ea14
sub eax, 0x5cdeb1c2
popf
cmova rsi, qword [rbp - 0x40]
mov r11, r11
lea rcx, [r14 + 1]
mul rcx
pushf
movabs rcx, 0xffffffff7152269f
xchg r12, r12
sub rcx, 0x27501eba
xor rcx, 0x3e364cfc
sub rcx, 0x4655340b
add rcx, 0x7fffffff
mov dword [rsp - 0x18], edi
xor rcx, 0x5220e8f2
popf
cmovo rax, rcx
mov rcx, rax
mov dword [rsp - 0x3c], 0x1983b82
call fcn.140072200
xor r9d, r9d
mov rbx, rax
xchg r15, r15
mov r8d, r9d
test r14, r14
je 0x140032391
mov rdx, rax
mov r9, r9
sub rsi, rax
nop
movzx ecx, r8b
lea rdx, [rdx + 2]
mov dword [rsp - 0x1c], ebx
and cl, 3
mov eax, 0x3dce466
add eax, 0x5d4651
mov dword [rsp - 0x1c], 0x50d3f286
add eax, 0x405ab013
xor eax, 0x32a2477b
sub eax, 0x38cd072d
mov dword [rsp - 0x14], edx
add eax, 0x1e3d941b
xor eax, 0xa8674fa
shl cl, 3
inc r8
mov rdi, rdi
sar eax, cl
movsx eax, al
xor ax, word [rsi + rdx - 2]
mov dword [rsp - 0x38], 0x662f60a9
mov word [rdx - 2], ax
cmp r8, r14
jb 0x14003232f
mov word [rbx + r14*2], r9w
xchg rdx, rdx
mov rcx, rbx
mov rax, qword [0x1400a2c00]
xor rax, qword [0x1400a2a90]
xchg r9, r9
call rax
mov rcx, rbx
call fcn.140072210
jmp 0x140032416
test rdi, rdi
je 0x140032405
mov rcx, rdi
mov dword [rsp - 0x34], 0x72060121
call fcn.14006b630
mov edx, 0x2819b58b
sub edx, 0x101c91b6
add edx, 0x1faa1456
xchg rsp, rsp
xor edx, 0x4881f532
sub edx, 0x49bd53a8
sub edx, 0x3135754b
sub edx, 0x43403f6
xchg rdi, rdi
mov rcx, rdi
call fcn.140072210
mov rdi, rbx
jmp 0x140031c43
lea rcx, [rbp - 0x50]
call fcn.140069b30
mov rcx, rdi
call fcn.14006b630
mov rsi, rsi
mov edx, 0x4c3d3d2b
add edx, 0x50d6734
sub edx, 0x25349fab
xchg r10, r10
sub edx, 0x220bf18e
xor edx, 0x39a0bb4b
xor edx, 0x33aaa85d
mov dword [rsp - 0x28], 0x622dcda1
mov rcx, rdi
call fcn.140072210
cmp qword [rbp - 0x38], 4
mov r13, r13
jbe 0x14003246a
mov rcx, qword [rbp - 0x40]
call fcn.140072210
cmp qword [rbp - 0x28], 4
xchg r15, r15
jbe 0x140032485
mov rcx, qword [rbp - 0x30]
call fcn.140072210
mov dword [rsp - 0x18], 0x643d1dd9
mov al, 0x6d
sub al, 0x4b
xor al, 0x2c
mov dword [rsp - 0x3c], 0x78914742
add al, 0x3e
xor al, 0x67
xor al, 0x2a
jmp 0x1400324e3
test rdi, rdi
je 0x1400324dd
mov rcx, rdi
mov dword [rsp - 0x18], edx
call fcn.14006b630
mov edx, 0x20020802
xor edx, 0x454d4bd6
mov r12, r12
sub edx, 0x27f47693
add edx, 0x22e474a8
add edx, 0x1863c05a
sub edx, 0x78a30213
mov rcx, rcx
mov rcx, rdi
call fcn.140072210
xor al, al
mov dword [rsp - 0x34], ebx
mov rbx, qword [rsp + 0xb8]
add rsp, 0x70
pop r15
pop r14
xchg r12, r12
pop r13
pop r12
pop rdi
pop rsi
xchg r8, r8
pop rbp
ret