File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    001fcf80
    001fcf80caml_ba_get_1:
    001fcf80sub rsp, 24
    001fcf84mov edx, 1
    001fcf89mov [rsp+8], rsi
    001fcf8elea rsi, [rsp+8]
    001fcf93call caml_ba_get_N
    001fcf98add rsp, 24
    001fcf9cret
    001fcf9ddb 0x83
    001fcf9edb 0xc4
    001fcf9fsbb bl, al
    001fcf80
    001fcfa1
    001fcfa1 // align 0x10
    001fcfb0
    001fcfb0caml_ba_get_2:
    001fcfb0sub rsp, 40
    001fcfb4mov rax, [0x28]
    001fcfbdmov [rsp+24], rax
    001fcfc2xor eax, eax
    001fcfc4mov [rsp], rsi
    001fcfc8mov rsi, rsp
    001fcfcbmov [rsp+8], rdx
    001fcfd0mov edx, 2
    001fcfd5call caml_ba_get_N
    001fcfdamov rdx, [rsp+24]
    001fcfdfsub rdx, [0x28]
    001fcfe8jne 0x1fcff3
    001fcfeaadd rsp, 40
    001fcfeeret
    001fcfefcall fn_f4590
    001fcff4db 0x98
    001fcff5jne 0x1fcfe6
    001fcff7db 0xff
    001fcfb0
    001fcff8
    001fcff8 // align 0x10
    001fd000
    001fd000caml_ba_get_3:
    001fd000sub rsp, 40
    001fd004mov rax, [0x28]
    001fd00dmov [rsp+24], rax
    001fd012xor eax, eax
    001fd014mov [rsp], rsi
    001fd018mov rsi, rsp
    001fd01bmov [rsp+8], rdx
    001fd020mov edx, 3
    001fd025mov [rsp+16], rcx
    001fd02acall caml_ba_get_N
    001fd02fmov rdx, [rsp+24]
    001fd034sub rdx, [0x28]
    001fd03djne 0x1fd048
    001fd03fadd rsp, 40
    001fd043ret
    001fd044call fn_f4590
    001fd049db 0x43
    001fd04ajne 0x1fd03b
    001fd04cdb 0xff
    001fd000
    001fd04d
    001fd04d // align 0x10
    001fd050
    001fd050caml_ba_get_generic:
    001fd050mov rdx, [rsi-8]
    001fd054shr rdx, 10
    001fd058jmp 0x1fccc0
    001fd05ddb 0x5f
    001fd05ecld
    001fd05fdb 0xff
    001fd060db 0xff
    001fd050
    001fd061
    001fd061 // align 0x10
    001fd070
    001fd070caml_ba_uint8_get16:
    001fd070sar rsi, 1
    001fd073js 0x1fd0a0
    001fd075mov rax, [rdi+40]
    001fd079sub rax, 1
    001fd07dcmp rax, rsi
    001fd080jle 0x1fd0a0
    001fd082mov rdx, [rdi+8]
    001fd086movzx eax, [rdx+rsi+1]
    001fd08bmovzx edx, [rdx+rsi]
    001fd08fshl eax, 8
    001fd092or eax, edx
    001fd094cdqe
    001fd096lea rax, [rax+rax+1]
    001fd09bret
    001fd09cpush rax
    001fd09dcall caml_array_bound_error
    001fd0a2db 0x5a
    001fd0a3db 0x9a
    001fd0a4add [rax], al
    001fd070
    001fd0a6
    001fd0a6 // align 0x10
    001fd0b0
    001fd0b0caml_ba_uint8_get32:
    001fd0b0sar rsi, 1
    001fd0b3js 0x1fd0f1
    001fd0b5mov rax, [rdi+40]
    001fd0b9sub rax, 3
    001fd0bdcmp rax, rsi
    001fd0c0jle 0x1fd0f1
    001fd0c2mov rax, [rdi+8]
    001fd0c6movzx edi, [rax+rsi+3]
    001fd0cbmovzx edx, [rax+rsi+2]
    001fd0d0shl edi, 24
    001fd0d3shl edx, 16
    001fd0d6or edi, edx
    001fd0d8movzx edx, [rax+rsi]
    001fd0dcmovzx eax, [rax+rsi+1]
    001fd0e1or edi, edx
    001fd0e3shl eax, 8
    001fd0e6or edi, eax
    001fd0e8jmp 0x20d4a0
    001fd0edpush rax
    001fd0eecall caml_array_bound_error
    001fd0f3db 0x09
    001fd0f4db 0x9a
    001fd0f5add [rax], al
    001fd0b0
    001fd0f7
    001fd0f7 // align 0x10
    001fd100
    001fd100caml_ba_uint8_get64:
    001fd100mov rax, rsi
    001fd103sar rax, 1
    001fd106js 0x1fd17a
    001fd108mov rdx, [rdi+40]
    001fd10csub rdx, 7
    001fd110cmp rdx, rax
    001fd113jle 0x1fd17a
    001fd115mov rdx, [rdi+8]
    001fd119movzx edi, [rdx+rax+7]
    001fd11emovzx ecx, [rdx+rax+6]
    001fd123shl rdi, 56
    001fd127shl rcx, 48
    001fd12bor rdi, rcx
    001fd12emovzx ecx, [rdx+rax]
    001fd132or rdi, rcx
    001fd135movzx ecx, [rdx+rax+5]
    001fd13ashl rcx, 40
    001fd13eor rdi, rcx
    001fd141movzx ecx, [rdx+rax+4]
    001fd146shl rcx, 32
    001fd14aor rdi, rcx
    001fd14dmovzx ecx, [rdx+rax+3]
    001fd152shl rcx, 24
    001fd156or rdi, rcx
    001fd159movzx ecx, [rdx+rax+2]
    001fd15emovzx eax, [rdx+rax+1]
    001fd163shl rcx, 16
    001fd167shl rax, 8
    001fd16bor rdi, rcx
    001fd16eor rdi, rax
    001fd171jmp 0x20d9d0
    001fd176push rax
    001fd177call caml_array_bound_error
    001fd17cdb 0x80
    001fd17dcdq
    001fd17eadd [rax], al
    001fd100
    001fd180
    001fd180caml_ba_set_1:
    001fd180sub rsp, 24
    001fd184mov rcx, rdx
    001fd187mov edx, 1
    001fd18cmov [rsp+8], rsi
    001fd191lea rsi, [rsp+8]
    001fd196call fn_1fc560
    001fd19badd rsp, 24
    001fd19fret
    001fd1a0db 0x83
    001fd1a1db 0xc4
    001fd1a2sbb bl, al
    001fd180
    001fd1a4
    001fd1a4 // align 0x10
    001fd1b0
    001fd1b0caml_ba_set_2:
    001fd1b0sub rsp, 40
    001fd1b4mov rax, [0x28]
    001fd1bdmov [rsp+24], rax
    001fd1c2xor eax, eax
    001fd1c4mov [rsp], rsi
    001fd1c8mov rsi, rsp
    001fd1cbmov [rsp+8], rdx
    001fd1d0mov edx, 2
    001fd1d5call fn_1fc560
    001fd1damov rdx, [rsp+24]
    001fd1dfsub rdx, [0x28]
    001fd1e8jne 0x1fd1f3
    001fd1eaadd rsp, 40
    001fd1eeret
    001fd1efcall fn_f4590
    001fd1f4db 0x98
    001fd1f5jae 0x1fd1e6
    001fd1f7db 0xff
    001fd1b0
    001fd1f8
    001fd1f8 // align 0x10
    001fd200
    001fd200caml_ba_set_3:
    001fd200sub rsp, 40
    001fd204mov rax, rcx
    001fd207mov rcx, [0x28]
    001fd210mov [rsp+24], rcx
    001fd215mov rcx, r8
    001fd218mov [rsp], rsi
    001fd21cmov rsi, rsp
    001fd21fmov [rsp+8], rdx
    001fd224mov edx, 3
    001fd229mov [rsp+16], rax
    001fd22ecall fn_1fc560
    001fd233mov rdx, [rsp+24]
    001fd238sub rdx, [0x28]
    001fd241jne 0x1fd24c
    001fd243add rsp, 40
    001fd247ret
    001fd248call fn_f4590
    001fd24ddb 0x3f
    001fd24ejae 0x1fd23f
    001fd250db 0xff
    001fd200
    001fd251
    001fd251 // align 0x10
    001fd260
    001fd260caml_ba_set_N:
    001fd260sub edx, 1
    001fd263movsxd rdx, edx
    001fd266mov rcx, [rsi+8*rdx]
    001fd26ajmp 0x1fc560
    001fd26fdb 0xed
    001fd270db 0xf2
    001fd271db 0xff
    001fd272db 0xff
    001fd260
    001fd273
    001fd273 // align 0x10
    001fd280
    001fd280caml_ba_set_generic:
    001fd280mov rcx, rdx
    001fd283mov rdx, [rsi-8]
    001fd287shr rdx, 10
    001fd28bjmp 0x1fc560
    001fd290db 0xcc
    001fd291db 0xf2
    001fd292db 0xff
    001fd293db 0xff
    001fd280
    001fd294
    001fd294 // align 0x10
    001fd2a0
    001fd2a0caml_ba_uint8_set16:
    001fd2a0sar rsi, 1
    001fd2a3js 0x1fd2d5
    001fd2a5mov rax, [rdi+40]
    001fd2a9sub rax, 1
    001fd2adcmp rax, rsi
    001fd2b0jle 0x1fd2d5
    001fd2b2mov rax, [rdi+8]
    001fd2b6mov rcx, rdx
    001fd2b9sar rdx, 9
    001fd2bdsar rcx, 1
    001fd2c0mov [rax+rsi], cl
    001fd2c3mov rax, [rdi+8]
    001fd2c7mov [rax+rsi+1], dl
    001fd2cbmov eax, 1
    001fd2d0ret
    001fd2d1push rax
    001fd2d2call caml_array_bound_error
    001fd2d7db 0x25
    001fd2d8cwde
    001fd2d9add [rax], al
    001fd2a0
    001fd2db
    001fd2db // align 0x10
    001fd2e0
    001fd2e0caml_ba_uint8_set32:
    001fd2e0sar rsi, 1
    001fd2e3js 0x1fd32e
    001fd2e5mov rcx, [rdi+40]
    001fd2e9mov rax, rdi
    001fd2ecsub rcx, 3
    001fd2f0cmp rcx, rsi
    001fd2f3jle 0x1fd32e
    001fd2f5movsxd rdx, [rdx+8]
    001fd2f9mov rdi, [rdi+8]
    001fd2fdmov [rdi+rsi], dl
    001fd300mov rdi, [rax+8]
    001fd304mov [rdi+rsi+1], dh
    001fd308mov rdi, rdx
    001fd30bmov rcx, [rax+8]
    001fd30fsar rdx, 24
    001fd313sar rdi, 16
    001fd317mov [rcx+rsi+2], dil
    001fd31cmov rax, [rax+8]
    001fd320mov [rax+rsi+3], dl
    001fd324mov eax, 1
    001fd329ret
    001fd32apush rax
    001fd32bcall caml_array_bound_error
    001fd330db 0xcc
    001fd331xchg eax, edi
    001fd332add [rax], al
    001fd2e0
    001fd334
    001fd334 // align 0x10
    001fd340
    001fd340caml_ba_uint8_set64:
    001fd340mov rax, rsi
    001fd343sar rax, 1
    001fd346js 0x1fd3d2
    001fd34cmov rcx, [rdi+40]
    001fd350sub rcx, 7
    001fd354cmp rcx, rax
    001fd357jle 0x1fd3d2
    001fd359mov rdx, [rdx+8]
    001fd35dmov rcx, [rdi+8]
    001fd361mov [rcx+rax], dl
    001fd364mov rcx, [rdi+8]
    001fd368mov rsi, rdx
    001fd36bsar rsi, 16
    001fd36fmov [rcx+rax+1], dh
    001fd373mov rcx, [rdi+8]
    001fd377mov [rcx+rax+2], sil
    001fd37cmov rsi, rdx
    001fd37fmov rcx, [rdi+8]
    001fd383sar rsi, 24
    001fd387mov [rcx+rax+3], sil
    001fd38cmov rsi, rdx
    001fd38fmov rcx, [rdi+8]
    001fd393sar rsi, 32
    001fd397mov [rcx+rax+4], sil
    001fd39cmov rsi, rdx
    001fd39fmov rcx, [rdi+8]
    001fd3a3sar rsi, 40
    001fd3a7mov [rcx+rax+5], sil
    001fd3acmov rsi, rdx
    001fd3afmov rcx, [rdi+8]
    001fd3b3shr rdx, 56
    001fd3b7sar rsi, 48
    001fd3bbmov [rcx+rax+6], sil
    001fd3c0mov rcx, [rdi+8]
    001fd3c4mov [rcx+rax+7], dl
    001fd3c8mov eax, 1
    001fd3cdret
    001fd3cepush rax
    001fd3cfcall caml_array_bound_error
    001fd3d4db 0x28
    001fd3d5xchg eax, edi
    001fd3d6add [rax], al
    001fd340
    001fd3d8
    001fd3d8 // align 0x10
    001fd3e0
    001fd3e0caml_ba_num_dims:
    001fd3e0mov rax, [rdi+16]
    001fd3e4lea rax, [rax+rax+1]
    001fd3e9ret
    001fd3eadb 0x44
    001fd3ebadd [rcx], al
    001fd3edret
    001fd3e0
    001fd3ee
    001fd3ee // align 0x10
    001fd3f0
    001fd3f0caml_ba_dim:
    001fd3f0add rdi, 8
    001fd3f4sar rsi, 1
    001fd3f7js 0x1fd40e
    001fd3f9cmp [rdi+8], rsi
    001fd3fdjle 0x1fd40e
    001fd3ffmov rax, [rdi+8*rsi+32]
    001fd404lea rax, [rax+rax+1]
    001fd409ret
    001fd40apush rax
    001fd40blea rdi, [rip+0x31906]
    001fd412call caml_invalid_argument
    001fd417db 0xe5
    001fd418xchg eax, ebp
    001fd419add [rax], al
    001fd3f0
    001fd41b
    001fd41b // align 0x10
    001fd420
    001fd420caml_ba_dim_1:
    001fd420cmp [rdi+16], 0
    001fd425jle 0x1fd435
    001fd427mov rax, [rdi+40]
    001fd42blea rax, [rax+rax+1]
    001fd430ret
    001fd431push rax
    001fd432lea rdi, [rip+0x318df]
    001fd439call caml_invalid_argument
    001fd43edb 0xbe
    001fd43fxchg eax, ebp
    001fd440add [rax], al
    001fd420
    001fd442
    001fd442 // align 0x10
    001fd450
    001fd450caml_ba_dim_2:
    001fd450cmp [rdi+16], 1
    001fd455jle 0x1fd465
    001fd457mov rax, [rdi+48]
    001fd45blea rax, [rax+rax+1]
    001fd460ret
    001fd461push rax
    001fd462lea rdi, [rip+0x318af]
    001fd469call caml_invalid_argument
    001fd46edb 0x8e
    001fd46fxchg eax, ebp
    001fd470add [rax], al
    001fd450
    001fd472
    001fd472 // align 0x10
    001fd480
    001fd480caml_ba_dim_3:
    001fd480cmp [rdi+16], 2
    001fd485jle 0x1fd495
    001fd487mov rax, [rdi+56]
    001fd48blea rax, [rax+rax+1]
    001fd490ret
    001fd491push rax
    001fd492lea rdi, [rip+0x3187f]
    001fd499call caml_invalid_argument
    001fd49edb 0x5e
    001fd49fxchg eax, ebp
    001fd4a0add [rax], al
    001fd480
    001fd4a2
    001fd4a2 // align 0x10
    001fd4b0
    001fd4b0caml_ba_kind:
    001fd4b0mov rax, [rdi+24]
    001fd4b4add rax, rax
    001fd4b7and eax, 510
    001fd4bcadd rax, 1
    001fd4c0ret
    001fd4c1db 0x83
    001fd4c2rol [rcx], -61
    001fd4b0
    001fd4c5
    001fd4c5 // align 0x10
    001fd4d0
    001fd4d0caml_ba_layout:
    001fd4d0mov rax, [rdi+24]
    001fd4d4sar eax, 8
    001fd4d7and eax, 1
    001fd4dalea rax, [rax+rax+1]
    001fd4dfret
    001fd4e0db 0x44
    001fd4e1add [rcx], al
    001fd4e3ret
    001fd4d0
    001fd4e4
    001fd4e4 // align 0x20
    001fd500
    001fd500caml_ba_slice:
    001fd500push r15
    001fd502push r14
    001fd504push r13
    001fd506push r12
    001fd508push rbp
    001fd509push rbx
    001fd50asub rsp, 328
    001fd511movdqa x0, [rip+0x2cbb3]
    001fd519mov [rsp+24], rdi
    001fd51emov [rsp+16], rsi
    001fd523mov rax, [0x28]
    001fd52cmov [rsp+312], rax
    001fd534mov rax, [rip+0x78aa9]
    001fd53bmov r13, [rax]
    001fd53flea rax, [rsp+24]
    001fd544movups [rsp+56], x0
    001fd549mov [rsp+40], 1
    001fd552movq x0, rax
    001fd557lea rax, [rsp+16]
    001fd55cmovq x1, rax
    001fd561lea rax, [rsp+48]
    001fd566mov rbx, [r13+160]
    001fd56dmov [rsp+112], rax
    001fd572lea rax, [rsp+112]
    001fd577punpcklqdq x0, x1
    001fd57bmov [r13+160], rax
    001fd582mov eax, 1
    001fd587movups [rsp+72], x0
    001fd58cmovq x0, rax
    001fd591lea rax, [rsp+40]
    001fd596punpcklqdq x0, x0
    001fd59amov [rsp+48], rbx
    001fd59fmov [rsp+136], rax
    001fd5a7movups [rsp+120], x0
    001fd5acmov r12, [rsi-8]
    001fd5b0mov r15, [rsp+24]
    001fd5b5shr r12, 10
    001fd5b9mov rbp, [r15+16]
    001fd5bdlea rcx, [r15+8]
    001fd5c1movsxd r8, r12l
    001fd5c4cmp r8, rbp
    001fd5c7jg 0x1fd7c5
    001fd5cdmov r14, [rcx+16]
    001fd5d1mov rax, rsi
    001fd5d4test r14l, 256
    001fd5dbje 0x1fd698
    001fd5e1mov rdi, rbp
    001fd5e4sub rdi, r8
    001fd5e7test r12l, r12l
    001fd5eajle 0x1fd7b8
    001fd5f0lea edx, [r12-1]
    001fd5f5lea r8, [8*rdi]
    001fd5fdlea r9, [rsi+8*rdx+8]
    001fd602sub r8, rax
    001fd605lea rsi, [rsp+176]
    001fd60dadd r8, rsi
    001fd610nop [rax+rax]
    001fd61bnop
    001fd61cmov rdx, [rax]
    001fd61fsar rdx, 1
    001fd622mov [r8+rax], rdx
    001fd626add rax, 8
    001fd62acmp rax, r9
    001fd62djne 0x1fd620
    001fd62fmov rax, rsi
    001fd632lea rdx, [rsi+8*rdi]
    001fd636test rdi, rdi
    001fd639jle 0x1fd678
    001fd63bmov rdi, rdx
    001fd63esub rdi, rsi
    001fd641and edi, 8
    001fd644je 0x1fd660
    001fd646lea rax, [rsi+8]
    001fd64amov [rsi], 1
    001fd651cmp rax, rdx
    001fd654je 0x1fd678
    001fd656nop [rax+rax]
    001fd65cmov [rax], 1
    001fd663add rax, 16
    001fd667mov [rax-8], 1
    001fd66fcmp rax, rdx
    001fd672jne 0x1fd660
    001fd674mov rdi, rcx
    001fd677mov [rsp], rcx
    001fd67bcall fn_1fbf00
    001fd680mov rcx, [rsp]
    001fd684add rcx, 32
    001fd688jmp 0x1fd716
    001fd68ddb 0x85
    001fd68eadd [rax], al
    001fd690db 0x00
    001fd691
    001fd691 0f 1f 80 00 00 00 00 .......
    001fd698
    001fd698loc_1fd698:
    001fd698test r12l, r12l
    001fd69bjle 0x1fd7a0
    001fd6a1lea edx, [r12-1]
    001fd6a6mov rdi, r8
    001fd6a9lea r9, [rsi+8*rdx+8]
    001fd6aelea rsi, [rsp+176]
    001fd6b6mov r10, rsi
    001fd6b9sub r10, rax
    001fd6bcnop [rax]
    001fd6c0
    001fd6c0loc_1fd6c0:
    001fd6c0mov rdx, [rax]
    001fd6c3sar rdx, 1
    001fd6c6mov [r10+rax], rdx
    001fd6caadd rax, 8
    001fd6cecmp r9, rax
    001fd6d1jne 0x1fd6c0
    001fd6d3mov eax, r12l
    001fd6d6
    001fd6d6loc_1fd6d6:
    001fd6d6movsxd rdx, eax
    001fd6d9cmp rbp, rdi
    001fd6dcjle 0x1fd6f7
    001fd6denop
    001fd6e0
    001fd6e0loc_1fd6e0:
    001fd6e0mov [rsp+8*rdx+176], 0
    001fd6ecadd eax, 1
    001fd6efmovsxd rdx, eax
    001fd6f2cmp rbp, rdx
    001fd6f5jg 0x1fd6e0
    001fd6f7
    001fd6f7loc_1fd6f7:
    001fd6f7mov rdi, rcx
    001fd6famov [rsp+8], r8
    001fd6ffmov [rsp], rcx
    001fd703call fn_1fbf00
    001fd708mov rcx, [rsp]
    001fd70cmov r8, [rsp+8]
    001fd711lea rcx, [rcx+8*r8+32]
    001fd716
    001fd716loc_1fd716:
    001fd716movzx esi, r14b
    001fd71alea rdx, [rip+0x17ab7f]
    001fd721mov edi, r14l
    001fd724movsxd rdx, [rdx+4*rsi]
    001fd728mov esi, ebp
    001fd72aor edi, 2048
    001fd730sub esi, r12l
    001fd733imul rdx, rax
    001fd737add rdx, [r15+8]
    001fd73bcall caml_ba_alloc
    001fd740mov rdx, [rsp+24]
    001fd745mov [rsp+40], rax
    001fd74amov rdx, [rdx]
    001fd74dmov [rax], rdx
    001fd750mov rax, [rsp+40]
    001fd755lea rsi, [rax+8]
    001fd759mov rax, [rsp+24]
    001fd75elea rdi, [rax+8]
    001fd762call fn_1fc480
    001fd767mov [r13+160], rbx
    001fd76emov rax, [rsp+40]
    001fd773mov rdx, [rsp+312]
    001fd77bsub rdx, [0x28]
    001fd784jne 0x1fd7d1
    001fd786add rsp, 328
    001fd78dpop rbx
    001fd78epop rbp
    001fd78fpop r12
    001fd791pop r13
    001fd793pop r14
    001fd795pop r15
    001fd797ret
    001fd798
    001fd798 0f 1f 84 00 00 00 00 00 ........
    001fd7a0
    001fd7a0loc_1fd7a0:
    001fd7a0xor edi, edi
    001fd7a2xor eax, eax
    001fd7a4lea rsi, [rsp+176]
    001fd7acjmp 0x1fd6d6
    001fd7b1
    001fd7b1 0f 1f 80 00 00 00 00 .......
    001fd7b8
    001fd7b8loc_1fd7b8:
    001fd7b8lea rsi, [rsp+176]
    001fd7c0jmp 0x1fd633
    001fd7c5
    001fd7c5loc_1fd7c5:
    001fd7c5lea rdi, [rip+0x32364]
    001fd7cccall caml_invalid_argument
    001fd7d1
    001fd7d1loc_1fd7d1:
    001fd7d1call fn_f4590
    001fd500
    001fd7d6
    001fd7d6 // align 0x10
    001fd7e0
    001fd7e0caml_ba_change_layout:
    001fd7e0push rbp
    001fd7e1lea r9, [rdi+8]
    001fd7e5mov rdx, rsi
    001fd7e8push rbx
    001fd7e9sar rdx, 1
    001fd7ecshl edx, 8
    001fd7efsub rsp, 312
    001fd7f6movdqa x0, [rip+0x2c8ce]
    001fd7femov [rsp+8], rdi
    001fd803movq x1, rsp
    001fd808mov [rsp], rsi
    001fd80cmovsxd rsi, edx
    001fd80fmov rax, [0x28]
    001fd818mov [rsp+296], rax
    001fd820mov rax, [rip+0x787bd]
    001fd827mov rbx, [rax]
    001fd82blea rax, [rsp+8]
    001fd830movups [rsp+40], x0
    001fd835mov [rsp+24], 1
    001fd83emovq x0, rax
    001fd843lea rax, [rsp+32]
    001fd848mov [rsp+96], rax
    001fd84dlea rax, [rsp+96]
    001fd852mov rbp, [rbx+160]
    001fd859punpcklqdq x0, x1
    001fd85dmov [rbx+160], rax
    001fd864mov eax, 1
    001fd869movups [rsp+56], x0
    001fd86emovq x0, rax
    001fd873lea rax, [rsp+24]
    001fd878punpcklqdq x0, x0
    001fd87cmov [rsp+120], rax
    001fd881mov rax, rdi
    001fd884movups [rsp+104], x0
    001fd889mov rdi, [r9+16]
    001fd88dmov [rsp+32], rbp
    001fd892mov rcx, rdi
    001fd895and ecx, 256
    001fd89bcmp rsi, rcx
    001fd89eje 0x1fd958
    001fd8a4mov rsi, [r9+8]
    001fd8a8and edi, 1791
    001fd8aeor edi, edx
    001fd8b0test rsi, rsi
    001fd8b3jle 0x1fd968
    001fd8b9lea r10, [rsp+160]
    001fd8c1lea rdx, [r9+8*rsi+24]
    001fd8c6add rax, 32
    001fd8camov rcx, r10
    001fd8cdnop [rax+rax]
    001fd8d8nop [rax]
    001fd8dcmov r8, [rdx]
    001fd8dfsub rdx, 8
    001fd8e3add rcx, 8
    001fd8e7mov [rcx-8], r8
    001fd8ebcmp rdx, rax
    001fd8eejne 0x1fd8e0
    001fd8f0mov rdx, [r9]
    001fd8f3or edi, 2048
    001fd8f9mov rcx, r10
    001fd8fccall caml_ba_alloc
    001fd901mov rdx, [rsp+8]
    001fd906mov [rsp+24], rax
    001fd90bmov rdx, [rdx]
    001fd90emov [rax], rdx
    001fd911mov rax, [rsp+24]
    001fd916lea rsi, [rax+8]
    001fd91amov rax, [rsp+8]
    001fd91flea rdi, [rax+8]
    001fd923call fn_1fc480
    001fd928mov [rbx+160], rbp
    001fd92fmov rax, [rsp+24]
    001fd934mov rdx, [rsp+296]
    001fd93csub rdx, [0x28]
    001fd945jne 0x1fd972
    001fd947add rsp, 312
    001fd94epop rbx
    001fd94fpop rbp
    001fd950ret
    001fd951db 0x00
    001fd952pop rbx
    001fd953pop rbp
    001fd954ret
    001fd955
    001fd955 0f 1f 00 ...
    001fd958
    001fd958loc_1fd958:
    001fd958mov [rbx+160], rbp
    001fd95fjmp 0x1fd938
    001fd961
    001fd961 0f 1f 80 00 00 00 00 .......
    001fd968
    001fd968loc_1fd968:
    001fd968lea r10, [rsp+160]
    001fd970jmp 0x1fd8f4
    001fd972
    001fd972loc_1fd972:
    001fd972call fn_f4590
    001fd7e0
    001fd977
    001fd977 // align 0x10
    001fd980
    001fd980caml_ba_sub:
    001fd980push r13
    001fd982lea rcx, [rdi+8]
    001fd986mov r11, rdi
    001fd989mov r10, rsi
    001fd98cpush r12
    001fd98esar r10, 1
    001fd991push rbp
    001fd992push rbx
    001fd993mov rbx, rdx
    001fd996sar rbx, 1
    001fd999sub rsp, 200
    001fd9a0movdqa x0, [rip+0x2c734]
    001fd9a8mov [rsp+24], rdi
    001fd9admov [rsp+16], rsi
    001fd9b2mov [rsp+8], rdx
    001fd9b7mov rax, [0x28]
    001fd9c0mov [rsp+184], rax
    001fd9c8mov rax, [rip+0x78615]
    001fd9cfmov rbp, [rax]
    001fd9d3lea rax, [rsp+24]
    001fd9d8movups [rsp+56], x0
    001fd9ddmov [rsp+40], 1
    001fd9e6movq x0, rax
    001fd9eblea rax, [rsp+16]
    001fd9f0movq x1, rax
    001fd9f5lea rax, [rsp+8]
    001fd9famov r12, [rbp+160]
    001fda01mov [rsp+88], rax
    001fda06lea rax, [rsp+48]
    001fda0bpunpcklqdq x0, x1
    001fda0fmov [rsp+112], rax
    001fda14lea rax, [rsp+112]
    001fda19mov [rbp+160], rax
    001fda20mov eax, 1
    001fda25movups [rsp+72], x0
    001fda2amovq x0, rax
    001fda2flea rax, [rsp+40]
    001fda34punpcklqdq x0, x0
    001fda38mov [rsp+136], rax
    001fda40movups [rsp+120], x0
    001fda45mov rdi, [rcx+16]
    001fda49mov rsi, [rcx+8]
    001fda4dmov [rsp+48], r12
    001fda52test edi, 256
    001fda58je 0x1fdb40
    001fda5elea rdx, [rsi-1]
    001fda62xor r9l, r9l
    001fda65mov eax, 1
    001fda6axor r8l, r8l
    001fda6dtest rdx, rdx
    001fda70jle 0x1fda92
    001fda72nop [rax+rax]
    001fda7cadd r9l, 1
    001fda80
    001fda80loc_1fda80:
    001fda80imul rax, [rcx+8*r8+32]
    001fda86movsxd r8, r9l
    001fda89cmp r8, rdx
    001fda8cjl 0x1fda80
    001fda8elea edx, [rsi-1]
    001fda91sub r10, 1
    001fda95mov r9, r10
    001fda98or r9, rbx
    001fda9bjs 0x1fdb8c
    001fdaa1movsxd rdx, edx
    001fdaa4lea r8, [r10+rbx]
    001fdaa8lea r13, [rdx+4]
    001fdaaccmp r8, [rcx+8*rdx+32]
    001fdab1jg 0x1fdb8c
    001fdab7movzx r8l, dil
    001fdabbimul r10, rax
    001fdabfadd rcx, 32
    001fdac3or edi, 2048
    001fdac9lea rdx, [rip+0x17a7cc]
    001fdad0movsxd rdx, [rdx+4*r8]
    001fdad4imul rdx, r10
    001fdad8add rdx, [r11+8]
    001fdadccall caml_ba_alloc
    001fdae1mov rdx, [rsp+24]
    001fdae6mov [rsp+40], rax
    001fdaebmov rdx, [rdx]
    001fdaeemov [rax], rdx
    001fdaf1mov rax, [rsp+40]
    001fdaf6lea rsi, [rax+8]
    001fdafamov rax, [rsp+24]
    001fdaffmov [rsi+8*r13], rbx
    001fdb03lea rdi, [rax+8]
    001fdb07call fn_1fc480
    001fdb0cmov [rbp+160], r12
    001fdb13mov rax, [rsp+40]
    001fdb18mov rdx, [rsp+184]
    001fdb20sub rdx, [0x28]
    001fdb29jne 0x1fdb98
    001fdb2badd rsp, 200
    001fdb32pop rbx
    001fdb33pop rbp
    001fdb34pop r12
    001fdb36pop r13
    001fdb38ret
    001fdb39db 0x5c
    001fdb3apop r13
    001fdb3cret
    001fdb3d
    001fdb3d 0f 1f 00 ...
    001fdb40
    001fdb40loc_1fdb40:
    001fdb40cmp rsi, 1
    001fdb44jle 0x1fdb80
    001fdb46mov r9l, 1
    001fdb4cmov eax, 1
    001fdb51mov r8l, 1
    001fdb57nop [rax+rax]
    001fdb60
    001fdb60loc_1fdb60:
    001fdb60add r9l, 1
    001fdb64imul rax, [rcx+8*r8+32]
    001fdb6amovsxd r8, r9l
    001fdb6dcmp r8, rsi
    001fdb70jl 0x1fdb60
    001fdb72xor edx, edx
    001fdb74jmp 0x1fda99
    001fdb79
    001fdb79 0f 1f 80 00 00 00 00 .......
    001fdb80
    001fdb80loc_1fdb80:
    001fdb80mov eax, 1
    001fdb85xor edx, edx
    001fdb87jmp 0x1fda99
    001fdb8c
    001fdb8cloc_1fdb8c:
    001fdb8clea rdi, [rip+0x31196]
    001fdb93call caml_invalid_argument
    001fdb98
    001fdb98loc_1fdb98:
    001fdb98call fn_f4590
    001fd980
    001fdb9d
    001fdb9d // align 0x10
    001fdba0
    001fdba0caml_ba_blit:
    001fdba0push r14
    001fdba2mov rdx, rdi
    001fdba5lea rcx, [rdi+8]
    001fdba9push r13
    001fdbabpush r12
    001fdbadpush rbp
    001fdbaepush rbx
    001fdbafsub rsp, 96
    001fdbb3movdqa x0, [rip+0x2c511]
    001fdbbbmov [rsp+8], rdi
    001fdbc0movq x1, rsp
    001fdbc5lea rdi, [rsi+8]
    001fdbc9mov [rsp], rsi
    001fdbcdmov rax, [0x28]
    001fdbd6mov [rsp+88], rax
    001fdbdbmov rax, [rip+0x78402]
    001fdbe2mov rbp, [rax]
    001fdbe6lea rax, [rsp+16]
    001fdbebmovups [rsp+24], x0
    001fdbf0mov r12, [rbp+160]
    001fdbf7mov [rbp+160], rax
    001fdbfelea rax, [rsp+8]
    001fdc03movq x0, rax
    001fdc08mov rax, rsi
    001fdc0bpunpcklqdq x0, x1
    001fdc0fmov [rsp+16], r12
    001fdc14movups [rsp+40], x0
    001fdc19mov r13, [rsi+8]
    001fdc1dmov r14, [rdx+8]
    001fdc21mov rsi, [rcx+8]
    001fdc25cmp rsi, [rax+16]
    001fdc29jne 0x1fdd21
    001fdc2ftest rsi, rsi
    001fdc32jle 0x1fdd16
    001fdc38xor edx, edx
    001fdc3axor eax, eax
    001fdc3cmov rbx, [rdi+8*rax+32]
    001fdc41cmp [rcx+8*rax+32], rbx
    001fdc46jne 0x1fdd21
    001fdc4cadd edx, 1
    001fdc4fmovsxd rax, edx
    001fdc52cmp rsi, rax
    001fdc55jg 0x1fdc40
    001fdc57mov r8l, 1
    001fdc5dxor edx, edx
    001fdc5fxor eax, eax
    001fdc61nop [rax+rax]
    001fdc6cnop [rax+rax]
    001fdc77nop [rax+rax]
    001fdc7cadd edx, 1
    001fdc7fimul r8, [rcx+8*rax+32]
    001fdc85movsxd rax, edx
    001fdc88cmp rsi, rax
    001fdc8bjg 0x1fdc80
    001fdc8dmov rax, [rcx+16]
    001fdc91
    001fdc91loc_1fdc91:
    001fdc91lea rdx, [rip+0x17a604]
    001fdc98movzx ecx, al
    001fdc9bmovsxd rbx, [rdx+4*rcx]
    001fdc9fimul rbx, r8
    001fdca3cmp rbx, 32767
    001fdcaaja 0x1fdcb5
    001fdcactest ah, 4
    001fdcafje 0x1fdd00
    001fdcb1call caml_enter_blocking_section
    001fdcb6mov rdx, rbx
    001fdcb9mov rsi, r14
    001fdcbcmov rdi, r13
    001fdcbfcall fn_f4520
    001fdcc4call caml_leave_blocking_section
    001fdcc9mov [rbp+160], r12
    001fdcd0mov rax, [rsp+88]
    001fdcd5sub rax, [0x28]
    001fdcdejne 0x1fdd2d
    001fdce0add rsp, 96
    001fdce4mov eax, 1
    001fdce9pop rbx
    001fdceapop rbp
    001fdcebpop r12
    001fdcedpop r13
    001fdcefpop r14
    001fdcf1ret
    001fdcf2db 0x5d
    001fdcf3pop r14
    001fdcf5ret
    001fdcf6
    001fdcf6 66 2e 0f 1f 84 00 00 00 00 00 f.........
    001fdd00
    001fdd00loc_1fdd00:
    001fdd00test [rdi+17], 4
    001fdd04jne 0x1fdcb5
    001fdd06mov rdx, rbx
    001fdd09mov rsi, r14
    001fdd0cmov rdi, r13
    001fdd0fcall fn_f4520
    001fdd14jmp 0x1fdccd
    001fdd16
    001fdd16loc_1fdd16:
    001fdd16mov r8l, 1
    001fdd1cjmp 0x1fdc91
    001fdd21
    001fdd21loc_1fdd21:
    001fdd21lea rdi, [rip+0x31e30]
    001fdd28call caml_invalid_argument
    001fdd2d
    001fdd2dloc_1fdd2d:
    001fdd2dcall fn_f4590
    001fdba0
    001fdd32
    001fdd32 // align 0x10
    001fdd40
    001fdd40caml_ba_fill:
    001fdd40push r15
    001fdd42push r14
    001fdd44push r13
    001fdd46push r12
    001fdd48push rbp
    001fdd49push rbx
    001fdd4asub rsp, 120
    001fdd4emov rax, [rip+0x7828f]
    001fdd55mov [rsp+24], rdi
    001fdd5amov rdi, [0x28]
    001fdd63mov [rsp+104], rdi
    001fdd68mov rdi, rsi
    001fdd6bmov r13, [rax]
    001fdd6flea rax, [rsp+32]
    001fdd74mov r14, [r13+160]
    001fdd7bmov [r13+160], rax
    001fdd82mov eax, 1
    001fdd87movq x0, rax
    001fdd8clea rax, [rsp+24]
    001fdd91mov [rsp+56], rax
    001fdd96mov rax, [rsp+24]
    001fdd9bpunpcklqdq x0, x0
    001fdd9fmovups [rsp+40], x0
    001fdda4mov rsi, [rax+16]
    001fdda8mov [rsp+32], r14
    001fddadlea rcx, [rax+8]
    001fddb1mov rbp, [rax+8]
    001fddb5test rsi, rsi
    001fddb8jle 0x1fe360
    001fddbemov ebx, 1
    001fddc3xor edx, edx
    001fddc5xor eax, eax
    001fddc7nop [rax+rax]
    001fddd2nop [rax+rax]
    001fdddcadd edx, 1
    001fdddfimul rbx, [rcx+8*rax+32]
    001fdde5movsxd rax, edx
    001fdde8cmp rax, rsi
    001fddebjl 0x1fdde0
    001fddedmov rax, [rcx+16]
    001fddf1mov r12, rbx
    001fddf4movzx edx, al
    001fddf7cmp al, 13
    001fddf9ja 0xf488e
    001fddfflea rcx, [rip+0x33a2a]
    001fde06movsxd rdx, [rcx+4*rdx]
    001fde0aadd rdx, rcx
    001fde0djmp rdx
    001fde10nop [rax]
    001fde14sar rdi, 1
    001fde17mov r15, rdi
    001fde1acmp rbx, 4095
    001fde21jg 0x1fe456
    001fde27test ah, 4
    001fde2aje 0x1fe61a
    001fde30call caml_enter_blocking_section
    001fde35test rbx, rbx
    001fde38jle 0x1fdfa8
    001fde3emovzx esi, r15b
    001fde42
    001fde42loc_1fde42:
    001fde42mov rdx, r12
    001fde45mov rdi, rbp
    001fde48call fn_f40e0
    001fde4djmp 0x1fdfa8
    001fde52nop [rax+rax]
    001fde5csar rdi, 1
    001fde5fmov r15, rdi
    001fde62cmp rbx, 4095
    001fde69jg 0x1fe5ec
    001fde6ftest ah, 4
    001fde72je 0x1fe427
    001fde78call caml_enter_blocking_section
    001fde7dtest rbx, rbx
    001fde80jle 0x1fdfa8
    001fde86mov ecx, 1
    001fde8blea rdx, [rbp+2*r12]
    001fde90and r12l, 1
    001fde94mov eax, r15l
    001fde97je 0x1fdec0
    001fde99mov [rbp], r15w
    001fde9eadd rbp, 2
    001fdea2cmp rbp, rdx
    001fdea5je 0x1fded1
    001fdea7nop [rax+rax]
    001fdeb2nop [rax+rax]
    001fdebcmov [rbp], ax
    001fdec0
    001fdec0loc_1fdec0:
    001fdec0add rbp, 4
    001fdec4mov [rbp-2], ax
    001fdec8cmp rbp, rdx
    001fdecbjne 0x1fdec0
    001fdecdtest ecx, ecx
    001fdecfje 0x1fe1b0
    001fded5jmp 0x1fdfa8
    001fdedamov r12l, 1
    001fdee0pxor x1, x1
    001fdee4cvtsd2ss x1, [rdi]
    001fdee8movd edx, x1
    001fdeecmov ebx, edx
    001fdeeeand ebx, 0x7fffffff
    001fdef4cmp ebx, 0x477fffff
    001fdefaja 0x1fe380
    001fdf00cmp ebx, 0x387fffff
    001fdf06ja 0x1fe637
    001fdf0cmovd x2, ebx
    001fdf10addss x2, [rip+0x2c0f0]
    001fdf18movd ebx, x2
    001fdf1cshr edx, 16
    001fdf1fand edx, 32768
    001fdf25or ebx, edx
    001fdf27cmp r12, 4095
    001fdf2ejg 0x1fe5e2
    001fdf34test ah, 4
    001fdf37je 0x1fe60a
    001fdf3dcall caml_enter_blocking_section
    001fdf42test r12, r12
    001fdf45jle 0x1fdfa8
    001fdf47mov edx, 1
    001fdf4clea rax, [rbp+2*r12]
    001fdf51and r12l, 1
    001fdf55je 0x1fdf80
    001fdf57mov [rbp], bx
    001fdf5badd rbp, 2
    001fdf5fcmp rax, rbp
    001fdf62je 0x1fdfa0
    001fdf64nop [rax+rax]
    001fdf6fnop [rax+rax]
    001fdf7anop
    001fdf7cmov [rbp], bx
    001fdf80
    001fdf80loc_1fdf80:
    001fdf80add rbp, 4
    001fdf84mov [rbp-2], bx
    001fdf88cmp rax, rbp
    001fdf8bjne 0x1fdf80
    001fdf8dnop [rax+rax]
    001fdf98nop [rax]
    001fdf9ctest edx, edx
    001fdf9eje 0x1fe1b0
    001fdfa4call caml_leave_blocking_section
    001fdfa9jmp 0x1fe1b0
    001fdfaemov r15, [rdi+8]
    001fdfb2cmp rbx, 4095
    001fdfb9jg 0x1fe5f6
    001fdfbftest ah, 4
    001fdfc2jne 0x1fe3df
    001fdfc8test rbx, rbx
    001fdfcbjle 0x1fe1b0
    001fdfd1xor edx, edx
    001fdfd3xor eax, eax
    001fdfd5test r12b, 1
    001fdfd9je 0x1fe000
    001fdfdbmov [rbp], r15
    001fdfdfmov eax, 1
    001fdfe4cmp r12, 1
    001fdfe8je 0x1fdfa0
    001fdfeanop [rax+rax]
    001fdff5nop [rax]
    001fdffcmov [rbp+8*rax], r15
    001fe001mov [rbp+8*rax+8], r15
    001fe006add rax, 2
    001fe00acmp r12, rax
    001fe00djne 0x1fe000
    001fe00fjmp 0x1fdfa0
    001fe011sar rdi, 1
    001fe014mov r15, rdi
    001fe017cmp rbx, 4095
    001fe01ejg 0x1fe5d8
    001fe024test ah, 4
    001fe027je 0x1fe3bf
    001fe02dcall caml_enter_blocking_section
    001fe032test rbx, rbx
    001fe035jle 0x1fdfa8
    001fe03bmov edx, 1
    001fe040xor eax, eax
    001fe042test r12b, 1
    001fe046je 0x1fe060
    001fe048mov eax, 1
    001fe04dmov [rbp], r15
    001fe051cmp rax, r12
    001fe054je 0x1fdfa0
    001fe05anop
    001fe05cmov [rbp+8*rax], r15
    001fe061mov [rbp+8*rax+8], r15
    001fe066add rax, 2
    001fe06acmp rax, r12
    001fe06djne 0x1fe060
    001fe06fjmp 0x1fdfa0
    001fe074mov r15, [rdi+8]
    001fe078cmp rbx, 4095
    001fe07fjg 0x1fe5a6
    001fe085test ah, 4
    001fe088jne 0x1fe3a7
    001fe08etest rbx, rbx
    001fe091jle 0x1fe1b0
    001fe097xor edx, edx
    001fe099xor eax, eax
    001fe09btest r12b, 1
    001fe09fje 0x1fe0c0
    001fe0a1mov [rbp], r15
    001fe0a5mov eax, 1
    001fe0aacmp r12, 1
    001fe0aeje 0x1fdfa0
    001fe0b4nop [rax+rax]
    001fe0bcmov [rbp+8*rax], r15
    001fe0c1mov [rbp+8*rax+8], r15
    001fe0c6add rax, 2
    001fe0cacmp r12, rax
    001fe0cdjne 0x1fe0c0
    001fe0cfjmp 0x1fdfa0
    001fe0d4movupd x0, [rdi]
    001fe0d8lea rdx, [rbx+rbx]
    001fe0dccvtpd2ps x0, x0
    001fe0e0cmp rdx, 4095
    001fe0e7jg 0x1fe0f6
    001fe0e9test ah, 4
    001fe0ecje 0x1fe3f7
    001fe0f2movlps [rsp], x0
    001fe0f6
    001fe0f6loc_1fe0f6:
    001fe0f6call caml_enter_blocking_section
    001fe0fbtest rbx, rbx
    001fe0femovq x0, [rsp]
    001fe103mov edx, 1
    001fe108jle 0x1fdfa8
    001fe10exor eax, eax
    001fe110test r12b, 1
    001fe114je 0x1fe140
    001fe116mov eax, 1
    001fe11bmovlps [rbp], x0
    001fe11fcmp rax, r12
    001fe122je 0x1fdfa0
    001fe128nop [rax+rax]
    001fe133nop [rax+rax]
    001fe13cmovlps [rbp+8*rax], x0
    001fe141movlps [rbp+8*rax+8], x0
    001fe146add rax, 2
    001fe14acmp rax, r12
    001fe14djne 0x1fe140
    001fe14fjmp 0x1fdfa0
    001fe154lea rdx, [rbx+rbx]
    001fe158movupd x0, [rdi]
    001fe15ccmp rdx, 4095
    001fe163jg 0x1fe172
    001fe165test ah, 4
    001fe168je 0x1fe407
    001fe16emovaps [rsp], x0
    001fe172
    001fe172loc_1fe172:
    001fe172call caml_enter_blocking_section
    001fe177test rbx, rbx
    001fe17amovapd x0, [rsp]
    001fe17fmov eax, 1
    001fe184jle 0x1fdfa8
    001fe18anop
    001fe18cadd rbp, 16
    001fe190
    001fe190loc_1fe190:
    001fe190movups [rbp-16], x0
    001fe194sub r12, 1
    001fe198jne 0x1fe190
    001fe19atest eax, eax
    001fe19cjne 0x1fdfa8
    001fe1a2nop [rax+rax]
    001fe1acmov [r13+160], r14
    001fe1b3mov rax, [rsp+104]
    001fe1b8sub rax, [0x28]
    001fe1c1jne 0x1fe6cb
    001fe1c7add rsp, 120
    001fe1cbmov eax, 1
    001fe1d0pop rbx
    001fe1d1pop rbp
    001fe1d2pop r12
    001fe1d4pop r13
    001fe1d6pop r14
    001fe1d8pop r15
    001fe1daret
    001fe1dbmovsd_xmm x0, [rdi]
    001fe1dfcmp rbx, 4095
    001fe1e6jg 0x1fe5b0
    001fe1ectest ah, 4
    001fe1efje 0x1fe397
    001fe1f5movsd_xmm [rsp], x0
    001fe1facall caml_enter_blocking_section
    001fe1fftest rbx, rbx
    001fe202movsd_xmm x0, [rsp]
    001fe207jle 0x1fdfa8
    001fe20dmov edx, 1
    001fe212xor eax, eax
    001fe214test r12b, 1
    001fe218je 0x1fe240
    001fe21amovsd_xmm [rbp], x0
    001fe21fmov eax, 1
    001fe224cmp r12, 1
    001fe228je 0x1fdfa0
    001fe22enop [rax+rax]
    001fe239nop [rax]
    001fe23cmovsd_xmm [rbp+8*rax], x0
    001fe242movsd_xmm [rbp+8*rax+8], x0
    001fe248add rax, 2
    001fe24ccmp r12, rax
    001fe24fjne 0x1fe240
    001fe251jmp 0x1fdfa0
    001fe256mov r15l, [rdi+8]
    001fe25acmp rbx, 4095
    001fe261jg 0x1fe600
    001fe267test ah, 4
    001fe26aje 0x1fe3cf
    001fe270call caml_enter_blocking_section
    001fe275test rbx, rbx
    001fe278jle 0x1fdfa8
    001fe27emov edx, 1
    001fe283xor eax, eax
    001fe285test r12b, 1
    001fe289je 0x1fe2c0
    001fe28bmov [rbp], r15l
    001fe28fmov eax, 1
    001fe294cmp r12, 1
    001fe298je 0x1fdfa0
    001fe29enop [rax+rax]
    001fe2a9nop [rax+rax]
    001fe2b4nop [rax+rax]
    001fe2bcmov [rbp+4*rax], r15l
    001fe2c1mov [rbp+4*rax+4], r15l
    001fe2c6add rax, 2
    001fe2cacmp r12, rax
    001fe2cdjne 0x1fe2c0
    001fe2cfjmp 0x1fdfa0
    001fe2d4pxor x0, x0
    001fe2d8cvtsd2ss x0, [rdi]
    001fe2dccmp rbx, 4095
    001fe2e3jg 0x1fe5c4
    001fe2e9test ah, 4
    001fe2ecje 0x1fe417
    001fe2f2movss [rsp], x0
    001fe2f7call caml_enter_blocking_section
    001fe2fctest rbx, rbx
    001fe2ffmovss x0, [rsp]
    001fe304jle 0x1fdfa8
    001fe30amov edx, 1
    001fe30fxor eax, eax
    001fe311test r12b, 1
    001fe315je 0x1fe340
    001fe317mov eax, 1
    001fe31cmovss [rbp], x0
    001fe321cmp rax, r12
    001fe324je 0x1fdfa0
    001fe32anop [rax+rax]
    001fe335nop [rax]
    001fe33cmovss [rbp+4*rax], x0
    001fe342movss [rbp+4*rax+4], x0
    001fe348add rax, 2
    001fe34ccmp rax, r12
    001fe34fjne 0x1fe340
    001fe351jmp 0x1fdfa0
    001fe356nop [rax+rax]
    001fe35cmov rax, [rcx+16]
    001fe360
    001fe360loc_1fe360:
    001fe360movzx edx, al
    001fe363cmp al, 13
    001fe365ja 0xf488e
    001fe36blea rcx, [rip+0x334f6]
    001fe372movsxd rdx, [rcx+4*rdx]
    001fe376add rdx, rcx
    001fe379jmp rdx
    001fe37ccmp ebx, 0x7f800001
    001fe382sbb ebx, ebx
    001fe384and bx, -512
    001fe389add bx, 32256
    001fe38ejmp 0x1fdf20
    001fe393test rbx, rbx
    001fe396jle 0x1fe1b0
    001fe39cxor edx, edx
    001fe39ejmp 0x1fe216
    001fe3a3call caml_enter_blocking_section
    001fe3a8test rbx, rbx
    001fe3abjle 0x1fdfa8
    001fe3b1mov edx, 1
    001fe3b6jmp 0x1fe09d
    001fe3bbtest rbx, rbx
    001fe3bejle 0x1fe1b0
    001fe3c4xor edx, edx
    001fe3c6jmp 0x1fe044
    001fe3cbtest rbx, rbx
    001fe3cejle 0x1fe1b0
    001fe3d4xor edx, edx
    001fe3d6jmp 0x1fe287
    001fe3dbcall caml_enter_blocking_section
    001fe3e0test rbx, rbx
    001fe3e3jle 0x1fdfa8
    001fe3e9mov edx, 1
    001fe3eejmp 0x1fdfd7
    001fe3f3test rbx, rbx
    001fe3f6jle 0x1fe1b0
    001fe3fcxor edx, edx
    001fe3fejmp 0x1fe112
    001fe403test rbx, rbx
    001fe406jle 0x1fe1b0
    001fe40cxor eax, eax
    001fe40ejmp 0x1fe190
    001fe413test rbx, rbx
    001fe416jle 0x1fe1b0
    001fe41cxor edx, edx
    001fe41ejmp 0x1fe313
    001fe423test rbx, rbx
    001fe426jle 0x1fe1b0
    001fe42cxor ecx, ecx
    001fe42ejmp 0x1fde8f
    001fe433sar rdi, 1
    001fe436mov r15, rdi
    001fe439test ah, 4
    001fe43cje 0x1fe64e
    001fe442call caml_enter_blocking_section
    001fe447mov r12l, 1
    001fe44djmp 0x1fde42
    001fe452call caml_enter_blocking_section
    001fe457jmp 0x1fde42
    001fe45csar rdi, 1
    001fe45fmov r15, rdi
    001fe462test ah, 4
    001fe465je 0x1fe656
    001fe46bcall caml_enter_blocking_section
    001fe470mov r12l, 1
    001fe476jmp 0x1fde8a
    001fe47bpxor x0, x0
    001fe47fcvtsd2ss x0, [rdi]
    001fe483test ah, 4
    001fe486je 0x1fe663
    001fe48cmovss [rsp], x0
    001fe491mov r12l, 1
    001fe497call caml_enter_blocking_section
    001fe49cmovss x0, [rsp]
    001fe4a1mov edx, 1
    001fe4a6jmp 0x1fe313
    001fe4abmov r15l, [rdi+8]
    001fe4aftest ah, 4
    001fe4b2je 0x1fe670
    001fe4b8call caml_enter_blocking_section
    001fe4bdmov r12l, 1
    001fe4c3jmp 0x1fe282
    001fe4c8movsd_xmm x0, [rdi]
    001fe4cctest ah, 4
    001fe4cfje 0x1fe697
    001fe4d5movsd_xmm [rsp], x0
    001fe4damov r12l, 1
    001fe4e0call caml_enter_blocking_section
    001fe4e5movsd_xmm x0, [rsp]
    001fe4eajmp 0x1fe211
    001fe4efmovupd x0, [rdi]
    001fe4f3cvtpd2ps x0, x0
    001fe4f7test ah, 4
    001fe4faje 0x1fe6b1
    001fe500movlps [rsp], x0
    001fe504mov r12l, 1
    001fe50acall caml_enter_blocking_section
    001fe50fmovq x0, [rsp]
    001fe514mov edx, 1
    001fe519jmp 0x1fe112
    001fe51esar rdi, 1
    001fe521mov r15, rdi
    001fe524test ah, 4
    001fe527je 0x1fe6a4
    001fe52dcall caml_enter_blocking_section
    001fe532mov r12l, 1
    001fe538jmp 0x1fe03f
    001fe53dmov r15, [rdi+8]
    001fe541test ah, 4
    001fe544je 0x1fe6be
    001fe54acall caml_enter_blocking_section
    001fe54fmov r12l, 1
    001fe555jmp 0x1fe3b5
    001fe55amov r15, [rdi+8]
    001fe55etest ah, 4
    001fe561je 0x1fe67d
    001fe567call caml_enter_blocking_section
    001fe56cmov r12l, 1
    001fe572jmp 0x1fe3ed
    001fe577movupd x0, [rdi]
    001fe57btest ah, 4
    001fe57eje 0x1fe68a
    001fe584movaps [rsp], x0
    001fe588mov r12l, 1
    001fe58ecall caml_enter_blocking_section
    001fe593movapd x0, [rsp]
    001fe598mov eax, 1
    001fe59djmp 0x1fe190
    001fe5a2call caml_enter_blocking_section
    001fe5a7jmp 0x1fe3b5
    001fe5acmovsd_xmm [rsp], x0
    001fe5b1call caml_enter_blocking_section
    001fe5b6movsd_xmm x0, [rsp]
    001fe5bbjmp 0x1fe211
    001fe5c0movss [rsp], x0
    001fe5c5call caml_enter_blocking_section
    001fe5camovss x0, [rsp]
    001fe5cfjmp 0x1fe30e
    001fe5d4call caml_enter_blocking_section
    001fe5d9jmp 0x1fe03f
    001fe5decall caml_enter_blocking_section
    001fe5e3jmp 0x1fdf4b
    001fe5e8call caml_enter_blocking_section
    001fe5edjmp 0x1fde8a
    001fe5f2call caml_enter_blocking_section
    001fe5f7jmp 0x1fe3ed
    001fe5fccall caml_enter_blocking_section
    001fe601jmp 0x1fe282
    001fe606test r12, r12
    001fe609jle 0x1fe1b0
    001fe60fxor edx, edx
    001fe611jmp 0x1fdf50
    001fe616test rbx, rbx
    001fe619jle 0x1fe1b0
    001fe61fmovzx esi, r15b
    001fe623
    001fe623loc_1fe623:
    001fe623mov rdx, r12
    001fe626mov rdi, rbp
    001fe629call fn_f40e0
    001fe62ejmp 0x1fe1b0
    001fe633mov ecx, ebx
    001fe635shr ecx, 13
    001fe638and ecx, 1
    001fe63blea ebx, [rbx+rcx-0x37fff001]
    001fe642shr ebx, 13
    001fe645jmp 0x1fdf20
    001fe64amov r12l, 1
    001fe650jmp 0x1fe623
    001fe652mov r12l, 1
    001fe658xor ecx, ecx
    001fe65ajmp 0x1fde8f
    001fe65fmov r12l, 1
    001fe665xor edx, edx
    001fe667jmp 0x1fe313
    001fe66cmov r12l, 1
    001fe672xor edx, edx
    001fe674jmp 0x1fe287
    001fe679mov r12l, 1
    001fe67fxor edx, edx
    001fe681jmp 0x1fdfd7
    001fe686mov r12l, 1
    001fe68cxor eax, eax
    001fe68ejmp 0x1fe190
    001fe693mov r12l, 1
    001fe699xor edx, edx
    001fe69bjmp 0x1fe216
    001fe6a0mov r12l, 1
    001fe6a6xor edx, edx
    001fe6a8jmp 0x1fe044
    001fe6admov r12l, 1
    001fe6b3xor edx, edx
    001fe6b5jmp 0x1fe112
    001fe6bamov r12l, 1
    001fe6c0xor edx, edx
    001fe6c2jmp 0x1fe09d
    001fe6c7call fn_f4590
    001fe6ccdb 0xc0
    001fe6cdpop rsi
    001fe6ceout dx, eax
    001fe6cfdb 0xff
    001fdd40
    001fe6d0
    001fe6d0 // align 0x20
    001fe6e0
    001fe6e0caml_ba_reshape:
    001fe6e0push rbp
    001fe6e1mov rdx, rsi
    001fe6e4push rbx
    001fe6e5sub rsp, 312
    001fe6ecmovdqa x0, [rip+0x2b9d8]
    001fe6f4mov [rsp], rsi
    001fe6f8movq x1, rsp
    001fe6fdmov [rsp+8], rdi
    001fe702mov rax, [0x28]
    001fe70bmov [rsp+296], rax
    001fe713mov rax, [rip+0x778ca]
    001fe71amov rbx, [rax]
    001fe71elea rax, [rsp+8]
    001fe723movups [rsp+40], x0
    001fe728mov [rsp+24], 1
    001fe731movq x0, rax
    001fe736lea rax, [rsp+32]
    001fe73bmov [rsp+96], rax
    001fe740lea rax, [rsp+96]
    001fe745mov rbp, [rbx+160]
    001fe74cpunpcklqdq x0, x1
    001fe750mov [rbx+160], rax
    001fe757mov eax, 1
    001fe75cmovups [rsp+56], x0
    001fe761movq x0, rax
    001fe766lea rax, [rsp+24]
    001fe76bpunpcklqdq x0, x0
    001fe76fmov [rsp+32], rbp
    001fe774mov [rsp+120], rax
    001fe779movups [rsp+104], x0
    001fe77emov rax, [rsi-8]
    001fe782mov rsi, rax
    001fe785shr rsi, 10
    001fe789cmp rax, 17407
    001fe78fja 0x1fe8b7
    001fe795test rsi, rsi
    001fe798je 0x1fe88b
    001fe79elea rdi, [rsp+160]
    001fe7a6lea r8, [rdx+8*rsi]
    001fe7aamov ecx, 1
    001fe7afsub rdi, rdx
    001fe7b2nop [rax+rax]
    001fe7bcmov rax, [rdx]
    001fe7bfsar rax, 1
    001fe7c2mov [rdi+rdx], rax
    001fe7c6js 0x1fe8ab
    001fe7ccadd rdx, 8
    001fe7d0imul rcx, rax
    001fe7d4cmp rdx, r8
    001fe7d7jne 0x1fe7c0
    001fe7d9mov rax, [rsp+8]
    001fe7demov r9, [rax+16]
    001fe7e2lea r8, [rax+8]
    001fe7e6test r9, r9
    001fe7e9jle 0x1fe884
    001fe7efmov edi, 1
    001fe7f4xor edx, edx
    001fe7f6xor eax, eax
    001fe7f8nop [rax]
    001fe7fcadd edx, 1
    001fe7ffimul rdi, [r8+8*rax+32]
    001fe805movsxd rax, edx
    001fe808cmp rax, r9
    001fe80bjl 0x1fe800
    001fe80dcmp rdi, rcx
    001fe810jne 0x1fe8c8
    001fe816mov rdi, [r8+16]
    001fe81a
    001fe81aloc_1fe81a:
    001fe81amov rdx, [r8]
    001fe81dlea rcx, [rsp+160]
    001fe825or edi, 2048
    001fe82bcall caml_ba_alloc
    001fe830mov rdx, [rsp+8]
    001fe835mov [rsp+24], rax
    001fe83amov rdx, [rdx]
    001fe83dmov [rax], rdx
    001fe840mov rax, [rsp+24]
    001fe845lea rsi, [rax+8]
    001fe849mov rax, [rsp+8]
    001fe84elea rdi, [rax+8]
    001fe852call fn_1fc480
    001fe857mov [rbx+160], rbp
    001fe85emov rax, [rsp+24]
    001fe863mov rdx, [rsp+296]
    001fe86bsub rdx, [0x28]
    001fe874jne 0x1fe8c3
    001fe876add rsp, 312
    001fe87dpop rbx
    001fe87epop rbp
    001fe87fret
    001fe880mov edi, 1
    001fe885jmp 0x1fe811
    001fe887mov rax, [rsp+8]
    001fe88cmov ecx, 1
    001fe891mov r9, [rax+16]
    001fe895lea r8, [rax+8]
    001fe899test r9, r9
    001fe89cjg 0x1fe7f3
    001fe8a2jmp 0x1fe81a
    001fe8a7lea rdi, [rip+0x312fe]
    001fe8aecall caml_invalid_argument
    001fe8b3lea rdi, [rip+0x312c2]
    001fe8bacall caml_invalid_argument
    001fe8bfcall fn_f4590
    001fe8c4lea rdi, [rip+0x31309]
    001fe8cbcall caml_invalid_argument
    001fe8d0db 0x2c
    001fe8d1db 0x81
    001fe8d2add [rax], al
    001fe6e0
    001fe8d4
    001fe8d4 // align 0x10
    001fe8e0
    001fe8e0fn_1fe8e0:
    001fe8e0push r15
    001fe8e2movsxd rax, ecx
    001fe8e5push r14
    001fe8e7push r13
    001fe8e9push r12
    001fe8ebpush rbp
    001fe8ecmov rbp, rdi
    001fe8efpush rbx
    001fe8f0sub rsp, 296
    001fe8f7mov rcx, [0x28]
    001fe900mov [rsp+280], rcx
    001fe908xor ecx, ecx
    001fe90aadd rdx, [rdi+64]
    001fe90emov rcx, [rdi+72]
    001fe912mov [rdi+64], rdx
    001fe916jae 0x1fe920
    001fe918add rcx, 1
    001fe91cmov [rdi+72], rcx
    001fe920
    001fe920loc_1fe920:
    001fe920movdqu x0, [rsi]
    001fe924mov r14, [rbp+8]
    001fe928neg rax
    001fe92bmov rdi, 0x510e527fade682d1
    001fe935xor rdx, rdi
    001fe938mov r8, [rbp+16]
    001fe93cmov r9, [rbp+48]
    001fe940mov rdi, 0x9b05688c2b3e6c1f
    001fe94amov r12, [rbp+56]
    001fe94emov r11, [rbp]
    001fe952xor rcx, rdi
    001fe955mov [rsp+80], r14
    001fe95amovaps [rsp+144], x0
    001fe962movdqu x0, [rsi+16]
    001fe967mov r10, [rbp+24]
    001fe96bmov rdi, 0x1f83d9abfb41bd6b
    001fe975mov rbx, [rbp+32]
    001fe979mov r13, [rbp+40]
    001fe97dxor rax, rdi
    001fe980mov [rsp+88], r8
    001fe985mov [rsp+120], r9
    001fe98amov rdi, r14
    001fe98dlea r15, [rip+0x32f2c]
    001fe994mov r14, 0x5be0cd19137e2179
    001fe99emovaps [rsp+160], x0
    001fe9a6movdqu x0, [rsi+32]
    001fe9abmov [rsp+128], r12
    001fe9b3movaps [rsp+176], x0
    001fe9bbmovdqu x0, [rsi+48]
    001fe9c0mov [rsp+72], r11
    001fe9c5movaps [rsp+192], x0
    001fe9cdmovdqu x0, [rsi+64]
    001fe9d2mov [rsp+96], r10
    001fe9d7movaps [rsp+208], x0
    001fe9dfmovdqu x0, [rsi+80]
    001fe9e4mov [rsp+104], rbx
    001fe9e9movaps [rsp+224], x0
    001fe9f1movdqu x0, [rsi+96]
    001fe9f6mov [rsp+112], r13
    001fe9fbmovaps [rsp+240], x0
    001fea03movdqu x0, [rsi+112]
    001fea08mov rsi, r8
    001fea0bmov r8, 0xbb67ae8584caa73b
    001fea15movaps [rsp+256], x0
    001fea1dmov [rsp+48], r12
    001fea22mov r12, 0xa54ff53a5f1d36f1
    001fea2cmov [rsp+56], rax
    001fea31mov [rsp+40], r9
    001fea36mov r9, 0x6a09e667f3bcc908
    001fea40mov [rsp+32], r14
    001fea45mov r14, 0x3c6ef372fe94f82b
    001fea4fmov [rsp+136], rbp
    001fea57mov rbp, rsi
    001fea5anop [rax+rax]
    001fea60
    001fea60loc_1fea60:
    001fea60movzx esi, [r15]
    001fea64mov rax, [rsp+8*rsi+144]
    001fea6cadd rax, rbx
    001fea6fmov rsi, rax
    001fea72add rsi, r11
    001fea75movzx r11l, [r15+1]
    001fea7axor rdx, rsi
    001fea7drol rdx, 32
    001fea81mov rax, [rsp+8*r11+144]
    001fea89add r9, rdx
    001fea8cxor rbx, r9
    001fea8fror rbx, 24
    001fea93add rax, rbx
    001fea96mov r11, rax
    001fea99add r11, rsi
    001fea9cmovzx esi, [r15+2]
    001feaa1xor rdx, r11
    001feaa4ror rdx, 16
    001feaa8lea rax, [r9+rdx]
    001feaacmov r9, [rsp+8*rsi+144]
    001feab4mov [rsp+8], rdx
    001feab9xor rbx, rax
    001feabcmov [rsp+16], rax
    001feac1mov rax, [rsp+56]
    001feac6add r9, r13
    001feac9rol rbx, 1
    001feaccmov rsi, r9
    001feacfmov [rsp+64], rbx
    001fead4add rsi, rdi
    001fead7movzx edi, [r15+3]
    001feadcxor rcx, rsi
    001feadfrol rcx, 32
    001feae3mov r9, [rsp+8*rdi+144]
    001feaebadd r8, rcx
    001feaeexor r13, r8
    001feaf1ror r13, 24
    001feaf5add r9, r13
    001feaf8mov rdi, r9
    001feafbadd rdi, rsi
    001feafexor rcx, rdi
    001feb01ror rcx, 16
    001feb05lea rsi, [r8+rcx]
    001feb09mov r8, [rsp+40]
    001feb0exor r13, rsi
    001feb11mov [rsp+24], rsi
    001feb16movzx esi, [r15+4]
    001feb1brol r13, 1
    001feb1emov r9, [rsp+8*rsi+144]
    001feb26add r9, r8
    001feb29mov rsi, r9
    001feb2cadd rsi, rbp
    001feb2fxor rax, rsi
    001feb32rol rax, 32
    001feb36lea rbx, [rax+r14]
    001feb3axor r8, rbx
    001feb3dmov r9, r8
    001feb40movzx r8l, [r15+5]
    001feb45ror r9, 24
    001feb49mov rbp, [rsp+8*r8+144]
    001feb51mov r8, [rsp+48]
    001feb56add rbp, r9
    001feb59add rbp, rsi
    001feb5cmovzx esi, [r15+6]
    001feb61xor rax, rbp
    001feb64mov r14, [rsp+8*rsi+144]
    001feb6cmov rsi, r8
    001feb6fror rax, 16
    001feb73add rbx, rax
    001feb76add r14, r8
    001feb79movzx r8l, [r15+7]
    001feb7exor r9, rbx
    001feb81add r14, r10
    001feb84mov r10, [rsp+32]
    001feb89rol r9, 1
    001feb8cmov rdx, [rsp+8*r8+144]
    001feb94xor r10, r14
    001feb97rol r10, 32
    001feb9badd r12, r10
    001feb9exor rsi, r12
    001feba1ror rsi, 24
    001feba5add rdx, rsi
    001feba8mov r8, rdx
    001febabmov rdx, [rsp+8]
    001febb0add r8, r14
    001febb3movzx r14l, [r15+8]
    001febb8xor r10, r8
    001febbbadd r11, [rsp+8*r14+144]
    001febc3ror r10, 16
    001febc7movzx r14l, [r15+9]
    001febccadd r11, r13
    001febcfadd r12, r10
    001febd2xor r10, r11
    001febd5add r11, [rsp+8*r14+144]
    001febddxor rsi, r12
    001febe0rol r10, 32
    001febe4rol rsi, 1
    001febe7add rbx, r10
    001febeaxor r13, rbx
    001febedror r13, 24
    001febf1add r11, r13
    001febf4xor r10, r11
    001febf7ror r10, 16
    001febfblea r14, [rbx+r10]
    001febffmov [rsp+32], r10
    001fec04movzx r10l, [r15+10]
    001fec09xor r13, r14
    001fec0cadd rdi, [rsp+8*r10+144]
    001fec14movzx r10l, [r15+11]
    001fec19rol r13, 1
    001fec1cadd rdi, r9
    001fec1fmov rbx, [rsp+64]
    001fec24xor rdx, rdi
    001fec27add rdi, [rsp+8*r10+144]
    001fec2fmovzx r10l, [r15+13]
    001fec34rol rdx, 32
    001fec38add r12, rdx
    001fec3bxor r9, r12
    001fec3eror r9, 24
    001fec42add rdi, r9
    001fec45xor rdx, rdi
    001fec48ror rdx, 16
    001fec4cadd r12, rdx
    001fec4fxor r9, r12
    001fec52rol r9, 1
    001fec55mov [rsp+40], r9
    001fec5amovzx r9l, [r15+12]
    001fec5fadd rbp, [rsp+8*r9+144]
    001fec67mov r9, [rsp+16]
    001fec6cadd rbp, rsi
    001fec6fxor rcx, rbp
    001fec72add rbp, [rsp+8*r10+144]
    001fec7arol rcx, 32
    001fec7eadd r9, rcx
    001fec81xor rsi, r9
    001fec84ror rsi, 24
    001fec88add rbp, rsi
    001fec8bxor rcx, rbp
    001fec8eror rcx, 16
    001fec92add r9, rcx
    001fec95xor rsi, r9
    001fec98mov r10, rsi
    001fec9bmovzx esi, [r15+14]
    001feca0rol r10, 1
    001feca3add r8, [rsp+8*rsi+144]
    001fecabmov [rsp+48], r10
    001fecb0lea r10, [rbx+r8]
    001fecb4mov rsi, [rsp+24]
    001fecb9movzx r8l, [r15+15]
    001fecbexor rax, r10
    001fecc1rol rax, 32
    001fecc5add r10, [rsp+8*r8+144]
    001feccdadd r15, 16
    001fecd1add rsi, rax
    001fecd4xor rbx, rsi
    001fecd7ror rbx, 24
    001fecdbadd r10, rbx
    001fecdexor rax, r10
    001fece1ror rax, 16
    001fece5lea r8, [rsi+rax]
    001fece9mov [rsp+56], rax
    001feceelea rax, [rip+0x32c8b]
    001fecf5xor rbx, r8
    001fecf8rol rbx, 1
    001fecfbcmp r15, rax
    001fecfejne 0x1fea60
    001fed04mov r15, [rsp+72]
    001fed09mov rsi, rbp
    001fed0cmov rbp, [rsp+136]
    001fed14mov rax, [rsp+56]
    001fed19xor r15, r11
    001fed1cmov r11, r15
    001fed1fxor r11, r9
    001fed22mov [rbp], r11
    001fed26mov r11, [rsp+80]
    001fed2bxor r11, rdi
    001fed2emov rdi, r11
    001fed31xor rdi, r8
    001fed34mov [rbp+8], rdi
    001fed38mov rdi, [rsp+88]
    001fed3dxor rdi, rsi
    001fed40mov rsi, rdi
    001fed43mov rdi, [rsp+104]
    001fed48xor rsi, r14
    001fed4bxor rdi, rdx
    001fed4emov [rbp+16], rsi
    001fed52mov rsi, [rsp+96]
    001fed57mov rdx, rdi
    001fed5amov rdi, [rsp+120]
    001fed5fxor rdx, rbx
    001fed62xor rsi, r10
    001fed65xor rdi, rax
    001fed68mov [rbp+32], rdx
    001fed6cmov rdx, [rsp+112]
    001fed71xor rsi, r12
    001fed74mov rax, rdi
    001fed77mov rdi, [rsp+40]
    001fed7cmov [rbp+24], rsi
    001fed80xor rdx, rcx
    001fed83xor rax, rdi
    001fed86mov rdi, [rsp+32]
    001fed8bxor rdx, r13
    001fed8emov [rbp+48], rax
    001fed92mov rax, [rsp+128]
    001fed9amov [rbp+40], rdx
    001fed9exor rax, rdi
    001feda1mov rdi, [rsp+48]
    001feda6xor rax, rdi
    001feda9mov [rbp+56], rax
    001fedadmov rax, [rsp+280]
    001fedb5sub rax, [0x28]
    001fedbejne 0x1fedd2
    001fedc0add rsp, 296
    001fedc7pop rbx
    001fedc8pop rbp
    001fedc9pop r12
    001fedcbpop r13
    001fedcdpop r14
    001fedcfpop r15
    001fedd1ret
    001fedd2
    001fedd2loc_1fedd2:
    001fedd2call fn_f4590
    001fe8e0
    001fedd7
    001fedd7 // align 0x10
    001fede0
    001fede0fn_1fede0:
    001fede0mov rdi, [rdi+8]
    001fede4jmp 0x216690
    001fede9db 0xa3
    001fedeajs 0x1feded
    001fedecdb 0x00
    001fede0
    001feded
    001feded // align 0x10
    001fedf0
    001fedf0caml_BLAKE2Init:
    001fedf0mov rax, 0xbb67ae8584caa73b
    001fedfamov r8, rdi
    001fedfdmov rdi, rcx
    001fee00mov rcx, 0x6a09e667f3bcc908
    001fee0amov [r8+8], rax
    001fee0emov rax, 0x3c6ef372fe94f82b
    001fee18mov [r8+16], rax
    001fee1cmov rax, 0xa54ff53a5f1d36f1
    001fee26mov [r8+24], rax
    001fee2amov rax, 0x510e527fade682d1
    001fee34mov [r8+32], rax
    001fee38mov rax, 0x9b05688c2b3e6c1f
    001fee42mov [r8+40], rax
    001fee46mov rax, 0x1f83d9abfb41bd6b
    001fee50mov [r8+48], rax
    001fee54mov rax, 0x5be0cd19137e2179
    001fee5emov [r8+56], rax
    001fee62mov rax, rdx
    001fee65shl rax, 8
    001fee69mov [r8+72], 0
    001fee71or rax, rsi
    001fee74mov [r8+64], 0
    001fee7cor rax, 0x1010000
    001fee82mov [r8+80], 0
    001fee8axor rax, rcx
    001fee8dmov [r8], rax
    001fee90test rdx, rdx
    001fee93jne 0x1feea0
    001fee95ret
    001fee96db 0xd2
    001fee97jne 0x1feea0
    001fee99ret
    001fee9a
    001fee9a 66 0f 1f 44 00 00 f..D..
    001feea0
    001feea0loc_1feea0:
    001feea0mov eax, 64
    001feea5lea rcx, [r8+88]
    001feea9cmp rdx, rax
    001feeaccmova rdx, rax
    001feeb0cmp edx, 8
    001feeb3jae 0x1fef18
    001feeb5test dl, 4
    001feeb8jne 0x1fef65
    001feebetest edx, edx
    001feec0je 0x1feed2
    001feec2movzx eax, [rdi]
    001feec5mov [r8+88], al
    001feec9test dl, 2
    001feeccjne 0x1fef7a
    001feed2
    001feed2loc_1feed2:
    001feed2mov eax, 128
    001feed7sub rax, rdx
    001feedaadd rdx, rcx
    001feeddlea rdi, [rdx+8]
    001feee1mov ecx, eax
    001feee3mov [rdx], 0
    001feeeamov [rdx+rcx-8], 0
    001feef3and rdi, -8
    001feef7sub rdx, rdi
    001feefalea ecx, [rax+rdx]
    001feefdmov eax, ecx
    001feeffshr eax, 3
    001fef02mov ecx, eax
    001fef04xor eax, eax
    001fef06rep stosq [rdi], rax
    001fef09mov [r8+80], 128
    001fef11ret
    001fef12
    001fef12 66 0f 1f 44 00 00 f..D..
    001fef18
    001fef18loc_1fef18:
    001fef18mov rax, [rdi]
    001fef1bmov [r8+88], rax
    001fef1fmov eax, edx
    001fef21mov rsi, [rdi+rax-8]
    001fef26mov [rcx+rax-8], rsi
    001fef2blea rsi, [r8+96]
    001fef2fmov rax, rcx
    001fef32and rsi, -8
    001fef36sub rax, rsi
    001fef39sub rdi, rax
    001fef3cadd eax, edx
    001fef3eand eax, -8
    001fef41cmp eax, 8
    001fef44jb 0x1feed2
    001fef46and eax, -8
    001fef49xor r9l, r9l
    001fef4c
    001fef4cloc_1fef4c:
    001fef4cmov r10l, r9l
    001fef4fadd r9l, 8
    001fef53mov r11, [rdi+r10]
    001fef57mov [rsi+r10], r11
    001fef5bcmp r9l, eax
    001fef5ejb 0x1fef4c
    001fef60jmp 0x1feed2
    001fef65
    001fef65loc_1fef65:
    001fef65mov eax, [rdi]
    001fef67mov [r8+88], eax
    001fef6bmov eax, edx
    001fef6dmov esi, [rdi+rax-4]
    001fef71mov [rcx+rax-4], esi
    001fef75jmp 0x1feed2
    001fef7a
    001fef7aloc_1fef7a:
    001fef7amov eax, edx
    001fef7cmovzx esi, [rdi+rax-2]
    001fef81mov [rcx+rax-2], si
    001fef86jmp 0x1feed2
    001fedf0