Function at 0x14011ef4c
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x478
mov ebx, dword [rsp + 0x4e8]
mov dword [rsp + 0x4d8], r9d
xor r9d, r9d
mov rdi, rcx
mov r13, rdx
mov qword [r8], r9
mov r12, r8
test rdx, rdx
je 0x14011f6cf
mov rcx, rdx
lea rbp, [rsp + 0x70]
call fcn.14011ed70
test rax, rax
mov rsi, rax
jne 0x14011efd2
lea rax, str..pat
mov r9, r13
mov edx, 0x400
mov rcx, rbp
mov qword [rsp + 0x20], rax
lea r8, str._s_s
call fcn.14000df38
mov rcx, rbp
call fcn.14011ed70
mov rsi, rax
test rax, rax
je 0x14011f6cf
mov r9d, 0xef
mov r8d, 1
mov rdx, rbp
mov rcx, rsi
call fcn.14000d928
cmp rax, 0xef
jne 0x14011f6c1
mov r8d, 0x16
lea rdx, str.GF1PATCH110
mov rcx, rbp
call fcn.14000d032
test eax, eax
jne 0x14011f026
mov al, byte [rsp + 0xc2]
or al, byte [rsp + 0x107]
cmp al, 1
ja 0x14011f6c1
jmp 0x14011f044
mov r8d, 0x16
lea rdx, str.GF1PATCH100
mov rcx, rbp
call fcn.14000d032
test eax, eax
je 0x14011f00e
jmp 0x14011f6c1
mov ecx, 0x10
call fcn.14000cfc9
mov qword [r12], rax
mov rbp, rax
test rax, rax
je 0x14011f6b3
movsx rax, byte [rsp + 0x136]
mov dword [rbp], eax
imul rcx, rax, 0x70
call fcn.14000cfc9
mov qword [rbp + 8], rax
test rax, rax
je 0x14011f6b3
xor eax, eax
cmp ebx, 0xffffffff
cmove ebx, eax
lea rax, [rsp + 0x68]
xor r8d, r8d
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x6c]
mov byte [rsp + 0x4f], bl
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0x40]
cmp dword [rbp], eax
jle 0x14011f6a9
mov r8d, 1
mov edx, 7
mov rcx, rsi
call fcn.14000d91a
mov rdx, qword [rsp + 0x58]
mov r9d, 1
mov rcx, rsi
mov r8d, 1
call fcn.14000d928
dec rax
jne 0x14011f6b9
mov rdx, qword [rsp + 0x38]
mov r9d, 1
mov r8d, 4
mov rcx, rsi
imul rbx, qword [rsp + 0x40], 0x70
add rbx, qword [rbp + 8]
call fcn.14000d928
dec rax
jne 0x14011f6b9
mov eax, dword [rsp + 0x6c]
mov rdx, qword [rsp + 0x38]
mov r9d, 1
mov rcx, rsi
mov r8d, 4
mov dword [rbx + 8], eax
call fcn.14000d928
dec rax
jne 0x14011f6b9
mov eax, dword [rsp + 0x6c]
mov rdx, qword [rsp + 0x38]
mov r9d, 1
mov rcx, rsi
mov r8d, 4
mov dword [rbx], eax
call fcn.14000d928
dec rax
jne 0x14011f6b9
mov eax, dword [rsp + 0x6c]
lea rdx, [rsp + 0x6a]
mov r9d, 1
mov rcx, rsi
mov r8d, 2
mov dword [rbx + 4], eax
call fcn.14000d928
dec rax
jne 0x14011f6b9
movzx eax, word [rsp + 0x6a]
mov rdx, qword [rsp + 0x38]
mov r9d, 1
mov rcx, rsi
mov r8d, 4
mov dword [rbx + 0xc], eax
call fcn.14000d928
dec rax
jne 0x14011f6b9
mov eax, dword [rsp + 0x6c]
mov rdx, qword [rsp + 0x38]
mov r9d, 1
mov rcx, rsi
mov r8d, 4
mov dword [rbx + 0x10], eax
call fcn.14000d928
dec rax
jne 0x14011f6b9
mov eax, dword [rsp + 0x6c]
mov rdx, qword [rsp + 0x38]
mov r9d, 1
mov rcx, rsi
mov r8d, 4
mov dword [rbx + 0x14], eax
call fcn.14000d928
dec rax
jne 0x14011f6b9
mov eax, dword [rsp + 0x6c]
mov r8d, 1
mov edx, 2
mov rcx, rsi
mov dword [rbx + 0x18], eax
call fcn.14000d91a
lea rdx, [rsp + 0x69]
mov r9d, 1
mov rcx, rsi
mov r8d, 1
call fcn.14000d928
dec rax
jne 0x14011f6b9
mov al, byte [rsp + 0x4d8]
mov dl, byte [rsp + 0x69]
and eax, 0x7f
cmp dword [rsp + 0x4d8], 0xffffffff
mov byte [rsp + 0x70], dl
jne 0x14011f26e
lea eax, [rdx*8 + 4]
and eax, 0x7f
mov byte [rbx + 0x6b], al
lea rdx, [rsp + 0x70]
mov r9d, 0x12
mov rcx, rsi
mov r8d, 1
call fcn.14000d928
cmp rax, 0x12
jne 0x14011f6b9
mov cl, byte [rsp + 0x7d]
test cl, cl
je 0x14011f2a6
mov r9b, byte [rsp + 0x7e]
test r9b, r9b
jne 0x14011f2b2
xor ecx, ecx
mov byte [rbx + 0x68], 0
mov qword [rbx + 0x58], rcx
jmp 0x14011f2f5
movzx r11d, byte [rsp + 0x7c]
mov r10d, dword [rdi + 0x102ec]
xor eax, eax
mov r8d, dword [rdi + 0x10]
test r11b, r11b
je 0x14011f2d9
imul eax, r10d, 0x26
imul r11d, r8d
shl eax, 0x10
cdq
idiv r11d
mov dword [rbx + 0x58], eax
mov byte [rbx + 0x68], r9b
movzx eax, cl
imul r8d, r8d, 0x26
imul eax, r10d
shl eax, 0xf
cdq
idiv r8d
mov dword [rbx + 0x5c], eax
movzx r9d, byte [rsp + 0x80]
test r9b, r9b
je 0x14011f30e
mov cl, byte [rsp + 0x81]
test cl, cl
jne 0x14011f31a
xor edx, edx
mov byte [rbx + 0x69], 0
mov qword [rbx + 0x60], rdx
jmp 0x14011f36d
mov r8d, dword [rdi + 0x10]
shl r9d, 6
imul eax, r8d, 0x26
cdq
idiv r9d
movzx edx, byte [rsp + 0x7f]
xor r9d, r9d
mov dword [rbx + 0x64], eax
test dl, dl
je 0x14011f366
imul edx, r8d
cvtsi2sd xmm0, eax
mulsd xmm0, qword [0x1401bd660]
mulsd xmm0, qword [0x1401bd668]
cvtsi2sd xmm1, edx
cvtsd2ss xmm0, xmm0
cvtss2sd xmm0, xmm0
divsd xmm0, xmm1
cvttsd2si r9d, xmm0
mov dword [rbx + 0x60], r9d
mov byte [rbx + 0x69], cl
lea rdx, [rsp + 0x69]
mov r9d, 1
mov r8d, 1
mov rcx, rsi
call fcn.14000d928
dec rax
jne 0x14011f6b9
mov al, byte [rsp + 0x69]
mov r8d, 1
mov edx, 0x28
mov rcx, rsi
mov byte [rbx + 0x6a], al
call fcn.14000d91a
mov al, byte [rsp + 0x4f]
mov byte [rbx + 0x6c], al
mov al, byte [rbx + 0x6a]
test al, 4
je 0x14011f3bd
or eax, 0x20
mov byte [rbx + 0x6a], al
cmp dword [rsp + 0x4f0], 1
jne 0x14011f3d4
mov al, byte [rbx + 0x6a]
test al, 0x3c
je 0x14011f3d4
and eax, 0xffffffc3
mov byte [rbx + 0x6a], al
cmp dword [rsp + 0x4f8], 1
je 0x14011f416
cmp dword [rsp + 0x4f8], 0
je 0x14011f429
mov al, byte [rbx + 0x6a]
test al, 0x1c
jne 0x14011f3f4
and eax, 0xffffff9f
jmp 0x14011f426
lea rcx, [rsp + 0x70]
mov r8d, 6
lea rdx, str.______
call fcn.14000d032
test eax, eax
je 0x14011f416
cmp byte [rsp + 0x7b], 0x63
jle 0x14011f41c
and byte [rbx + 0x6a], 0xbf
jmp 0x14011f429
mov al, byte [rbx + 0x6a]
test al, 0x20
jne 0x14011f429
and eax, 0xffffffbf
mov byte [rbx + 0x6a], al
mov r9d, dword [rdi + 0x10]
mov r11d, dword [rdi + 0x102ec]
xor r8d, r8d
lea r10, [rsp + 0x76]
mov al, byte [rsp + r8 + 0x70]
mov ecx, eax
and eax, 0x3f
shr cl, 6
xor ecx, 3
movzx ecx, cl
lea ecx, [rcx + rcx*2]
shl eax, cl
imul eax, eax, 0xac44
cdq
idiv r9d
imul eax, r11d
shl eax, 0xa
mov dword [rbx + r8*4 + 0x1c], eax
movzx eax, byte [r10 + r8]
shl eax, 0x16
mov dword [rbx + r8*4 + 0x34], eax
inc r8
cmp r8, 6
jne 0x14011f43c
mov eax, dword [rbx + 8]
lea ecx, [rax + 4]
movsxd rcx, ecx
call fcn.14000cfc9
mov qword [rbx + 0x50], rax
mov rdx, rax
test rax, rax
je 0x14011f6b3
movsxd r8, dword [rbx + 8]
mov r9d, 1
mov rcx, rsi
call fcn.14000d928
dec rax
jne 0x14011f6b9
mov r13d, dword [rbx + 8]
mov edx, dword [rbx]
mov eax, dword [rbx + 4]
test byte [rbx + 0x6a], 1
jne 0x14011f51a
lea ecx, [r13 + r13]
add edx, edx
add eax, eax
mov r14, qword [rbx + 0x50]
mov dword [rbx + 8], ecx
add ecx, 4
mov dword [rbx], edx
movsxd rcx, ecx
mov dword [rbx + 4], eax
call fcn.14000cfc9
mov r15, rax
test rax, rax
je 0x14011f6b3
xor eax, eax
cmp r13, rax
je 0x14011f50d
movzx edx, byte [r14 + rax]
shl edx, 8
mov word [r15 + rax*2], dx
inc rax
jmp 0x14011f4f6
mov rcx, qword [rbx + 0x50]
call fcn.14000cfde
mov qword [rbx + 0x50], r15
mov ecx, dword [rbx + 8]
mov r8d, 2
mov r10b, byte [rbx + 0x6a]
mov r9, qword [rbx + 0x50]
mov eax, ecx
cdq
idiv r8d
mov r8d, eax
mov edx, eax
xor eax, eax
test r10d, 2
jne 0x14011f56c
movsxd r11, r8d
add r11, r11
lea r14, [r9 + r11]
test r10d, 0x10
je 0x14011f5bb
mov eax, ecx
mov r13d, 4
cdq
idiv r13d
mov r13, r14
xor edx, edx
mov qword [rsp + 0x50], rax
jmp 0x14011f57d
cmp rdx, rax
je 0x14011f541
add word [r9 + rax*2], 0x8000
inc rax
jmp 0x14011f56c
cmp qword [rsp + 0x50], rdx
je 0x14011f5a1
mov r15w, word [r9 + rdx*2]
mov ax, word [r13]
sub r13, 2
mov word [r9 + rdx*2], ax
inc rdx
mov word [r13 + 2], r15w
jmp 0x14011f57d
mov eax, dword [rbx]
and r10d, 0xffffffef
mov edx, ecx
sub edx, dword [rbx + 4]
or r10d, 4
mov dword [rbx], edx
sub ecx, eax
mov byte [rbx + 0x6a], r10b
mov dword [rbx + 4], ecx
cmp dword [rsp + 0x4e0], 0xffffffff
jne 0x14011f5ce
mov r10d, r8d
xor ecx, ecx
xor edx, edx
jmp 0x14011f5e1
cvtsi2sd xmm0, dword [rsp + 0x4e0]
divsd xmm0, qword [0x1401bd670]
jmp 0x14011f614
cmp r10, rcx
je 0x14011f601
mov ax, word [r9 + rcx*2]
mov r13d, eax
neg r13w
cmovns eax, r13d
cmp dx, ax
cmovl edx, eax
inc rcx
jmp 0x14011f5e1
movsx edx, dx
movsd xmm0, qword [0x1401bd678]
cvtsi2sd xmm1, edx
divsd xmm0, xmm1
mov eax, dword [rbx]
mov r10d, 2
shl r8d, 0xc
cvtsd2ss xmm0, xmm0
movss dword [rbx + 0x4c], xmm0
cdq
idiv r10d
mov ecx, eax
mov eax, dword [rbx + 4]
mov word [r9 + r11 + 2], 0
mov word [r14], 0
shl ecx, 0xc
cdq
mov dword [rbx + 8], r8d
idiv r10d
mov dl, byte [rsp + 0x68]
mov r8d, edx
shr dl, 4
shl r8d, 8
movzx edx, dl
and r8d, 0xf00
shl edx, 8
or ecx, r8d
mov dword [rbx], ecx
shl eax, 0xc
or edx, eax
cmp byte [rbx + 0x6c], 0
mov dword [rbx + 4], edx
je 0x14011f68f
test byte [rbx + 0x6a], 4
jne 0x14011f68f
mov rdx, rbx
mov rcx, rdi
call fcn.140121a2f
cmp dword [rdi], 0
jne 0x14011f6b9
cmp dword [rsp + 0x500], 1
jne 0x14011f69f
mov eax, dword [rbx + 4]
mov dword [rbx + 8], eax
inc qword [rsp + 0x40]
jmp 0x14011f0a8
mov rcx, rsi
call fcn.14000d936
jmp 0x14011f6cf
mov dword [rdi], 1
mov rcx, rbp
call fcn.14011ef00
mov rcx, rsi
call fcn.14000d936
xor eax, eax
mov qword [r12], rax
add rsp, 0x478
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret