File akira_3298d203c2acb68c474e5fdad8379181890b4403d6491c523c13730129be3f75.elf
Function:
    001d8290
    001d8290cosq:
    001d8290push rbp
    001d8291mov rbp, rsp
    001d8294push rbx
    001d8295sub rsp, 40
    001d8299movaps [rbp-48], x0
    001d829dmov rdi, [rbp-48]
    001d82a1mov rdx, [rbp-40]
    001d82a5mov rcx, 0x7fffffffffffffff
    001d82afand rcx, rdx
    001d82b2mov rax, 0xc3ff000000000000
    001d82bcadd rax, rcx
    001d82bfmov rsi, 0xbc01000000000000
    001d82c9add rsi, rcx
    001d82cccmp rax, rsi
    001d82cfjae 0x1d8310
    001d82d1mov rcx, 0x4000000000000000
    001d82dbmov rax, rdx
    001d82deshld rax, rdi, 4
    001d82e3lea rsi, [rax+rcx]
    001d82e7mov rbx, 0xfffffffffffffff
    001d82f1and rbx, rdi
    001d82f4mov rdi, 0x800000000000000
    001d82fecmp rbx, rdi
    001d8301jbe 0x1d8349
    001d8303lea rsi, [rcx+rax]
    001d8307add rsi, 1
    001d830bjmp 0x1d8421
    001d8310
    001d8310loc_1d8310:
    001d8310mov rax, rdi
    001d8313neg rax
    001d8316mov rax, 0x7fff000000000000
    001d8320sbb rax, rcx
    001d8323jae 0x1d835a
    001d8325shrd rdi, rdx, 60
    001d832amov rax, 0x7ffffffffffff
    001d8334and rax, rdi
    001d8337mov rsi, 0x7ff8000000000000
    001d8341or rsi, rax
    001d8344jmp 0x1d8421
    001d8349
    001d8349loc_1d8349:
    001d8349jne 0x1d8421
    001d834f
    001d834floc_1d834f:
    001d834fand eax, 1
    001d8352add rsi, rax
    001d8355jmp 0x1d8421
    001d835a
    001d835aloc_1d835a:
    001d835ashr rcx, 48
    001d835ecmp ecx, 17406
    001d8364jbe 0x1d8379
    001d8366mov rsi, 0x7fefffffffffffff
    001d8370add rsi, 1
    001d8374jmp 0x1d8421
    001d8379
    001d8379loc_1d8379:
    001d8379mov eax, 15361
    001d837esub eax, ecx
    001d8380cmp eax, 112
    001d8383jbe 0x1d838c
    001d8385xor esi, esi
    001d8387jmp 0x1d8421
    001d838c
    001d838cloc_1d838c:
    001d838cmov rbx, 0xffffffffffff
    001d8396and rbx, rdx
    001d8399mov rsi, 0x1000000000000
    001d83a3or rsi, rbx
    001d83a6add cl, -1
    001d83a9mov r8, rsi
    001d83acshld r8, rdi, cl
    001d83b0mov rbx, rdi
    001d83b3shl rbx, cl
    001d83b6xor r9l, r9l
    001d83b9test cl, 64
    001d83bccmovne r8, rbx
    001d83c0cmovne rbx, r9
    001d83c4xor r10l, r10l
    001d83c7or rbx, r8
    001d83casetne r10b
    001d83cemov ecx, eax
    001d83d0shrd rdi, rsi, cl
    001d83d4shr rsi, cl
    001d83d7test al, 64
    001d83d9cmovne rdi, rsi
    001d83ddcmovne rsi, r9
    001d83e1shld rsi, rdi, 4
    001d83e6mov rax, 0xfffffffffffffff
    001d83f0and rax, rdi
    001d83f3or rax, r10
    001d83f6mov rcx, 0x800000000000001
    001d8400cmp rax, rcx
    001d8403jb 0x1d840b
    001d8405add rsi, 1
    001d8409jmp 0x1d8421
    001d840b
    001d840bloc_1d840b:
    001d840bmov rcx, 0x800000000000000
    001d8415cmp rax, rcx
    001d8418jne 0x1d8421
    001d841amov eax, esi
    001d841cjmp 0x1d834f
    001d8421
    001d8421loc_1d8421:
    001d8421mov rbx, 0x8000000000000000
    001d842band rdx, rbx
    001d842eor rdx, rsi
    001d8431movq x0, rdx
    001d8436call cos
    001d843bmovq rax, x0
    001d8440lea rdx, [rbx-1]
    001d8444and rdx, rax
    001d8447mov rcx, 0xfff0000000000000
    001d8451add rcx, rdx
    001d8454shr rcx, 53
    001d8458cmp ecx, 1022
    001d845eja 0x1d847a
    001d8460mov rcx, rdx
    001d8463shl rcx, 60
    001d8467shr rdx, 4
    001d846bmov rsi, 0x3c00000000000000
    001d8475add rsi, rdx
    001d8478jmp 0x1d84f7
    001d847a
    001d847aloc_1d847a:
    001d847amov rcx, rdx
    001d847dshr rcx, 52
    001d8481cmp ecx, 2047
    001d8487jb 0x1d84a6
    001d8489mov rcx, rax
    001d848cshl rcx, 60
    001d8490mov rdx, rax
    001d8493shr rdx, 4
    001d8497mov rsi, 0x7fff000000000000
    001d84a1or rsi, rdx
    001d84a4jmp 0x1d84f7
    001d84a6
    001d84a6loc_1d84a6:
    001d84a6test rdx, rdx
    001d84a9je 0x1d84f3
    001d84abbsr rcx, rdx
    001d84afxor rcx, 63
    001d84b3lea edi, [rcx+117]
    001d84b6add cl, 49
    001d84b9xor esi, esi
    001d84bbshld rsi, rdx, cl
    001d84bfand edi, 127
    001d84c2xor r8l, r8l
    001d84c5shl rdx, cl
    001d84c8test cl, 64
    001d84cbcmovne rsi, rdx
    001d84cfcmovne rdx, r8
    001d84d3mov rcx, 0x1000000000000
    001d84ddxor rcx, rsi
    001d84e0mov esi, 15361
    001d84e5sub esi, edi
    001d84e7shl rsi, 48
    001d84ebor rsi, rcx
    001d84eemov rcx, rdx
    001d84f1jmp 0x1d84f7
    001d84f3
    001d84f3loc_1d84f3:
    001d84f3xor ecx, ecx
    001d84f5xor esi, esi
    001d84f7
    001d84f7loc_1d84f7:
    001d84f7and rax, rbx
    001d84faor rax, rsi
    001d84fdmov [rbp-32], rcx
    001d8501mov [rbp-24], rax
    001d8505movaps x0, [rbp-32]
    001d8509add rsp, 40
    001d850dpop rbx
    001d850epop rbp
    001d850fret
    001d8290
    001d8510
    001d8510cosl:
    001d8510push rbp
    001d8511mov rbp, rsp
    001d8514pop rbp
    001d8515jmp 0x1d80e0
    001d8510
    001d851a
    001d851a // align 0x10
    001d8520
    001d8520sincosf:
    001d8520push rbp
    001d8521mov rbp, rsp
    001d8524push r15
    001d8526push r14
    001d8528push rbx
    001d8529sub rsp, 24
    001d852dmov r14, rsi
    001d8530mov r15, rdi
    001d8533movd ebx, x0
    001d8537mov eax, ebx
    001d8539and eax, 0x7fffffff
    001d853ecmp eax, 0x3f490fda
    001d8543ja 0x1d8562
    001d8545cmp eax, 0x39800000
    001d854ajae 0x1d8638
    001d8550movss [r15], x0
    001d8555movss x0, [rip-0x1453f9]
    001d855djmp 0x1d8c01
    001d8562
    001d8562loc_1d8562:
    001d8562cmp eax, 0x407b53d1
    001d8567ja 0x1d86e4
    001d856dcvtss2sd x0, x0
    001d8571cmp eax, 0x4016cbe3
    001d8576ja 0x1d8713
    001d857ctest ebx, ebx
    001d857ejs 0x1d8928
    001d8584movsd_xmm x1, [rip-0x144fe4]
    001d858csubsd x1, x0
    001d8590movapd x2, x1
    001d8594mulsd x2, x1
    001d8598movapd x0, x2
    001d859cmulsd x0, x2
    001d85a0movsd_xmm x3, [rip-0x145030]
    001d85a8mulsd x3, x2
    001d85acaddsd x3, [rip-0x145034]
    001d85b4movsd_xmm x4, [rip-0x145034]
    001d85bcmulsd x4, x2
    001d85c0addsd x4, [rip-0x145080]
    001d85c8movsd_xmm x5, [rip-0x145040]
    001d85d0mulsd x5, x0
    001d85d4addsd x5, x4
    001d85d8movapd x4, x2
    001d85dcmulsd x4, x0
    001d85e0mulsd x4, x3
    001d85e4addsd x4, x5
    001d85e8xorps x3, x3
    001d85ebcvtsd2ss x3, x4
    001d85efmovapd x4, x1
    001d85f3mulsd x4, x2
    001d85f7unpcklpd x2, x2
    001d85fbmulpd x2, [rip-0x144923]
    001d8603movss [r15], x3
    001d8608addpd x2, [rip-0x144920]
    001d8610mulsd x0, x4
    001d8614unpcklpd x0, x4
    001d8618mulpd x0, x2
    001d861cmovapd x2, x0
    001d8620unpckhpd x2, x0
    001d8624addsd x2, x1
    001d8628addsd x2, x0
    001d862cxorps x0, x0
    001d862fcvtsd2ss x0, x2
    001d8633jmp 0x1d8c01
    001d8638
    001d8638loc_1d8638:
    001d8638cvtss2sd x2, x0
    001d863cmovaps x0, x2
    001d863fmulsd x0, x2
    001d8643movapd x1, x0
    001d8647mulsd x1, x0
    001d864bmovsd_xmm x3, [rip-0x1450fb]
    001d8653mulsd x3, x0
    001d8657addsd x3, [rip-0x1450ff]
    001d865fmovapd x4, x0
    001d8663mulsd x4, x2
    001d8667movsd_xmm x5, [rip-0x145107]
    001d866fmulsd x5, x0
    001d8673addsd x5, [rip-0x14510b]
    001d867bmulsd x5, x4
    001d867faddsd x5, x2
    001d8683mulsd x4, x1
    001d8687mulsd x4, x3
    001d868baddsd x4, x5
    001d868fxorps x2, x2
    001d8692cvtsd2ss x2, x4
    001d8696movss [r15], x2
    001d869bmovsd_xmm x2, [rip-0x14512b]
    001d86a3mulsd x2, x0
    001d86a7addsd x2, [rip-0x14512f]
    001d86afmovsd_xmm x3, [rip-0x14512f]
    001d86b7mulsd x3, x0
    001d86bbaddsd x3, [rip-0x14517b]
    001d86c3mulsd x0, x1
    001d86c7mulsd x1, [rip-0x14513f]
    001d86cfaddsd x1, x3
    001d86d3mulsd x0, x2
    001d86d7addsd x0, x1
    001d86dbcvtsd2ss x0, x0
    001d86dfjmp 0x1d8c01
    001d86e4
    001d86e4loc_1d86e4:
    001d86e4cmp eax, 0x40e231d5
    001d86e9ja 0x1d87df
    001d86efcvtss2sd x0, x0
    001d86f3cmp eax, 0x40afeddf
    001d86f8ja 0x1d87f8
    001d86fetest ebx, ebx
    001d8700js 0x1d8a2f
    001d8706addsd x0, [rip-0x14516e]
    001d870ejmp 0x1d8930
    001d8713
    001d8713loc_1d8713:
    001d8713xor eax, eax
    001d8715test ebx, ebx
    001d8717setns al
    001d871alea rcx, [rip-0x144a21]
    001d8721addsd x0, [rcx+8*rax]
    001d8726movapd x1, x0
    001d872amulsd x1, x0
    001d872emovapd x2, x1
    001d8732mulsd x2, x1
    001d8736movsd_xmm x3, [rip-0x1451e6]
    001d873emulsd x3, x1
    001d8742addsd x3, [rip-0x1451ea]
    001d874amovapd x4, x0
    001d874emovsd_xmm x5, [rip-0x1451ee]
    001d8756mulsd x5, x1
    001d875aaddsd x5, [rip-0x1451f2]
    001d8762mulsd x4, x1
    001d8766mulsd x5, x4
    001d876aaddsd x5, x0
    001d876emulsd x4, x2
    001d8772mulsd x4, x3
    001d8776addsd x4, x5
    001d877axorps x0, x0
    001d877dcvtsd2ss x0, x4
    001d8781movaps x3, [rip-0x144ac8]
    001d8788xorps x0, x3
    001d878bmovss [r15], x0
    001d8790movsd_xmm x0, [rip-0x145220]
    001d8798mulsd x0, x1
    001d879caddsd x0, [rip-0x145224]
    001d87a4movsd_xmm x4, [rip-0x145224]
    001d87acmulsd x4, x1
    001d87b0addsd x4, [rip-0x145270]
    001d87b8mulsd x1, x2
    001d87bcmulsd x2, [rip-0x145234]
    001d87c4addsd x2, x4
    001d87c8mulsd x1, x0
    001d87ccaddsd x1, x2
    001d87d0xorps x0, x0
    001d87d3cvtsd2ss x0, x1
    001d87d7xorps x0, x3
    001d87dajmp 0x1d8c01
    001d87df
    001d87dfloc_1d87df:
    001d87dfcmp eax, 0x7f800000
    001d87e4jb 0x1d88b7
    001d87easubss x0, x0
    001d87eemovss [r15], x0
    001d87f3jmp 0x1d8c01
    001d87f8
    001d87f8loc_1d87f8:
    001d87f8xor eax, eax
    001d87fatest ebx, ebx
    001d87fcsetns al
    001d87fflea rcx, [rip-0x144b36]
    001d8806addsd x0, [rcx+8*rax]
    001d880bmovapd x1, x0
    001d880fmulsd x1, x0
    001d8813movapd x2, x1
    001d8817mulsd x2, x1
    001d881bmovsd_xmm x3, [rip-0x1452cb]
    001d8823mulsd x3, x1
    001d8827addsd x3, [rip-0x1452cf]
    001d882fmovapd x4, x0
    001d8833mulsd x4, x1
    001d8837movsd_xmm x5, [rip-0x1452d7]
    001d883fmulsd x5, x1
    001d8843addsd x5, [rip-0x1452db]
    001d884bmulsd x5, x4
    001d884faddsd x5, x0
    001d8853mulsd x4, x2
    001d8857mulsd x4, x3
    001d885baddsd x4, x5
    001d885fxorps x0, x0
    001d8862cvtsd2ss x0, x4
    001d8866movss [r15], x0
    001d886bmovsd_xmm x0, [rip-0x1452fb]
    001d8873mulsd x0, x1
    001d8877addsd x0, [rip-0x1452ff]
    001d887fmovsd_xmm x3, [rip-0x1452ff]
    001d8887mulsd x3, x1
    001d888baddsd x3, [rip-0x14534b]
    001d8893mulsd x1, x2
    001d8897mulsd x2, [rip-0x14530f]
    001d889faddsd x2, x3
    001d88a3mulsd x1, x0
    001d88a7addsd x1, x2
    001d88abxorps x0, x0
    001d88aecvtsd2ss x0, x1
    001d88b2jmp 0x1d8c01
    001d88b7
    001d88b7loc_1d88b7:
    001d88b7cmp eax, 0x4dc90fda
    001d88bcja 0x1d89df
    001d88c2cvtss2sd x2, x0
    001d88c6movsd_xmm x1, [rip-0x1453be]
    001d88cemulsd x1, x2
    001d88d2addsd x1, [rip-0x1453c2]
    001d88daaddsd x1, [rip-0x1453c2]
    001d88e2cvttsd2si eax, x1
    001d88e6movsd_xmm x3, [rip-0x1453c6]
    001d88eemulsd x3, x1
    001d88f2addsd x3, x2
    001d88f6movsd_xmm x0, [rip-0x1453ce]
    001d88femulsd x0, x1
    001d8902addsd x0, x3
    001d8906movsd_xmm x3, [rip-0x1453d6]
    001d890eucomisd x3, x0
    001d8912jbe 0x1d8ae6
    001d8918addsd x1, [rip-0x1453d0]
    001d8920add eax, -1
    001d8923jmp 0x1d8afb
    001d8928
    001d8928loc_1d8928:
    001d8928addsd x0, [rip-0x145388]
    001d8930
    001d8930loc_1d8930:
    001d8930movapd x2, x0
    001d8934mulsd x2, x0
    001d8938movapd x1, x2
    001d893cmulsd x1, x2
    001d8940movsd_xmm x3, [rip-0x1453d0]
    001d8948mulsd x3, x2
    001d894caddsd x3, [rip-0x1453d4]
    001d8954movsd_xmm x4, [rip-0x1453d4]
    001d895cmulsd x4, x2
    001d8960addsd x4, [rip-0x145420]
    001d8968movsd_xmm x5, [rip-0x1453e0]
    001d8970mulsd x5, x1
    001d8974addsd x5, x4
    001d8978movapd x4, x2
    001d897cmulsd x4, x1
    001d8980mulsd x4, x3
    001d8984addsd x4, x5
    001d8988xorps x3, x3
    001d898bcvtsd2ss x3, x4
    001d898fxorps x3, [rip-0x144cd6]
    001d8996movapd x4, x0
    001d899amulsd x4, x2
    001d899eunpcklpd x2, x2
    001d89a2mulpd x2, [rip-0x144cca]
    001d89aamovss [r15], x3
    001d89afaddpd x2, [rip-0x144cc7]
    001d89b7mulsd x1, x4
    001d89bbunpcklpd x1, x4
    001d89bfmulpd x1, x2
    001d89c3movapd x2, x1
    001d89c7unpckhpd x2, x1
    001d89cbaddsd x2, x0
    001d89cfaddsd x2, x1
    001d89d3xorps x0, x0
    001d89d6cvtsd2ss x0, x2
    001d89dajmp 0x1d8c01
    001d89df
    001d89dfloc_1d89df:
    001d89dfmov edx, eax
    001d89e1shr edx, 23
    001d89e4add edx, -150
    001d89eamov ecx, edx
    001d89ecshl ecx, 23
    001d89efsub eax, ecx
    001d89f1movd x0, eax
    001d89f5cvtss2sd x0, x0
    001d89f9movsd_xmm [rbp-32], x0
    001d89felea rdi, [rbp-32]
    001d8a02lea rsi, [rbp-40]
    001d8a06mov ecx, 1
    001d8a0bxor r8l, r8l
    001d8a0ecall compiler_rt.rem_pio2_large.rem_pio2_large
    001d8a13movsd_xmm x0, [rbp-40]
    001d8a18test ebx, ebx
    001d8a1ajns 0x1d8b1b
    001d8a20xorpd x0, [rip-0x144d78]
    001d8a28neg eax
    001d8a2ajmp 0x1d8b1b
    001d8a2f
    001d8a2floc_1d8a2f:
    001d8a2faddsd x0, [rip-0x14549f]
    001d8a37movapd x2, x0
    001d8a3bmulsd x2, x0
    001d8a3fmovapd x1, x2
    001d8a43mulsd x1, x2
    001d8a47movsd_xmm x3, [rip-0x1454d7]
    001d8a4fmulsd x3, x2
    001d8a53addsd x3, [rip-0x1454db]
    001d8a5bmovsd_xmm x4, [rip-0x1454db]
    001d8a63mulsd x4, x2
    001d8a67addsd x4, [rip-0x145527]
    001d8a6fmovsd_xmm x5, [rip-0x1454e7]
    001d8a77mulsd x5, x1
    001d8a7baddsd x5, x4
    001d8a7fmovapd x4, x2
    001d8a83mulsd x4, x1
    001d8a87mulsd x4, x3
    001d8a8baddsd x4, x5
    001d8a8fxorps x3, x3
    001d8a92cvtsd2ss x3, x4
    001d8a96movapd x4, x0
    001d8a9amulsd x4, x2
    001d8a9eunpcklpd x2, x2
    001d8aa2mulpd x2, [rip-0x144dca]
    001d8aaaaddpd x2, [rip-0x144dc2]
    001d8ab2movss [r15], x3
    001d8ab7mulsd x1, x4
    001d8abbunpcklpd x1, x4
    001d8abfmulpd x1, x2
    001d8ac3movapd x2, x1
    001d8ac7unpckhpd x2, x1
    001d8acbaddsd x2, x0
    001d8acfaddsd x2, x1
    001d8ad3xorps x0, x0
    001d8ad6cvtsd2ss x0, x2
    001d8adaxorps x0, [rip-0x144e21]
    001d8ae1jmp 0x1d8c01
    001d8ae6
    001d8ae6loc_1d8ae6:
    001d8ae6ucomisd x0, [rip-0x1455ae]
    001d8aeejbe 0x1d8b1b
    001d8af0addsd x1, [rip-0x1455b0]
    001d8af8add eax, 1
    001d8afb
    001d8afbloc_1d8afb:
    001d8afbmovsd_xmm x0, [rip-0x1455db]
    001d8b03mulsd x0, x1
    001d8b07addsd x2, x0
    001d8b0bmulsd x1, [rip-0x1455e3]
    001d8b13addsd x1, x2
    001d8b17movapd x0, x1
    001d8b1b
    001d8b1bloc_1d8b1b:
    001d8b1bmovapd x1, x0
    001d8b1fmulsd x1, x0
    001d8b23movapd x2, x1
    001d8b27mulsd x2, x1
    001d8b2bmovsd_xmm x3, [rip-0x1455db]
    001d8b33mulsd x3, x1
    001d8b37addsd x3, [rip-0x1455df]
    001d8b3fmovapd x4, x0
    001d8b43mulsd x4, x1
    001d8b47movsd_xmm x5, [rip-0x1455e7]
    001d8b4fmulsd x5, x1
    001d8b53addsd x5, [rip-0x1455eb]
    001d8b5bmulsd x5, x4
    001d8b5faddsd x5, x0
    001d8b63mulsd x4, x2
    001d8b67mulsd x4, x3
    001d8b6baddsd x4, x5
    001d8b6fxorps x0, x0
    001d8b72cvtsd2ss x0, x4
    001d8b76movsd_xmm x3, [rip-0x145606]
    001d8b7emulsd x3, x1
    001d8b82addsd x3, [rip-0x14560a]
    001d8b8amovsd_xmm x4, [rip-0x14560a]
    001d8b92mulsd x4, x1
    001d8b96addsd x4, [rip-0x145656]
    001d8b9emulsd x1, x2
    001d8ba2mulsd x2, [rip-0x14561a]
    001d8baaaddsd x2, x4
    001d8baemulsd x1, x3
    001d8bb2addsd x1, x2
    001d8bb6cvtsd2ss x1, x1
    001d8bbaand eax, 3
    001d8bbdje 0x1d8beb
    001d8bbfcmp eax, 1
    001d8bc2je 0x1d8bdd
    001d8bc4cmp eax, 2
    001d8bc7jne 0x1d8bf5
    001d8bc9movaps x2, [rip-0x144f10]
    001d8bd0xorps x0, x2
    001d8bd3movss [r15], x0
    001d8bd8xorps x1, x2
    001d8bdbjmp 0x1d8bf0
    001d8bdd
    001d8bddloc_1d8bdd:
    001d8bddmovss [r15], x1
    001d8be2xorps x0, [rip-0x144f29]
    001d8be9jmp 0x1d8c01
    001d8beb
    001d8bebloc_1d8beb:
    001d8bebmovss [r15], x0
    001d8bf0
    001d8bf0loc_1d8bf0:
    001d8bf0movaps x0, x1
    001d8bf3jmp 0x1d8c01
    001d8bf5
    001d8bf5loc_1d8bf5:
    001d8bf5xorps x1, [rip-0x144f3c]
    001d8bfcmovss [r15], x1
    001d8c01
    001d8c01loc_1d8c01:
    001d8c01movss [r14], x0
    001d8c06add rsp, 24
    001d8c0apop rbx
    001d8c0bpop r14
    001d8c0dpop r15
    001d8c0fpop rbp
    001d8c10ret
    001d8520
    001d8c11
    001d8c11 // align 0x10
    001d8c20
    001d8c20sincos:
    001d8c20push rbp
    001d8c21mov rbp, rsp
    001d8c24push r14
    001d8c26push rbx
    001d8c27sub rsp, 32
    001d8c2bmov r14, rsi
    001d8c2emov rbx, rdi
    001d8c31movq rax, x0
    001d8c36shr rax, 32
    001d8c3aand eax, 0x7fffffff
    001d8c3fcmp eax, 0x3fe921fb
    001d8c44ja 0x1d8c5e
    001d8c46cmp eax, 0x3e46a09e
    001d8c4bjae 0x1d8c76
    001d8c4dmovsd_xmm [rbx], x0
    001d8c51movsd_xmm x0, [rip-0x145641]
    001d8c59jmp 0x1d8eef
    001d8c5e
    001d8c5eloc_1d8c5e:
    001d8c5ecmp eax, 0x7ff00000
    001d8c63jb 0x1d8d83
    001d8c69subsd x0, x0
    001d8c6dmovsd_xmm [rbx], x0
    001d8c71jmp 0x1d8eef
    001d8c76
    001d8c76loc_1d8c76:
    001d8c76movapd x1, x0
    001d8c7amulsd x1, x0
    001d8c7emovapd x2, x1
    001d8c82movsd_xmm x3, [rip-0x1456da]
    001d8c8amulsd x3, x1
    001d8c8eaddsd x3, [rip-0x1456de]
    001d8c96mulsd x2, x1
    001d8c9amulsd x3, x1
    001d8c9eaddsd x3, [rip-0x1456e6]
    001d8ca6movapd x4, x1
    001d8caamulsd x4, x2
    001d8caemovsd_xmm x5, [rip-0x1456ee]
    001d8cb6mulsd x5, x1
    001d8cbaaddsd x5, [rip-0x1456f2]
    001d8cc2mulsd x5, x4
    001d8cc6addsd x5, x3
    001d8ccamovapd x3, x1
    001d8ccemulsd x5, x1
    001d8cd2addsd x5, [rip-0x1456ba]
    001d8cdamulsd x3, x0
    001d8cdemulsd x5, x3
    001d8ce2addsd x5, x0
    001d8ce6movsd_xmm [rbx], x5
    001d8ceamovsd_xmm x3, [rip-0x14570a]
    001d8cf2mulsd x3, x1
    001d8cf6addsd x3, [rip-0x14570e]
    001d8cfemulsd x3, x1
    001d8d02addsd x3, [rip-0x145712]
    001d8d0amulsd x3, x1
    001d8d0emovsd_xmm x4, [rip-0x145716]
    001d8d16mulsd x4, x1
    001d8d1aaddsd x4, [rip-0x14571a]
    001d8d22mulsd x2, x2
    001d8d26mulsd x4, x1
    001d8d2aaddsd x4, [rip-0x145722]
    001d8d32mulsd x4, x2
    001d8d36addsd x4, x3
    001d8d3amulsd x4, x1
    001d8d3eunpcklpd x1, x0
    001d8d42movsd_xmm x0, [rip-0x145772]
    001d8d4amulpd x0, x1
    001d8d4emovapd x1, [rip-0x145036]
    001d8d56unpcklpd x1, x4
    001d8d5asubpd x1, x0
    001d8d5emovsd_xmm x2, [rip-0x14574e]
    001d8d66subsd x2, x1
    001d8d6asubsd x2, x0
    001d8d6emovapd x0, x1
    001d8d72unpckhpd x0, x1
    001d8d76addsd x0, x2
    001d8d7aaddsd x0, x1
    001d8d7ejmp 0x1d8eef
    001d8d83
    001d8d83loc_1d8d83:
    001d8d83lea rdi, [rbp-32]
    001d8d87call compiler_rt.rem_pio2.rem_pio2
    001d8d8cmovsd_xmm x1, [rbp-32]
    001d8d91movsd_xmm x2, [rbp-24]
    001d8d96movapd x3, x1
    001d8d9amulsd x3, x1
    001d8d9emovapd x4, x3
    001d8da2movsd_xmm x0, [rip-0x1457fa]
    001d8daamulsd x0, x3
    001d8daeaddsd x0, [rip-0x1457fe]
    001d8db6mulsd x4, x3
    001d8dbamulsd x0, x3
    001d8dbeaddsd x0, [rip-0x145806]
    001d8dc6movapd x5, x3
    001d8dcamulsd x5, x4
    001d8dcemovsd_xmm x7, [rip-0x14580e]
    001d8dd6mulsd x7, x3
    001d8ddaaddsd x7, [rip-0x145812]
    001d8de2mulsd x7, x5
    001d8de6addsd x7, x0
    001d8deamovapd x5, x1
    001d8deemulsd x5, x3
    001d8df2movsd_xmm x6, [rip-0x145822]
    001d8dfamovapd x0, x2
    001d8dfemulsd x0, x6
    001d8e02mulsd x7, x5
    001d8e06subsd x0, x7
    001d8e0amulsd x0, x3
    001d8e0esubsd x0, x2
    001d8e12mulsd x5, [rip-0x14583a]
    001d8e1aaddsd x5, x0
    001d8e1emovsd_xmm x7, [rip-0x14583e]
    001d8e26mulsd x7, x3
    001d8e2aaddsd x7, [rip-0x145842]
    001d8e32movapd x0, x1
    001d8e36mulsd x7, x3
    001d8e3aaddsd x7, [rip-0x14584a]
    001d8e42subsd x0, x5
    001d8e46mulsd x7, x3
    001d8e4amulsd x4, x4
    001d8e4emovsd_xmm x5, [rip-0x145856]
    001d8e56mulsd x5, x3
    001d8e5aaddsd x5, [rip-0x14585a]
    001d8e62mulsd x5, x3
    001d8e66addsd x5, [rip-0x14585e]
    001d8e6emulsd x5, x4
    001d8e72addsd x5, x7
    001d8e76mulsd x6, x3
    001d8e7amovsd_xmm x4, [rip-0x14586a]
    001d8e82movapd x7, x4
    001d8e86subsd x7, x6
    001d8e8asubsd x4, x7
    001d8e8esubsd x4, x6
    001d8e92mulsd x5, x3
    001d8e96mulsd x1, x2
    001d8e9asubsd x5, x1
    001d8e9eaddsd x5, x4
    001d8ea2addsd x5, x7
    001d8ea6and eax, 3
    001d8ea9je 0x1d8ecb
    001d8eabcmp eax, 1
    001d8eaeje 0x1d8ed5
    001d8eb0cmp eax, 2
    001d8eb3jne 0x1d8ee3
    001d8eb5movapd x1, [rip-0x1451ad]
    001d8ebdxorpd x0, x1
    001d8ec1movlpd [rbx], x0
    001d8ec5xorpd x5, x1
    001d8ec9jmp 0x1d8ecf
    001d8ecb
    001d8ecbloc_1d8ecb:
    001d8ecbmovsd_xmm [rbx], x0
    001d8ecf
    001d8ecfloc_1d8ecf:
    001d8ecfmovapd x0, x5
    001d8ed3jmp 0x1d8eef
    001d8ed5
    001d8ed5loc_1d8ed5:
    001d8ed5movsd_xmm [rbx], x5
    001d8ed9xorpd x0, [rip-0x1451d1]
    001d8ee1jmp 0x1d8eef
    001d8ee3
    001d8ee3loc_1d8ee3:
    001d8ee3xorpd x5, [rip-0x1451db]
    001d8eebmovlpd [rbx], x5
    001d8eef
    001d8eefloc_1d8eef:
    001d8eefmovsd_xmm [r14], x0
    001d8ef4add rsp, 32
    001d8ef8pop rbx
    001d8ef9pop r14
    001d8efbpop rbp
    001d8efcret
    001d8c20
    001d8efd
    001d8efd // align 0x10
    001d8f00
    001d8f00__sincosx:
    001d8f00push rbp
    001d8f01mov rbp, rsp
    001d8f04push r15
    001d8f06push r14
    001d8f08push r13
    001d8f0apush r12
    001d8f0cpush rbx
    001d8f0dsub rsp, 72
    001d8f11mov [rbp-56], rsi
    001d8f15mov [rbp-48], rdi
    001d8f19mov r13, 0x8000000000000000
    001d8f23mov eax, [rbp+24]
    001d8f26mov rdx, [rbp+16]
    001d8f2amov edi, eax
    001d8f2cmov r12, 0x7fff000000000000
    001d8f36and di, 32767
    001d8f3bjne 0x1d8f4d
    001d8f3dxor esi, esi
    001d8f3fmov ecx, 0
    001d8f44test rdx, rdx
    001d8f47je 0x1d8fd1
    001d8f4d
    001d8f4dloc_1d8f4d:
    001d8f4dmovzx ecx, di
    001d8f50cmp ecx, 32767
    001d8f56jne 0x1d8f6b
    001d8f58mov rsi, rdx
    001d8f5bshl rsi, 49
    001d8f5fshr rdx, 15
    001d8f63or rdx, r12
    001d8f66mov rcx, rdx
    001d8f69jmp 0x1d8fd1
    001d8f6b
    001d8f6bloc_1d8f6b:
    001d8f6btest rdx, rdx
    001d8f6ejs 0x1d8f7c
    001d8f70je 0x1d8f97
    001d8f72bsr rsi, rdx
    001d8f76xor rsi, 63
    001d8f7ajmp 0x1d8f9c
    001d8f7c
    001d8f7cloc_1d8f7c:
    001d8f7clea rsi, [r13-1]
    001d8f80and rdx, rsi
    001d8f83mov rsi, rdx
    001d8f86shl rsi, 49
    001d8f8ashr rdx, 15
    001d8f8eshl rcx, 48
    001d8f92or rcx, rdx
    001d8f95jmp 0x1d8fd1
    001d8f97
    001d8f97loc_1d8f97:
    001d8f97mov esi, 64
    001d8f9c
    001d8f9cloc_1d8f9c:
    001d8f9cmov ecx, esi
    001d8f9eadd cl, 50
    001d8fa1xor edi, edi
    001d8fa3shld rdi, rdx, cl
    001d8fa7shl rdx, cl
    001d8faaxor ebx, ebx
    001d8factest cl, 64
    001d8fafcmovne rdi, rdx
    001d8fb3cmovne rdx, rbx
    001d8fb7mov rbx, 0x1000000000000
    001d8fc1xor rbx, rdi
    001d8fc4lea ecx, [rsi+1]
    001d8fc7shl rcx, 48
    001d8fcbor rcx, rbx
    001d8fcemov rsi, rdx
    001d8fd1
    001d8fd1loc_1d8fd1:
    001d8fd1mov r15, 0x7fffffffffffffff
    001d8fdbmov r14, -1
    001d8fe2and eax, 32768
    001d8fe7shl rax, 48
    001d8febor rax, rcx
    001d8feemov [rbp-80], rsi
    001d8ff2mov [rbp-72], rax
    001d8ff6movaps x0, [rbp-80]
    001d8ffalea rdi, [rbp-96]
    001d8ffelea rsi, [rbp-112]
    001d9002call sincosq
    001d9007mov rbx, [rbp-96]
    001d900bmov rcx, [rbp-88]
    001d900fmov rdx, rcx
    001d9012and rdx, r15
    001d9015mov rdi, rcx
    001d9018shld rdi, rbx, 15
    001d901dmov rsi, rdi
    001d9020or rsi, r13
    001d9023mov rax, rbx
    001d9026neg rax
    001d9029mov rax, r12
    001d902csbb rax, rdx
    001d902fmov r8w, 32767
    001d9034jae 0x1d903c
    001d9036mov dx, 32767
    001d903ajmp 0x1d90a9
    001d903c
    001d903cloc_1d903c:
    001d903cshr rdx, 48
    001d9040mov rax, 0x1ffffffffffff
    001d904aand rbx, rax
    001d904dmov rax, 0x1000000000001
    001d9057cmp rbx, rax
    001d905ajb 0x1d9073
    001d905cmov rax, rsi
    001d905fadd rax, 1
    001d9063adc dx, 0
    001d9067xor eax, eax
    001d9069add rsi, 1
    001d906dcmove rax, r13
    001d9071jmp 0x1d9098
    001d9073
    001d9073loc_1d9073:
    001d9073mov rax, 0x1000000000000
    001d907dcmp rbx, rax
    001d9080jne 0x1d909b
    001d9082and edi, 1
    001d9085mov rax, rsi
    001d9088add rax, rdi
    001d908badc dx, 0
    001d908fxor eax, eax
    001d9091add rsi, rdi
    001d9094cmovb rax, r13
    001d9098
    001d9098loc_1d9098:
    001d9098or rsi, rax
    001d909b
    001d909bloc_1d909b:
    001d909blea rax, [r13-1]
    001d909fand rax, rsi
    001d90a2test dx, dx
    001d90a5cmove rsi, rax
    001d90a9
    001d90a9loc_1d90a9:
    001d90a9shr rcx, 48
    001d90adand ecx, 32768
    001d90b3or edx, ecx
    001d90b5mov rax, [rbp-48]
    001d90b9mov [rax+8], dx
    001d90bdmov [rax], rsi
    001d90c0mov rcx, [rbp-104]
    001d90c4mov rax, [rbp-112]
    001d90c8and r15, rcx
    001d90cband r14, rax
    001d90cemov rsi, rcx
    001d90d1shld rsi, rax, 15
    001d90d6mov rdx, rsi
    001d90d9or rdx, r13
    001d90dcneg r14
    001d90dfsbb r12, r15
    001d90e2jb 0x1d9157
    001d90e4shr r15, 48
    001d90e8mov r8l, r15l
    001d90ebmov rdi, 0x1ffffffffffff
    001d90f5and rax, rdi
    001d90f8mov rdi, 0x1000000000001
    001d9102cmp rax, rdi
    001d9105jb 0x1d911f
    001d9107mov rax, rdx
    001d910aadd rax, 1
    001d910eadc r8w, 0
    001d9113xor eax, eax
    001d9115add rdx, 1
    001d9119cmove rax, r13
    001d911djmp 0x1d9145
    001d911f
    001d911floc_1d911f:
    001d911fmov rdi, 0x1000000000000
    001d9129cmp rax, rdi
    001d912cjne 0x1d9148
    001d912eand esi, 1
    001d9131mov rax, rdx
    001d9134add rax, rsi
    001d9137adc r8w, 0
    001d913cxor eax, eax
    001d913eadd rdx, rsi
    001d9141cmovb rax, r13
    001d9145
    001d9145loc_1d9145:
    001d9145or rdx, rax
    001d9148
    001d9148loc_1d9148:
    001d9148add r13, -1
    001d914cand r13, rdx
    001d914ftest r8w, r8w
    001d9153cmove rdx, r13
    001d9157
    001d9157loc_1d9157:
    001d9157shr rcx, 48
    001d915band ecx, 32768
    001d9161or r8l, ecx
    001d9164mov rax, [rbp-56]
    001d9168mov [rax], rdx
    001d916bmov [rax+8], r8w
    001d9170add rsp, 72
    001d9174pop rbx
    001d9175pop r12
    001d9177pop r13
    001d9179pop r14
    001d917bpop r15
    001d917dpop rbp
    001d917eret
    001d8f00
    001d917f
    001d917f // align 0x10
    001d9180
    001d9180sincosq:
    001d9180push rbp
    001d9181mov rbp, rsp
    001d9184push r15
    001d9186push r14
    001d9188push r13
    001d918apush r12
    001d918cpush rbx
    001d918dsub rsp, 40
    001d9191mov r14, rsi
    001d9194mov r12, rdi
    001d9197mov r8, 0x7fefffffffffffff
    001d91a1movaps [rbp-80], x0
    001d91a5mov rdi, [rbp-80]
    001d91a9mov rdx, [rbp-72]
    001d91admov rcx, 0x7fffffffffffffff
    001d91b7and rcx, rdx
    001d91bamov rax, 0xc3ff000000000000
    001d91c4add rax, rcx
    001d91c7mov rsi, 0xbc01000000000000
    001d91d1add rsi, rcx
    001d91d4cmp rax, rsi
    001d91d7jae 0x1d921b
    001d91d9mov rcx, 0x4000000000000000
    001d91e3mov rax, rdx
    001d91e6shld rax, rdi, 4
    001d91eblea rsi, [rax+rcx]
    001d91efmov rbx, 0xfffffffffffffff
    001d91f9and rbx, rdi
    001d91fcmov rdi, 0x800000000000000
    001d9206mov r15, r8
    001d9209cmp rbx, rdi
    001d920cjbe 0x1d9257
    001d920elea rsi, [rcx+rax]
    001d9212add rsi, 1
    001d9216jmp 0x1d932b
    001d921b
    001d921bloc_1d921b:
    001d921bmov rax, rdi
    001d921eneg rax
    001d9221mov rax, 0x7fff000000000000
    001d922bsbb rax, rcx
    001d922ejae 0x1d9268
    001d9230mov r15, r8
    001d9233shrd rdi, rdx, 60
    001d9238mov rax, 0x7ffffffffffff
    001d9242and rax, rdi
    001d9245mov rsi, 0x7ff8000000000000
    001d924for rsi, rax
    001d9252jmp 0x1d932b
    001d9257
    001d9257loc_1d9257:
    001d9257jne 0x1d932b
    001d925d
    001d925dloc_1d925d:
    001d925dand eax, 1
    001d9260add rsi, rax
    001d9263jmp 0x1d932b
    001d9268
    001d9268loc_1d9268:
    001d9268shr rcx, 48
    001d926ccmp ecx, 17406
    001d9272jbe 0x1d9280
    001d9274mov r15, r8
    001d9277lea rsi, [r8+1]
    001d927bjmp 0x1d932b
    001d9280
    001d9280loc_1d9280:
    001d9280mov eax, 15361
    001d9285sub eax, ecx
    001d9287mov r15, r8
    001d928acmp eax, 112
    001d928djbe 0x1d9296
    001d928fxor esi, esi
    001d9291jmp 0x1d932b
    001d9296
    001d9296loc_1d9296:
    001d9296mov rbx, 0xffffffffffff
    001d92a0and rbx, rdx
    001d92a3mov rsi, 0x1000000000000
    001d92ador rsi, rbx
    001d92b0add cl, -1
    001d92b3mov r8, rsi
    001d92b6shld r8, rdi, cl
    001d92bamov rbx, rdi
    001d92bdshl rbx, cl
    001d92c0xor r9l, r9l
    001d92c3test cl, 64
    001d92c6cmovne r8, rbx
    001d92cacmovne rbx, r9
    001d92cexor r10l, r10l
    001d92d1or rbx, r8
    001d92d4setne r10b
    001d92d8mov ecx, eax
    001d92dashrd rdi, rsi, cl
    001d92deshr rsi, cl
    001d92e1test al, 64
    001d92e3cmovne rdi, rsi
    001d92e7cmovne rsi, r9
    001d92ebshld rsi, rdi, 4
    001d92f0mov rax, 0xfffffffffffffff
    001d92faand rax, rdi
    001d92fdor rax, r10
    001d9300mov rcx, 0x800000000000001
    001d930acmp rax, rcx
    001d930djb 0x1d9315
    001d930fadd rsi, 1
    001d9313jmp 0x1d932b
    001d9315
    001d9315loc_1d9315:
    001d9315mov rcx, 0x800000000000000
    001d931fcmp rax, rcx
    001d9322jne 0x1d932b
    001d9324mov eax, esi
    001d9326jmp 0x1d925d
    001d932b
    001d932bloc_1d932b:
    001d932bmov rbx, 0xfff0000000000000
    001d9335mov r13, 0x8000000000000000
    001d933fand rdx, r13
    001d9342or rdx, rsi
    001d9345movq x0, rdx
    001d934alea rdi, [rbp-48]
    001d934elea rsi, [rbp-56]
    001d9352call sincos
    001d9357mov rsi, [rbp-48]
    001d935blea rax, [r13-1]
    001d935fmov rdi, rsi
    001d9362and rdi, rax
    001d9365lea rcx, [rdi+rbx]
    001d9369shr rcx, 53
    001d936dmov r8, 0x3c00000000000000
    001d9377cmp ecx, 1022
    001d937dja 0x1d938f
    001d937fmov rcx, rdi
    001d9382shl rcx, 60
    001d9386shr rdi, 4
    001d938aadd rdi, r8
    001d938djmp 0x1d9405
    001d938f
    001d938floc_1d938f:
    001d938fcmp rdi, r15
    001d9392jbe 0x1d93b1
    001d9394mov rcx, rsi
    001d9397shl rcx, 60
    001d939bmov rdx, rsi
    001d939eshr rdx, 4
    001d93a2mov rdi, 0x7fff000000000000
    001d93acor rdi, rdx
    001d93afjmp 0x1d9405
    001d93b1
    001d93b1loc_1d93b1:
    001d93b1test rdi, rdi
    001d93b4je 0x1d9401
    001d93b6bsr rcx, rdi
    001d93baxor rcx, 63
    001d93belea r9l, [rcx+117]
    001d93c2add cl, 49
    001d93c5xor edx, edx
    001d93c7shld rdx, rdi, cl
    001d93cband r9l, 127
    001d93cfxor r10l, r10l
    001d93d2shl rdi, cl
    001d93d5test cl, 64
    001d93d8cmovne rdx, rdi
    001d93dccmovne rdi, r10
    001d93e0mov r10, 0x1000000000000
    001d93eaxor r10, rdx
    001d93edmov rcx, rdi
    001d93f0mov edi, 15361
    001d93f5sub edi, r9l
    001d93f8shl rdi, 48
    001d93fcor rdi, r10
    001d93ffjmp 0x1d9405
    001d9401
    001d9401loc_1d9401:
    001d9401xor ecx, ecx
    001d9403xor edi, edi
    001d9405
    001d9405loc_1d9405:
    001d9405and rsi, r13
    001d9408or rsi, rdi
    001d940bmov [r12], rcx
    001d940fmov [r12+8], rsi
    001d9414mov rsi, [rbp-56]
    001d9418and rax, rsi
    001d941badd rbx, rax
    001d941emov rcx, 0x7fe0000000000000
    001d9428cmp rbx, rcx
    001d942bjae 0x1d943d
    001d942dmov rcx, rax
    001d9430shl rcx, 60
    001d9434shr rax, 4
    001d9438add rax, r8
    001d943bjmp 0x1d94af
    001d943d
    001d943dloc_1d943d:
    001d943dcmp rax, r15
    001d9440jbe 0x1d945f
    001d9442mov rcx, rsi
    001d9445shl rcx, 60
    001d9449mov rdx, rsi
    001d944cshr rdx, 4
    001d9450mov rax, 0x7fff000000000000
    001d945aor rax, rdx
    001d945djmp 0x1d94af
    001d945f
    001d945floc_1d945f:
    001d945ftest rax, rax
    001d9462je 0x1d94ab
    001d9464bsr rcx, rax
    001d9468xor rcx, 63
    001d946clea edx, [rcx+117]
    001d946fadd cl, 49
    001d9472xor edi, edi
    001d9474shld rdi, rax, cl
    001d9478and edx, 127
    001d947bxor ebx, ebx
    001d947dshl rax, cl
    001d9480test cl, 64
    001d9483cmovne rdi, rax
    001d9487cmovne rax, rbx
    001d948bmov rbx, 0x1000000000000
    001d9495xor rbx, rdi
    001d9498mov rcx, rax
    001d949bmov eax, 15361
    001d94a0sub eax, edx
    001d94a2shl rax, 48
    001d94a6or rax, rbx
    001d94a9jmp 0x1d94af
    001d94ab
    001d94abloc_1d94ab:
    001d94abxor ecx, ecx
    001d94adxor eax, eax
    001d94af
    001d94afloc_1d94af:
    001d94afand rsi, r13
    001d94b2or rsi, rax
    001d94b5mov [r14], rcx
    001d94b8mov [r14+8], rsi
    001d94bcadd rsp, 40
    001d94c0pop rbx
    001d94c1pop r12
    001d94c3pop r13
    001d94c5pop r14
    001d94c7pop r15
    001d94c9pop rbp
    001d94caret
    001d9180
    001d94cb
    001d94cb // align 0x10
    001d94d0
    001d94d0sincosl:
    001d94d0push rbp
    001d94d1mov rbp, rsp
    001d94d4pop rbp
    001d94d5jmp 0x1d8f00
    001d94d0
    001d94da
    001d94da // align 0x10
    001d94e0
    001d94e0ceilf:
    001d94e0xorps x1, x1
    001d94e3ucomiss x0, x1
    001d94e6jne 0x1d94ea
    001d94e8jnp 0x1d952a
    001d94ea
    001d94ealoc_1d94ea:
    001d94eamovd eax, x0
    001d94eemov ecx, eax
    001d94f0shr ecx, 23
    001d94f3movzx edx, cl
    001d94f6cmp edx, 150
    001d94fcjae 0x1d952a
    001d94fecmp edx, 127
    001d9501jb 0x1d952b
    001d9503add ecx, 1
    001d9506and ecx, 31
    001d9509mov edx, 0x7fffff
    001d950eshr edx, cl
    001d9510test edx, eax
    001d9512je 0x1d952a
    001d9514xor esi, esi
    001d9516test eax, eax
    001d9518cmovs edx, esi
    001d951bmov esi, 0xffffffffff800000
    001d9520sar esi, cl
    001d9522add edx, eax
    001d9524and esi, edx
    001d9526movd x0, esi
    001d952a
    001d952aloc_1d952a:
    001d952aret
    001d952b
    001d952bloc_1d952b:
    001d952bpush rbp
    001d952cmov rbp, rsp
    001d952fxor ecx, ecx
    001d9531test eax, eax
    001d9533setns cl
    001d9536lea rax, [rip-0x145f0d]
    001d953dmovss x0, [rax+4*rcx]
    001d9542pop rbp
    001d9543ret
    001d94e0
    001d9544
    001d9544 // align 0x10
    001d9550
    001d9550ceil:
    001d9550push rbp
    001d9551mov rbp, rsp
    001d9554movq rax, x0
    001d9559mov rcx, rax
    001d955cshr rcx, 52
    001d9560and ecx, 2047
    001d9566cmp rcx, 1074
    001d956dja 0x1d95d5
    001d956fxorpd x1, x1
    001d9573ucomisd x0, x1
    001d9577jne 0x1d957b
    001d9579jnp 0x1d95d5
    001d957b
    001d957bloc_1d957b:
    001d957bcmp ecx, 1022
    001d9581ja 0x1d9598
    001d9583not rax
    001d9586shr rax, 63
    001d958alea rcx, [rip-0x145861]
    001d9591movsd_xmm x0, [rcx+8*rax]
    001d9596pop rbp
    001d9597ret
    001d9598
    001d9598loc_1d9598:
    001d9598movsd_xmm x1, [rip-0x145f68]
    001d95a0movsd_xmm x2, [rip-0x145f68]
    001d95a8test rax, rax
    001d95abjns 0x1d95b3
    001d95adaddsd x2, x0
    001d95b1jmp 0x1d95b7
    001d95b3
    001d95b3loc_1d95b3:
    001d95b3addsd x1, x0
    001d95b7
    001d95b7loc_1d95b7:
    001d95b7addsd x1, x2
    001d95bbsubsd x1, x0
    001d95bfxorpd x2, x2
    001d95c3ucomisd x2, x1
    001d95c7addsd x0, x1
    001d95cbjbe 0x1d95d5
    001d95cdaddsd x0, [rip-0x145f8d]
    001d95d5
    001d95d5loc_1d95d5:
    001d95d5pop rbp
    001d95d6ret
    001d9550
    001d95d7
    001d95d7 // align 0x10
    001d95e0
    001d95e0__ceilx:
    001d95e0push rbp
    001d95e1mov rbp, rsp
    001d95e4push r15
    001d95e6push r14
    001d95e8push rbx
    001d95e9sub rsp, 56
    001d95edmov r15, 0x8000000000000000
    001d95f7mov eax, [rbp+24]
    001d95famov rdx, [rbp+16]
    001d95femov edi, eax
    001d9600mov r14, 0x7fff000000000000
    001d960aand di, 32767
    001d960fjne 0x1d9621
    001d9611xor esi, esi
    001d9613mov ecx, 0
    001d9618test rdx, rdx
    001d961bje 0x1d96a5
    001d9621
    001d9621loc_1d9621:
    001d9621movzx ecx, di
    001d9624cmp ecx, 32767
    001d962ajne 0x1d963f
    001d962cmov rsi, rdx
    001d962fshl rsi, 49
    001d9633shr rdx, 15
    001d9637or rdx, r14
    001d963amov rcx, rdx
    001d963djmp 0x1d96a5
    001d963f
    001d963floc_1d963f:
    001d963ftest rdx, rdx
    001d9642js 0x1d9650
    001d9644je 0x1d966b
    001d9646bsr rsi, rdx
    001d964axor rsi, 63
    001d964ejmp 0x1d9670
    001d9650
    001d9650loc_1d9650:
    001d9650lea rsi, [r15-1]
    001d9654and rdx, rsi
    001d9657mov rsi, rdx
    001d965ashl rsi, 49
    001d965eshr rdx, 15
    001d9662shl rcx, 48
    001d9666or rcx, rdx
    001d9669jmp 0x1d96a5
    001d966b
    001d966bloc_1d966b:
    001d966bmov esi, 64
    001d9670
    001d9670loc_1d9670:
    001d9670mov ecx, esi
    001d9672add cl, 50
    001d9675xor edi, edi
    001d9677shld rdi, rdx, cl
    001d967bshl rdx, cl
    001d967exor ebx, ebx
    001d9680test cl, 64
    001d9683cmovne rdi, rdx
    001d9687cmovne rdx, rbx
    001d968bmov rbx, 0x1000000000000
    001d9695xor rbx, rdi
    001d9698lea ecx, [rsi+1]
    001d969bshl rcx, 48
    001d969for rcx, rbx
    001d96a2mov rsi, rdx
    001d96a5
    001d96a5loc_1d96a5:
    001d96a5and eax, 32768
    001d96aashl rax, 48
    001d96aeor rax, rcx
    001d96b1mov [rbp-80], rsi
    001d96b5mov [rbp-72], rax
    001d96b9movaps x0, [rbp-80]
    001d96bdcall ceilq
    001d96c2movaps [rbp-64], x0
    001d96c6mov rdi, [rbp-64]
    001d96camov rax, [rbp-56]
    001d96cemov rbx, 0x7fffffffffffffff
    001d96d8mov rsi, rax
    001d96dbshld rsi, rdi, 15
    001d96e0and rbx, rax
    001d96e3mov rcx, rsi
    001d96e6or rcx, r15
    001d96e9mov rdx, rdi
    001d96ecneg rdx
    001d96efsbb r14, rbx
    001d96f2mov dx, 32767
    001d96f6jb 0x1d976a
    001d96f8shr rbx, 48
    001d96fcmov edx, ebx
    001d96femov rbx, 0x1ffffffffffff
    001d9708and rdi, rbx
    001d970bmov rbx, 0x1000000000001
    001d9715cmp rdi, rbx
    001d9718jb 0x1d9734
    001d971amov rsi, rcx
    001d971dadd rsi, 1
    001d9721adc dx, 0
    001d9725xor esi, esi
    001d9727add rcx, 1
    001d972bcmove rsi, r15
    001d972for rcx, rsi
    001d9732jmp 0x1d975c
    001d9734
    001d9734loc_1d9734:
    001d9734mov rbx, 0x1000000000000
    001d973ecmp rdi, rbx
    001d9741jne 0x1d975c
    001d9743and esi, 1
    001d9746mov rdi, rcx
    001d9749add rdi, rsi
    001d974cadc dx, 0
    001d9750xor edi, edi
    001d9752add rcx, rsi
    001d9755cmovb rdi, r15
    001d9759or rcx, rdi
    001d975c
    001d975cloc_1d975c:
    001d975cadd r15, -1
    001d9760and r15, rcx
    001d9763test dx, dx
    001d9766cmove rcx, r15
    001d976a
    001d976aloc_1d976a:
    001d976ashr rax, 48
    001d976eand eax, 32768
    001d9773or edx, eax
    001d9775mov [rbp-48], rcx
    001d9779mov [rbp-40], dx
    001d977dfld [rbp-48]
    001d9780add rsp, 56
    001d9784pop rbx
    001d9785pop r14
    001d9787pop r15
    001d9789pop rbp
    001d978aret
    001d95e0
    001d978b
    001d978b // align 0x10
    001d9790
    001d9790ceilq:
    001d9790push rbp
    001d9791mov rbp, rsp
    001d9794push r15
    001d9796push r14
    001d9798push r13
    001d979apush r12
    001d979cpush rbx
    001d979dsub rsp, 184
    001d97a4movaps [rbp-96], x0
    001d97a8movaps x0, [rip-0x145a6f]
    001d97afmovaps x1, [rip-0x145a66]
    001d97b6call __divtf3
    001d97bbmovaps x1, x0
    001d97bemovaps x0, [rbp-96]
    001d97c2movaps [rbp-208], x0
    001d97c9mov r15, [rbp-200]
    001d97d0mov rbx, r15
    001d97d3shr rbx, 48
    001d97d7and ebx, 32767
    001d97ddcmp rbx, 16494
    001d97e4ja 0x1d993f
    001d97eamovaps x2, [rip-0x145ab1]
    001d97f1movaps [rbp-80], x2
    001d97f5mov r12, [rbp-208]
    001d97fcmov r14, 0x7fffffffffffffff
    001d9806mov rax, r15
    001d9809and rax, r14
    001d980cmov rcx, r12
    001d980fneg rcx
    001d9812mov rcx, 0x7fff000000000000
    001d981csbb rcx, rax
    001d981fmov r13, 0x8000000000000000
    001d9829jb 0x1d9834
    001d982bor rax, r12
    001d982eje 0x1d993f
    001d9834
    001d9834loc_1d9834:
    001d9834test r15, r15
    001d9837js 0x1d987a
    001d9839movaps [rbp-64], x1
    001d983dcall __addtf3
    001d9842movaps x1, [rbp-64]
    001d9846movaps [rbp-160], x1
    001d984dmov rax, [rbp-160]
    001d9854mov rcx, [rbp-152]
    001d985bxor rcx, r13
    001d985emov [rbp-136], rcx
    001d9865mov [rbp-144], rax
    001d986cmovaps x1, [rbp-144]
    001d9873call __addtf3
    001d9878jmp 0x1d98c4
    001d987a
    001d987aloc_1d987a:
    001d987amovaps [rbp-192], x1
    001d9881mov rax, [rbp-192]
    001d9888mov rcx, [rbp-184]
    001d988fxor rcx, r13
    001d9892mov [rbp-168], rcx
    001d9899mov [rbp-176], rax
    001d98a0movaps [rbp-64], x1
    001d98a4movaps x1, [rbp-176]
    001d98abcall __addtf3
    001d98b0movaps x1, [rbp-64]
    001d98b4call __addtf3
    001d98b9movaps x1, [rip-0x145b60]
    001d98c0movaps [rbp-80], x1
    001d98c4
    001d98c4loc_1d98c4:
    001d98c4mov [rbp-128], r12
    001d98c8xor r15, r13
    001d98cbmov [rbp-120], r15
    001d98cfmovaps x1, [rbp-128]
    001d98d3call __addtf3
    001d98d8cmp ebx, 16382
    001d98deja 0x1d98e6
    001d98e0movaps x0, [rbp-80]
    001d98e4jmp 0x1d993f
    001d98e6
    001d98e6loc_1d98e6:
    001d98e6movaps x1, x0
    001d98e9mov rax, -1
    001d98f0movaps [rbp-112], x0
    001d98f4mov rbx, [rbp-104]
    001d98f8and r14, rbx
    001d98fband rax, [rbp-112]
    001d98ffadd rax, -1
    001d9903adc r14, -1
    001d9907shr r14, 48
    001d990bmovaps x0, [rbp-96]
    001d990fcall __addtf3
    001d9914cmp r14l, 32766
    001d991bja 0x1d993f
    001d991dtest rbx, rbx
    001d9920jns 0x1d993f
    001d9922movaps x1, [rip-0x145be9]
    001d9929add rsp, 184
    001d9930pop rbx
    001d9931pop r12
    001d9933pop r13
    001d9935pop r14
    001d9937pop r15
    001d9939pop rbp
    001d993ajmp 0x1d51d0
    001d993f
    001d993floc_1d993f:
    001d993fadd rsp, 184
    001d9946pop rbx
    001d9947pop r12
    001d9949pop r13
    001d994bpop r14
    001d994dpop r15
    001d994fpop rbp
    001d9950ret
    001d9790
    001d9951
    001d9951 // align 0x10
    001d9960
    001d9960ceill:
    001d9960push rbp
    001d9961mov rbp, rsp
    001d9964pop rbp
    001d9965jmp 0x1d95e0
    001d9960
    001d996a
    001d996a // align 0x10
    001d9970
    001d9970expf:
    001d9970push rbp
    001d9971mov rbp, rsp
    001d9974ucomiss x0, x0
    001d9977jp 0x1d9a9d
    001d997dmovd edx, x0
    001d9981mov eax, edx
    001d9983shr eax, 31
    001d9986mov ecx, edx
    001d9988and ecx, 0x7fffffff
    001d998ecmp ecx, 0x42aeac50
    001d9994jb 0x1d99bb
    001d9996cmp ecx, 0x7f800000
    001d999cja 0x1d9a9d
    001d99a2test edx, edx
    001d99a4js 0x1d99ea
    001d99a6cmp ecx, 0x42b17218
    001d99acjb 0x1d99ea
    001d99aemulss x0, [rip-0x146832]
    001d99b6jmp 0x1d9a9d
    001d99bb
    001d99bbloc_1d99bb:
    001d99bbcmp ecx, 0x3eb17219
    001d99c1jb 0x1d99d4
    001d99c3cmp ecx, 0x3f851592
    001d99c9ja 0x1d99fd
    001d99cbmov edi, eax
    001d99cdxor edi, 1
    001d99d0sub edi, eax
    001d99d2jmp 0x1d9a1b
    001d99d4
    001d99d4loc_1d99d4:
    001d99d4cmp ecx, 0x39000000
    001d99dajbe 0x1d9a95
    001d99e0xor edi, edi
    001d99e2xorps x2, x2
    001d99e5movaps x1, x0
    001d99e8jmp 0x1d9a3e
    001d99ea
    001d99ealoc_1d99ea:
    001d99eatest edx, edx
    001d99ecjns 0x1d99fd
    001d99eexorps x1, x1
    001d99f1cmp ecx, 0x42cff1b4
    001d99f7ja 0x1d9aa0
    001d99fd
    001d99fdloc_1d99fd:
    001d99fdmovss x1, [rip-0x146899]
    001d9a05mulss x1, x0
    001d9a09mov eax, eax
    001d9a0blea rcx, [rip-0x14602a]
    001d9a12addss x1, [rcx+4*rax]
    001d9a17cvttss2si edi, x1
    001d9a1b
    001d9a1bloc_1d9a1b:
    001d9a1bcvtsi2ss x2, edi
    001d9a1fmovss x1, [rip-0x1468b7]
    001d9a27mulss x1, x2
    001d9a2baddss x0, x1
    001d9a2fmulss x2, [rip-0x1468c3]
    001d9a37movaps x1, x0
    001d9a3asubss x1, x2
    001d9a3e
    001d9a3eloc_1d9a3e:
    001d9a3emovaps x3, x1
    001d9a41mulss x3, x1
    001d9a45movss x4, [rip-0x1468d5]
    001d9a4dmulss x4, x3
    001d9a51addss x4, [rip-0x1468dd]
    001d9a59mulss x4, x3
    001d9a5dmovaps x3, x1
    001d9a60subss x3, x4
    001d9a64mulss x1, x3
    001d9a68movss x4, [rip-0x1468f0]
    001d9a70subss x4, x3
    001d9a74divss x1, x4
    001d9a78subss x1, x2
    001d9a7caddss x1, x0
    001d9a80addss x1, [rip-0x146920]
    001d9a88test edi, edi
    001d9a8aje 0x1d9aa0
    001d9a8cmovaps x0, x1
    001d9a8fpop rbp
    001d9a90jmp 0x1d5c00
    001d9a95
    001d9a95loc_1d9a95:
    001d9a95addss x0, [rip-0x146935]
    001d9a9d
    001d9a9dloc_1d9a9d:
    001d9a9dmovaps x1, x0
    001d9aa0
    001d9aa0loc_1d9aa0:
    001d9aa0movaps x0, x1
    001d9aa3pop rbp
    001d9aa4ret
    001d9970
    001d9aa5
    001d9aa5 // align 0x10
    001d9ab0
    001d9ab0exp:
    001d9ab0push rbp
    001d9ab1mov rbp, rsp
    001d9ab4ucomisd x0, x0
    001d9ab8jp 0x1d9c20
    001d9abemovq rax, x0
    001d9ac3mov rcx, rax
    001d9ac6shr rcx, 32
    001d9acashr rax, 63
    001d9aceand ecx, 0x7fffffff
    001d9ad4cmp ecx, 0x4086232b
    001d9adajb 0x1d9b00
    001d9adccmp ecx, 0x7ff00000
    001d9ae2ja 0x1d9c20
    001d9ae8ucomisd x0, [rip-0x146490]
    001d9af0jbe 0x1d9b46
    001d9af2movsd_xmm x1, [rip-0x1464a2]
    001d9afa
    001d9afaloc_1d9afa:
    001d9afamovapd x0, x1
    001d9afepop rbp
    001d9affret
    001d9b00
    001d9b00loc_1d9b00:
    001d9b00cmp ecx, 0x3fd62e43
    001d9b06jb 0x1d9b2e
    001d9b08cmp ecx, 0x3ff0a2b2
    001d9b0ejbe 0x1d9b68
    001d9b10
    001d9b10loc_1d9b10:
    001d9b10movsd_xmm x1, [rip-0x1464a0]
    001d9b18mulsd x1, x0
    001d9b1clea rcx, [rip-0x145973]
    001d9b23addsd x1, [rcx+8*rax]
    001d9b28cvttsd2si edi, x1
    001d9b2cjmp 0x1d9b6f
    001d9b2e
    001d9b2eloc_1d9b2e:
    001d9b2ecmp ecx, 0x3e300000
    001d9b34jbe 0x1d9c18
    001d9b3axorpd x2, x2
    001d9b3exor edi, edi
    001d9b40movapd x1, x0
    001d9b44jmp 0x1d9b96
    001d9b46
    001d9b46loc_1d9b46:
    001d9b46movsd_xmm x1, [rip-0x1464e6]
    001d9b4eucomisd x1, x0
    001d9b52jbe 0x1d9b10
    001d9b54xorpd x1, x1
    001d9b58movsd_xmm x2, [rip-0x1464f0]
    001d9b60ucomisd x2, x0
    001d9b64ja 0x1d9afa
    001d9b66jmp 0x1d9b10
    001d9b68
    001d9b68loc_1d9b68:
    001d9b68mov edi, eax
    001d9b6axor edi, 1
    001d9b6dsub edi, eax
    001d9b6f
    001d9b6floc_1d9b6f:
    001d9b6fxorps x2, x2
    001d9b72cvtsi2sd x2, edi
    001d9b76movsd_xmm x1, [rip-0x1464fe]
    001d9b7emulsd x1, x2
    001d9b82addsd x0, x1
    001d9b86mulsd x2, [rip-0x146506]
    001d9b8emovapd x1, x0
    001d9b92subsd x1, x2
    001d9b96
    001d9b96loc_1d9b96:
    001d9b96movapd x3, x1
    001d9b9amulsd x3, x1
    001d9b9emovsd_xmm x4, [rip-0x146516]
    001d9ba6mulsd x4, x3
    001d9baaaddsd x4, [rip-0x14651a]
    001d9bb2mulsd x4, x3
    001d9bb6addsd x4, [rip-0x14651e]
    001d9bbemulsd x4, x3
    001d9bc2addsd x4, [rip-0x146522]
    001d9bcamulsd x4, x3
    001d9bceaddsd x4, [rip-0x146526]
    001d9bd6mulsd x4, x3
    001d9bdamovapd x3, x1
    001d9bdesubsd x3, x4
    001d9be2mulsd x1, x3
    001d9be6movsd_xmm x4, [rip-0x146536]
    001d9beesubsd x4, x3
    001d9bf2divsd x1, x4
    001d9bf6subsd x1, x2
    001d9bfaaddsd x1, x0
    001d9bfeaddsd x1, [rip-0x1465b6]
    001d9c06test edi, edi
    001d9c08je 0x1d9afa
    001d9c0emovapd x0, x1
    001d9c12pop rbp
    001d9c13jmp 0x1d5d40
    001d9c18
    001d9c18loc_1d9c18:
    001d9c18addsd x0, [rip-0x1465d0]
    001d9c20
    001d9c20loc_1d9c20:
    001d9c20movapd x1, x0
    001d9c24movapd x0, x1
    001d9c28pop rbp
    001d9c29ret
    001d9ab0
    001d9c2a
    001d9c2a // align 0x10
    001d9c30
    001d9c30__expx:
    001d9c30push rbp
    001d9c31mov rbp, rsp
    001d9c34push r15
    001d9c36push r14
    001d9c38push rbx
    001d9c39sub rsp, 56
    001d9c3dmov r15, 0x8000000000000000
    001d9c47mov eax, [rbp+24]
    001d9c4amov rdx, [rbp+16]
    001d9c4emov edi, eax
    001d9c50mov r14, 0x7fff000000000000
    001d9c5aand di, 32767
    001d9c5fjne 0x1d9c71
    001d9c61xor esi, esi
    001d9c63mov ecx, 0
    001d9c68test rdx, rdx
    001d9c6bje 0x1d9cf5
    001d9c71
    001d9c71loc_1d9c71:
    001d9c71movzx ecx, di
    001d9c74cmp ecx, 32767
    001d9c7ajne 0x1d9c8f
    001d9c7cmov rsi, rdx
    001d9c7fshl rsi, 49
    001d9c83shr rdx, 15
    001d9c87or rdx, r14
    001d9c8amov rcx, rdx
    001d9c8djmp 0x1d9cf5
    001d9c8f
    001d9c8floc_1d9c8f:
    001d9c8ftest rdx, rdx
    001d9c92js 0x1d9ca0
    001d9c94je 0x1d9cbb
    001d9c96bsr rsi, rdx
    001d9c9axor rsi, 63
    001d9c9ejmp 0x1d9cc0
    001d9ca0
    001d9ca0loc_1d9ca0:
    001d9ca0lea rsi, [r15-1]
    001d9ca4and rdx, rsi
    001d9ca7mov rsi, rdx
    001d9caashl rsi, 49
    001d9caeshr rdx, 15
    001d9cb2shl rcx, 48
    001d9cb6or rcx, rdx
    001d9cb9jmp 0x1d9cf5
    001d9cbb
    001d9cbbloc_1d9cbb:
    001d9cbbmov esi, 64
    001d9cc0
    001d9cc0loc_1d9cc0:
    001d9cc0mov ecx, esi
    001d9cc2add cl, 50
    001d9cc5xor edi, edi
    001d9cc7shld rdi, rdx, cl
    001d9ccbshl rdx, cl
    001d9ccexor ebx, ebx
    001d9cd0test cl, 64
    001d9cd3cmovne rdi, rdx
    001d9cd7cmovne rdx, rbx
    001d9cdbmov rbx, 0x1000000000000
    001d9ce5xor rbx, rdi
    001d9ce8lea ecx, [rsi+1]
    001d9cebshl rcx, 48
    001d9cefor rcx, rbx
    001d9cf2mov rsi, rdx
    001d9cf5
    001d9cf5loc_1d9cf5:
    001d9cf5and eax, 32768
    001d9cfashl rax, 48
    001d9cfeor rax, rcx
    001d9d01mov [rbp-80], rsi
    001d9d05mov [rbp-72], rax
    001d9d09movaps x0, [rbp-80]
    001d9d0dcall expq
    001d9d12movaps [rbp-64], x0
    001d9d16mov rdi, [rbp-64]
    001d9d1amov rax, [rbp-56]
    001d9d1emov rbx, 0x7fffffffffffffff
    001d9d28mov rsi, rax
    001d9d2bshld rsi, rdi, 15
    001d9d30and rbx, rax
    001d9d33mov rcx, rsi
    001d9d36or rcx, r15
    001d9d39mov rdx, rdi
    001d9d3cneg rdx
    001d9d3fsbb r14, rbx
    001d9d42mov dx, 32767
    001d9d46jb 0x1d9dba
    001d9d48shr rbx, 48
    001d9d4cmov edx, ebx
    001d9d4emov rbx, 0x1ffffffffffff
    001d9d58and rdi, rbx
    001d9d5bmov rbx, 0x1000000000001
    001d9d65cmp rdi, rbx
    001d9d68jb 0x1d9d84
    001d9d6amov rsi, rcx
    001d9d6dadd rsi, 1
    001d9d71adc dx, 0
    001d9d75xor esi, esi
    001d9d77add rcx, 1
    001d9d7bcmove rsi, r15
    001d9d7for rcx, rsi
    001d9d82jmp 0x1d9dac
    001d9d84
    001d9d84loc_1d9d84:
    001d9d84mov rbx, 0x1000000000000
    001d9d8ecmp rdi, rbx
    001d9d91jne 0x1d9dac
    001d9d93and esi, 1
    001d9d96mov rdi, rcx
    001d9d99add rdi, rsi
    001d9d9cadc dx, 0
    001d9da0xor edi, edi
    001d9da2add rcx, rsi
    001d9da5cmovb rdi, r15
    001d9da9or rcx, rdi
    001d9dac
    001d9dacloc_1d9dac:
    001d9dacadd r15, -1
    001d9db0and r15, rcx
    001d9db3test dx, dx
    001d9db6cmove rcx, r15
    001d9dba
    001d9dbaloc_1d9dba:
    001d9dbashr rax, 48
    001d9dbeand eax, 32768
    001d9dc3or edx, eax
    001d9dc5mov [rbp-48], rcx
    001d9dc9mov [rbp-40], dx
    001d9dcdfld [rbp-48]
    001d9dd0add rsp, 56
    001d9dd4pop rbx
    001d9dd5pop r14
    001d9dd7pop r15
    001d9dd9pop rbp
    001d9ddaret
    001d9c30
    001d9ddb
    001d9ddb // align 0x10
    001d9de0
    001d9de0expq:
    001d9de0push rbp
    001d9de1mov rbp, rsp
    001d9de4push rbx
    001d9de5sub rsp, 40
    001d9de9movaps [rbp-48], x0
    001d9dedmov rdi, [rbp-48]
    001d9df1mov rdx, [rbp-40]
    001d9df5mov rcx, 0x7fffffffffffffff
    001d9dffand rcx, rdx
    001d9e02mov rax, 0xc3ff000000000000
    001d9e0cadd rax, rcx
    001d9e0fmov rsi, 0xbc01000000000000
    001d9e19add rsi, rcx
    001d9e1ccmp rax, rsi
    001d9e1fjae 0x1d9e60
    001d9e21mov rcx, 0x4000000000000000
    001d9e2bmov rax, rdx
    001d9e2eshld rax, rdi, 4
    001d9e33lea rsi, [rax+rcx]
    001d9e37mov rbx, 0xfffffffffffffff
    001d9e41and rbx, rdi
    001d9e44mov rdi, 0x800000000000000
    001d9e4ecmp rbx, rdi
    001d9e51jbe 0x1d9e99
    001d9e53lea rsi, [rcx+rax]
    001d9e57add rsi, 1
    001d9e5bjmp 0x1d9f71
    001d9e60
    001d9e60loc_1d9e60:
    001d9e60mov rax, rdi
    001d9e63neg rax
    001d9e66mov rax, 0x7fff000000000000
    001d9e70sbb rax, rcx
    001d9e73jae 0x1d9eaa
    001d9e75shrd rdi, rdx, 60
    001d9e7amov rax, 0x7ffffffffffff
    001d9e84and rax, rdi
    001d9e87mov rsi, 0x7ff8000000000000
    001d9e91or rsi, rax
    001d9e94jmp 0x1d9f71
    001d9e99
    001d9e99loc_1d9e99:
    001d9e99jne 0x1d9f71
    001d9e9f
    001d9e9floc_1d9e9f:
    001d9e9fand eax, 1
    001d9ea2add rsi, rax
    001d9ea5jmp 0x1d9f71
    001d9eaa
    001d9eaaloc_1d9eaa:
    001d9eaashr rcx, 48
    001d9eaecmp ecx, 17406
    001d9eb4jbe 0x1d9ec9
    001d9eb6mov rsi, 0x7fefffffffffffff
    001d9ec0add rsi, 1
    001d9ec4jmp 0x1d9f71
    001d9ec9
    001d9ec9loc_1d9ec9:
    001d9ec9mov eax, 15361
    001d9ecesub eax, ecx
    001d9ed0cmp eax, 112
    001d9ed3jbe 0x1d9edc
    001d9ed5xor esi, esi
    001d9ed7jmp 0x1d9f71
    001d9edc
    001d9edcloc_1d9edc:
    001d9edcmov rbx, 0xffffffffffff
    001d9ee6and rbx, rdx
    001d9ee9mov rsi, 0x1000000000000
    001d9ef3or rsi, rbx
    001d9ef6add cl, -1
    001d9ef9mov r8, rsi
    001d9efcshld r8, rdi, cl
    001d9f00mov rbx, rdi
    001d9f03shl rbx, cl
    001d9f06xor r9l, r9l
    001d9f09test cl, 64
    001d9f0ccmovne r8, rbx
    001d9f10cmovne rbx, r9
    001d9f14xor r10l, r10l
    001d9f17or rbx, r8
    001d9f1asetne r10b
    001d9f1emov ecx, eax
    001d9f20shrd rdi, rsi, cl
    001d9f24shr rsi, cl
    001d9f27test al, 64
    001d9f29cmovne rdi, rsi
    001d9f2dcmovne rsi, r9
    001d9f31shld rsi, rdi, 4
    001d9f36mov rax, 0xfffffffffffffff
    001d9f40and rax, rdi
    001d9f43or rax, r10
    001d9f46mov rcx, 0x800000000000001
    001d9f50cmp rax, rcx
    001d9f53jb 0x1d9f5b
    001d9f55add rsi, 1
    001d9f59jmp 0x1d9f71
    001d9f5b
    001d9f5bloc_1d9f5b:
    001d9f5bmov rcx, 0x800000000000000
    001d9f65cmp rax, rcx
    001d9f68jne 0x1d9f71
    001d9f6amov eax, esi
    001d9f6cjmp 0x1d9e9f
    001d9f71
    001d9f71loc_1d9f71:
    001d9f71mov rbx, 0x8000000000000000
    001d9f7band rdx, rbx
    001d9f7eor rdx, rsi
    001d9f81movq x0, rdx
    001d9f86call exp
    001d9f8bmovq rax, x0
    001d9f90lea rdx, [rbx-1]
    001d9f94and rdx, rax
    001d9f97mov rcx, 0xfff0000000000000
    001d9fa1add rcx, rdx
    001d9fa4shr rcx, 53
    001d9fa8cmp ecx, 1022
    001d9faeja 0x1d9fca
    001d9fb0mov rcx, rdx
    001d9fb3shl rcx, 60
    001d9fb7shr rdx, 4
    001d9fbbmov rsi, 0x3c00000000000000
    001d9fc5add rsi, rdx
    001d9fc8jmp 0x1da047
    001d9fca
    001d9fcaloc_1d9fca:
    001d9fcamov rcx, rdx
    001d9fcdshr rcx, 52
    001d9fd1cmp ecx, 2047
    001d9fd7jb 0x1d9ff6
    001d9fd9mov rcx, rax
    001d9fdcshl rcx, 60
    001d9fe0mov rdx, rax
    001d9fe3shr rdx, 4
    001d9fe7mov rsi, 0x7fff000000000000
    001d9ff1or rsi, rdx
    001d9ff4jmp 0x1da047
    001d9ff6
    001d9ff6loc_1d9ff6:
    001d9ff6test rdx, rdx
    001d9ff9je 0x1da043
    001d9ffbbsr rcx, rdx
    001d9fffxor rcx, 63
    001da003lea edi, [rcx+117]
    001da006add cl, 49
    001da009xor esi, esi
    001da00bshld rsi, rdx, cl
    001da00fand edi, 127
    001da012xor r8l, r8l
    001da015shl rdx, cl
    001da018test cl, 64
    001da01bcmovne rsi, rdx
    001da01fcmovne rdx, r8
    001da023mov rcx, 0x1000000000000
    001da02dxor rcx, rsi
    001da030mov esi, 15361
    001da035sub esi, edi
    001da037shl rsi, 48
    001da03bor rsi, rcx
    001da03emov rcx, rdx
    001da041jmp 0x1da047
    001da043
    001da043loc_1da043:
    001da043xor ecx, ecx
    001da045xor esi, esi
    001da047
    001da047loc_1da047:
    001da047and rax, rbx
    001da04aor rax, rsi
    001da04dmov [rbp-32], rcx
    001da051mov [rbp-24], rax
    001da055movaps x0, [rbp-32]
    001da059add rsp, 40
    001da05dpop rbx
    001da05epop rbp
    001da05fret
    001d9de0
    001da060
    001da060expl:
    001da060push rbp
    001da061mov rbp, rsp
    001da064pop rbp
    001da065jmp 0x1d9c30
    001da060
    001da06a
    001da06a // align 0x10
    001da070
    001da070exp2f:
    001da070push rbp
    001da071mov rbp, rsp
    001da074movd eax, x0
    001da078mov ecx, eax
    001da07aand ecx, 0x7fffffff
    001da080cmp ecx, 0x42fc0001
    001da086jb 0x1da0a5
    001da088cmp ecx, 0x7f800000
    001da08eja 0x1da14b
    001da094cmp eax, 0x43000000
    001da099jl 0x1da0b7
    001da09bmulss x0, [rip-0x146eff]
    001da0a3pop rbp
    001da0a4ret
    001da0a5
    001da0a5loc_1da0a5:
    001da0a5cmp ecx, 0x33000001
    001da0abjae 0x1da0bf
    001da0adaddss x0, [rip-0x146f1d]
    001da0b5pop rbp
    001da0b6ret
    001da0b7
    001da0b7loc_1da0b7:
    001da0b7test eax, eax
    001da0b9js 0x1da14d
    001da0bf
    001da0bfloc_1da0bf:
    001da0bfmovss x2, [rip-0x146f2b]
    001da0c7addss x2, x0
    001da0cbmovd eax, x2
    001da0cfadd eax, 8
    001da0d2mov ecx, eax
    001da0d4shr ecx, 4
    001da0d7add ecx, 1023
    001da0ddshl rcx, 52
    001da0e1movq x1, rcx
    001da0e6and eax, 15
    001da0e9addss x2, [rip-0x146f51]
    001da0f1subss x0, x2
    001da0f5cvtss2sd x0, x0
    001da0f9lea rcx, [rip-0x145f28]
    001da100movsd_xmm x2, [rcx+8*rax]
    001da105movaps x3, x0
    001da108mulsd x3, x0
    001da10cmovapd x4, x2
    001da110mulsd x4, x0
    001da114mulsd x3, x4
    001da118unpcklpd x0, x0
    001da11cmulpd x0, [rip-0x146394]
    001da124addpd x0, [rip-0x14638c]
    001da12cunpcklpd x4, x3
    001da130mulpd x4, x0
    001da134addsd x2, x4
    001da138unpckhpd x4, x4
    001da13caddsd x4, x2
    001da140mulsd x4, x1
    001da144xorps x0, x0
    001da147cvtsd2ss x0, x4
    001da14b
    001da14bloc_1da14b:
    001da14bpop rbp
    001da14cret
    001da14d
    001da14dloc_1da14d:
    001da14dxorps x0, x0
    001da150cmp eax, 0xffffffffc315ffff
    001da155ja 0x1da14b
    001da157movzx eax, ax
    001da15atest eax, eax
    001da15cpop rbp
    001da15dret
    001da070
    001da15e
    001da15e // align 0x10
    001da160
    001da160exp2:
    001da160push rbp
    001da161mov rbp, rsp
    001da164ucomisd x0, x0
    001da168jp 0x1da2ad
    001da16emovq rax, x0
    001da173mov rcx, rax
    001da176shr rcx, 32
    001da17aand ecx, 0x7fffffff
    001da180cmp ecx, 0x408ff000
    001da186jb 0x1da1a3
    001da188cmp ecx, 0x40900000
    001da18ejb 0x1da1bd
    001da190test rax, rax
    001da193js 0x1da1bd
    001da195movsd_xmm x1, [rip-0x146acd]
    001da19d
    001da19dloc_1da19d:
    001da19dmovapd x0, x1
    001da1a1pop rbp
    001da1a2ret
    001da1a3
    001da1a3loc_1da1a3:
    001da1a3cmp ecx, 0x3c900000
    001da1a9jae 0x1da20c
    001da1abaddsd x0, [rip-0x146aeb]
    001da1b3movapd x1, x0
    001da1b7movapd x0, x1
    001da1bbpop rbp
    001da1bcret
    001da1bd
    001da1bdloc_1da1bd:
    001da1bdcmp ecx, 0x7ff00000
    001da1c3jb 0x1da1d7
    001da1c5movsd_xmm x1, [rip-0x146aa5]
    001da1cddivsd x1, x0
    001da1d1movapd x0, x1
    001da1d5pop rbp
    001da1d6ret
    001da1d7
    001da1d7loc_1da1d7:
    001da1d7test rax, rax
    001da1dajns 0x1da20c
    001da1dcmovsd_xmm x2, [rip-0x146b0c]
    001da1e4ucomisd x2, x0
    001da1e8jae 0x1da202
    001da1eamovsd_xmm x1, [rip-0x146b12]
    001da1f2addsd x1, x0
    001da1f6addsd x1, [rip-0x146b16]
    001da1feucomisd x1, x0
    001da202
    001da202loc_1da202:
    001da202xorpd x1, x1
    001da206ucomisd x2, x0
    001da20ajae 0x1da19d
    001da20c
    001da20cloc_1da20c:
    001da20cmovsd_xmm x1, [rip-0x146b24]
    001da214addsd x1, x0
    001da218movq rax, x1
    001da21dsub eax, -128
    001da220mov ecx, eax
    001da222and ecx, -256
    001da228lea edi, [rcx+255]
    001da22etest ecx, ecx
    001da230cmovns edi, ecx
    001da233addsd x1, [rip-0x146b43]
    001da23bmovzx eax, al
    001da23esubsd x0, x1
    001da242add eax, eax
    001da244lea rcx, [rip-0x145ff3]
    001da24bmovsd_xmm x2, [rcx+8*rax]
    001da250or eax, 1
    001da253subsd x0, [rcx+8*rax]
    001da258movsd_xmm x1, [rip-0x146b60]
    001da260mulsd x1, x0
    001da264addsd x1, [rip-0x146b64]
    001da26csar edi, 8
    001da26fmulsd x1, x0
    001da273addsd x1, [rip-0x146b6b]
    001da27bmovapd x3, x2
    001da27fmulsd x1, x0
    001da283addsd x1, [rip-0x146b73]
    001da28bmulsd x3, x0
    001da28fmulsd x1, x0
    001da293addsd x1, [rip-0x146b7b]
    001da29bmulsd x1, x3
    001da29faddsd x1, x2
    001da2a3movapd x0, x1
    001da2a7pop rbp
    001da2a8jmp 0x1d5d40
    001da2ad
    001da2adloc_1da2ad:
    001da2admovsd_xmm x1, [rip-0x146bf5]
    001da2b5movaps x0, x1
    001da2b8pop rbp
    001da2b9ret
    001da160
    001da2ba
    001da2ba // align 0x10
    001da2c0
    001da2c0__exp2x:
    001da2c0push rbp
    001da2c1mov rbp, rsp
    001da2c4push r15
    001da2c6push r14
    001da2c8push rbx
    001da2c9sub rsp, 56
    001da2cdmov r15, 0x8000000000000000
    001da2d7mov eax, [rbp+24]
    001da2damov rdx, [rbp+16]
    001da2demov edi, eax
    001da2e0mov r14, 0x7fff000000000000
    001da2eaand di, 32767
    001da2efjne 0x1da301
    001da2f1xor esi, esi
    001da2f3mov ecx, 0
    001da2f8test rdx, rdx
    001da2fbje 0x1da385
    001da301
    001da301loc_1da301:
    001da301movzx ecx, di
    001da304cmp ecx, 32767
    001da30ajne 0x1da31f
    001da30cmov rsi, rdx
    001da30fshl rsi, 49
    001da313shr rdx, 15
    001da317or rdx, r14
    001da31amov rcx, rdx
    001da31djmp 0x1da385
    001da31f
    001da31floc_1da31f:
    001da31ftest rdx, rdx
    001da322js 0x1da330
    001da324je 0x1da34b
    001da326bsr rsi, rdx
    001da32axor rsi, 63
    001da32ejmp 0x1da350
    001da330
    001da330loc_1da330:
    001da330lea rsi, [r15-1]
    001da334and rdx, rsi
    001da337mov rsi, rdx
    001da33ashl rsi, 49
    001da33eshr rdx, 15
    001da342shl rcx, 48
    001da346or rcx, rdx
    001da349jmp 0x1da385
    001da34b
    001da34bloc_1da34b:
    001da34bmov esi, 64
    001da350
    001da350loc_1da350:
    001da350mov ecx, esi
    001da352add cl, 50
    001da355xor edi, edi
    001da357shld rdi, rdx, cl
    001da35bshl rdx, cl
    001da35exor ebx, ebx
    001da360test cl, 64
    001da363cmovne rdi, rdx
    001da367cmovne rdx, rbx
    001da36bmov rbx, 0x1000000000000
    001da375xor rbx, rdi
    001da378lea ecx, [rsi+1]
    001da37bshl rcx, 48
    001da37for rcx, rbx
    001da382mov rsi, rdx
    001da385
    001da385loc_1da385:
    001da385and eax, 32768
    001da38ashl rax, 48
    001da38eor rax, rcx
    001da391mov [rbp-80], rsi
    001da395mov [rbp-72], rax
    001da399movaps x0, [rbp-80]
    001da39dcall exp2q
    001da3a2movaps [rbp-64], x0
    001da3a6mov rdi, [rbp-64]
    001da3aamov rax, [rbp-56]
    001da3aemov rbx, 0x7fffffffffffffff
    001da3b8mov rsi, rax
    001da3bbshld rsi, rdi, 15
    001da3c0and rbx, rax
    001da3c3mov rcx, rsi
    001da3c6or rcx, r15
    001da3c9mov rdx, rdi
    001da3ccneg rdx
    001da3cfsbb r14, rbx
    001da3d2mov dx, 32767
    001da3d6jb 0x1da44a
    001da3d8shr rbx, 48
    001da3dcmov edx, ebx
    001da3demov rbx, 0x1ffffffffffff
    001da3e8and rdi, rbx
    001da3ebmov rbx, 0x1000000000001
    001da3f5cmp rdi, rbx
    001da3f8jb 0x1da414
    001da3famov rsi, rcx
    001da3fdadd rsi, 1
    001da401adc dx, 0
    001da405xor esi, esi
    001da407add rcx, 1
    001da40bcmove rsi, r15
    001da40for rcx, rsi
    001da412jmp 0x1da43c
    001da414
    001da414loc_1da414:
    001da414mov rbx, 0x1000000000000
    001da41ecmp rdi, rbx
    001da421jne 0x1da43c
    001da423and esi, 1
    001da426mov rdi, rcx
    001da429add rdi, rsi
    001da42cadc dx, 0
    001da430xor edi, edi
    001da432add rcx, rsi
    001da435cmovb rdi, r15
    001da439or rcx, rdi
    001da43c
    001da43cloc_1da43c:
    001da43cadd r15, -1
    001da440and r15, rcx
    001da443test dx, dx
    001da446cmove rcx, r15
    001da44a
    001da44aloc_1da44a:
    001da44ashr rax, 48
    001da44eand eax, 32768
    001da453or edx, eax
    001da455mov [rbp-48], rcx
    001da459mov [rbp-40], dx
    001da45dfld [rbp-48]
    001da460add rsp, 56
    001da464pop rbx
    001da465pop r14
    001da467pop r15
    001da469pop rbp
    001da46aret
    001da2c0
    001da46b
    001da46b // align 0x10
    001da470
    001da470exp2q:
    001da470push rbp
    001da471mov rbp, rsp
    001da474push rbx
    001da475sub rsp, 40
    001da479movaps [rbp-48], x0
    001da47dmov rdi, [rbp-48]
    001da481mov rdx, [rbp-40]
    001da485mov rcx, 0x7fffffffffffffff
    001da48fand rcx, rdx
    001da492mov rax, 0xc3ff000000000000
    001da49cadd rax, rcx
    001da49fmov rsi, 0xbc01000000000000
    001da4a9add rsi, rcx
    001da4accmp rax, rsi
    001da4afjae 0x1da4f0
    001da4b1mov rcx, 0x4000000000000000
    001da4bbmov rax, rdx
    001da4beshld rax, rdi, 4
    001da4c3lea rsi, [rax+rcx]
    001da4c7mov rbx, 0xfffffffffffffff
    001da4d1and rbx, rdi
    001da4d4mov rdi, 0x800000000000000
    001da4decmp rbx, rdi
    001da4e1jbe 0x1da529
    001da4e3lea rsi, [rcx+rax]
    001da4e7add rsi, 1
    001da4ebjmp 0x1da601
    001da4f0
    001da4f0loc_1da4f0:
    001da4f0mov rax, rdi
    001da4f3neg rax
    001da4f6mov rax, 0x7fff000000000000
    001da500sbb rax, rcx
    001da503jae 0x1da53a
    001da505shrd rdi, rdx, 60
    001da50amov rax, 0x7ffffffffffff
    001da514and rax, rdi
    001da517mov rsi, 0x7ff8000000000000
    001da521or rsi, rax
    001da524jmp 0x1da601
    001da529
    001da529loc_1da529:
    001da529jne 0x1da601
    001da52f
    001da52floc_1da52f:
    001da52fand eax, 1
    001da532add rsi, rax
    001da535jmp 0x1da601
    001da53a
    001da53aloc_1da53a:
    001da53ashr rcx, 48
    001da53ecmp ecx, 17406
    001da544jbe 0x1da559
    001da546mov rsi, 0x7fefffffffffffff
    001da550add rsi, 1
    001da554jmp 0x1da601
    001da559
    001da559loc_1da559:
    001da559mov eax, 15361
    001da55esub eax, ecx
    001da560cmp eax, 112
    001da563jbe 0x1da56c
    001da565xor esi, esi
    001da567jmp 0x1da601
    001da56c
    001da56cloc_1da56c:
    001da56cmov rbx, 0xffffffffffff
    001da576and rbx, rdx
    001da579mov rsi, 0x1000000000000
    001da583or rsi, rbx
    001da586add cl, -1
    001da589mov r8, rsi
    001da58cshld r8, rdi, cl
    001da590mov rbx, rdi
    001da593shl rbx, cl
    001da596xor r9l, r9l
    001da599test cl, 64
    001da59ccmovne r8, rbx
    001da5a0cmovne rbx, r9
    001da5a4xor r10l, r10l
    001da5a7or rbx, r8
    001da5aasetne r10b
    001da5aemov ecx, eax
    001da5b0shrd rdi, rsi, cl
    001da5b4shr rsi, cl
    001da5b7test al, 64
    001da5b9cmovne rdi, rsi
    001da5bdcmovne rsi, r9
    001da5c1shld rsi, rdi, 4
    001da5c6mov rax, 0xfffffffffffffff
    001da5d0and rax, rdi
    001da5d3or rax, r10
    001da5d6mov rcx, 0x800000000000001
    001da5e0cmp rax, rcx
    001da5e3jb 0x1da5eb
    001da5e5add rsi, 1
    001da5e9jmp 0x1da601
    001da5eb
    001da5ebloc_1da5eb:
    001da5ebmov rcx, 0x800000000000000
    001da5f5cmp rax, rcx
    001da5f8jne 0x1da601
    001da5famov eax, esi
    001da5fcjmp 0x1da52f
    001da601
    001da601loc_1da601:
    001da601mov rbx, 0x8000000000000000
    001da60band rdx, rbx
    001da60eor rdx, rsi
    001da611movq x0, rdx
    001da616call exp2
    001da61bmovq rax, x0
    001da620lea rdx, [rbx-1]
    001da624and rdx, rax
    001da627mov rcx, 0xfff0000000000000
    001da631add rcx, rdx
    001da634shr rcx, 53
    001da638cmp ecx, 1022
    001da63eja 0x1da65a
    001da640mov rcx, rdx
    001da643shl rcx, 60
    001da647shr rdx, 4
    001da64bmov rsi, 0x3c00000000000000
    001da655add rsi, rdx
    001da658jmp 0x1da6d7
    001da65a
    001da65aloc_1da65a:
    001da65amov rcx, rdx
    001da65dshr rcx, 52
    001da661cmp ecx, 2047
    001da667jb 0x1da686
    001da669mov rcx, rax
    001da66cshl rcx, 60
    001da670mov rdx, rax
    001da673shr rdx, 4
    001da677mov rsi, 0x7fff000000000000
    001da681or rsi, rdx
    001da684jmp 0x1da6d7
    001da686
    001da686loc_1da686:
    001da686test rdx, rdx
    001da689je 0x1da6d3
    001da68bbsr rcx, rdx
    001da68fxor rcx, 63
    001da693lea edi, [rcx+117]
    001da696add cl, 49
    001da699xor esi, esi
    001da69bshld rsi, rdx, cl
    001da69fand edi, 127
    001da6a2xor r8l, r8l
    001da6a5shl rdx, cl
    001da6a8test cl, 64
    001da6abcmovne rsi, rdx
    001da6afcmovne rdx, r8
    001da6b3mov rcx, 0x1000000000000
    001da6bdxor rcx, rsi
    001da6c0mov esi, 15361
    001da6c5sub esi, edi
    001da6c7shl rsi, 48
    001da6cbor rsi, rcx
    001da6cemov rcx, rdx
    001da6d1jmp 0x1da6d7
    001da6d3
    001da6d3loc_1da6d3:
    001da6d3xor ecx, ecx
    001da6d5xor esi, esi
    001da6d7
    001da6d7loc_1da6d7:
    001da6d7and rax, rbx
    001da6daor rax, rsi
    001da6ddmov [rbp-32], rcx
    001da6e1mov [rbp-24], rax
    001da6e5movaps x0, [rbp-32]
    001da6e9add rsp, 40
    001da6edpop rbx
    001da6eepop rbp
    001da6efret
    001da470