Function at 0x1800468d0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov rdx, qword [rcx + 8]
xor r15d, r15d
movsxd rax, dword [rcx + 0x10]
mov r10, rcx
mov r14d, dword [rcx]
mov rbx, r9
mov rdi, qword [rcx + 0x20]
mov esi, r15d
mov rcx, qword [rcx + 0x30]
mov r11d, dword [rsp + 0xf8]
mov r13d, dword [rsp + 0xd0]
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x50], rcx
mov rcx, rax
mov rax, qword [rdx + 0x40]
mov qword [rsp + 0x58], rdx
mov dword [rsp + 0x30], r15d
mov dword [rsp + 0x38], r14d
movsx edx, word [rax + rcx*2]
mov eax, dword [rsp + 0xf0]
lea ebp, [rdx + rax*8]
test r11d, r11d
je 0x180046980
cmp r13d, 2
jne 0x180046980
mov rax, qword [rsp + 0xd8]
lea r8d, [r13*2 - 1]
mov ecx, ebp
sar ecx, 1
sub ecx, 0x10
mov eax, dword [rax]
mov r9d, eax
mov dword [rsp + 0xf0], eax
jmp 0x1800469b5
mov rax, qword [rsp + 0xd8]
lea r8d, [r13*2 - 1]
mov ecx, ebp
sar ecx, 1
sub ecx, 4
mov eax, dword [rax]
mov r9d, eax
mov dword [rsp + 0xf0], eax
test r11d, r11d
je 0x1800469b8
mov dword [rsp + 0xf0], eax
cmp r13d, 2
jne 0x1800469b8
dec r8d
mov eax, r8d
mov r12d, 1
imul eax, ecx
add eax, r9d
sub r9d, ebp
cdq
idiv r8d
lea edx, [r9 - 0x20]
cmp edx, eax
lea r8, [0x180000000]
cmovge edx, eax
mov eax, 0x40
cmp edx, eax
cmovg edx, eax
cmp edx, 4
jge 0x1800469f2
mov ebp, r12d
jmp 0x180046a13
mov eax, edx
mov ecx, 0xe
sar eax, 3
sub cl, al
mov eax, edx
and eax, 7
movsx ebp, word [r8 + rax*2 + 0xc7688]
sar ebp, cl
inc ebp
and ebp, 0xfffffffe
test r11d, r11d
je 0x180046a24
mov eax, dword [rsp + 0x40]
cmp eax, dword [r10 + 0x14]
cmovge ebp, r12d
test r14d, r14d
je 0x180046a51
mov rcx, qword [rsp + 0xc0]
mov r9d, r13d
mov r8d, r11d
mov rdx, rbx
call fcn.18005a150
mov r10, qword [rsp + 0xb0]
mov esi, eax
mov r11d, dword [rsp + 0xf8]
mov r14d, dword [rdi + 0x20]
lea r13, [0x180000000]
bsr r9d, r14d
mov edx, r14d
lea ecx, [r9 - 0xf]
shr edx, cl
lea eax, [r9*8 + 8]
mov r8d, edx
mov ecx, r15d
shr r8d, 0xc
mov r9d, 0x2055
sub r8d, 8
cmp edx, dword [r13 + r8*4 + 0xc8cc0]
mov edx, dword [rdi + 0x18]
mov r13d, dword [rsp + 0xd0]
seta cl
shl edx, 3
sub edx, ecx
sub edx, eax
sub edx, r8d
mov dword [rsp + 0x48], edx
cmp ebp, r12d
je 0x1800471a0
mov r8d, dword [rsp + 0x38]
test r8d, r8d
je 0x180046d45
test r11d, r11d
je 0x180046b1a
mov r9d, dword [r10 + 0x40]
test r9d, r9d
je 0x180046b14
mov eax, 0x7fff
cmp esi, 0x2000
jg 0x180046ae0
mov eax, 0xffff8001
cdq
mov ecx, ebp
idiv ebp
imul ecx, esi
lea esi, [rbp - 1]
add ecx, eax
mov eax, r15d
sar ecx, 0xe
test ecx, ecx
cmovns eax, ecx
cmp esi, eax
jl 0x180046b04
test ecx, ecx
mov esi, ecx
cmovs esi, r15d
test r9d, r9d
js 0x180046d4a
inc esi
jmp 0x180046d4a
mov r9d, 0x2055
imul esi, ebp
add esi, 0x2000
sar esi, 0xe
test r11d, r11d
jne 0x180046d4a
cmp dword [r10 + 0x48], r15d
je 0x180046ce7
test esi, esi
jle 0x180046ce7
cmp esi, ebp
jge 0x180046ce7
mov r11d, 0x4000
xor edx, edx
mov ecx, r11d
mov eax, esi
shl eax, 0xe
div ebp
sub cx, ax
movsx r8d, ax
movsx r10d, cx
mov ecx, r11d
imul r8d, r8d
imul r10d, r10d
add r8d, 0x1000
sar r8d, 0xd
add r10d, 0x1000
movsx edx, r8w
imul eax, edx, 0x272
sar r10d, 0xd
sub ecx, eax
sar ecx, 0xf
lea eax, [r9 + rcx]
mov ecx, 0x1de3
cwde
imul eax, edx
add eax, r11d
sar eax, 0xf
sub ax, cx
mov ecx, r11d
movsx ebx, ax
mov eax, 0xffff8000
imul ebx, edx
movsx edx, r10w
add ebx, r11d
sar ebx, 0xf
sub bx, r8w
add bx, ax
imul eax, edx, 0x272
movsx r9d, bx
sub ecx, eax
mov eax, 0x2055
sar ecx, 0xf
add ax, cx
mov ecx, 0x1de3
cwde
imul eax, edx
add eax, r11d
sar eax, 0xf
sub ax, cx
movsx r8d, ax
mov eax, 0xffff8000
imul r8d, edx
add r8d, r11d
sar r8d, 0xf
sub r8w, r10w
add r8w, ax
mov eax, 0xf
movsx ecx, r8w
bsr r11d, ecx
mov ecx, eax
bsr r10d, r9d
inc r11d
inc r10d
sub ecx, r10d
shl bx, cl
mov ecx, eax
sub ecx, r11d
movsx edx, bx
shl r8w, cl
mov ebx, 0x4000
movsx r9d, r8w
mov ecx, ebx
imul eax, edx, 0xa25
sub ecx, eax
mov eax, 0x1efc
sar ecx, 0xf
add cx, ax
movsx r8d, cx
imul r8d, edx
add r8d, ebx
sar r8d, 0xf
imul eax, r9d, 0xa25
sub r11w, r10w
mov ecx, ebx
sub ecx, eax
mov eax, 0x1efc
sar ecx, 0xf
add cx, ax
mov eax, 0x800
cwde
movsx edx, cx
imul edx, r9d
movsx ecx, r11w
imul ecx, eax
add edx, ebx
sar edx, 0xf
sub dx, r8w
add dx, cx
movsx ecx, r13w
movsx r8d, dx
mov edx, 0x80
movsx eax, dx
imul eax, ecx
sub ax, dx
cwde
imul r8d, eax
mov eax, dword [rsp + 0xf0]
add r8d, ebx
sar r8d, 0xf
cmp r8d, eax
jle 0x180046d39
mov esi, ebp
mov rbx, qword [rsp + 0xc8]
mov r11d, dword [rsp + 0xf8]
mov r8d, dword [rsp + 0x38]
cmp dword [rsp + 0xe8], r12d
jg 0x18004711b
test r11d, r11d
jne 0x18004711b
mov r11d, ebp
sar r11d, 1
lea r10d, [r11 + 1]
mov r9d, r10d
imul r9d, r10d
test r8d, r8d
je 0x180046fda
mov eax, ebp
sub eax, esi
cmp esi, r11d
jg 0x180046ecb
lea r8d, [rsi + 1]
imul r8d, esi
lea r10d, [rsi + 1]
sar r8d, 1
jmp 0x180046edf
neg eax
cmp r8d, eax
jge 0x180046cd2
mov esi, r15d
jmp 0x180046cd2
test r11d, r11d
je 0x180046ce7
cmp r13d, 2
jle 0x180046ce7
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
mov r11d, eax
lea ecx, [rax + 1]
lea r10d, [rcx + rcx*2]
lea r9d, [r10 + rax]
test r8d, r8d
je 0x180046e03
sub r10d, eax
cmp esi, eax
jg 0x180046d7f
lea r8d, [rsi + rsi*2]
lea ecx, [r8 + 3]
jmp 0x180046d87
lea ecx, [r10 + rsi]
lea r8d, [rcx - 1]
xor edx, edx
mov eax, r14d
div r9d
mov edx, r14d
test r8d, r8d
je 0x180046dac
sub r9d, r8d
sub ecx, r8d
imul r9d, eax
sub edx, r9d
add dword [rdi + 0x24], edx
imul ecx, eax
jmp 0x180046db8
sub r9d, ecx
mov ecx, edx
imul r9d, eax
sub ecx, r9d
mov dword [rdi + 0x20], ecx
cmp ecx, 0x800000
ja 0x180046eb0
nop word [rax + rax]
mov edx, dword [rdi + 0x24]
mov rcx, rdi
shr edx, 0x17
call fcn.1800533e0
mov ecx, dword [rdi + 0x24]
shl dword [rdi + 0x20], 8
and ecx, 0x7fffff
add dword [rdi + 0x18], 8
shl ecx, 8
cmp dword [rdi + 0x20], 0x800000
mov dword [rdi + 0x24], ecx
jbe 0x180046dd0
jmp 0x180046eb0
xor edx, edx
mov eax, r14d
div r9d
xor edx, edx
mov ecx, eax
mov dword [rsp + 0xd0], eax
mov dword [rdi + 0x28], eax
mov eax, dword [rdi + 0x24]
mov dword [rsp + 0xf0], eax
div ecx
mov edx, r9d
mov ecx, r15d
sub edx, eax
dec edx
lea r8d, [rax + 1]
cmp r9d, r8d
cmovb ecx, edx
mov edx, r9d
sub edx, ecx
sub edx, eax
dec edx
cmp edx, r10d
jge 0x180046e57
mov eax, 0x55555556
imul edx
mov esi, edx
shr esi, 0x1f
add esi, edx
jmp 0x180046e60
sub edx, r10d
lea esi, [rdx + 1]
add esi, r11d
sub r10d, r11d
cmp esi, r11d
jg 0x180046e70
lea ecx, [rsi + rsi*2]
lea eax, [rcx + 3]
jmp 0x180046e77
lea eax, [r10 + rsi]
lea ecx, [rax - 1]
mov r8d, dword [rsp + 0xd0]
sub r9d, eax
mov edx, dword [rsp + 0xf0]
imul r9d, r8d
sub edx, r9d
mov dword [rdi + 0x24], edx
test ecx, ecx
je 0x180046e9f
sub eax, ecx
imul eax, r8d
jmp 0x180046ea5
sub r14d, r9d
mov eax, r14d
mov rcx, rdi
mov dword [rdi + 0x20], eax
call fcn.1800531c0
shl esi, 0xe
xor edx, edx
mov eax, esi
div ebp
mov esi, eax
cmp dword [rsp + 0x38], r15d
je 0x180046f59
jmp 0x18004713b
lea ecx, [rax + 2]
mov r8d, r9d
lea r10d, [rax + 1]
inc eax
imul ecx, eax
sar ecx, 1
sub r8d, ecx
xor edx, edx
mov eax, r14d
div r9d
mov ecx, r14d
test r8d, r8d
je 0x180046f02
sub r9d, r8d
imul r9d, eax
sub ecx, r9d
add dword [rdi + 0x24], ecx
imul r10d, eax
jmp 0x180046f12
sub r9d, r10d
mov r10d, ecx
sub r9d, r8d
imul r9d, eax
sub r10d, r9d
mov dword [rdi + 0x20], r10d
cmp r10d, 0x800000
ja 0x180046f4e
nop
mov edx, dword [rdi + 0x24]
mov rcx, rdi
shr edx, 0x17
call fcn.1800533e0
mov ecx, dword [rdi + 0x24]
shl dword [rdi + 0x20], 8
and ecx, 0x7fffff
add dword [rdi + 0x18], 8
shl ecx, 8
cmp dword [rdi + 0x20], 0x800000
mov dword [rdi + 0x24], ecx
jbe 0x180046f20
shl esi, 0xe
xor edx, edx
mov eax, esi
div ebp
mov esi, eax
mov ebp, dword [rsp + 0x30]
mov edx, dword [rdi + 0x20]
lea r10, [0x180000000]
mov edi, dword [rdi + 0x18]
bsr eax, edx
lea ecx, [rax - 0xf]
shr edx, cl
lea eax, [rax*8 + 8]
mov r8d, edx
mov ecx, r15d
shr r8d, 0xc
sub r8d, 8
cmp edx, dword [r10 + r8*4 + 0xc8cc0]
seta cl
shl edi, 3
sub edi, ecx
sub edi, eax
mov rax, qword [rsp + 0xd8]
sub edi, r8d
sub edi, dword [rsp + 0x48]
sub dword [rax], edi
test esi, esi
jne 0x180047441
mov rax, qword [rsp + 0x100]
mov r14d, 0x7fff
mov ecx, dword [rsp + 0xe0]
shl r12d, cl
dec r12d
and dword [rax], r12d
mov eax, 0xffffc000
jmp 0x1800475dd
xor edx, edx
mov eax, r14d
div r9d
xor edx, edx
mov ecx, r15d
mov esi, eax
mov dword [rdi + 0x28], eax
mov eax, dword [rdi + 0x24]
mov dword [rsp + 0xf8], eax
div esi
mov edx, r9d
sub edx, eax
dec edx
lea r8d, [rax + 1]
cmp r9d, r8d
cmovb ecx, edx
imul r10d, r11d
mov edx, r9d
mov r11d, r15d
sub edx, ecx
sub edx, eax
dec edx
sar r10d, 1
cmp edx, r10d
mov r10d, r12d
jge 0x18004707d
lea r8d, [rdx*8 + 1]
bsr ecx, r8d
sar ecx, 1
shl r10d, cl
nop word [rax + rax]
lea edx, [r10 + r11*2]
shl edx, cl
lea eax, [r10 + r11]
cmp edx, r8d
cmova eax, r11d
shr r10d, 1
mov r11d, eax
mov eax, r8d
sub eax, edx
cmp edx, r8d
cmova eax, r8d
sub ecx, r12d
mov r8d, eax
jns 0x180047040
lea ebx, [r11 - 1]
shr ebx, 1
lea edx, [rbx + 1]
mov ecx, edx
imul ecx, ebx
sar ecx, 1
jmp 0x1800470de
mov eax, r9d
sub eax, edx
lea r8d, [rax*8 - 7]
bsr ecx, r8d
sar ecx, 1
shl r10d, cl
lea edx, [r10 + r11*2]
shl edx, cl
lea eax, [r10 + r11]
cmp edx, r8d
cmova eax, r11d
shr r10d, 1
mov r11d, eax
mov eax, r8d
sub eax, edx
cmp edx, r8d
cmova eax, r8d
sub ecx, r12d
mov r8d, eax
jns 0x180047093
lea ebx, [rbp*2 + 2]
mov eax, ebp
sub ebx, r11d
mov ecx, r9d
shr ebx, 1
sub eax, ebx
lea edx, [rax + 1]
add eax, 2
imul eax, edx
sar eax, 1
sub ecx, eax
mov eax, dword [rsp + 0xf8]
sub r9d, ecx
sub r9d, edx
imul r9d, esi
sub eax, r9d
mov dword [rdi + 0x24], eax
test ecx, ecx
je 0x1800470fe
imul esi, edx
jmp 0x180047104
mov esi, r14d
sub esi, r9d
mov rcx, rdi
mov dword [rdi + 0x20], esi
call fcn.1800531c0
shl ebx, 0xe
xor edx, edx
mov eax, ebx
jmp 0x180046f55
lea edx, [rbp + 1]
mov rcx, rdi
test r8d, r8d
je 0x180047191
mov r8d, edx
mov edx, esi
call fcn.180053490
shl esi, 0xe
xor edx, edx
mov eax, esi
div ebp
mov esi, eax
cmp dword [rsp + 0xf8], r15d
je 0x180046f59
test esi, esi
jne 0x180047179
mov eax, dword [rsp + 0x40]
mov r8, rbx
mov r9, qword [rsp + 0x50]
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], eax
call fcn.180045910
jmp 0x180046f59
mov rcx, qword [rsp + 0xc0]
mov r8d, r13d
mov rdx, rbx
call fcn.180045b40
jmp 0x180046f59
call fcn.180053260
shl eax, 0xe
xor edx, edx
jmp 0x180046f55
test r11d, r11d
je 0x180046f59
mov ebp, dword [rsp + 0x38]
test ebp, ebp
je 0x18004733d
cmp esi, 0x2000
jle 0x18004730d
cmp dword [r10 + 0x44], r15d
jne 0x18004730d
mov dword [rsp + 0x30], r12d
mov edx, r15d
test r13d, r13d
jle 0x180047312
mov dword [rsp + 0x30], r12d
cmp r13d, 2
jb 0x180047299
movdqa xmm2, xmmword [0x1800d1db0]
mov dword [rsp + 0x30], r12d
cmp r13d, 0x10
jb 0x180047265
mov eax, r13d
mov dword [rsp + 0x30], r12d
and eax, 0xfffffff0
mov rcx, r15
movsxd r8, eax
lea rax, [rbx + 0x20]
nop dword [rax]
nop word [rax + rax]
movups xmm0, xmmword [rax - 0x20]
add edx, 0x10
lea rax, [rax + 0x40]
add rcx, 0x10
xorps xmm0, xmm2
movups xmmword [rax - 0x60], xmm0
movups xmm0, xmmword [rax - 0x50]
xorps xmm0, xmm2
movups xmmword [rax - 0x50], xmm0
movups xmm1, xmmword [rax - 0x40]
xorps xmm1, xmm2
movups xmmword [rax - 0x40], xmm1
movups xmm0, xmmword [rax - 0x30]
xorps xmm0, xmm2
movups xmmword [rax - 0x30], xmm0
cmp rcx, r8
jl 0x180047220
mov eax, r13d
and al, 0xf
cmp al, 2
jb 0x180047299
mov eax, r13d
movsxd rcx, edx
and eax, 0xfffffffe
movsxd r8, eax
nop dword [rax]
nop word [rax + rax]
movsd xmm0, qword [rbx + rcx*4]
add edx, 2
xorps xmm0, xmm2
movsd qword [rbx + rcx*4], xmm0
add rcx, 2
cmp rcx, r8
jl 0x180047280
cmp edx, r13d
jge 0x180047312
movaps xmm2, xmmword [0x1800d1db0]
mov eax, r13d
sub eax, edx
movsxd r9, edx
cmp eax, 4
jl 0x1800472ea
mov eax, r13d
lea rcx, [rbx + 8]
sub eax, edx
lea rcx, [rcx + r9*4]
sub eax, 4
shr eax, 2
inc eax
mov r8d, eax
lea edx, [rdx + rax*4]
lea r9, [r9 + rax*4]
movups xmm0, xmmword [rcx - 8]
lea rcx, [rcx + 0x10]
xorps xmm0, xmm2
movups xmmword [rcx - 0x18], xmm0
sub r8, r12
jne 0x1800472d1
cmp edx, r13d
jge 0x180047312
mov eax, r13d
lea rcx, [rbx + r9*4]
sub eax, edx
movsxd rdx, eax
movss xmm0, dword [rcx]
lea rcx, [rcx + 4]
xorps xmm0, xmm2
movss dword [rcx - 4], xmm0
sub rdx, r12
jne 0x1800472f6
jmp 0x180047312
mov dword [rsp + 0x30], r15d
mov eax, dword [rsp + 0x40]
mov r8, rbx
mov r9, qword [rsp + 0x50]
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], eax
call fcn.180045910
mov r14d, dword [rdi + 0x20]
mov rax, qword [rsp + 0xd8]
mov rbx, qword [rsp + 0xb0]
cmp dword [rax], 0x10
jle 0x18004742a
cmp dword [rbx + 0x28], 0x10
jle 0x18004742a
mov eax, r14d
shr eax, 2
test ebp, ebp
je 0x1800473d2
mov ebp, dword [rsp + 0x30]
sub r14d, eax
test ebp, ebp
je 0x18004737b
add dword [rdi + 0x24], r14d
test ebp, ebp
cmovne r14d, eax
mov dword [rdi + 0x20], r14d
cmp r14d, 0x800000
ja 0x18004742d
mov edx, dword [rdi + 0x24]
mov rcx, rdi
shr edx, 0x17
call fcn.1800533e0
mov ecx, dword [rdi + 0x24]
shl dword [rdi + 0x20], 8
and ecx, 0x7fffff
add dword [rdi + 0x18], 8
shl ecx, 8
cmp dword [rdi + 0x20], 0x800000
mov dword [rdi + 0x24], ecx
jbe 0x180047390
cmp dword [rbx + 0x44], r15d
mov eax, r15d
mov esi, r15d
cmove eax, ebp
mov ebp, eax
jmp 0x180046f5d
mov ecx, dword [rdi + 0x24]
mov ebp, r15d
cmp ecx, eax
setb bpl
jb 0x180047408
sub ecx, eax
sub r14d, eax
mov dword [rdi + 0x24], ecx
mov rcx, rdi
mov dword [rdi + 0x20], r14d
call fcn.1800531c0
cmp dword [rbx + 0x44], r15d
mov eax, r15d
mov esi, r15d
cmove eax, ebp
mov ebp, eax
jmp 0x180046f5d
mov rcx, rdi
mov dword [rdi + 0x20], eax
mov r14d, eax
call fcn.1800531c0
cmp dword [rbx + 0x44], r15d
mov eax, r15d
mov esi, r15d
cmove eax, ebp
mov ebp, eax
jmp 0x180046f5d
mov ebp, r15d
cmp dword [rbx + 0x44], r15d
mov eax, r15d
mov esi, r15d
cmove eax, ebp
mov ebp, eax
jmp 0x180046f5d
cmp esi, 0x4000
jne 0x180047474
mov ecx, dword [rsp + 0xe0]
mov r14d, r15d
mov rax, qword [rsp + 0x100]
mov r15d, 0x7fff
shl r12d, cl
dec r12d
shl r12d, cl
and dword [rax], r12d
mov eax, esi
jmp 0x1800475dd
mov r12d, 0x4000
movsx r8d, si
imul r8d, r8d
mov ecx, r12d
mov r10d, 0x2055
mov r11d, 0x1de3
mov r15d, 0xffff8000
add r8d, 0x1000
sar r8d, 0xd
movsx edx, r8w
imul eax, edx, 0x272
sub ecx, eax
sar ecx, 0xf
lea eax, [r10 + rcx]
mov ecx, r12d
cwde
imul eax, edx
add eax, r12d
sar eax, 0xf
sub ax, r11w
movsx ebx, ax
mov eax, r12d
sub ax, si
imul ebx, edx
movsx r9d, ax
imul r9d, r9d
add ebx, r12d
sar ebx, 0xf
sub bx, r8w
add r9d, 0x1000
sar r9d, 0xd
add bx, r15w
movsx edx, r9w
imul eax, edx, 0x272
movsx r14d, bx
sub ecx, eax
sar ecx, 0xf
lea eax, [r10 + rcx]
cwde
imul eax, edx
bsr r10d, r14d
add eax, r12d
sar eax, 0xf
inc r10d
sub ax, r11w
movsx r8d, ax
mov eax, 0xf
imul r8d, edx
mov ecx, eax
sub eax, r10d
add r8d, r12d
sar r8d, 0xf
sub r8w, r9w
add r8w, r15w
movsx r15d, r8w
bsr r11d, r15d
inc r11d
sub ecx, r11d
shl r8w, cl
movzx ecx, al
shl bx, cl
mov ecx, r12d
movsx r9d, r8w
movsx edx, bx
mov ebx, 0x1efc
imul eax, edx, 0xa25
sub ecx, eax
imul eax, r9d, 0xa25
sar ecx, 0xf
add cx, bx
movsx r8d, cx
mov ecx, r12d
imul r8d, edx
sub ecx, eax
sar ecx, 0xf
add cx, bx
movsx edx, cx
add r8d, r12d
imul edx, r9d
sar r8d, 0xf
add edx, r12d
sar edx, 0xf
sub r11w, r10w
sub dx, r8w
movsx ecx, r11w
mov r8d, 0x80
mov eax, 0x800
cwde
imul ecx, eax
movsx eax, r8w
add dx, cx
movsx ecx, r13w
imul eax, ecx
movsx edx, dx
sub ax, r8w
cwde
imul eax, edx
add eax, r12d
sar eax, 0xf
mov rcx, qword [rsp + 0xb8]
mov dword [rcx], ebp
mov dword [rcx + 4], r14d
mov dword [rcx + 8], r15d
mov dword [rcx + 0xc], eax
mov dword [rcx + 0x10], esi
mov dword [rcx + 0x14], edi
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret