Function at 0x1400f0b00
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push r14
sub rsp, 0x100
mov rax, qword [0x1402a83b0]
xor rax, rsp
mov qword [rsp + 0xe0], rax
cmp dword [rcx + 0x24668], 0
mov rdi, rcx
mov qword [rsp + 0x90], rcx
je 0x1400f0b47
call fcn.1401be514
lea rdx, str.AHD_interpolation..._n
lea rcx, [rax + 0x60]
call fcn.1401be844
mov qword [rsp + 0x128], rbx
mov qword [rsp + 0x130], rbp
mov qword [rsp + 0x138], r12
xor r8d, r8d
xor edx, edx
mov rcx, rdi
mov qword [rsp + 0xf8], r13
mov qword [rsp + 0xf0], r15
call fcn.1400f47b0
mov edx, 5
mov rcx, rdi
call fcn.1400f2a60
mov ecx, 0x680000
call fcn.1401bee78
lea r8, str.ahd_interpolate__
mov rcx, rdi
mov rdx, rax
mov r14, rax
mov qword [rsp + 0x40], rax
call fcn.140106a20
movzx ecx, word [rdi + 0x44f4]
lea rax, [r14 + 0x300000]
mov esi, 2
mov qword [rsp + 0x98], rax
lea rax, [r14 + 0x600000]
sub ecx, 5
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x28], esi
cmp ecx, esi
jle 0x1400f1768
mov ebx, esi
xor r10d, r10d
mov qword [rsp + 0x38], rbx
nop dword [rax]
movzx eax, word [rdi + 0x44f6]
mov r12d, 2
mov edx, r12d
sub eax, 5
mov dword [rsp + 0x24], r12d
mov qword [rsp + 0x30], rdx
cmp eax, edx
jle 0x1400f1740
mov r8, rbx
lea r9d, [rsi + 0x200]
neg r8
mov dword [rsp + 0x78], r9d
mov qword [rsp + 0x68], r8
nop dword [rax]
mov r15d, esi
cmp esi, r9d
jge 0x1400f0e16
mov ecx, r12d
mov r13, rdx
and ecx, 1
neg r13
mov dword [rsp + 0x20], ecx
nop dword [rax]
movzx eax, word [rdi + 0x44f4]
sub eax, 2
cmp r15d, eax
jge 0x1400f0e05
mov edx, dword [rdi + 0x3d0]
mov eax, r15d
and eax, 7
mov ebx, edx
lea r8d, [rax + rax]
lea eax, [r8 + rcx]
lea ecx, [rax + rax]
lea eax, [r12 + 0x200]
shr ebx, cl
and ebx, 1
add ebx, r12d
movsxd r12, eax
movsxd rsi, ebx
cmp rsi, r12
jge 0x1400f0de9
mov eax, ebx
and eax, 1
add eax, r8d
lea ecx, [rax + rax]
shr edx, cl
and edx, 3
movsxd rbp, edx
nop
movzx ecx, word [rdi + 0x44f6]
lea eax, [rcx - 2]
cmp ebx, eax
jge 0x1400f0de4
mov rax, qword [rdi + 0x4510]
imul ecx, r15d
movsxd rcx, ecx
add rcx, rsi
lea r11, [rax + rcx*8]
movzx edx, word [r11 - 6]
movzx r8d, word [r11 + 0xa]
movzx eax, word [r11 + rbp*2 - 0x10]
movzx ecx, word [r11 + rbp*2]
add ecx, edx
add ecx, r8d
add ecx, ecx
sub ecx, eax
movzx eax, word [r11 + rbp*2 + 0x10]
sub ecx, eax
sar ecx, 2
cmp dx, r8w
jae 0x1400f0d1b
cmp ecx, r8d
mov eax, r8d
cmovl eax, ecx
cmp edx, eax
jg 0x1400f0d31
mov edx, r8d
cmp ecx, r8d
jmp 0x1400f0d2e
cmp ecx, edx
mov eax, edx
cmovl eax, ecx
cmp r8d, eax
jle 0x1400f0d2c
mov edx, r8d
jmp 0x1400f0d31
cmp ecx, edx
cmovl edx, ecx
lea rax, [rsi + r13]
lea rcx, [rax + rax*2]
mov word [r14 + rcx*2 + 2], dx
movzx eax, word [rdi + 0x44f6]
movzx r8d, word [r11 + rbp*2]
lea rdx, [rax*8]
lea r14, [r14 + rcx*2]
mov rax, r11
movzx r10d, word [rdx + r11 + 2]
sub rax, rdx
movzx r9d, word [rax + 2]
add r8d, r10d
mov rax, rbp
add r8d, r9d
sub rax, rdx
movzx ecx, word [r11 + rax*2]
add r8d, r8d
lea rax, [rdx + rbp]
sub r8d, ecx
movzx ecx, word [r11 + rax*2]
sub r8d, ecx
sar r8d, 2
cmp r9w, r10w
jae 0x1400f0dac
cmp r8d, r10d
mov eax, r10d
cmovl eax, r8d
cmp r9d, eax
jg 0x1400f0dc7
mov r9d, r10d
cmp r8d, r10d
jmp 0x1400f0dc3
cmp r8d, r9d
mov eax, r9d
cmovl eax, r8d
cmp r10d, eax
jle 0x1400f0dc0
mov r9d, r10d
jmp 0x1400f0dc7
cmp r8d, r9d
cmovl r9d, r8d
add rsi, 2
add ebx, 2
mov word [r14 + 0x180002], r9w
mov r14, qword [rsp + 0x40]
cmp rsi, r12
jl 0x1400f0cb0
mov r9d, dword [rsp + 0x78]
mov ecx, dword [rsp + 0x20]
mov r12d, dword [rsp + 0x24]
inc r15d
add r13, 0x200
cmp r15d, r9d
jl 0x1400f0c50
mov r8, qword [rsp + 0x68]
mov esi, dword [rsp + 0x28]
mov rbx, qword [rsp + 0x38]
xor r10d, r10d
mov ebp, r10d
mov dword [rsp + 0x20], r10d
mov r13, r8
mov qword [rsp + 0x50], r8
nop word [rax + rax]
mov rcx, qword [rdi + 0x49868]
call fcn.1400633a0
test eax, eax
jne 0x1400f17b4
lea r10d, [rsi + 0x1ff]
lea r15d, [rsi + 1]
lea r9, [rbx + 1]
mov qword [rsp + 0x58], r9
mov dword [rsp + 0x48], r10d
cmp r15d, r10d
jge 0x1400f1124
mov r8d, r15d
lea ecx, [r15*4 + 4]
sub r8d, esi
mov dword [rsp + 0x60], ecx
mov dword [rsp + 0x2c], r8d
nop dword [rax]
movzx eax, word [rdi + 0x44f4]
sub eax, 3
cmp r15d, eax
jge 0x1400f111b
mov r11, qword [rsp + 0x30]
lea ebx, [r12 + 1]
lea eax, [r12 + 0x1ff]
lea r14, [r11 + 1]
cmp ebx, eax
jge 0x1400f10f8
mov r12d, r15d
mov eax, ecx
mov esi, ebx
and r12d, 7
and eax, 0x1c
add r12d, r12d
sub esi, dword [rsp + 0x24]
mov dword [rsp + 0x80], eax
nop dword [rax]
movzx edx, word [rdi + 0x44f6]
lea eax, [rdx - 3]
cmp ebx, eax
jge 0x1400f10ea
mov eax, edx
imul eax, r15d
movsxd rcx, eax
mov rax, qword [rdi + 0x4510]
add rcx, r14
lea r10, [rax + rcx*8]
mov rcx, qword [rsp + 0x40]
lea rax, [r9 + r13]
shl rax, 9
sub rax, r11
mov r11d, dword [rdi + 0x3d0]
add rax, r14
lea rax, [rax + rax*2]
lea r9, [rcx + rax*2]
movsxd rax, r8d
movsxd rcx, ebp
shl rcx, 9
mov r8d, ebx
add rcx, rax
movsxd rax, esi
and r8d, 1
shl rcx, 9
lea ebp, [r8 + r12]
add rcx, rax
add ebp, ebp
lea rax, [rcx + rcx*2]
mov rcx, qword [rsp + 0x98]
lea r13, [rcx + rax*2]
mov ecx, ebp
mov eax, r11d
shr eax, cl
mov ecx, 2
and eax, 3
sub ecx, eax
cmp ecx, 1
jne 0x1400f1010
mov eax, dword [rsp + 0x80]
lea ecx, [rax + r8*2]
shr r11d, cl
mov rcx, r10
and r11d, 3
movsxd r11, r11d
mov r8, r11
neg r8
lea rax, [r11*2 + 4]
sub rcx, rax
movzx eax, word [r10 + r8*2 + 0xc]
movzx edx, word [rcx]
mov ecx, 0
add edx, eax
movzx eax, word [r9 + 8]
sub edx, eax
movzx eax, word [r9 - 4]
sub edx, eax
movzx eax, word [r10 + 2]
sar edx, 1
add edx, eax
mov eax, 0xffff
cmp edx, eax
cmovl eax, edx
test eax, eax
cmovs eax, ecx
mov word [r9 + r8*2 + 4], ax
movzx eax, word [rdi + 0x44f6]
lea rcx, [rax*4]
mov rax, r11
sub rax, rcx
movzx edx, word [r10 + rax*2]
lea rax, [rcx + r11]
movzx ecx, word [r10 + rax*2]
movzx eax, word [r9 + 0xc02]
add edx, ecx
sub edx, eax
movzx eax, word [r9 - 0xbfe]
sub edx, eax
movzx eax, word [r10 + 2]
sar edx, 1
jmp 0x1400f1074
lea rax, [rdx*4]
movsxd r11, ecx
mov rcx, r11
sub rcx, rax
add rax, r11
movzx edx, word [r10 + rax*2 - 8]
movzx eax, word [r10 + rax*2 + 8]
add edx, eax
movzx eax, word [r10 + rcx*2 - 8]
add edx, eax
movzx eax, word [r10 + rcx*2 + 8]
add edx, eax
movzx eax, word [r9 + 0xc08]
sub edx, eax
movzx eax, word [r9 - 0xc04]
sub edx, eax
movzx eax, word [r9 + 0xbfc]
sub edx, eax
movzx eax, word [r9 - 0xbf8]
sub edx, eax
movzx eax, word [r9 + 2]
inc edx
sar edx, 2
add edx, eax
mov eax, 0xffff
mov ecx, 0
cmp edx, eax
mov r8, r13
cmovl eax, edx
mov rdx, r9
test eax, eax
cmovs eax, ecx
mov ecx, ebp
mov word [r9 + r11*2], ax
mov eax, dword [rdi + 0x3d0]
shr eax, cl
and eax, 3
cdqe
lea rcx, [rax + rax]
movzx eax, word [rcx + r10]
mov word [rcx + r9], ax
mov rcx, rdi
call fcn.1400f47b0
mov eax, dword [rsp + 0x24]
mov r8d, dword [rsp + 0x2c]
mov r9, qword [rsp + 0x58]
mov ebp, dword [rsp + 0x20]
mov r13, qword [rsp + 0x50]
mov r11, qword [rsp + 0x30]
add eax, 0x1ff
inc ebx
inc esi
inc r14
cmp ebx, eax
jl 0x1400f0ed0
mov ecx, dword [rsp + 0x60]
mov r10d, dword [rsp + 0x48]
mov r12d, dword [rsp + 0x24]
add ecx, 4
inc r8d
inc r9
inc r15d
mov dword [rsp + 0x60], ecx
mov dword [rsp + 0x2c], r8d
mov qword [rsp + 0x58], r9
cmp r15d, r10d
jl 0x1400f0e80
mov esi, dword [rsp + 0x28]
mov rbx, qword [rsp + 0x38]
inc ebp
add r13, 0x200
mov dword [rsp + 0x20], ebp
mov qword [rsp + 0x50], r13
cmp ebp, 2
jl 0x1400f0e30
mov rcx, qword [rsp + 0x70]
xor edx, edx
mov r8d, 0x80000
call fcn.1401c0040
mov eax, dword [rsp + 0x28]
add rbx, 2
add eax, 0x1fe
add esi, 2
mov qword [rsp + 0x50], rbx
movsxd rbp, eax
mov dword [rsp + 0x20], esi
mov qword [rsp + 0x80], rbp
cmp rbx, rbp
jge 0x1400f1419
mov r13, rbx
sub r13, qword [rsp + 0x38]
shl r13, 9
xor r14d, r14d
jmp 0x1400f1195
mov r12d, dword [rsp + 0x24]
movzx eax, word [rdi + 0x44f4]
sub eax, 4
cmp esi, eax
jge 0x1400f1419
mov rcx, qword [rdi + 0x49868]
call fcn.1400633a0
test eax, eax
jne 0x1400f17b4
mov eax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x30]
add r12d, 2
add eax, 0x1fe
lea r15, [rcx + 2]
cdqe
mov qword [rsp + 0x58], rax
cmp r15, rax
jge 0x1400f13fb
neg rcx
mov qword [rsp + 0x48], rcx
nop dword [rax]
movzx eax, word [rdi + 0x44f6]
sub eax, 4
cmp r12d, eax
jge 0x1400f13ea
lea rax, [r15 + r13]
mov r10, r14
mov r11, r14
add rax, rcx
mov rcx, qword [rsp + 0x98]
lea rdi, [0x140222398]
lea rax, [rax + rax*2]
lea r9, [rcx + rax*2]
nop word [rax + rax]
movsx ebx, word [r9]
movsx ebp, word [r9 + 4]
movsx r14d, word [r9 + 2]
mov esi, 4
nop dword [rax]
nop word [rax + rax]
lea rax, [r11 + r10]
mov edx, ebx
add r10, 4
movsxd rax, dword [rax + rdi]
lea rcx, [rax + rax*2]
mov eax, ebx
lea r8, [r9 + rcx*2]
movsx ecx, word [r9 + rcx*2]
sub edx, ecx
sub eax, ecx
mov ecx, r14d
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, ebp
mov dword [rsp + r10 + 0x9c], eax
movsx eax, word [r8 + 4]
sub edx, eax
movsx eax, word [r8 + 2]
sub ecx, eax
imul edx, edx
imul ecx, ecx
add ecx, edx
mov dword [rsp + r10 + 0xbc], ecx
dec rsi
jne 0x1400f1250
sub r11, 0x10
add r9, 0x180000
cmp r11, 0xffffffffffffffe0
jg 0x1400f1230
mov r8d, dword [rsp + 0xa4]
mov edx, dword [rsp + 0xa0]
mov r9d, dword [rsp + 0xbc]
mov r10d, dword [rsp + 0xb8]
cmp edx, r8d
mov ecx, r8d
cmova ecx, edx
cmp r10d, r9d
mov eax, r9d
cmova eax, r10d
cmp ecx, eax
jae 0x1400f12fc
cmp edx, r8d
cmova r8d, edx
jmp 0x1400f1306
mov r8d, r9d
cmp r10d, r9d
cmova r8d, r10d
mov edx, dword [rsp + 0xc4]
mov r9d, dword [rsp + 0xc0]
mov r10d, dword [rsp + 0xdc]
mov r11d, dword [rsp + 0xd8]
cmp r9d, edx
mov ecx, edx
cmova ecx, r9d
cmp r11d, r10d
mov eax, r10d
cmova eax, r11d
cmp ecx, eax
jae 0x1400f1345
cmp r9d, edx
cmova edx, r9d
jmp 0x1400f134f
mov edx, r10d
cmp r11d, r10d
cmova edx, r11d
mov rdi, qword [rsp + 0x90]
mov rax, r15
sub rax, qword [rsp + 0x30]
add rax, r13
add rax, qword [rsp + 0x70]
xor r14d, r14d
mov ecx, r14d
nop dword [rax]
cmp dword [rsp + rcx + 0xa0], r8d
ja 0x1400f1385
cmp dword [rsp + rcx + 0xc0], edx
ja 0x1400f1385
inc byte [rax]
cmp dword [rsp + rcx + 0xa4], r8d
ja 0x1400f139a
cmp dword [rsp + rcx + 0xc4], edx
ja 0x1400f139a
inc byte [rax]
cmp dword [rsp + rcx + 0xa8], r8d
ja 0x1400f13af
cmp dword [rsp + rcx + 0xc8], edx
ja 0x1400f13af
inc byte [rax]
cmp dword [rsp + rcx + 0xac], r8d
ja 0x1400f13c4
cmp dword [rsp + rcx + 0xcc], edx
ja 0x1400f13c4
inc byte [rax]
add rcx, 0x10
add rax, 0x40000
cmp rcx, 0x20
jl 0x1400f1370
mov rcx, qword [rsp + 0x48]
inc r15
inc r12d
cmp r15, qword [rsp + 0x58]
jl 0x1400f11f0
mov rbx, qword [rsp + 0x50]
mov esi, dword [rsp + 0x20]
mov rbp, qword [rsp + 0x80]
inc rbx
inc esi
add r13, 0x200
mov dword [rsp + 0x20], esi
mov qword [rsp + 0x50], rbx
cmp rbx, rbp
jl 0x1400f1190
mov esi, dword [rsp + 0x28]
mov rbx, qword [rsp + 0x38]
lea eax, [rsi + 0x1fd]
lea r15, [rbx + 3]
lea r14d, [rsi + 3]
cdqe
mov dword [rsp + 0x20], r14d
mov qword [rsp + 0x58], rax
cmp r15, rax
jge 0x1400f16f4
mov rbx, r15
mov ebp, r14d
sub rbx, qword [rsp + 0x38]
sub ebp, esi
shl rbx, 9
inc ebp
mov dword [rsp + 0x2c], ebp
mov qword [rsp + 0x48], rbx
movzx eax, word [rdi + 0x44f4]
sub eax, 5
cmp r14d, eax
jge 0x1400f16eb
mov rcx, qword [rdi + 0x49868]
call fcn.1400633a0
test eax, eax
jne 0x1400f17b4
mov edx, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x30]
lea eax, [rdx + 0x1fd]
lea rsi, [rcx + 3]
lea r13d, [rdx + 3]
cdqe
mov qword [rsp + 0x50], rax
cmp rsi, rax
jge 0x1400f16c3
mov r12d, r13d
sub rsi, rcx
sub r12d, edx
inc r12d
nop dword [rax + rax]
movzx eax, word [rdi + 0x44f6]
sub eax, 5
cmp r13d, eax
jge 0x1400f16be
mov rdi, qword [rsp + 0x70]
mov r11, qword [rsp + 0x68]
xor ecx, ecx
movsxd r14, ebp
mov r10d, ecx
lea r8, [rsp + 0x88]
lea ebp, [rcx + 2]
lea rdx, [r11 - 1]
mov r9d, ecx
mov dword [r8], ecx
add rdx, r15
cmp rdx, r14
jg 0x1400f1541
movsxd r11, r12d
lea rcx, [rsi - 1]
cmp rcx, r11
jg 0x1400f1532
lea rbx, [rdx + r10]
shl rbx, 9
add rbx, rdi
nop dword [rax]
movsx eax, byte [rcx + rbx]
inc rcx
add r9d, eax
cmp rcx, r11
jle 0x1400f1520
mov dword [r8], r9d
inc rdx
cmp rdx, r14
jle 0x1400f1505
mov r11, qword [rsp + 0x68]
xor ecx, ecx
add r8, 4
add r10, 0x200
dec rbp
jne 0x1400f14f0
mov rax, qword [rsp + 0x88]
mov edx, dword [rsp + 0x8c]
mov rdi, qword [rsp + 0x90]
mov r10, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
cmp eax, edx
je 0x1400f15ff
mov r8, qword [rsp + 0x30]
cmp edx, eax
movzx edx, word [rdi + 0x44f6]
setg cl
add r8, rsi
shl rcx, 9
add rcx, r15
add rcx, r11
imul rdx, r15
add rdx, r8
shl rcx, 9
add rcx, rsi
lea r9, [rcx + rcx*2]
mov rcx, qword [rdi + 0x4510]
movzx eax, word [r10 + r9*2]
mov word [rcx + rdx*8], ax
movzx edx, word [rdi + 0x44f6]
mov rcx, qword [rdi + 0x4510]
movzx eax, word [r10 + r9*2 + 2]
imul rdx, r15
add rdx, r8
mov word [rcx + rdx*8 + 2], ax
movzx edx, word [rdi + 0x44f6]
mov rcx, qword [rdi + 0x4510]
movzx eax, word [r10 + r9*2 + 4]
imul rdx, r15
add rdx, r8
mov word [rcx + rdx*8 + 4], ax
jmp 0x1400f169e
mov r9, qword [rsp + 0x30]
lea rax, [rbx + rsi]
lea r8, [rax + rax*2]
add r9, rsi
lea rax, [rbx + 0x40000]
add rax, rsi
lea rcx, [rax + rax*2]
movzx eax, word [r10 + r8*2]
movzx edx, word [r10 + rcx*2]
movzx ecx, word [rdi + 0x44f6]
add edx, eax
mov rax, qword [rdi + 0x4510]
imul rcx, r15
sar edx, 1
add rcx, r9
mov word [rax + rcx*8], dx
movzx eax, word [r10 + r8*2 + 2]
movzx ecx, word [rdi + 0x44f6]
movzx edx, word [r10 + r8*2 + 0x180002]
imul rcx, r15
add rcx, r9
add edx, eax
mov rax, qword [rdi + 0x4510]
sar edx, 1
mov word [rax + rcx*8 + 2], dx
movzx eax, word [r10 + r8*2 + 4]
movzx ecx, word [rdi + 0x44f6]
movzx edx, word [r10 + r8*2 + 0x180004]
imul rcx, r15
add edx, eax
mov rax, qword [rdi + 0x4510]
sar edx, 1
add rcx, r9
mov word [rax + rcx*8 + 4], dx
mov rax, qword [rsp + 0x30]
mov ebp, dword [rsp + 0x2c]
inc rsi
add rax, rsi
inc r13d
inc r12d
cmp rax, qword [rsp + 0x50]
jl 0x1400f14c0
mov r14d, dword [rsp + 0x20]
inc r14d
inc ebp
add rbx, 0x200
inc r15
mov dword [rsp + 0x20], r14d
mov dword [rsp + 0x2c], ebp
mov qword [rsp + 0x48], rbx
cmp r15, qword [rsp + 0x58]
jl 0x1400f1461
mov rbx, qword [rsp + 0x38]
mov esi, dword [rsp + 0x28]
mov r12d, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x30]
movzx eax, word [rdi + 0x44f6]
mov r14, qword [rsp + 0x40]
mov r8, qword [rsp + 0x68]
add r12d, 0x1fa
add rdx, 0x1fa
sub eax, 5
mov dword [rsp + 0x24], r12d
lea r9d, [rsi + 0x200]
mov r10d, 0
mov qword [rsp + 0x30], rdx
cmp r12d, eax
jl 0x1400f0c30
movzx eax, word [rdi + 0x44f4]
add esi, 0x1fa
add rbx, 0x1fa
sub eax, 5
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x38], rbx
cmp esi, eax
jl 0x1400f0bf0
mov rcx, r14
call fcn.1401be23c
mov r15, qword [rsp + 0xf0]
mov r13, qword [rsp + 0xf8]
mov r12, qword [rsp + 0x138]
mov rbp, qword [rsp + 0x130]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.1401bd600
add rsp, 0x100
pop r14
pop rdi
pop rsi
ret
mov rcx, qword [rsp + 0x40]
mov dword [rdi + 0x49860], 1
jmp 0x1400f176b