hello: (__TEXT,__text) section start: 0000000100000d10 pushq $0x0 0000000100000d12 movq %rsp, %rbp 0000000100000d15 andq $-0x10, %rsp 0000000100000d19 movq 0x8(%rbp), %rdi 0000000100000d1d leaq 0x10(%rbp), %rsi 0000000100000d21 movl %edi, %edx 0000000100000d23 addl $0x1, %edx 0000000100000d26 shll $0x3, %edx 0000000100000d29 addq %rsi, %rdx 0000000100000d2c movq %rdx, %rcx 0000000100000d2f jmp 0x100000d35 0000000100000d31 addq $0x8, %rcx 0000000100000d35 cmpq $0x0, (%rcx) 0000000100000d39 jne 0x100000d31 0000000100000d3b addq $0x8, %rcx 0000000100000d3f callq _main 0000000100000d44 movl %eax, %edi 0000000100000d46 callq 0x10000a5da ## symbol stub for: _exit 0000000100000d4b hlt 0000000100000d4c nop 0000000100000d4d nop 0000000100000d4e nop 0000000100000d4f nop _new_array: 0000000100000d50 pushq %rbp 0000000100000d51 movq %rsp, %rbp 0000000100000d54 subq $0x20, %rsp 0000000100000d58 movq %rdi, %rax 0000000100000d5b movl %esi, -0x4(%rbp) 0000000100000d5e movl %edx, -0x8(%rbp) 0000000100000d61 movl %ecx, -0xc(%rbp) 0000000100000d64 movl -0x8(%rbp), %ecx 0000000100000d67 imull -0xc(%rbp), %ecx 0000000100000d6b movq %rdi, -0x18(%rbp) 0000000100000d6f movl %ecx, %edi 0000000100000d71 movq %rax, -0x20(%rbp) 0000000100000d75 callq _v_calloc 0000000100000d7a movq -0x18(%rbp), %r8 0000000100000d7e movq %rax, (%r8) 0000000100000d81 movl -0x4(%rbp), %ecx 0000000100000d84 movl %ecx, 0x8(%r8) 0000000100000d88 movl -0x8(%rbp), %ecx 0000000100000d8b movl %ecx, 0xc(%r8) 0000000100000d8f movl -0xc(%rbp), %ecx 0000000100000d92 movl %ecx, 0x10(%r8) 0000000100000d96 movq -0x20(%rbp), %rax 0000000100000d9a addq $0x20, %rsp 0000000100000d9e popq %rbp 0000000100000d9f retq _v_calloc: 0000000100000da0 pushq %rbp 0000000100000da1 movq %rsp, %rbp 0000000100000da4 subq $0x20, %rsp 0000000100000da8 movl %edi, -0x4(%rbp) 0000000100000dab cmpl $0x0, -0x4(%rbp) 0000000100000daf jge 0x100000dd4 0000000100000db5 leaq 0x9bd3(%rip), %rdi ## literal pool for: "calloc(<0)" 0000000100000dbc callq _tos3 0000000100000dc1 movq %rax, -0x18(%rbp) 0000000100000dc5 movl %edx, -0x10(%rbp) 0000000100000dc8 movq -0x18(%rbp), %rdi 0000000100000dcc movl -0x10(%rbp), %esi 0000000100000dcf callq _v_panic 0000000100000dd4 movl $0x1, %eax 0000000100000dd9 movl %eax, %esi 0000000100000ddb movslq -0x4(%rbp), %rdi 0000000100000ddf callq 0x10000a5d4 ## symbol stub for: _calloc 0000000100000de4 addq $0x20, %rsp 0000000100000de8 popq %rbp 0000000100000de9 retq 0000000100000dea nopw (%rax,%rax) _make: 0000000100000df0 pushq %rbp 0000000100000df1 movq %rsp, %rbp 0000000100000df4 subq $0x20, %rsp 0000000100000df8 movq %rdi, %rax 0000000100000dfb movl %esi, -0x4(%rbp) 0000000100000dfe movl %edx, -0x8(%rbp) 0000000100000e01 movl %ecx, -0xc(%rbp) 0000000100000e04 movl -0x4(%rbp), %esi 0000000100000e07 movl -0x8(%rbp), %edx 0000000100000e0a movl -0xc(%rbp), %ecx 0000000100000e0d movq %rax, -0x18(%rbp) 0000000100000e11 callq _new_array 0000000100000e16 movq -0x18(%rbp), %rax 0000000100000e1a addq $0x20, %rsp 0000000100000e1e popq %rbp 0000000100000e1f retq _new_array_from_c_array: 0000000100000e20 pushq %rbp 0000000100000e21 movq %rsp, %rbp 0000000100000e24 subq $0x30, %rsp 0000000100000e28 movq %rdi, %rax 0000000100000e2b movl %esi, -0x4(%rbp) 0000000100000e2e movl %edx, -0x8(%rbp) 0000000100000e31 movl %ecx, -0xc(%rbp) 0000000100000e34 movq %r8, -0x18(%rbp) 0000000100000e38 movl -0x8(%rbp), %ecx 0000000100000e3b imull -0xc(%rbp), %ecx 0000000100000e3f movq %rdi, -0x20(%rbp) 0000000100000e43 movl %ecx, %edi 0000000100000e45 movq %rax, -0x28(%rbp) 0000000100000e49 callq _v_calloc 0000000100000e4e movq $-0x1, %rcx 0000000100000e55 movq -0x20(%rbp), %r8 0000000100000e59 movq %rax, (%r8) 0000000100000e5c movl -0x4(%rbp), %edx 0000000100000e5f movl %edx, 0x8(%r8) 0000000100000e63 movl -0x8(%rbp), %edx 0000000100000e66 movl %edx, 0xc(%r8) 0000000100000e6a movl -0xc(%rbp), %edx 0000000100000e6d movl %edx, 0x10(%r8) 0000000100000e71 movq (%r8), %rdi 0000000100000e74 movq -0x18(%rbp), %rsi 0000000100000e78 movl -0x4(%rbp), %edx 0000000100000e7b imull -0xc(%rbp), %edx 0000000100000e7f movslq %edx, %rdx 0000000100000e82 callq 0x10000a598 ## symbol stub for: ___memcpy_chk 0000000100000e87 movq -0x28(%rbp), %rcx 0000000100000e8b movq %rax, -0x30(%rbp) 0000000100000e8f movq %rcx, %rax 0000000100000e92 addq $0x30, %rsp 0000000100000e96 popq %rbp 0000000100000e97 retq 0000000100000e98 nopl (%rax,%rax) _new_array_from_c_array_no_alloc: 0000000100000ea0 pushq %rbp 0000000100000ea1 movq %rsp, %rbp 0000000100000ea4 movq %rdi, %rax 0000000100000ea7 movl %esi, -0x4(%rbp) 0000000100000eaa movl %edx, -0x8(%rbp) 0000000100000ead movl %ecx, -0xc(%rbp) 0000000100000eb0 movq %r8, -0x18(%rbp) 0000000100000eb4 movq -0x18(%rbp), %r8 0000000100000eb8 movq %r8, (%rdi) 0000000100000ebb movl -0x4(%rbp), %ecx 0000000100000ebe movl %ecx, 0x8(%rdi) 0000000100000ec1 movl -0x8(%rbp), %ecx 0000000100000ec4 movl %ecx, 0xc(%rdi) 0000000100000ec7 movl -0xc(%rbp), %ecx 0000000100000eca movl %ecx, 0x10(%rdi) 0000000100000ecd popq %rbp 0000000100000ece retq 0000000100000ecf nop _array_repeat_old: 0000000100000ed0 pushq %rbp 0000000100000ed1 movq %rsp, %rbp 0000000100000ed4 subq $0x40, %rsp 0000000100000ed8 movq %rdi, %rax 0000000100000edb movq %rsi, -0x8(%rbp) 0000000100000edf movl %edx, -0xc(%rbp) 0000000100000ee2 movl %ecx, -0x10(%rbp) 0000000100000ee5 movl -0xc(%rbp), %ecx 0000000100000ee8 imull -0x10(%rbp), %ecx 0000000100000eec movq %rdi, -0x20(%rbp) 0000000100000ef0 movl %ecx, %edi 0000000100000ef2 movq %rax, -0x28(%rbp) 0000000100000ef6 callq _v_calloc 0000000100000efb movq -0x20(%rbp), %rsi 0000000100000eff movq %rax, (%rsi) 0000000100000f02 movl -0xc(%rbp), %ecx 0000000100000f05 movl %ecx, 0x8(%rsi) 0000000100000f08 movl -0xc(%rbp), %ecx 0000000100000f0b movl %ecx, 0xc(%rsi) 0000000100000f0e movl -0x10(%rbp), %ecx 0000000100000f11 movl %ecx, 0x10(%rsi) 0000000100000f14 movl $0x0, -0x14(%rbp) 0000000100000f1b movl -0x14(%rbp), %eax 0000000100000f1e cmpl -0xc(%rbp), %eax 0000000100000f21 jge 0x100000f6c 0000000100000f27 movq $-0x1, %rcx 0000000100000f2e movq -0x20(%rbp), %rax 0000000100000f32 movq (%rax), %rdx 0000000100000f35 movl -0x14(%rbp), %esi 0000000100000f38 imull -0x10(%rbp), %esi 0000000100000f3c movslq %esi, %rdi 0000000100000f3f addq %rdi, %rdx 0000000100000f42 movq -0x8(%rbp), %rsi 0000000100000f46 movslq -0x10(%rbp), %rdi 0000000100000f4a movq %rdi, -0x30(%rbp) 0000000100000f4e movq %rdx, %rdi 0000000100000f51 movq -0x30(%rbp), %rdx 0000000100000f55 callq 0x10000a598 ## symbol stub for: ___memcpy_chk 0000000100000f5a movq %rax, -0x38(%rbp) 0000000100000f5e movl -0x14(%rbp), %eax 0000000100000f61 addl $0x1, %eax 0000000100000f64 movl %eax, -0x14(%rbp) 0000000100000f67 jmp 0x100000f1b 0000000100000f6c movq -0x28(%rbp), %rax 0000000100000f70 addq $0x40, %rsp 0000000100000f74 popq %rbp 0000000100000f75 retq 0000000100000f76 nopw %cs:(%rax,%rax) _array_repeat: 0000000100000f80 pushq %rbp 0000000100000f81 movq %rsp, %rbp 0000000100000f84 subq $0x40, %rsp 0000000100000f88 movq %rdi, %rax 0000000100000f8b leaq 0x10(%rbp), %rcx 0000000100000f8f movl %esi, -0x4(%rbp) 0000000100000f92 movl -0x4(%rbp), %esi 0000000100000f95 imull 0x10(%rcx), %esi 0000000100000f99 movq %rdi, -0x20(%rbp) 0000000100000f9d movl %esi, %edi 0000000100000f9f movq %rax, -0x28(%rbp) 0000000100000fa3 movq %rcx, -0x30(%rbp) 0000000100000fa7 callq _v_calloc 0000000100000fac movq -0x20(%rbp), %rcx 0000000100000fb0 movq %rax, (%rcx) 0000000100000fb3 movl -0x4(%rbp), %esi 0000000100000fb6 movl %esi, 0x8(%rcx) 0000000100000fb9 movl -0x4(%rbp), %esi 0000000100000fbc movl %esi, 0xc(%rcx) 0000000100000fbf movq -0x30(%rbp), %rax 0000000100000fc3 movl 0x10(%rax), %esi 0000000100000fc6 movl %esi, 0x10(%rcx) 0000000100000fc9 movq (%rax), %rdx 0000000100000fcc movq %rdx, -0x10(%rbp) 0000000100000fd0 movl $0x0, -0x14(%rbp) 0000000100000fd7 movl -0x14(%rbp), %eax 0000000100000fda cmpl -0x4(%rbp), %eax 0000000100000fdd jge 0x100001027 0000000100000fe3 movq $-0x1, %rcx 0000000100000fea movq -0x20(%rbp), %rax 0000000100000fee movq (%rax), %rdx 0000000100000ff1 movl -0x14(%rbp), %esi 0000000100000ff4 movq -0x30(%rbp), %rdi 0000000100000ff8 imull 0x10(%rdi), %esi 0000000100000ffc movslq %esi, %r8 0000000100000fff addq %r8, %rdx 0000000100001002 movq -0x10(%rbp), %rsi 0000000100001006 movslq 0x10(%rdi), %r8 000000010000100a movq %rdx, %rdi 000000010000100d movq %r8, %rdx 0000000100001010 callq 0x10000a598 ## symbol stub for: ___memcpy_chk 0000000100001015 movq %rax, -0x38(%rbp) 0000000100001019 movl -0x14(%rbp), %eax 000000010000101c addl $0x1, %eax 000000010000101f movl %eax, -0x14(%rbp) 0000000100001022 jmp 0x100000fd7 0000000100001027 movq -0x28(%rbp), %rax 000000010000102b addq $0x40, %rsp 000000010000102f popq %rbp 0000000100001030 retq 0000000100001031 nopw %cs:(%rax,%rax) _array_sort_with_compare: 0000000100001040 pushq %rbp 0000000100001041 movq %rsp, %rbp 0000000100001044 subq $0x10, %rsp 0000000100001048 movq %rdi, -0x8(%rbp) 000000010000104c movq %rsi, -0x10(%rbp) 0000000100001050 movq -0x8(%rbp), %rsi 0000000100001054 movq (%rsi), %rdi 0000000100001057 movq -0x8(%rbp), %rsi 000000010000105b movslq 0x8(%rsi), %rsi 000000010000105f movq -0x8(%rbp), %rax 0000000100001063 movslq 0x10(%rax), %rdx 0000000100001067 movq -0x10(%rbp), %rax 000000010000106b movq %rax, %rcx 000000010000106e callq 0x10000a610 ## symbol stub for: _qsort 0000000100001073 addq $0x10, %rsp 0000000100001077 popq %rbp 0000000100001078 retq 0000000100001079 nopl (%rax) _array_insert: 0000000100001080 pushq %rbp 0000000100001081 movq %rsp, %rbp 0000000100001084 subq $0x40, %rsp 0000000100001088 movq %rdi, -0x8(%rbp) 000000010000108c movl %esi, -0xc(%rbp) 000000010000108f movq %rdx, -0x18(%rbp) 0000000100001093 movl -0xc(%rbp), %esi 0000000100001096 movq -0x8(%rbp), %rdx 000000010000109a cmpl 0x8(%rdx), %esi 000000010000109d jl 0x1000010c2 00000001000010a3 leaq 0x96c2(%rip), %rdi ## literal pool for: "array.insert: index larger than length" 00000001000010aa callq _tos3 00000001000010af movq %rax, -0x28(%rbp) 00000001000010b3 movl %edx, -0x20(%rbp) 00000001000010b6 movq -0x28(%rbp), %rdi 00000001000010ba movl -0x20(%rbp), %esi 00000001000010bd callq _v_panic 00000001000010c2 movq -0x8(%rbp), %rdi 00000001000010c6 movq -0x18(%rbp), %rsi 00000001000010ca callq _array_push 00000001000010cf movq $-0x1, %rcx 00000001000010d6 movq -0x8(%rbp), %rsi 00000001000010da movl 0x10(%rsi), %eax 00000001000010dd movl %eax, -0x2c(%rbp) 00000001000010e0 movq -0x8(%rbp), %rsi 00000001000010e4 movq (%rsi), %rsi 00000001000010e7 movl -0xc(%rbp), %eax 00000001000010ea addl $0x1, %eax 00000001000010ed imull -0x2c(%rbp), %eax 00000001000010f1 movslq %eax, %rdi 00000001000010f4 addq %rdi, %rsi 00000001000010f7 movq -0x8(%rbp), %rdi 00000001000010fb movq (%rdi), %rdi 00000001000010fe movl -0xc(%rbp), %eax 0000000100001101 imull -0x2c(%rbp), %eax 0000000100001105 movslq %eax, %rdx 0000000100001108 addq %rdx, %rdi 000000010000110b movq -0x8(%rbp), %rdx 000000010000110f movl 0x8(%rdx), %eax 0000000100001112 subl -0xc(%rbp), %eax 0000000100001115 imull -0x2c(%rbp), %eax 0000000100001119 movslq %eax, %rdx 000000010000111c movq %rdi, -0x38(%rbp) 0000000100001120 movq %rsi, %rdi 0000000100001123 movq -0x38(%rbp), %rsi 0000000100001127 callq 0x10000a59e ## symbol stub for: ___memmove_chk 000000010000112c movq -0x8(%rbp), %rdi 0000000100001130 movl -0xc(%rbp), %esi 0000000100001133 movq -0x18(%rbp), %rdx 0000000100001137 movq %rax, -0x40(%rbp) 000000010000113b callq _array_set 0000000100001140 addq $0x40, %rsp 0000000100001144 popq %rbp 0000000100001145 retq 0000000100001146 nopw %cs:(%rax,%rax) _v_panic: 0000000100001150 pushq %rbp 0000000100001151 movq %rsp, %rbp 0000000100001154 subq $0x20, %rsp 0000000100001158 movq %rdi, -0x10(%rbp) 000000010000115c movl %esi, -0x8(%rbp) 000000010000115f movl -0x8(%rbp), %esi 0000000100001162 movq -0x10(%rbp), %rdx 0000000100001166 leaq 0x97d0(%rip), %rdi ## literal pool for: "V panic: %.*s\n" 000000010000116d xorl %eax, %eax 000000010000116f movb %al, %cl 0000000100001171 movb %cl, %al 0000000100001173 callq 0x10000a60a ## symbol stub for: _printf 0000000100001178 movl %eax, -0x14(%rbp) 000000010000117b callq _print_backtrace 0000000100001180 movl $0x1, %edi 0000000100001185 callq 0x10000a5da ## symbol stub for: _exit 000000010000118a nopw (%rax,%rax) _tos3: 0000000100001190 pushq %rbp 0000000100001191 movq %rsp, %rbp 0000000100001194 subq $0x30, %rsp 0000000100001198 movq %rdi, -0x18(%rbp) 000000010000119c cmpq $0x0, -0x18(%rbp) 00000001000011a1 jne 0x1000011c6 00000001000011a7 leaq 0x98ad(%rip), %rdi ## literal pool for: "tos3: nil string" 00000001000011ae callq _tos3 00000001000011b3 movq %rax, -0x28(%rbp) 00000001000011b7 movl %edx, -0x20(%rbp) 00000001000011ba movq -0x28(%rbp), %rdi 00000001000011be movl -0x20(%rbp), %esi 00000001000011c1 callq _v_panic 00000001000011c6 movq -0x18(%rbp), %rax 00000001000011ca movq %rax, -0x10(%rbp) 00000001000011ce movq -0x18(%rbp), %rdi 00000001000011d2 callq 0x10000a61c ## symbol stub for: _strlen 00000001000011d7 movl %eax, %ecx 00000001000011d9 movl %ecx, -0x8(%rbp) 00000001000011dc movq -0x10(%rbp), %rax 00000001000011e0 movl -0x8(%rbp), %edx 00000001000011e3 addq $0x30, %rsp 00000001000011e7 popq %rbp 00000001000011e8 retq 00000001000011e9 nopl (%rax) _array_push: 00000001000011f0 pushq %rbp 00000001000011f1 movq %rsp, %rbp 00000001000011f4 subq $0x20, %rsp 00000001000011f8 movq %rdi, -0x8(%rbp) 00000001000011fc movq %rsi, -0x10(%rbp) 0000000100001200 movq -0x8(%rbp), %rsi 0000000100001204 movl 0x8(%rsi), %eax 0000000100001207 movq -0x8(%rbp), %rsi 000000010000120b movl 0xc(%rsi), %ecx 000000010000120e subl $0x1, %ecx 0000000100001211 cmpl %ecx, %eax 0000000100001213 jl 0x100001280 0000000100001219 movq -0x8(%rbp), %rax 000000010000121d movl 0x8(%rax), %ecx 0000000100001220 addl $0x1, %ecx 0000000100001223 shll $0x1, %ecx 0000000100001226 movl %ecx, -0x14(%rbp) 0000000100001229 movq -0x8(%rbp), %rax 000000010000122d cmpl $0x0, 0xc(%rax) 0000000100001231 jne 0x100001255 0000000100001237 movl -0x14(%rbp), %eax 000000010000123a movq -0x8(%rbp), %rcx 000000010000123e imull 0x10(%rcx), %eax 0000000100001242 movl %eax, %edi 0000000100001244 callq _v_calloc 0000000100001249 movq -0x8(%rbp), %rcx 000000010000124d movq %rax, (%rcx) 0000000100001250 jmp 0x100001276 0000000100001255 movq -0x8(%rbp), %rax 0000000100001259 movq (%rax), %rdi 000000010000125c movl -0x14(%rbp), %ecx 000000010000125f movq -0x8(%rbp), %rax 0000000100001263 imull 0x10(%rax), %ecx 0000000100001267 movslq %ecx, %rsi 000000010000126a callq 0x10000a616 ## symbol stub for: _realloc 000000010000126f movq -0x8(%rbp), %rsi 0000000100001273 movq %rax, (%rsi) 0000000100001276 movl -0x14(%rbp), %eax 0000000100001279 movq -0x8(%rbp), %rcx 000000010000127d movl %eax, 0xc(%rcx) 0000000100001280 movq $-0x1, %rcx 0000000100001287 movq -0x8(%rbp), %rax 000000010000128b movq (%rax), %rax 000000010000128e movq -0x8(%rbp), %rdx 0000000100001292 movl 0x10(%rdx), %esi 0000000100001295 movq -0x8(%rbp), %rdx 0000000100001299 imull 0x8(%rdx), %esi 000000010000129d movslq %esi, %rdx 00000001000012a0 addq %rdx, %rax 00000001000012a3 movq -0x10(%rbp), %rsi 00000001000012a7 movq -0x8(%rbp), %rdx 00000001000012ab movslq 0x10(%rdx), %rdx 00000001000012af movq %rax, %rdi 00000001000012b2 callq 0x10000a598 ## symbol stub for: ___memcpy_chk 00000001000012b7 movq -0x8(%rbp), %rcx 00000001000012bb movl 0x8(%rcx), %r8d 00000001000012bf addl $0x1, %r8d 00000001000012c3 movl %r8d, 0x8(%rcx) 00000001000012c7 movq %rax, -0x20(%rbp) 00000001000012cb addq $0x20, %rsp 00000001000012cf popq %rbp 00000001000012d0 retq 00000001000012d1 nopw %cs:(%rax,%rax) _array_set: 00000001000012e0 pushq %rbp 00000001000012e1 movq %rsp, %rbp 00000001000012e4 subq $0x30, %rsp 00000001000012e8 movq %rdi, -0x8(%rbp) 00000001000012ec movl %esi, -0xc(%rbp) 00000001000012ef movq %rdx, -0x18(%rbp) 00000001000012f3 cmpl $0x0, -0xc(%rbp) 00000001000012f7 jl 0x10000130d 00000001000012fd movl -0xc(%rbp), %eax 0000000100001300 movq -0x8(%rbp), %rcx 0000000100001304 cmpl 0x8(%rcx), %eax 0000000100001307 jl 0x100001338 000000010000130d leaq 0x9553(%rip), %rdi ## literal pool for: "array index out of range: %d / %d" 0000000100001314 movl -0xc(%rbp), %esi 0000000100001317 movq -0x8(%rbp), %rax 000000010000131b movl 0x8(%rax), %edx 000000010000131e movb $0x0, %al 0000000100001320 callq __STR 0000000100001325 movq %rax, -0x28(%rbp) 0000000100001329 movl %edx, -0x20(%rbp) 000000010000132c movq -0x28(%rbp), %rdi 0000000100001330 movl -0x20(%rbp), %esi 0000000100001333 callq _v_panic 0000000100001338 movq $-0x1, %rcx 000000010000133f movq -0x8(%rbp), %rax 0000000100001343 movq (%rax), %rax 0000000100001346 movq -0x8(%rbp), %rdx 000000010000134a movl 0x10(%rdx), %esi 000000010000134d imull -0xc(%rbp), %esi 0000000100001351 movslq %esi, %rdx 0000000100001354 addq %rdx, %rax 0000000100001357 movq -0x18(%rbp), %rsi 000000010000135b movq -0x8(%rbp), %rdx 000000010000135f movslq 0x10(%rdx), %rdx 0000000100001363 movq %rax, %rdi 0000000100001366 callq 0x10000a598 ## symbol stub for: ___memcpy_chk 000000010000136b movq %rax, -0x30(%rbp) 000000010000136f addq $0x30, %rsp 0000000100001373 popq %rbp 0000000100001374 retq 0000000100001375 nopw %cs:(%rax,%rax) _array_prepend: 0000000100001380 pushq %rbp 0000000100001381 movq %rsp, %rbp 0000000100001384 subq $0x10, %rsp 0000000100001388 xorl %eax, %eax 000000010000138a movq %rdi, -0x8(%rbp) 000000010000138e movq %rsi, -0x10(%rbp) 0000000100001392 movq -0x8(%rbp), %rdi 0000000100001396 movq -0x10(%rbp), %rdx 000000010000139a movl %eax, %esi 000000010000139c callq _array_insert 00000001000013a1 addq $0x10, %rsp 00000001000013a5 popq %rbp 00000001000013a6 retq 00000001000013a7 nopw (%rax,%rax) _v_array_delete: 00000001000013b0 pushq %rbp 00000001000013b1 movq %rsp, %rbp 00000001000013b4 subq $0x20, %rsp 00000001000013b8 movq $-0x1, %rcx 00000001000013bf movq %rdi, -0x8(%rbp) 00000001000013c3 movl %esi, -0xc(%rbp) 00000001000013c6 movq -0x8(%rbp), %rdi 00000001000013ca movl 0x10(%rdi), %esi 00000001000013cd movl %esi, -0x10(%rbp) 00000001000013d0 movq -0x8(%rbp), %rdi 00000001000013d4 movq (%rdi), %rdi 00000001000013d7 movl -0xc(%rbp), %esi 00000001000013da imull -0x10(%rbp), %esi 00000001000013de movslq %esi, %rax 00000001000013e1 addq %rax, %rdi 00000001000013e4 movq -0x8(%rbp), %rax 00000001000013e8 movq (%rax), %rax 00000001000013eb movl -0xc(%rbp), %esi 00000001000013ee addl $0x1, %esi 00000001000013f1 imull -0x10(%rbp), %esi 00000001000013f5 movslq %esi, %rdx 00000001000013f8 addq %rdx, %rax 00000001000013fb movq -0x8(%rbp), %rdx 00000001000013ff movl 0x8(%rdx), %esi 0000000100001402 subl -0xc(%rbp), %esi 0000000100001405 imull -0x10(%rbp), %esi 0000000100001409 movslq %esi, %rdx 000000010000140c movq %rax, %rsi 000000010000140f callq 0x10000a59e ## symbol stub for: ___memmove_chk 0000000100001414 movq -0x8(%rbp), %rcx 0000000100001418 movl 0x8(%rcx), %r8d 000000010000141c addl $-0x1, %r8d 0000000100001420 movl %r8d, 0x8(%rcx) 0000000100001424 movq -0x8(%rbp), %rcx 0000000100001428 movl 0xc(%rcx), %r8d 000000010000142c addl $-0x1, %r8d 0000000100001430 movl %r8d, 0xc(%rcx) 0000000100001434 movq %rax, -0x18(%rbp) 0000000100001438 addq $0x20, %rsp 000000010000143c popq %rbp 000000010000143d retq 000000010000143e nop _array_get: 0000000100001440 pushq %rbp 0000000100001441 movq %rsp, %rbp 0000000100001444 subq $0x20, %rsp 0000000100001448 leaq 0x10(%rbp), %rax 000000010000144c movl %edi, -0x4(%rbp) 000000010000144f cmpl $0x0, -0x4(%rbp) 0000000100001453 movq %rax, -0x20(%rbp) 0000000100001457 jl 0x10000146d 000000010000145d movl -0x4(%rbp), %eax 0000000100001460 movq -0x20(%rbp), %rcx 0000000100001464 cmpl 0x8(%rcx), %eax 0000000100001467 jl 0x100001498 000000010000146d leaq 0x931f(%rip), %rdi ## literal pool for: "array index out of range: %d/%d" 0000000100001474 movl -0x4(%rbp), %esi 0000000100001477 movq -0x20(%rbp), %rax 000000010000147b movl 0x8(%rax), %edx 000000010000147e movb $0x0, %al 0000000100001480 callq __STR 0000000100001485 movq %rax, -0x18(%rbp) 0000000100001489 movl %edx, -0x10(%rbp) 000000010000148c movq -0x18(%rbp), %rdi 0000000100001490 movl -0x10(%rbp), %esi 0000000100001493 callq _v_panic 0000000100001498 movq -0x20(%rbp), %rax 000000010000149c movq (%rax), %rcx 000000010000149f movl -0x4(%rbp), %edx 00000001000014a2 imull 0x10(%rax), %edx 00000001000014a6 movslq %edx, %rsi 00000001000014a9 addq %rsi, %rcx 00000001000014ac movq %rcx, %rax 00000001000014af addq $0x20, %rsp 00000001000014b3 popq %rbp 00000001000014b4 retq 00000001000014b5 nopw %cs:(%rax,%rax) __STR: 00000001000014c0 pushq %rbp 00000001000014c1 movq %rsp, %rbp 00000001000014c4 pushq %r15 00000001000014c6 pushq %r14 00000001000014c8 pushq %rbx 00000001000014c9 subq $0x1f8, %rsp 00000001000014d0 testb %al, %al 00000001000014d2 movaps %xmm7, -0x130(%rbp) 00000001000014d9 movaps %xmm6, -0x140(%rbp) 00000001000014e0 movaps %xmm5, -0x150(%rbp) 00000001000014e7 movaps %xmm4, -0x160(%rbp) 00000001000014ee movaps %xmm3, -0x170(%rbp) 00000001000014f5 movaps %xmm2, -0x180(%rbp) 00000001000014fc movaps %xmm1, -0x190(%rbp) 0000000100001503 movaps %xmm0, -0x1a0(%rbp) 000000010000150a movq %rdi, -0x1a8(%rbp) 0000000100001511 movq %r9, -0x1b0(%rbp) 0000000100001518 movq %r8, -0x1b8(%rbp) 000000010000151f movq %rcx, -0x1c0(%rbp) 0000000100001526 movq %rdx, -0x1c8(%rbp) 000000010000152d movq %rsi, -0x1d0(%rbp) 0000000100001534 je 0x1000015a7 000000010000153a movaps -0x1a0(%rbp), %xmm0 0000000100001541 movaps %xmm0, -0xf0(%rbp) 0000000100001548 movaps -0x190(%rbp), %xmm1 000000010000154f movaps %xmm1, -0xe0(%rbp) 0000000100001556 movaps -0x180(%rbp), %xmm2 000000010000155d movaps %xmm2, -0xd0(%rbp) 0000000100001564 movaps -0x170(%rbp), %xmm3 000000010000156b movaps %xmm3, -0xc0(%rbp) 0000000100001572 movaps -0x160(%rbp), %xmm4 0000000100001579 movaps %xmm4, -0xb0(%rbp) 0000000100001580 movaps -0x150(%rbp), %xmm5 0000000100001587 movaps %xmm5, -0xa0(%rbp) 000000010000158e movaps -0x140(%rbp), %xmm6 0000000100001595 movaps %xmm6, -0x90(%rbp) 000000010000159c movaps -0x130(%rbp), %xmm7 00000001000015a3 movaps %xmm7, -0x80(%rbp) 00000001000015a7 movq -0x1b0(%rbp), %rax 00000001000015ae movq %rax, -0xf8(%rbp) 00000001000015b5 movq -0x1b8(%rbp), %rcx 00000001000015bc movq %rcx, -0x100(%rbp) 00000001000015c3 movq -0x1c0(%rbp), %rdx 00000001000015ca movq %rdx, -0x108(%rbp) 00000001000015d1 movq -0x1c8(%rbp), %rsi 00000001000015d8 movq %rsi, -0x110(%rbp) 00000001000015df movq -0x1d0(%rbp), %rdi 00000001000015e6 movq %rdi, -0x118(%rbp) 00000001000015ed movq -0x1a8(%rbp), %r8 00000001000015f4 movq 0xba3d(%rip), %r9 ## literal pool symbol address: ___stack_chk_guard 00000001000015fb movq (%r9), %r9 00000001000015fe movq %r9, -0x20(%rbp) 0000000100001602 movq %r8, -0x58(%rbp) 0000000100001606 leaq -0x120(%rbp), %r8 000000010000160d movq %r8, -0x30(%rbp) 0000000100001611 leaq 0x10(%rbp), %r9 0000000100001615 movq %r9, -0x38(%rbp) 0000000100001619 movl $0x30, -0x3c(%rbp) 0000000100001620 movl $0x8, -0x40(%rbp) 0000000100001627 movq -0x58(%rbp), %r10 000000010000162b xorl %r11d, %r11d 000000010000162e movl %r11d, %ebx 0000000100001631 movq $-0x1, %r14 0000000100001638 leaq -0x40(%rbp), %r15 000000010000163c movq %rbx, %rdi 000000010000163f movq %rbx, %rsi 0000000100001642 movl %r11d, %edx 0000000100001645 movq %r14, %rcx 0000000100001648 movq %r8, -0x1d8(%rbp) 000000010000164f movq %r10, %r8 0000000100001652 movq %r9, -0x1e0(%rbp) 0000000100001659 movq %r15, %r9 000000010000165c movq %r15, -0x1e8(%rbp) 0000000100001663 movl %r11d, -0x1ec(%rbp) 000000010000166a movq %r14, -0x1f8(%rbp) 0000000100001671 callq 0x10000a5b6 ## symbol stub for: ___vsnprintf_chk 0000000100001676 incl %eax 0000000100001678 movslq %eax, %rcx 000000010000167b movq %rcx, -0x60(%rbp) 000000010000167f movq -0x60(%rbp), %rdi 0000000100001683 callq 0x10000a5fe ## symbol stub for: _malloc 0000000100001688 movq %rax, -0x68(%rbp) 000000010000168c movq -0x1d8(%rbp), %rax 0000000100001693 movq %rax, -0x30(%rbp) 0000000100001697 movq -0x1e0(%rbp), %rcx 000000010000169e movq %rcx, -0x38(%rbp) 00000001000016a2 movl $0x30, -0x3c(%rbp) 00000001000016a9 movl $0x8, -0x40(%rbp) 00000001000016b0 movq -0x68(%rbp), %rdi 00000001000016b4 movq -0x58(%rbp), %rcx 00000001000016b8 movl -0x1ec(%rbp), %esi 00000001000016be movq -0x1f8(%rbp), %rdx 00000001000016c5 movq -0x1e8(%rbp), %r8 00000001000016cc callq 0x10000a5bc ## symbol stub for: ___vsprintf_chk 00000001000016d1 movq -0x68(%rbp), %rdi 00000001000016d5 movl %eax, -0x1fc(%rbp) 00000001000016db callq _tos2 00000001000016e0 movq %rax, -0x50(%rbp) 00000001000016e4 movl %edx, -0x48(%rbp) 00000001000016e7 movl -0x48(%rbp), %edx 00000001000016ea movq -0x50(%rbp), %rax 00000001000016ee movq 0xb943(%rip), %rcx ## literal pool symbol address: ___stack_chk_guard 00000001000016f5 movq (%rcx), %rcx 00000001000016f8 movq -0x20(%rbp), %rdi 00000001000016fc cmpq %rdi, %rcx 00000001000016ff movl %edx, -0x200(%rbp) 0000000100001705 movq %rax, -0x208(%rbp) 000000010000170c jne 0x10000172d 0000000100001712 movq -0x208(%rbp), %rax 0000000100001719 movl -0x200(%rbp), %edx 000000010000171f addq $0x1f8, %rsp 0000000100001726 popq %rbx 0000000100001727 popq %r14 0000000100001729 popq %r15 000000010000172b popq %rbp 000000010000172c retq 000000010000172d callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail 0000000100001732 ud2 0000000100001734 nopw %cs:(%rax,%rax) _array_first: 0000000100001740 pushq %rbp 0000000100001741 movq %rsp, %rbp 0000000100001744 subq $0x20, %rsp 0000000100001748 leaq 0x10(%rbp), %rax 000000010000174c cmpl $0x0, 0x8(%rax) 0000000100001750 movq %rax, -0x18(%rbp) 0000000100001754 jne 0x100001779 000000010000175a leaq 0x9052(%rip), %rdi ## literal pool for: "array.first: empty array" 0000000100001761 callq _tos3 0000000100001766 movq %rax, -0x10(%rbp) 000000010000176a movl %edx, -0x8(%rbp) 000000010000176d movq -0x10(%rbp), %rdi 0000000100001771 movl -0x8(%rbp), %esi 0000000100001774 callq _v_panic 0000000100001779 movq -0x18(%rbp), %rax 000000010000177d movq (%rax), %rax 0000000100001780 addq $0x20, %rsp 0000000100001784 popq %rbp 0000000100001785 retq 0000000100001786 nopw %cs:(%rax,%rax) _array_last: 0000000100001790 pushq %rbp 0000000100001791 movq %rsp, %rbp 0000000100001794 subq $0x20, %rsp 0000000100001798 leaq 0x10(%rbp), %rax 000000010000179c cmpl $0x0, 0x8(%rax) 00000001000017a0 movq %rax, -0x18(%rbp) 00000001000017a4 jne 0x1000017c9 00000001000017aa leaq 0x901b(%rip), %rdi ## literal pool for: "array.last: empty array" 00000001000017b1 callq _tos3 00000001000017b6 movq %rax, -0x10(%rbp) 00000001000017ba movl %edx, -0x8(%rbp) 00000001000017bd movq -0x10(%rbp), %rdi 00000001000017c1 movl -0x8(%rbp), %esi 00000001000017c4 callq _v_panic 00000001000017c9 movq -0x18(%rbp), %rax 00000001000017cd movq (%rax), %rcx 00000001000017d0 movl 0x8(%rax), %edx 00000001000017d3 subl $0x1, %edx 00000001000017d6 imull 0x10(%rax), %edx 00000001000017da movslq %edx, %rsi 00000001000017dd addq %rsi, %rcx 00000001000017e0 movq %rcx, %rax 00000001000017e3 addq $0x20, %rsp 00000001000017e7 popq %rbp 00000001000017e8 retq 00000001000017e9 nopl (%rax) _array_left: 00000001000017f0 pushq %rbp 00000001000017f1 movq %rsp, %rbp 00000001000017f4 subq $0x40, %rsp 00000001000017f8 movq %rdi, %rax 00000001000017fb leaq 0x10(%rbp), %rcx 00000001000017ff movl %esi, -0x4(%rbp) 0000000100001802 movl -0x4(%rbp), %esi 0000000100001805 cmpl 0x8(%rcx), %esi 0000000100001808 movq %rax, -0x10(%rbp) 000000010000180c movq %rcx, -0x18(%rbp) 0000000100001810 movq %rdi, -0x20(%rbp) 0000000100001814 jl 0x10000183d 000000010000181a movq -0x18(%rbp), %rax 000000010000181e movq (%rax), %rcx 0000000100001821 movq -0x20(%rbp), %rdx 0000000100001825 movq %rcx, (%rdx) 0000000100001828 movq 0x8(%rax), %rcx 000000010000182c movq %rcx, 0x8(%rdx) 0000000100001830 movq 0x10(%rax), %rcx 0000000100001834 movq %rcx, 0x10(%rdx) 0000000100001838 jmp 0x100001868 000000010000183d xorl %esi, %esi 000000010000183f movl -0x4(%rbp), %edx 0000000100001842 movq -0x20(%rbp), %rdi 0000000100001846 movq -0x18(%rbp), %rax 000000010000184a movq (%rax), %rcx 000000010000184d movq %rcx, (%rsp) 0000000100001851 movq 0x8(%rax), %rcx 0000000100001855 movq %rcx, 0x8(%rsp) 000000010000185a movq 0x10(%rax), %rcx 000000010000185e movq %rcx, 0x10(%rsp) 0000000100001863 callq _array_slice 0000000100001868 movq -0x10(%rbp), %rax 000000010000186c addq $0x40, %rsp 0000000100001870 popq %rbp 0000000100001871 retq 0000000100001872 nopw %cs:(%rax,%rax) _array_slice: 0000000100001880 pushq %rbp 0000000100001881 movq %rsp, %rbp 0000000100001884 subq $0x60, %rsp 0000000100001888 movq %rdi, %rax 000000010000188b leaq 0x10(%rbp), %rcx 000000010000188f movl %esi, -0x4(%rbp) 0000000100001892 movl %edx, -0x8(%rbp) 0000000100001895 movl -0x8(%rbp), %edx 0000000100001898 movl %edx, -0xc(%rbp) 000000010000189b movl -0x4(%rbp), %edx 000000010000189e cmpl -0xc(%rbp), %edx 00000001000018a1 movq %rax, -0x50(%rbp) 00000001000018a5 movq %rdi, -0x58(%rbp) 00000001000018a9 movq %rcx, -0x60(%rbp) 00000001000018ad jle 0x1000018da 00000001000018b3 leaq 0x8f2a(%rip), %rdi ## literal pool for: "invalid slice index: %d > %d" 00000001000018ba movl -0x4(%rbp), %esi 00000001000018bd movl -0xc(%rbp), %edx 00000001000018c0 movb $0x0, %al 00000001000018c2 callq __STR 00000001000018c7 movq %rax, -0x20(%rbp) 00000001000018cb movl %edx, -0x18(%rbp) 00000001000018ce movq -0x20(%rbp), %rdi 00000001000018d2 movl -0x18(%rbp), %esi 00000001000018d5 callq _v_panic 00000001000018da movl -0xc(%rbp), %eax 00000001000018dd movq -0x60(%rbp), %rcx 00000001000018e1 cmpl 0x8(%rcx), %eax 00000001000018e4 jle 0x100001915 00000001000018ea leaq 0x8f10(%rip), %rdi ## literal pool for: "runtime error: slice bounds out of range (%d >= %d)" 00000001000018f1 movl -0xc(%rbp), %esi 00000001000018f4 movq -0x60(%rbp), %rax 00000001000018f8 movl 0x8(%rax), %edx 00000001000018fb movb $0x0, %al 00000001000018fd callq __STR 0000000100001902 movq %rax, -0x30(%rbp) 0000000100001906 movl %edx, -0x28(%rbp) 0000000100001909 movq -0x30(%rbp), %rdi 000000010000190d movl -0x28(%rbp), %esi 0000000100001910 callq _v_panic 0000000100001915 cmpl $0x0, -0x4(%rbp) 0000000100001919 jge 0x100001943 000000010000191f leaq 0x8f0f(%rip), %rdi ## literal pool for: "runtime error: slice bounds out of range (%d < 0)" 0000000100001926 movl -0x4(%rbp), %esi 0000000100001929 movb $0x0, %al 000000010000192b callq __STR 0000000100001930 movq %rax, -0x40(%rbp) 0000000100001934 movl %edx, -0x38(%rbp) 0000000100001937 movq -0x40(%rbp), %rdi 000000010000193b movl -0x38(%rbp), %esi 000000010000193e callq _v_panic 0000000100001943 movl -0xc(%rbp), %eax 0000000100001946 subl -0x4(%rbp), %eax 0000000100001949 movl %eax, -0x44(%rbp) 000000010000194c movq -0x60(%rbp), %rcx 0000000100001950 movq (%rcx), %rdx 0000000100001953 movl -0x4(%rbp), %eax 0000000100001956 imull 0x10(%rcx), %eax 000000010000195a movslq %eax, %rsi 000000010000195d addq %rsi, %rdx 0000000100001960 movq -0x58(%rbp), %rsi 0000000100001964 movq %rdx, (%rsi) 0000000100001967 movl -0x44(%rbp), %eax 000000010000196a movl %eax, 0x8(%rsi) 000000010000196d movl -0x44(%rbp), %eax 0000000100001970 movl %eax, 0xc(%rsi) 0000000100001973 movl 0x10(%rcx), %eax 0000000100001976 movl %eax, 0x10(%rsi) 0000000100001979 movq -0x50(%rbp), %rax 000000010000197d addq $0x60, %rsp 0000000100001981 popq %rbp 0000000100001982 retq 0000000100001983 nopw %cs:(%rax,%rax) _array_right: 0000000100001990 pushq %rbp 0000000100001991 movq %rsp, %rbp 0000000100001994 subq $0x40, %rsp 0000000100001998 movq %rdi, %rax 000000010000199b leaq 0x10(%rbp), %rcx 000000010000199f movl %esi, -0x4(%rbp) 00000001000019a2 movl -0x4(%rbp), %esi 00000001000019a5 cmpl 0x8(%rcx), %esi 00000001000019a8 movq %rax, -0x10(%rbp) 00000001000019ac movq %rcx, -0x18(%rbp) 00000001000019b0 movq %rdi, -0x20(%rbp) 00000001000019b4 jl 0x1000019d5 00000001000019ba xorl %eax, %eax 00000001000019bc movq -0x18(%rbp), %rcx 00000001000019c0 movl 0x10(%rcx), %ecx 00000001000019c3 movq -0x20(%rbp), %rdi 00000001000019c7 movl %eax, %esi 00000001000019c9 movl %eax, %edx 00000001000019cb callq _new_array 00000001000019d0 jmp 0x100001a01 00000001000019d5 movl -0x4(%rbp), %esi 00000001000019d8 movq -0x18(%rbp), %rax 00000001000019dc movl 0x8(%rax), %edx 00000001000019df movq -0x20(%rbp), %rdi 00000001000019e3 movq (%rax), %rcx 00000001000019e6 movq %rcx, (%rsp) 00000001000019ea movq 0x8(%rax), %rcx 00000001000019ee movq %rcx, 0x8(%rsp) 00000001000019f3 movq 0x10(%rax), %rcx 00000001000019f7 movq %rcx, 0x10(%rsp) 00000001000019fc callq _array_slice 0000000100001a01 movq -0x10(%rbp), %rax 0000000100001a05 addq $0x40, %rsp 0000000100001a09 popq %rbp 0000000100001a0a retq 0000000100001a0b nopl (%rax,%rax) _array_push_many: 0000000100001a10 pushq %rbp 0000000100001a11 movq %rsp, %rbp 0000000100001a14 subq $0x20, %rsp 0000000100001a18 movq %rdi, -0x8(%rbp) 0000000100001a1c movq %rsi, -0x10(%rbp) 0000000100001a20 movl %edx, -0x14(%rbp) 0000000100001a23 movq -0x8(%rbp), %rsi 0000000100001a27 movl 0x8(%rsi), %edx 0000000100001a2a movq -0x8(%rbp), %rsi 0000000100001a2e movl 0xc(%rsi), %eax 0000000100001a31 subl -0x14(%rbp), %eax 0000000100001a34 cmpl %eax, %edx 0000000100001a36 jl 0x100001aa3 0000000100001a3c movq -0x8(%rbp), %rax 0000000100001a40 movl 0x8(%rax), %ecx 0000000100001a43 addl -0x14(%rbp), %ecx 0000000100001a46 shll $0x1, %ecx 0000000100001a49 movl %ecx, -0x18(%rbp) 0000000100001a4c movq -0x8(%rbp), %rax 0000000100001a50 cmpl $0x0, 0xc(%rax) 0000000100001a54 jne 0x100001a78 0000000100001a5a movl -0x18(%rbp), %eax 0000000100001a5d movq -0x8(%rbp), %rcx 0000000100001a61 imull 0x10(%rcx), %eax 0000000100001a65 movl %eax, %edi 0000000100001a67 callq _v_calloc 0000000100001a6c movq -0x8(%rbp), %rcx 0000000100001a70 movq %rax, (%rcx) 0000000100001a73 jmp 0x100001a99 0000000100001a78 movq -0x8(%rbp), %rax 0000000100001a7c movq (%rax), %rdi 0000000100001a7f movl -0x18(%rbp), %ecx 0000000100001a82 movq -0x8(%rbp), %rax 0000000100001a86 imull 0x10(%rax), %ecx 0000000100001a8a movslq %ecx, %rsi 0000000100001a8d callq 0x10000a616 ## symbol stub for: _realloc 0000000100001a92 movq -0x8(%rbp), %rsi 0000000100001a96 movq %rax, (%rsi) 0000000100001a99 movl -0x18(%rbp), %eax 0000000100001a9c movq -0x8(%rbp), %rcx 0000000100001aa0 movl %eax, 0xc(%rcx) 0000000100001aa3 movq $-0x1, %rcx 0000000100001aaa movq -0x8(%rbp), %rax 0000000100001aae movq (%rax), %rax 0000000100001ab1 movq -0x8(%rbp), %rdx 0000000100001ab5 movl 0x10(%rdx), %esi 0000000100001ab8 movq -0x8(%rbp), %rdx 0000000100001abc imull 0x8(%rdx), %esi 0000000100001ac0 movslq %esi, %rdx 0000000100001ac3 addq %rdx, %rax 0000000100001ac6 movq -0x10(%rbp), %rsi 0000000100001aca movq -0x8(%rbp), %rdx 0000000100001ace movl 0x10(%rdx), %edi 0000000100001ad1 imull -0x14(%rbp), %edi 0000000100001ad5 movslq %edi, %rdx 0000000100001ad8 movq %rax, %rdi 0000000100001adb callq 0x10000a598 ## symbol stub for: ___memcpy_chk 0000000100001ae0 movl -0x14(%rbp), %r8d 0000000100001ae4 movq -0x8(%rbp), %rcx 0000000100001ae8 addl 0x8(%rcx), %r8d 0000000100001aec movl %r8d, 0x8(%rcx) 0000000100001af0 movq %rax, -0x20(%rbp) 0000000100001af4 addq $0x20, %rsp 0000000100001af8 popq %rbp 0000000100001af9 retq 0000000100001afa nopw (%rax,%rax) _array_reverse: 0000000100001b00 pushq %rbp 0000000100001b01 movq %rsp, %rbp 0000000100001b04 subq $0x50, %rsp 0000000100001b08 movq %rdi, %rax 0000000100001b0b leaq 0x10(%rbp), %rcx 0000000100001b0f movl 0xc(%rcx), %edx 0000000100001b12 imull 0x10(%rcx), %edx 0000000100001b16 movq %rdi, -0x10(%rbp) 0000000100001b1a movl %edx, %edi 0000000100001b1c movq %rcx, -0x18(%rbp) 0000000100001b20 movq %rax, -0x20(%rbp) 0000000100001b24 callq _v_calloc 0000000100001b29 movq -0x10(%rbp), %rcx 0000000100001b2d movq %rax, (%rcx) 0000000100001b30 movq -0x18(%rbp), %rax 0000000100001b34 movl 0x8(%rax), %edx 0000000100001b37 movl %edx, 0x8(%rcx) 0000000100001b3a movl 0xc(%rax), %edx 0000000100001b3d movl %edx, 0xc(%rcx) 0000000100001b40 movl 0x10(%rax), %edx 0000000100001b43 movl %edx, 0x10(%rcx) 0000000100001b46 movl $0x0, -0x4(%rbp) 0000000100001b4d movl -0x4(%rbp), %eax 0000000100001b50 movq -0x18(%rbp), %rcx 0000000100001b54 cmpl 0x8(%rcx), %eax 0000000100001b57 jge 0x100001bcf 0000000100001b5d movq -0x10(%rbp), %rax 0000000100001b61 movq (%rax), %rcx 0000000100001b64 movl -0x4(%rbp), %edx 0000000100001b67 imull 0x10(%rax), %edx 0000000100001b6b movslq %edx, %rsi 0000000100001b6e addq %rsi, %rcx 0000000100001b71 movq -0x18(%rbp), %rsi 0000000100001b75 movl 0x8(%rsi), %edx 0000000100001b78 subl $0x1, %edx 0000000100001b7b subl -0x4(%rbp), %edx 0000000100001b7e movq (%rsi), %rdi 0000000100001b81 movq %rdi, (%rsp) 0000000100001b85 movq 0x8(%rsi), %rdi 0000000100001b89 movq %rdi, 0x8(%rsp) 0000000100001b8e movq 0x10(%rsi), %rdi 0000000100001b92 movq %rdi, 0x10(%rsp) 0000000100001b97 movl %edx, %edi 0000000100001b99 movq %rcx, -0x28(%rbp) 0000000100001b9d callq _array_get 0000000100001ba2 movq $-0x1, %rcx 0000000100001ba9 movq -0x10(%rbp), %rsi 0000000100001bad movslq 0x10(%rsi), %rdx 0000000100001bb1 movq -0x28(%rbp), %rdi 0000000100001bb5 movq %rax, %rsi 0000000100001bb8 callq 0x10000a598 ## symbol stub for: ___memcpy_chk 0000000100001bbd movq %rax, -0x30(%rbp) 0000000100001bc1 movl -0x4(%rbp), %eax 0000000100001bc4 addl $0x1, %eax 0000000100001bc7 movl %eax, -0x4(%rbp) 0000000100001bca jmp 0x100001b4d 0000000100001bcf movq -0x20(%rbp), %rax 0000000100001bd3 addq $0x50, %rsp 0000000100001bd7 popq %rbp 0000000100001bd8 retq 0000000100001bd9 nopl (%rax) _array_clone: 0000000100001be0 pushq %rbp 0000000100001be1 movq %rsp, %rbp 0000000100001be4 subq $0x20, %rsp 0000000100001be8 movq %rdi, %rax 0000000100001beb leaq 0x10(%rbp), %rcx 0000000100001bef movl 0xc(%rcx), %edx 0000000100001bf2 imull 0x10(%rcx), %edx 0000000100001bf6 movq %rdi, -0x8(%rbp) 0000000100001bfa movl %edx, %edi 0000000100001bfc movq %rcx, -0x10(%rbp) 0000000100001c00 movq %rax, -0x18(%rbp) 0000000100001c04 callq _v_calloc 0000000100001c09 movq $-0x1, %rcx 0000000100001c10 movq -0x8(%rbp), %rsi 0000000100001c14 movq %rax, (%rsi) 0000000100001c17 movq -0x10(%rbp), %rax 0000000100001c1b movl 0x8(%rax), %edx 0000000100001c1e movl %edx, 0x8(%rsi) 0000000100001c21 movl 0xc(%rax), %edx 0000000100001c24 movl %edx, 0xc(%rsi) 0000000100001c27 movl 0x10(%rax), %edx 0000000100001c2a movl %edx, 0x10(%rsi) 0000000100001c2d movq (%rsi), %rdi 0000000100001c30 movq (%rax), %rsi 0000000100001c33 movl 0xc(%rax), %edx 0000000100001c36 imull 0x10(%rax), %edx 0000000100001c3a movslq %edx, %rdx 0000000100001c3d callq 0x10000a598 ## symbol stub for: ___memcpy_chk 0000000100001c42 movq -0x18(%rbp), %rcx 0000000100001c46 movq %rax, -0x20(%rbp) 0000000100001c4a movq %rcx, %rax 0000000100001c4d addq $0x20, %rsp 0000000100001c51 popq %rbp 0000000100001c52 retq 0000000100001c53 nopw %cs:(%rax,%rax) _v_array_free: 0000000100001c60 pushq %rbp 0000000100001c61 movq %rsp, %rbp 0000000100001c64 leaq 0x10(%rbp), %rax 0000000100001c68 movq (%rax), %rdi 0000000100001c6b callq 0x10000a5ec ## symbol stub for: _free 0000000100001c70 popq %rbp 0000000100001c71 retq 0000000100001c72 nopw %cs:(%rax,%rax) _array_string_str: 0000000100001c80 pushq %rbp 0000000100001c81 movq %rsp, %rbp 0000000100001c84 subq $0xc0, %rsp 0000000100001c8b leaq 0x10(%rbp), %rax 0000000100001c8f leaq -0x30(%rbp), %rdi 0000000100001c93 imull $0x3, 0x8(%rax), %esi 0000000100001c97 movq %rax, -0xa0(%rbp) 0000000100001c9e callq _strings__new_builder 0000000100001ca3 leaq 0x8bdf(%rip), %rdi ## literal pool for: "[" 0000000100001caa callq _tos3 0000000100001caf leaq -0x30(%rbp), %rdi 0000000100001cb3 movq %rax, -0x40(%rbp) 0000000100001cb7 movl %edx, -0x38(%rbp) 0000000100001cba movq -0x40(%rbp), %rsi 0000000100001cbe movl -0x38(%rbp), %edx 0000000100001cc1 callq _strings__Builder_write 0000000100001cc6 movl $0x0, -0x44(%rbp) 0000000100001ccd movl -0x44(%rbp), %eax 0000000100001cd0 movq -0xa0(%rbp), %rcx 0000000100001cd7 cmpl 0x8(%rcx), %eax 0000000100001cda jge 0x100001dc4 0000000100001ce0 movl -0x44(%rbp), %edi 0000000100001ce3 movq -0xa0(%rbp), %rax 0000000100001cea movq (%rax), %rcx 0000000100001ced movq %rcx, (%rsp) 0000000100001cf1 movq 0x8(%rax), %rcx 0000000100001cf5 movq %rcx, 0x8(%rsp) 0000000100001cfa movq 0x10(%rax), %rcx 0000000100001cfe movq %rcx, 0x10(%rsp) 0000000100001d03 callq _array_get 0000000100001d08 leaq 0x8b7c(%rip), %rdi ## literal pool for: "\"" 0000000100001d0f movq (%rax), %rcx 0000000100001d12 movq %rcx, -0x58(%rbp) 0000000100001d16 movq 0x8(%rax), %rax 0000000100001d1a movq %rax, -0x50(%rbp) 0000000100001d1e callq _tos3 0000000100001d23 leaq -0x30(%rbp), %rdi 0000000100001d27 movq %rax, -0x68(%rbp) 0000000100001d2b movl %edx, -0x60(%rbp) 0000000100001d2e movq -0x68(%rbp), %rsi 0000000100001d32 movl -0x60(%rbp), %edx 0000000100001d35 callq _strings__Builder_write 0000000100001d3a leaq -0x30(%rbp), %rdi 0000000100001d3e movq -0x58(%rbp), %rsi 0000000100001d42 movl -0x50(%rbp), %edx 0000000100001d45 callq _strings__Builder_write 0000000100001d4a leaq 0x8b3a(%rip), %rdi ## literal pool for: "\"" 0000000100001d51 callq _tos3 0000000100001d56 leaq -0x30(%rbp), %rdi 0000000100001d5a movq %rax, -0x78(%rbp) 0000000100001d5e movl %edx, -0x70(%rbp) 0000000100001d61 movq -0x78(%rbp), %rsi 0000000100001d65 movl -0x70(%rbp), %edx 0000000100001d68 callq _strings__Builder_write 0000000100001d6d movl -0x44(%rbp), %edx 0000000100001d70 movq -0xa0(%rbp), %rax 0000000100001d77 movl 0x8(%rax), %r8d 0000000100001d7b subl $0x1, %r8d 0000000100001d7f cmpl %r8d, %edx 0000000100001d82 jge 0x100001db1 0000000100001d88 leaq 0x8afe(%rip), %rdi ## literal pool for: ", " 0000000100001d8f callq _tos3 0000000100001d94 leaq -0x30(%rbp), %rdi 0000000100001d98 movq %rax, -0x88(%rbp) 0000000100001d9f movl %edx, -0x80(%rbp) 0000000100001da2 movq -0x88(%rbp), %rsi 0000000100001da9 movl -0x80(%rbp), %edx 0000000100001dac callq _strings__Builder_write 0000000100001db1 jmp 0x100001db6 0000000100001db6 movl -0x44(%rbp), %eax 0000000100001db9 addl $0x1, %eax 0000000100001dbc movl %eax, -0x44(%rbp) 0000000100001dbf jmp 0x100001ccd 0000000100001dc4 leaq 0x8ac5(%rip), %rdi ## literal pool for: "]" 0000000100001dcb callq _tos3 0000000100001dd0 movq %rax, -0x98(%rbp) 0000000100001dd7 movl %edx, -0x90(%rbp) 0000000100001ddd movq -0x98(%rbp), %rsi 0000000100001de4 movl -0x90(%rbp), %edx 0000000100001dea leaq -0x30(%rbp), %rdi 0000000100001dee callq _strings__Builder_write 0000000100001df3 movq -0x18(%rbp), %rax 0000000100001df7 movq %rsp, %rsi 0000000100001dfa movq %rax, 0x18(%rsi) 0000000100001dfe movq -0x20(%rbp), %rax 0000000100001e02 movq %rax, 0x10(%rsi) 0000000100001e06 movq -0x30(%rbp), %rax 0000000100001e0a movq -0x28(%rbp), %rdi 0000000100001e0e movq %rdi, 0x8(%rsi) 0000000100001e12 movq %rax, (%rsi) 0000000100001e15 callq _strings__Builder_str 0000000100001e1a movq %rax, -0x10(%rbp) 0000000100001e1e movl %edx, -0x8(%rbp) 0000000100001e21 movq -0x10(%rbp), %rax 0000000100001e25 movl -0x8(%rbp), %edx 0000000100001e28 addq $0xc0, %rsp 0000000100001e2f popq %rbp 0000000100001e30 retq 0000000100001e31 nopw %cs:(%rax,%rax) _strings__new_builder: 0000000100001e40 pushq %rbp 0000000100001e41 movq %rsp, %rbp 0000000100001e44 subq $0x20, %rsp 0000000100001e48 movq %rdi, %rax 0000000100001e4b xorl %ecx, %ecx 0000000100001e4d movl $0x1, %edx 0000000100001e52 movl %esi, -0x4(%rbp) 0000000100001e55 movl -0x4(%rbp), %esi 0000000100001e58 movq %rdi, -0x10(%rbp) 0000000100001e5c movl %esi, -0x14(%rbp) 0000000100001e5f movl %ecx, %esi 0000000100001e61 movl -0x14(%rbp), %ecx 0000000100001e64 movl %edx, -0x18(%rbp) 0000000100001e67 movl %ecx, %edx 0000000100001e69 movl -0x18(%rbp), %ecx 0000000100001e6c movq %rax, -0x20(%rbp) 0000000100001e70 callq _make 0000000100001e75 movq -0x10(%rbp), %rax 0000000100001e79 movl $0x0, 0x18(%rax) 0000000100001e80 movq -0x20(%rbp), %rax 0000000100001e84 addq $0x20, %rsp 0000000100001e88 popq %rbp 0000000100001e89 retq 0000000100001e8a nopw (%rax,%rax) _strings__Builder_write: 0000000100001e90 pushq %rbp 0000000100001e91 movq %rsp, %rbp 0000000100001e94 subq $0x20, %rsp 0000000100001e98 movq %rsi, -0x10(%rbp) 0000000100001e9c movl %edx, -0x8(%rbp) 0000000100001e9f movq %rdi, -0x18(%rbp) 0000000100001ea3 movq -0x18(%rbp), %rdi 0000000100001ea7 movq -0x10(%rbp), %rsi 0000000100001eab movl -0x8(%rbp), %edx 0000000100001eae callq _array_push_many 0000000100001eb3 movl -0x8(%rbp), %edx 0000000100001eb6 movq -0x18(%rbp), %rsi 0000000100001eba addl 0x18(%rsi), %edx 0000000100001ebd movl %edx, 0x18(%rsi) 0000000100001ec0 addq $0x20, %rsp 0000000100001ec4 popq %rbp 0000000100001ec5 retq 0000000100001ec6 nopw %cs:(%rax,%rax) _strings__Builder_str: 0000000100001ed0 pushq %rbp 0000000100001ed1 movq %rsp, %rbp 0000000100001ed4 subq $0x10, %rsp 0000000100001ed8 leaq 0x10(%rbp), %rax 0000000100001edc movq (%rax), %rdi 0000000100001edf movl 0x18(%rax), %esi 0000000100001ee2 callq _tos 0000000100001ee7 movq %rax, -0x10(%rbp) 0000000100001eeb movl %edx, -0x8(%rbp) 0000000100001eee movq -0x10(%rbp), %rax 0000000100001ef2 movl -0x8(%rbp), %edx 0000000100001ef5 addq $0x10, %rsp 0000000100001ef9 popq %rbp 0000000100001efa retq 0000000100001efb nopl (%rax,%rax) _array_byte_hex: 0000000100001f00 pushq %rbp 0000000100001f01 movq %rsp, %rbp 0000000100001f04 subq $0x60, %rsp 0000000100001f08 leaq 0x10(%rbp), %rax 0000000100001f0c movl 0x8(%rax), %ecx 0000000100001f0f shll $0x1, %ecx 0000000100001f12 addl $0x1, %ecx 0000000100001f15 movl %ecx, %edi 0000000100001f17 movq %rax, -0x30(%rbp) 0000000100001f1b callq _v_malloc 0000000100001f20 movq %rax, -0x18(%rbp) 0000000100001f24 movq -0x18(%rbp), %rax 0000000100001f28 movq %rax, -0x20(%rbp) 0000000100001f2c movl $0x0, -0x24(%rbp) 0000000100001f33 movl -0x24(%rbp), %eax 0000000100001f36 movq -0x30(%rbp), %rcx 0000000100001f3a cmpl 0x8(%rcx), %eax 0000000100001f3d jge 0x100001fb5 0000000100001f43 movq $-0x1, %rdx 0000000100001f4a movq -0x20(%rbp), %rdi 0000000100001f4e movl -0x24(%rbp), %eax 0000000100001f51 movq -0x30(%rbp), %rcx 0000000100001f55 movq (%rcx), %rsi 0000000100001f58 movq %rsi, (%rsp) 0000000100001f5c movq 0x8(%rcx), %rsi 0000000100001f60 movq %rsi, 0x8(%rsp) 0000000100001f65 movq 0x10(%rcx), %rsi 0000000100001f69 movq %rsi, 0x10(%rsp) 0000000100001f6e movq %rdi, -0x38(%rbp) 0000000100001f72 movl %eax, %edi 0000000100001f74 movq %rdx, -0x40(%rbp) 0000000100001f78 callq _array_get 0000000100001f7d xorl %esi, %esi 0000000100001f7f leaq 0x890c(%rip), %rcx ## literal pool for: "%02x" 0000000100001f86 movzbl (%rax), %r8d 0000000100001f8a movq -0x38(%rbp), %rdi 0000000100001f8e movq -0x40(%rbp), %rdx 0000000100001f92 movb $0x0, %al 0000000100001f94 callq 0x10000a5aa ## symbol stub for: ___sprintf_chk 0000000100001f99 movq -0x20(%rbp), %rcx 0000000100001f9d movslq %eax, %rdx 0000000100001fa0 addq %rdx, %rcx 0000000100001fa3 movq %rcx, -0x20(%rbp) 0000000100001fa7 movl -0x24(%rbp), %eax 0000000100001faa addl $0x1, %eax 0000000100001fad movl %eax, -0x24(%rbp) 0000000100001fb0 jmp 0x100001f33 0000000100001fb5 movq -0x18(%rbp), %rdi 0000000100001fb9 callq _tos2 0000000100001fbe movq %rax, -0x10(%rbp) 0000000100001fc2 movl %edx, -0x8(%rbp) 0000000100001fc5 movq -0x10(%rbp), %rax 0000000100001fc9 movl -0x8(%rbp), %edx 0000000100001fcc addq $0x60, %rsp 0000000100001fd0 popq %rbp 0000000100001fd1 retq 0000000100001fd2 nopw %cs:(%rax,%rax) _v_malloc: 0000000100001fe0 pushq %rbp 0000000100001fe1 movq %rsp, %rbp 0000000100001fe4 subq $0x30, %rsp 0000000100001fe8 movl %edi, -0x4(%rbp) 0000000100001feb cmpl $0x0, -0x4(%rbp) 0000000100001fef jge 0x100002014 0000000100001ff5 leaq 0x8976(%rip), %rdi ## literal pool for: "malloc(<0)" 0000000100001ffc callq _tos3 0000000100002001 movq %rax, -0x18(%rbp) 0000000100002005 movl %edx, -0x10(%rbp) 0000000100002008 movq -0x18(%rbp), %rdi 000000010000200c movl -0x10(%rbp), %esi 000000010000200f callq _v_panic 0000000100002014 movslq -0x4(%rbp), %rdi 0000000100002018 callq 0x10000a5fe ## symbol stub for: _malloc 000000010000201d movq %rax, -0x20(%rbp) 0000000100002021 movq -0x20(%rbp), %rdi 0000000100002025 callq _isnil 000000010000202a testb $0x1, %al 000000010000202c jne 0x100002037 0000000100002032 jmp 0x10000205b 0000000100002037 leaq 0x893f(%rip), %rdi ## literal pool for: "malloc(%d) failed" 000000010000203e movl -0x4(%rbp), %esi 0000000100002041 movb $0x0, %al 0000000100002043 callq __STR 0000000100002048 movq %rax, -0x30(%rbp) 000000010000204c movl %edx, -0x28(%rbp) 000000010000204f movq -0x30(%rbp), %rdi 0000000100002053 movl -0x28(%rbp), %esi 0000000100002056 callq _v_panic 000000010000205b movq -0x20(%rbp), %rax 000000010000205f addq $0x30, %rsp 0000000100002063 popq %rbp 0000000100002064 retq 0000000100002065 nopw %cs:(%rax,%rax) _tos2: 0000000100002070 pushq %rbp 0000000100002071 movq %rsp, %rbp 0000000100002074 subq $0x30, %rsp 0000000100002078 movq %rdi, -0x18(%rbp) 000000010000207c cmpq $0x0, -0x18(%rbp) 0000000100002081 jne 0x1000020a6 0000000100002087 leaq 0x89bc(%rip), %rdi ## literal pool for: "tos2: nil string" 000000010000208e callq _tos3 0000000100002093 movq %rax, -0x28(%rbp) 0000000100002097 movl %edx, -0x20(%rbp) 000000010000209a movq -0x28(%rbp), %rdi 000000010000209e movl -0x20(%rbp), %esi 00000001000020a1 callq _v_panic 00000001000020a6 movq -0x18(%rbp), %rax 00000001000020aa movq %rax, -0x10(%rbp) 00000001000020ae movq -0x18(%rbp), %rdi 00000001000020b2 callq _vstrlen 00000001000020b7 movl %eax, -0x8(%rbp) 00000001000020ba movq -0x10(%rbp), %rax 00000001000020be movl -0x8(%rbp), %edx 00000001000020c1 addq $0x30, %rsp 00000001000020c5 popq %rbp 00000001000020c6 retq 00000001000020c7 nopw (%rax,%rax) _copy: 00000001000020d0 pushq %rbp 00000001000020d1 movq %rsp, %rbp 00000001000020d4 subq $0x60, %rsp 00000001000020d8 leaq 0x28(%rbp), %rax 00000001000020dc leaq 0x10(%rbp), %rcx 00000001000020e0 cmpl $0x0, 0x8(%rcx) 00000001000020e4 movq %rax, -0x28(%rbp) 00000001000020e8 movq %rcx, -0x30(%rbp) 00000001000020ec jle 0x10000219a 00000001000020f2 movq -0x28(%rbp), %rax 00000001000020f6 cmpl $0x0, 0x8(%rax) 00000001000020fa jle 0x10000219a 0000000100002100 movq -0x30(%rbp), %rax 0000000100002104 movl 0x8(%rax), %ecx 0000000100002107 movq -0x28(%rbp), %rdx 000000010000210b cmpl 0x8(%rdx), %ecx 000000010000210e jge 0x100002123 0000000100002114 movq -0x30(%rbp), %rax 0000000100002118 movl 0x8(%rax), %ecx 000000010000211b movl %ecx, -0x34(%rbp) 000000010000211e jmp 0x10000212d 0000000100002123 movq -0x28(%rbp), %rax 0000000100002127 movl 0x8(%rax), %ecx 000000010000212a movl %ecx, -0x34(%rbp) 000000010000212d movl -0x34(%rbp), %eax 0000000100002130 leaq -0x20(%rbp), %rdi 0000000100002134 movl %eax, -0x8(%rbp) 0000000100002137 movq -0x30(%rbp), %rcx 000000010000213b movq (%rcx), %rdx 000000010000213e movl -0x8(%rbp), %esi 0000000100002141 movq -0x28(%rbp), %r8 0000000100002145 movq (%r8), %r9 0000000100002148 movq %r9, (%rsp) 000000010000214c movq 0x8(%r8), %r9 0000000100002150 movq %r9, 0x8(%rsp) 0000000100002155 movq 0x10(%r8), %r9 0000000100002159 movq %r9, 0x10(%rsp) 000000010000215e movq %rdx, -0x40(%rbp) 0000000100002162 callq _array_left 0000000100002167 movq $-0x1, %rcx 000000010000216e movq -0x20(%rbp), %rsi 0000000100002172 movq -0x30(%rbp), %rdx 0000000100002176 movl 0x10(%rdx), %eax 0000000100002179 imull -0x8(%rbp), %eax 000000010000217d movslq %eax, %rdx 0000000100002180 movq -0x40(%rbp), %rdi 0000000100002184 callq 0x10000a598 ## symbol stub for: ___memcpy_chk 0000000100002189 movl -0x8(%rbp), %r10d 000000010000218d movl %r10d, -0x4(%rbp) 0000000100002191 movq %rax, -0x48(%rbp) 0000000100002195 jmp 0x1000021a1 000000010000219a movl $0x0, -0x4(%rbp) 00000001000021a1 movl -0x4(%rbp), %eax 00000001000021a4 addq $0x60, %rsp 00000001000021a8 popq %rbp 00000001000021a9 retq 00000001000021aa nopw (%rax,%rax) _compare_ints: 00000001000021b0 pushq %rbp 00000001000021b1 movq %rsp, %rbp 00000001000021b4 movq %rdi, -0x10(%rbp) 00000001000021b8 movq %rsi, -0x18(%rbp) 00000001000021bc movq -0x10(%rbp), %rsi 00000001000021c0 cmpq -0x18(%rbp), %rsi 00000001000021c4 jae 0x1000021d6 00000001000021ca movl $0xffffffff, -0x4(%rbp) 00000001000021d1 jmp 0x1000021f7 00000001000021d6 movq -0x10(%rbp), %rax 00000001000021da cmpq -0x18(%rbp), %rax 00000001000021de jbe 0x1000021f0 00000001000021e4 movl $0x1, -0x4(%rbp) 00000001000021eb jmp 0x1000021f7 00000001000021f0 movl $0x0, -0x4(%rbp) 00000001000021f7 movl -0x4(%rbp), %eax 00000001000021fa popq %rbp 00000001000021fb retq 00000001000021fc nopl (%rax) _array_int_sort: 0000000100002200 pushq %rbp 0000000100002201 movq %rsp, %rbp 0000000100002204 subq $0x10, %rsp 0000000100002208 leaq _compare_ints(%rip), %rax 000000010000220f movq %rdi, -0x8(%rbp) 0000000100002213 movq -0x8(%rbp), %rdi 0000000100002217 movq %rax, %rsi 000000010000221a callq _array_sort_with_compare 000000010000221f addq $0x10, %rsp 0000000100002223 popq %rbp 0000000100002224 retq 0000000100002225 nopw %cs:(%rax,%rax) _array_string_index: 0000000100002230 pushq %rbp 0000000100002231 movq %rsp, %rbp 0000000100002234 subq $0x40, %rsp 0000000100002238 leaq 0x10(%rbp), %rax 000000010000223c movq %rdi, -0x18(%rbp) 0000000100002240 movl %esi, -0x10(%rbp) 0000000100002243 movl $0x0, -0x1c(%rbp) 000000010000224a movq %rax, -0x28(%rbp) 000000010000224e movl -0x1c(%rbp), %eax 0000000100002251 movq -0x28(%rbp), %rcx 0000000100002255 cmpl 0x8(%rcx), %eax 0000000100002258 jge 0x1000022c0 000000010000225e movl -0x1c(%rbp), %edi 0000000100002261 movq -0x28(%rbp), %rax 0000000100002265 movq (%rax), %rcx 0000000100002268 movq %rcx, (%rsp) 000000010000226c movq 0x8(%rax), %rcx 0000000100002270 movq %rcx, 0x8(%rsp) 0000000100002275 movq 0x10(%rax), %rcx 0000000100002279 movq %rcx, 0x10(%rsp) 000000010000227e callq _array_get 0000000100002283 movq (%rax), %rdi 0000000100002286 movl 0x8(%rax), %esi 0000000100002289 movq -0x18(%rbp), %rdx 000000010000228d movl -0x10(%rbp), %ecx 0000000100002290 callq _string_eq 0000000100002295 testb $0x1, %al 0000000100002297 jne 0x1000022a2 000000010000229d jmp 0x1000022ad 00000001000022a2 movl -0x1c(%rbp), %eax 00000001000022a5 movl %eax, -0x4(%rbp) 00000001000022a8 jmp 0x1000022c7 00000001000022ad jmp 0x1000022b2 00000001000022b2 movl -0x1c(%rbp), %eax 00000001000022b5 addl $0x1, %eax 00000001000022b8 movl %eax, -0x1c(%rbp) 00000001000022bb jmp 0x10000224e 00000001000022c0 movl $0xffffffff, -0x4(%rbp) 00000001000022c7 movl -0x4(%rbp), %eax 00000001000022ca addq $0x40, %rsp 00000001000022ce popq %rbp 00000001000022cf retq _string_eq: 00000001000022d0 pushq %rbp 00000001000022d1 movq %rsp, %rbp 00000001000022d4 subq $0x40, %rsp 00000001000022d8 movq %rdi, -0x18(%rbp) 00000001000022dc movl %esi, -0x10(%rbp) 00000001000022df movq %rdx, -0x28(%rbp) 00000001000022e3 movl %ecx, -0x20(%rbp) 00000001000022e6 movq -0x18(%rbp), %rdi 00000001000022ea callq _isnil 00000001000022ef testb $0x1, %al 00000001000022f1 jne 0x1000022fc 00000001000022f7 jmp 0x10000231b 00000001000022fc leaq 0x8769(%rip), %rdi ## literal pool for: "string.eq(): nil string" 0000000100002303 callq _tos3 0000000100002308 movq %rax, -0x38(%rbp) 000000010000230c movl %edx, -0x30(%rbp) 000000010000230f movq -0x38(%rbp), %rdi 0000000100002313 movl -0x30(%rbp), %esi 0000000100002316 callq _v_panic 000000010000231b movl -0x10(%rbp), %eax 000000010000231e cmpl -0x20(%rbp), %eax 0000000100002321 je 0x100002330 0000000100002327 movb $0x0, -0x1(%rbp) 000000010000232b jmp 0x100002383 0000000100002330 movl $0x0, -0x3c(%rbp) 0000000100002337 movl -0x3c(%rbp), %eax 000000010000233a cmpl -0x10(%rbp), %eax 000000010000233d jge 0x10000237f 0000000100002343 movq -0x18(%rbp), %rax 0000000100002347 movslq -0x3c(%rbp), %rcx 000000010000234b movzbl (%rax,%rcx), %edx 000000010000234f movq -0x28(%rbp), %rax 0000000100002353 movslq -0x3c(%rbp), %rcx 0000000100002357 movzbl (%rax,%rcx), %esi 000000010000235b cmpl %esi, %edx 000000010000235d je 0x10000236c 0000000100002363 movb $0x0, -0x1(%rbp) 0000000100002367 jmp 0x100002383 000000010000236c jmp 0x100002371 0000000100002371 movl -0x3c(%rbp), %eax 0000000100002374 addl $0x1, %eax 0000000100002377 movl %eax, -0x3c(%rbp) 000000010000237a jmp 0x100002337 000000010000237f movb $0x1, -0x1(%rbp) 0000000100002383 movb -0x1(%rbp), %al 0000000100002386 andb $0x1, %al 0000000100002388 movzbl %al, %eax 000000010000238b addq $0x40, %rsp 000000010000238f popq %rbp 0000000100002390 retq 0000000100002391 nopw %cs:(%rax,%rax) _array_int_index: 00000001000023a0 pushq %rbp 00000001000023a1 movq %rsp, %rbp 00000001000023a4 subq $0x30, %rsp 00000001000023a8 leaq 0x10(%rbp), %rax 00000001000023ac movl %edi, -0x8(%rbp) 00000001000023af movl $0x0, -0xc(%rbp) 00000001000023b6 movq %rax, -0x18(%rbp) 00000001000023ba movl -0xc(%rbp), %eax 00000001000023bd movq -0x18(%rbp), %rcx 00000001000023c1 cmpl 0x8(%rcx), %eax 00000001000023c4 jge 0x100002418 00000001000023ca movl -0xc(%rbp), %edi 00000001000023cd movq -0x18(%rbp), %rax 00000001000023d1 movq (%rax), %rcx 00000001000023d4 movq %rcx, (%rsp) 00000001000023d8 movq 0x8(%rax), %rcx 00000001000023dc movq %rcx, 0x8(%rsp) 00000001000023e1 movq 0x10(%rax), %rcx 00000001000023e5 movq %rcx, 0x10(%rsp) 00000001000023ea callq _array_get 00000001000023ef movl (%rax), %edi 00000001000023f1 cmpl -0x8(%rbp), %edi 00000001000023f4 jne 0x100002405 00000001000023fa movl -0xc(%rbp), %eax 00000001000023fd movl %eax, -0x4(%rbp) 0000000100002400 jmp 0x10000241f 0000000100002405 jmp 0x10000240a 000000010000240a movl -0xc(%rbp), %eax 000000010000240d addl $0x1, %eax 0000000100002410 movl %eax, -0xc(%rbp) 0000000100002413 jmp 0x1000023ba 0000000100002418 movl $0xffffffff, -0x4(%rbp) 000000010000241f movl -0x4(%rbp), %eax 0000000100002422 addq $0x30, %rsp 0000000100002426 popq %rbp 0000000100002427 retq 0000000100002428 nopl (%rax,%rax) _array_byte_index: 0000000100002430 pushq %rbp 0000000100002431 movq %rsp, %rbp 0000000100002434 subq $0x30, %rsp 0000000100002438 movb %dil, %al 000000010000243b leaq 0x10(%rbp), %rcx 000000010000243f movb %al, -0x5(%rbp) 0000000100002442 movl $0x0, -0xc(%rbp) 0000000100002449 movq %rcx, -0x18(%rbp) 000000010000244d movl -0xc(%rbp), %eax 0000000100002450 movq -0x18(%rbp), %rcx 0000000100002454 cmpl 0x8(%rcx), %eax 0000000100002457 jge 0x1000024af 000000010000245d movl -0xc(%rbp), %edi 0000000100002460 movq -0x18(%rbp), %rax 0000000100002464 movq (%rax), %rcx 0000000100002467 movq %rcx, (%rsp) 000000010000246b movq 0x8(%rax), %rcx 000000010000246f movq %rcx, 0x8(%rsp) 0000000100002474 movq 0x10(%rax), %rcx 0000000100002478 movq %rcx, 0x10(%rsp) 000000010000247d callq _array_get 0000000100002482 movzbl (%rax), %edi 0000000100002485 movzbl -0x5(%rbp), %edx 0000000100002489 cmpl %edx, %edi 000000010000248b jne 0x10000249c 0000000100002491 movl -0xc(%rbp), %eax 0000000100002494 movl %eax, -0x4(%rbp) 0000000100002497 jmp 0x1000024b6 000000010000249c jmp 0x1000024a1 00000001000024a1 movl -0xc(%rbp), %eax 00000001000024a4 addl $0x1, %eax 00000001000024a7 movl %eax, -0xc(%rbp) 00000001000024aa jmp 0x10000244d 00000001000024af movl $0xffffffff, -0x4(%rbp) 00000001000024b6 movl -0x4(%rbp), %eax 00000001000024b9 addq $0x30, %rsp 00000001000024bd popq %rbp 00000001000024be retq 00000001000024bf nop _array_char_index: 00000001000024c0 pushq %rbp 00000001000024c1 movq %rsp, %rbp 00000001000024c4 subq $0x30, %rsp 00000001000024c8 movb %dil, %al 00000001000024cb leaq 0x10(%rbp), %rcx 00000001000024cf movb %al, -0x5(%rbp) 00000001000024d2 movl $0x0, -0xc(%rbp) 00000001000024d9 movq %rcx, -0x18(%rbp) 00000001000024dd movl -0xc(%rbp), %eax 00000001000024e0 movq -0x18(%rbp), %rcx 00000001000024e4 cmpl 0x8(%rcx), %eax 00000001000024e7 jge 0x10000253f 00000001000024ed movl -0xc(%rbp), %edi 00000001000024f0 movq -0x18(%rbp), %rax 00000001000024f4 movq (%rax), %rcx 00000001000024f7 movq %rcx, (%rsp) 00000001000024fb movq 0x8(%rax), %rcx 00000001000024ff movq %rcx, 0x8(%rsp) 0000000100002504 movq 0x10(%rax), %rcx 0000000100002508 movq %rcx, 0x10(%rsp) 000000010000250d callq _array_get 0000000100002512 movsbl (%rax), %edi 0000000100002515 movsbl -0x5(%rbp), %edx 0000000100002519 cmpl %edx, %edi 000000010000251b jne 0x10000252c 0000000100002521 movl -0xc(%rbp), %eax 0000000100002524 movl %eax, -0x4(%rbp) 0000000100002527 jmp 0x100002546 000000010000252c jmp 0x100002531 0000000100002531 movl -0xc(%rbp), %eax 0000000100002534 addl $0x1, %eax 0000000100002537 movl %eax, -0xc(%rbp) 000000010000253a jmp 0x1000024dd 000000010000253f movl $0xffffffff, -0x4(%rbp) 0000000100002546 movl -0x4(%rbp), %eax 0000000100002549 addq $0x30, %rsp 000000010000254d popq %rbp 000000010000254e retq 000000010000254f nop _array_string_filter2: 0000000100002550 pushq %rbp 0000000100002551 movq %rsp, %rbp 0000000100002554 subq $0x70, %rsp 0000000100002558 movq %rdi, %rax 000000010000255b leaq 0x10(%rbp), %rcx 000000010000255f xorl %edx, %edx 0000000100002561 movl $0x10, %r8d 0000000100002567 leaq -0x18(%rbp), %r9 000000010000256b movq 0xaac6(%rip), %r10 ## literal pool symbol address: ___stack_chk_guard 0000000100002572 movq (%r10), %r10 0000000100002575 movq %r10, -0x8(%rbp) 0000000100002579 movq %rsi, -0x20(%rbp) 000000010000257d movq $0x0, -0x18(%rbp) 0000000100002585 movl $0x0, -0x10(%rbp) 000000010000258c movq %rdi, -0x40(%rbp) 0000000100002590 movl %edx, %esi 0000000100002592 movq %rcx, -0x48(%rbp) 0000000100002596 movl %r8d, %ecx 0000000100002599 movq %r9, %r8 000000010000259c movq %rax, -0x50(%rbp) 00000001000025a0 callq _new_array_from_c_array 00000001000025a5 movl $0x0, -0x24(%rbp) 00000001000025ac movl -0x24(%rbp), %eax 00000001000025af movq -0x48(%rbp), %rcx 00000001000025b3 cmpl 0x8(%rcx), %eax 00000001000025b6 jge 0x100002679 00000001000025bc movq -0x20(%rbp), %rax 00000001000025c0 movl -0x24(%rbp), %edi 00000001000025c3 movq -0x48(%rbp), %rcx 00000001000025c7 movq (%rcx), %rdx 00000001000025ca movq %rdx, (%rsp) 00000001000025ce movq 0x8(%rcx), %rdx 00000001000025d2 movq %rdx, 0x8(%rsp) 00000001000025d7 movq 0x10(%rcx), %rdx 00000001000025db movq %rdx, 0x10(%rsp) 00000001000025e0 movq %rax, -0x58(%rbp) 00000001000025e4 callq _array_get 00000001000025e9 movl -0x24(%rbp), %edx 00000001000025ec movq (%rax), %rdi 00000001000025ef movl 0x8(%rax), %esi 00000001000025f2 movq -0x48(%rbp), %rax 00000001000025f6 movq (%rax), %rcx 00000001000025f9 movq %rcx, (%rsp) 00000001000025fd movq 0x8(%rax), %rcx 0000000100002601 movq %rcx, 0x8(%rsp) 0000000100002606 movq 0x10(%rax), %rcx 000000010000260a movq %rcx, 0x10(%rsp) 000000010000260f movq -0x58(%rbp), %rcx 0000000100002613 callq *%rcx 0000000100002615 testb $0x1, %al 0000000100002617 jne 0x100002622 000000010000261d jmp 0x100002666 0000000100002622 movl -0x24(%rbp), %edi 0000000100002625 movq -0x48(%rbp), %rax 0000000100002629 movq (%rax), %rcx 000000010000262c movq %rcx, (%rsp) 0000000100002630 movq 0x8(%rax), %rcx 0000000100002634 movq %rcx, 0x8(%rsp) 0000000100002639 movq 0x10(%rax), %rcx 000000010000263d movq %rcx, 0x10(%rsp) 0000000100002642 callq _array_get 0000000100002647 leaq -0x38(%rbp), %rcx 000000010000264b movq (%rax), %rdx 000000010000264e movq %rdx, -0x38(%rbp) 0000000100002652 movq 0x8(%rax), %rax 0000000100002656 movq %rax, -0x30(%rbp) 000000010000265a movq -0x40(%rbp), %rdi 000000010000265e movq %rcx, %rsi 0000000100002661 callq _array_push 0000000100002666 jmp 0x10000266b 000000010000266b movl -0x24(%rbp), %eax 000000010000266e addl $0x1, %eax 0000000100002671 movl %eax, -0x24(%rbp) 0000000100002674 jmp 0x1000025ac 0000000100002679 movq 0xa9b8(%rip), %rax ## literal pool symbol address: ___stack_chk_guard 0000000100002680 movq (%rax), %rax 0000000100002683 movq -0x8(%rbp), %rcx 0000000100002687 cmpq %rcx, %rax 000000010000268a jne 0x10000269a 0000000100002690 movq -0x50(%rbp), %rax 0000000100002694 addq $0x70, %rsp 0000000100002698 popq %rbp 0000000100002699 retq 000000010000269a callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail 000000010000269f ud2 00000001000026a1 nopw %cs:(%rax,%rax) _array_int_filter2: 00000001000026b0 pushq %rbp 00000001000026b1 movq %rsp, %rbp 00000001000026b4 subq $0x50, %rsp 00000001000026b8 movq %rdi, %rax 00000001000026bb leaq 0x10(%rbp), %rcx 00000001000026bf xorl %edx, %edx 00000001000026c1 movl $0x4, %r8d 00000001000026c7 leaq -0xc(%rbp), %r9 00000001000026cb movq %rsi, -0x8(%rbp) 00000001000026cf movl $0x0, -0xc(%rbp) 00000001000026d6 movq %rdi, -0x20(%rbp) 00000001000026da movl %edx, %esi 00000001000026dc movq %rcx, -0x28(%rbp) 00000001000026e0 movl %r8d, %ecx 00000001000026e3 movq %r9, %r8 00000001000026e6 movq %rax, -0x30(%rbp) 00000001000026ea callq _new_array_from_c_array 00000001000026ef movl $0x0, -0x10(%rbp) 00000001000026f6 movl -0x10(%rbp), %eax 00000001000026f9 movq -0x28(%rbp), %rcx 00000001000026fd cmpl 0x8(%rcx), %eax 0000000100002700 jge 0x1000027b5 0000000100002706 movq -0x8(%rbp), %rax 000000010000270a movl -0x10(%rbp), %edi 000000010000270d movq -0x28(%rbp), %rcx 0000000100002711 movq (%rcx), %rdx 0000000100002714 movq %rdx, (%rsp) 0000000100002718 movq 0x8(%rcx), %rdx 000000010000271c movq %rdx, 0x8(%rsp) 0000000100002721 movq 0x10(%rcx), %rdx 0000000100002725 movq %rdx, 0x10(%rsp) 000000010000272a movq %rax, -0x38(%rbp) 000000010000272e callq _array_get 0000000100002733 movl (%rax), %edi 0000000100002735 movl -0x10(%rbp), %esi 0000000100002738 movq -0x28(%rbp), %rax 000000010000273c movq (%rax), %rcx 000000010000273f movq %rcx, (%rsp) 0000000100002743 movq 0x8(%rax), %rcx 0000000100002747 movq %rcx, 0x8(%rsp) 000000010000274c movq 0x10(%rax), %rcx 0000000100002750 movq %rcx, 0x10(%rsp) 0000000100002755 movq -0x38(%rbp), %rcx 0000000100002759 callq *%rcx 000000010000275b testb $0x1, %al 000000010000275d jne 0x100002768 0000000100002763 jmp 0x1000027a2 0000000100002768 movl -0x10(%rbp), %edi 000000010000276b movq -0x28(%rbp), %rax 000000010000276f movq (%rax), %rcx 0000000100002772 movq %rcx, (%rsp) 0000000100002776 movq 0x8(%rax), %rcx 000000010000277a movq %rcx, 0x8(%rsp) 000000010000277f movq 0x10(%rax), %rcx 0000000100002783 movq %rcx, 0x10(%rsp) 0000000100002788 callq _array_get 000000010000278d leaq -0x14(%rbp), %rcx 0000000100002791 movl (%rax), %edi 0000000100002793 movl %edi, -0x14(%rbp) 0000000100002796 movq -0x20(%rbp), %rdi 000000010000279a movq %rcx, %rsi 000000010000279d callq _array_push 00000001000027a2 jmp 0x1000027a7 00000001000027a7 movl -0x10(%rbp), %eax 00000001000027aa addl $0x1, %eax 00000001000027ad movl %eax, -0x10(%rbp) 00000001000027b0 jmp 0x1000026f6 00000001000027b5 movq -0x30(%rbp), %rax 00000001000027b9 addq $0x50, %rsp 00000001000027bd popq %rbp 00000001000027be retq 00000001000027bf nop _array_int_reduce: 00000001000027c0 pushq %rbp 00000001000027c1 movq %rsp, %rbp 00000001000027c4 subq $0x50, %rsp 00000001000027c8 leaq 0x10(%rbp), %rax 00000001000027cc movq %rdi, -0x8(%rbp) 00000001000027d0 movl %esi, -0xc(%rbp) 00000001000027d3 movl $0x0, -0x10(%rbp) 00000001000027da movl -0xc(%rbp), %esi 00000001000027dd movl %esi, -0x10(%rbp) 00000001000027e0 movl $0x0, -0x14(%rbp) 00000001000027e7 movq %rax, -0x20(%rbp) 00000001000027eb movl -0x14(%rbp), %eax 00000001000027ee movq -0x20(%rbp), %rcx 00000001000027f2 cmpl 0x8(%rcx), %eax 00000001000027f5 jge 0x10000284c 00000001000027fb movq -0x8(%rbp), %rax 00000001000027ff movl -0x10(%rbp), %edi 0000000100002802 movl -0x14(%rbp), %ecx 0000000100002805 movq -0x20(%rbp), %rdx 0000000100002809 movq (%rdx), %rsi 000000010000280c movq %rsi, (%rsp) 0000000100002810 movq 0x8(%rdx), %rsi 0000000100002814 movq %rsi, 0x8(%rsp) 0000000100002819 movq 0x10(%rdx), %rsi 000000010000281d movq %rsi, 0x10(%rsp) 0000000100002822 movl %edi, -0x24(%rbp) 0000000100002825 movl %ecx, %edi 0000000100002827 movq %rax, -0x30(%rbp) 000000010000282b callq _array_get 0000000100002830 movl (%rax), %esi 0000000100002832 movl -0x24(%rbp), %edi 0000000100002835 movq -0x30(%rbp), %rax 0000000100002839 callq *%rax 000000010000283b movl %eax, -0x10(%rbp) 000000010000283e movl -0x14(%rbp), %eax 0000000100002841 addl $0x1, %eax 0000000100002844 movl %eax, -0x14(%rbp) 0000000100002847 jmp 0x1000027eb 000000010000284c movl -0x10(%rbp), %eax 000000010000284f addq $0x50, %rsp 0000000100002853 popq %rbp 0000000100002854 retq 0000000100002855 nopw %cs:(%rax,%rax) _builtin__init: 0000000100002860 pushq %rbp 0000000100002861 movq %rsp, %rbp 0000000100002864 popq %rbp 0000000100002865 retq 0000000100002866 nopw %cs:(%rax,%rax) _v_exit: 0000000100002870 pushq %rbp 0000000100002871 movq %rsp, %rbp 0000000100002874 subq $0x10, %rsp 0000000100002878 movl %edi, -0x4(%rbp) 000000010000287b movl -0x4(%rbp), %edi 000000010000287e callq 0x10000a5da ## symbol stub for: _exit 0000000100002883 nopw %cs:(%rax,%rax) _isnil: 0000000100002890 pushq %rbp 0000000100002891 movq %rsp, %rbp 0000000100002894 movq %rdi, -0x8(%rbp) 0000000100002898 cmpq $0x0, -0x8(%rbp) 000000010000289d sete %al 00000001000028a0 andb $0x1, %al 00000001000028a2 movzbl %al, %eax 00000001000028a5 popq %rbp 00000001000028a6 retq 00000001000028a7 nopw (%rax,%rax) _on_panic: 00000001000028b0 pushq %rbp 00000001000028b1 movq %rsp, %rbp 00000001000028b4 movq %rdi, -0x8(%rbp) 00000001000028b8 popq %rbp 00000001000028b9 retq 00000001000028ba nopw (%rax,%rax) _print_backtrace_skipping_top_frames: 00000001000028c0 pushq %rbp 00000001000028c1 movq %rsp, %rbp 00000001000028c4 subq $0x340, %rsp 00000001000028cb movl $0x64, %esi 00000001000028d0 leaq -0x330(%rbp), %rax 00000001000028d7 movq 0xa75a(%rip), %rcx ## literal pool symbol address: ___stack_chk_guard 00000001000028de movq (%rcx), %rcx 00000001000028e1 movq %rcx, -0x8(%rbp) 00000001000028e5 movl %edi, -0x334(%rbp) 00000001000028eb movq %rax, %rdi 00000001000028ee callq 0x10000a5c8 ## symbol stub for: _backtrace 00000001000028f3 movl $0x1, %edx 00000001000028f8 leaq -0x330(%rbp), %rcx 00000001000028ff movl %eax, -0x338(%rbp) 0000000100002905 movslq -0x334(%rbp), %rdi 000000010000290c shlq $0x3, %rdi 0000000100002910 addq %rdi, %rcx 0000000100002913 movl -0x338(%rbp), %eax 0000000100002919 subl -0x334(%rbp), %eax 000000010000291f movq %rcx, %rdi 0000000100002922 movl %eax, %esi 0000000100002924 callq 0x10000a5ce ## symbol stub for: _backtrace_symbols_fd 0000000100002929 movq 0xa708(%rip), %rcx ## literal pool symbol address: ___stack_chk_guard 0000000100002930 movq (%rcx), %rcx 0000000100002933 movq -0x8(%rbp), %rdi 0000000100002937 cmpq %rdi, %rcx 000000010000293a jne 0x100002949 0000000100002940 addq $0x340, %rsp 0000000100002947 popq %rbp 0000000100002948 retq 0000000100002949 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail 000000010000294e ud2 _print_backtrace: 0000000100002950 pushq %rbp 0000000100002951 movq %rsp, %rbp 0000000100002954 movl $0x2, %edi 0000000100002959 callq _print_backtrace_skipping_top_frames 000000010000295e popq %rbp 000000010000295f retq _panic_debug: 0000000100002960 pushq %rbp 0000000100002961 movq %rsp, %rbp 0000000100002964 subq $0xa0, %rsp 000000010000296b leaq 0x20(%rbp), %rax 000000010000296f leaq 0x10(%rbp), %r9 0000000100002973 movq %rsi, -0x10(%rbp) 0000000100002977 movl %edx, -0x8(%rbp) 000000010000297a movq %rcx, -0x20(%rbp) 000000010000297e movl %r8d, -0x18(%rbp) 0000000100002982 movl %edi, -0x24(%rbp) 0000000100002985 leaq 0x7f0b(%rip), %rdi ## literal pool for: "================ V panic ================" 000000010000298c movq %r9, -0x80(%rbp) 0000000100002990 movq %rax, -0x88(%rbp) 0000000100002997 callq _tos3 000000010000299c movq %rax, -0x38(%rbp) 00000001000029a0 movl %edx, -0x30(%rbp) 00000001000029a3 movq -0x38(%rbp), %rdi 00000001000029a7 movl -0x30(%rbp), %esi 00000001000029aa callq _println 00000001000029af movl -0x18(%rbp), %esi 00000001000029b2 movq -0x20(%rbp), %rdx 00000001000029b6 leaq 0x7f04(%rip), %rdi ## literal pool for: " module: %.*s\n" 00000001000029bd xorl %r8d, %r8d 00000001000029c0 movb %r8b, %r10b 00000001000029c3 movb %r10b, %al 00000001000029c6 movb %r10b, -0x89(%rbp) 00000001000029cd callq 0x10000a60a ## symbol stub for: _printf 00000001000029d2 movq -0x80(%rbp), %rcx 00000001000029d6 movl 0x8(%rcx), %esi 00000001000029d9 movq (%rcx), %rdx 00000001000029dc leaq 0x7eef(%rip), %rdi ## literal pool for: " function: %.*s()\n" 00000001000029e3 movb -0x89(%rbp), %r10b 00000001000029ea movl %eax, -0x90(%rbp) 00000001000029f0 movb %r10b, %al 00000001000029f3 callq 0x10000a60a ## symbol stub for: _printf 00000001000029f8 movl -0x8(%rbp), %esi 00000001000029fb movq -0x10(%rbp), %rdx 00000001000029ff leaq 0x7edf(%rip), %rdi ## literal pool for: " file: %.*s\n" 0000000100002a06 movb -0x89(%rbp), %r10b 0000000100002a0d movl %eax, -0x94(%rbp) 0000000100002a13 movb %r10b, %al 0000000100002a16 callq 0x10000a60a ## symbol stub for: _printf 0000000100002a1b leaq 0x7ed4(%rip), %rdi ## literal pool for: " line: " 0000000100002a22 movl %eax, -0x98(%rbp) 0000000100002a28 callq _tos3 0000000100002a2d movq %rax, -0x58(%rbp) 0000000100002a31 movl %edx, -0x50(%rbp) 0000000100002a34 movl -0x24(%rbp), %edi 0000000100002a37 callq _int_str 0000000100002a3c movq %rax, -0x68(%rbp) 0000000100002a40 movl %edx, -0x60(%rbp) 0000000100002a43 movq -0x58(%rbp), %rdi 0000000100002a47 movl -0x50(%rbp), %esi 0000000100002a4a movq -0x68(%rbp), %rdx 0000000100002a4e movl -0x60(%rbp), %ecx 0000000100002a51 callq _string_add 0000000100002a56 movq %rax, -0x48(%rbp) 0000000100002a5a movl %edx, -0x40(%rbp) 0000000100002a5d movq -0x48(%rbp), %rdi 0000000100002a61 movl -0x40(%rbp), %esi 0000000100002a64 callq _println 0000000100002a69 movq -0x88(%rbp), %rax 0000000100002a70 movl 0x8(%rax), %esi 0000000100002a73 movq (%rax), %rdx 0000000100002a76 leaq 0x7e85(%rip), %rdi ## literal pool for: " message: %.*s\n" 0000000100002a7d movb -0x89(%rbp), %al 0000000100002a83 callq 0x10000a60a ## symbol stub for: _printf 0000000100002a88 leaq 0x7e84(%rip), %rdi ## literal pool for: "=========================================" 0000000100002a8f movl %eax, -0x9c(%rbp) 0000000100002a95 callq _tos3 0000000100002a9a movq %rax, -0x78(%rbp) 0000000100002a9e movl %edx, -0x70(%rbp) 0000000100002aa1 movq -0x78(%rbp), %rdi 0000000100002aa5 movl -0x70(%rbp), %esi 0000000100002aa8 callq _println 0000000100002aad movl $0x1, %ecx 0000000100002ab2 movl %ecx, %edi 0000000100002ab4 movl %ecx, -0xa0(%rbp) 0000000100002aba callq _print_backtrace_skipping_top_frames 0000000100002abf movl -0xa0(%rbp), %edi 0000000100002ac5 callq 0x10000a5da ## symbol stub for: _exit 0000000100002aca nopw (%rax,%rax) _println: 0000000100002ad0 pushq %rbp 0000000100002ad1 movq %rsp, %rbp 0000000100002ad4 subq $0x30, %rsp 0000000100002ad8 movq %rdi, -0x10(%rbp) 0000000100002adc movl %esi, -0x8(%rbp) 0000000100002adf movq -0x10(%rbp), %rdi 0000000100002ae3 callq _isnil 0000000100002ae8 testb $0x1, %al 0000000100002aea jne 0x100002af5 0000000100002af0 jmp 0x100002b14 0000000100002af5 leaq 0x7e50(%rip), %rdi ## literal pool for: "println(NIL)" 0000000100002afc callq _tos3 0000000100002b01 movq %rax, -0x20(%rbp) 0000000100002b05 movl %edx, -0x18(%rbp) 0000000100002b08 movq -0x20(%rbp), %rdi 0000000100002b0c movl -0x18(%rbp), %esi 0000000100002b0f callq _v_panic 0000000100002b14 leaq 0x7e3e(%rip), %rdi ## literal pool for: "%.*s\n" 0000000100002b1b movl -0x8(%rbp), %esi 0000000100002b1e movq -0x10(%rbp), %rdx 0000000100002b22 movb $0x0, %al 0000000100002b24 callq 0x10000a60a ## symbol stub for: _printf 0000000100002b29 movl %eax, -0x24(%rbp) 0000000100002b2c addq $0x30, %rsp 0000000100002b30 popq %rbp 0000000100002b31 retq 0000000100002b32 nopw %cs:(%rax,%rax) _string_add: 0000000100002b40 pushq %rbp 0000000100002b41 movq %rsp, %rbp 0000000100002b44 subq $0x40, %rsp 0000000100002b48 movq %rdi, -0x20(%rbp) 0000000100002b4c movl %esi, -0x18(%rbp) 0000000100002b4f movq %rdx, -0x30(%rbp) 0000000100002b53 movl %ecx, -0x28(%rbp) 0000000100002b56 movl -0x28(%rbp), %ecx 0000000100002b59 addl -0x18(%rbp), %ecx 0000000100002b5c movl %ecx, -0x34(%rbp) 0000000100002b5f movl -0x34(%rbp), %ecx 0000000100002b62 addl $0x1, %ecx 0000000100002b65 movl %ecx, %edi 0000000100002b67 callq _v_malloc 0000000100002b6c movq %rax, -0x10(%rbp) 0000000100002b70 movl -0x34(%rbp), %ecx 0000000100002b73 movl %ecx, -0x8(%rbp) 0000000100002b76 movl $0x0, -0x38(%rbp) 0000000100002b7d movl -0x38(%rbp), %eax 0000000100002b80 cmpl -0x18(%rbp), %eax 0000000100002b83 jge 0x100002bad 0000000100002b89 movq -0x20(%rbp), %rax 0000000100002b8d movslq -0x38(%rbp), %rcx 0000000100002b91 movb (%rax,%rcx), %dl 0000000100002b94 movq -0x10(%rbp), %rax 0000000100002b98 movslq -0x38(%rbp), %rcx 0000000100002b9c movb %dl, (%rax,%rcx) 0000000100002b9f movl -0x38(%rbp), %eax 0000000100002ba2 addl $0x1, %eax 0000000100002ba5 movl %eax, -0x38(%rbp) 0000000100002ba8 jmp 0x100002b7d 0000000100002bad movl $0x0, -0x3c(%rbp) 0000000100002bb4 movl -0x3c(%rbp), %eax 0000000100002bb7 cmpl -0x28(%rbp), %eax 0000000100002bba jge 0x100002be9 0000000100002bc0 movq -0x30(%rbp), %rax 0000000100002bc4 movslq -0x3c(%rbp), %rcx 0000000100002bc8 movb (%rax,%rcx), %dl 0000000100002bcb movq -0x10(%rbp), %rax 0000000100002bcf movl -0x18(%rbp), %esi 0000000100002bd2 addl -0x3c(%rbp), %esi 0000000100002bd5 movslq %esi, %rcx 0000000100002bd8 movb %dl, (%rax,%rcx) 0000000100002bdb movl -0x3c(%rbp), %eax 0000000100002bde addl $0x1, %eax 0000000100002be1 movl %eax, -0x3c(%rbp) 0000000100002be4 jmp 0x100002bb4 0000000100002be9 movq -0x10(%rbp), %rax 0000000100002bed movslq -0x34(%rbp), %rcx 0000000100002bf1 movb $0x0, (%rax,%rcx) 0000000100002bf5 movq -0x10(%rbp), %rax 0000000100002bf9 movl -0x8(%rbp), %edx 0000000100002bfc addq $0x40, %rsp 0000000100002c00 popq %rbp 0000000100002c01 retq 0000000100002c02 nopw %cs:(%rax,%rax) _int_str: 0000000100002c10 pushq %rbp 0000000100002c11 movq %rsp, %rbp 0000000100002c14 subq $0x40, %rsp 0000000100002c18 movl %edi, -0x14(%rbp) 0000000100002c1b movl -0x14(%rbp), %edi 0000000100002c1e movl %edi, -0x18(%rbp) 0000000100002c21 cmpl $0x0, -0x18(%rbp) 0000000100002c25 jne 0x100002c43 0000000100002c2b leaq 0x7d6e(%rip), %rdi ## literal pool for: "0" 0000000100002c32 callq _tos3 0000000100002c37 movq %rax, -0x10(%rbp) 0000000100002c3b movl %edx, -0x8(%rbp) 0000000100002c3e jmp 0x100002d24 0000000100002c43 movl $0x10, -0x1c(%rbp) 0000000100002c4a movl -0x1c(%rbp), %edi 0000000100002c4d callq _v_calloc 0000000100002c52 movq %rax, -0x28(%rbp) 0000000100002c56 movl $0x0, -0x2c(%rbp) 0000000100002c5d movb $0x0, -0x2d(%rbp) 0000000100002c61 cmpl $0x0, -0x18(%rbp) 0000000100002c65 jge 0x100002c77 0000000100002c6b xorl %eax, %eax 0000000100002c6d subl -0x18(%rbp), %eax 0000000100002c70 movl %eax, -0x18(%rbp) 0000000100002c73 movb $0x1, -0x2d(%rbp) 0000000100002c77 jmp 0x100002c7c 0000000100002c7c cmpl $0x0, -0x18(%rbp) 0000000100002c80 jle 0x100002cd2 0000000100002c86 movl $0xa, %eax 0000000100002c8b movl -0x18(%rbp), %ecx 0000000100002c8e movl %eax, -0x38(%rbp) 0000000100002c91 movl %ecx, %eax 0000000100002c93 cltd 0000000100002c94 movl -0x38(%rbp), %ecx 0000000100002c97 idivl %ecx 0000000100002c99 movl %edx, -0x34(%rbp) 0000000100002c9c movl -0x34(%rbp), %edx 0000000100002c9f addl $0x30, %edx 0000000100002ca2 movb %dl, %sil 0000000100002ca5 movq -0x28(%rbp), %rdi 0000000100002ca9 movl -0x1c(%rbp), %edx 0000000100002cac subl -0x2c(%rbp), %edx 0000000100002caf subl $0x1, %edx 0000000100002cb2 movslq %edx, %r8 0000000100002cb5 movb %sil, (%rdi,%r8) 0000000100002cb9 movl -0x2c(%rbp), %edx 0000000100002cbc addl $0x1, %edx 0000000100002cbf movl %edx, -0x2c(%rbp) 0000000100002cc2 movl -0x18(%rbp), %edx 0000000100002cc5 movl %edx, %eax 0000000100002cc7 cltd 0000000100002cc8 idivl %ecx 0000000100002cca movl %eax, -0x18(%rbp) 0000000100002ccd jmp 0x100002c7c 0000000100002cd2 testb $0x1, -0x2d(%rbp) 0000000100002cd6 je 0x100002cf9 0000000100002cdc movq -0x28(%rbp), %rax 0000000100002ce0 movl -0x1c(%rbp), %ecx 0000000100002ce3 subl -0x2c(%rbp), %ecx 0000000100002ce6 subl $0x1, %ecx 0000000100002ce9 movslq %ecx, %rdx 0000000100002cec movb $0x2d, (%rax,%rdx) 0000000100002cf0 movl -0x2c(%rbp), %ecx 0000000100002cf3 addl $0x1, %ecx 0000000100002cf6 movl %ecx, -0x2c(%rbp) 0000000100002cf9 xorl %eax, %eax 0000000100002cfb movl %eax, %ecx 0000000100002cfd movq -0x28(%rbp), %rdx 0000000100002d01 movslq -0x1c(%rbp), %rsi 0000000100002d05 addq %rsi, %rdx 0000000100002d08 movslq -0x2c(%rbp), %rsi 0000000100002d0c subq %rsi, %rcx 0000000100002d0f addq %rcx, %rdx 0000000100002d12 movl -0x2c(%rbp), %esi 0000000100002d15 movq %rdx, %rdi 0000000100002d18 callq _tos 0000000100002d1d movq %rax, -0x10(%rbp) 0000000100002d21 movl %edx, -0x8(%rbp) 0000000100002d24 movq -0x10(%rbp), %rax 0000000100002d28 movl -0x8(%rbp), %edx 0000000100002d2b addq $0x40, %rsp 0000000100002d2f popq %rbp 0000000100002d30 retq 0000000100002d31 nopw %cs:(%rax,%rax) _eprintln: 0000000100002d40 pushq %rbp 0000000100002d41 movq %rsp, %rbp 0000000100002d44 subq $0x30, %rsp 0000000100002d48 movq %rdi, -0x10(%rbp) 0000000100002d4c movl %esi, -0x8(%rbp) 0000000100002d4f movq -0x10(%rbp), %rdi 0000000100002d53 callq _isnil 0000000100002d58 testb $0x1, %al 0000000100002d5a jne 0x100002d65 0000000100002d60 jmp 0x100002d84 0000000100002d65 leaq 0x7bf3(%rip), %rdi ## literal pool for: "eprintln(NIL)" 0000000100002d6c callq _tos3 0000000100002d71 movq %rax, -0x20(%rbp) 0000000100002d75 movl %edx, -0x18(%rbp) 0000000100002d78 movq -0x20(%rbp), %rdi 0000000100002d7c movl -0x18(%rbp), %esi 0000000100002d7f callq _v_panic 0000000100002d84 leaq 0x7bce(%rip), %rsi ## literal pool for: "%.*s\n" 0000000100002d8b movq 0xa2ae(%rip), %rax ## literal pool symbol address: ___stderrp 0000000100002d92 movq (%rax), %rdi 0000000100002d95 movl -0x8(%rbp), %edx 0000000100002d98 movq -0x10(%rbp), %rcx 0000000100002d9c movb $0x0, %al 0000000100002d9e callq 0x10000a5e6 ## symbol stub for: _fprintf 0000000100002da3 movq 0xa296(%rip), %rcx ## literal pool symbol address: ___stderrp 0000000100002daa movq (%rcx), %rdi 0000000100002dad movl %eax, -0x24(%rbp) 0000000100002db0 callq 0x10000a5e0 ## symbol stub for: _fflush 0000000100002db5 movl %eax, -0x28(%rbp) 0000000100002db8 addq $0x30, %rsp 0000000100002dbc popq %rbp 0000000100002dbd retq 0000000100002dbe nop _print: 0000000100002dc0 pushq %rbp 0000000100002dc1 movq %rsp, %rbp 0000000100002dc4 subq $0x20, %rsp 0000000100002dc8 leaq 0x7b9e(%rip), %rax ## literal pool for: "%.*s" 0000000100002dcf movq %rdi, -0x10(%rbp) 0000000100002dd3 movl %esi, -0x8(%rbp) 0000000100002dd6 movl -0x8(%rbp), %esi 0000000100002dd9 movq -0x10(%rbp), %rdx 0000000100002ddd movq %rax, %rdi 0000000100002de0 movb $0x0, %al 0000000100002de2 callq 0x10000a60a ## symbol stub for: _printf 0000000100002de7 movl %eax, -0x14(%rbp) 0000000100002dea addq $0x20, %rsp 0000000100002dee popq %rbp 0000000100002def retq _v_free: 0000000100002df0 pushq %rbp 0000000100002df1 movq %rsp, %rbp 0000000100002df4 subq $0x10, %rsp 0000000100002df8 movq %rdi, -0x8(%rbp) 0000000100002dfc movq -0x8(%rbp), %rdi 0000000100002e00 callq 0x10000a5ec ## symbol stub for: _free 0000000100002e05 addq $0x10, %rsp 0000000100002e09 popq %rbp 0000000100002e0a retq 0000000100002e0b nopl (%rax,%rax) _memdup: 0000000100002e10 pushq %rbp 0000000100002e11 movq %rsp, %rbp 0000000100002e14 subq $0x20, %rsp 0000000100002e18 movq %rdi, -0x8(%rbp) 0000000100002e1c movl %esi, -0xc(%rbp) 0000000100002e1f movl -0xc(%rbp), %edi 0000000100002e22 callq _v_malloc 0000000100002e27 movq $-0x1, %rcx 0000000100002e2e movq %rax, -0x18(%rbp) 0000000100002e32 movq -0x18(%rbp), %rdi 0000000100002e36 movq -0x8(%rbp), %rsi 0000000100002e3a movslq -0xc(%rbp), %rdx 0000000100002e3e callq 0x10000a598 ## symbol stub for: ___memcpy_chk 0000000100002e43 addq $0x20, %rsp 0000000100002e47 popq %rbp 0000000100002e48 retq 0000000100002e49 nopl (%rax) _v_ptr_free: 0000000100002e50 pushq %rbp 0000000100002e51 movq %rsp, %rbp 0000000100002e54 subq $0x10, %rsp 0000000100002e58 movq %rdi, -0x8(%rbp) 0000000100002e5c movq -0x8(%rbp), %rdi 0000000100002e60 callq 0x10000a5ec ## symbol stub for: _free 0000000100002e65 addq $0x10, %rsp 0000000100002e69 popq %rbp 0000000100002e6a retq 0000000100002e6b nopl (%rax,%rax) _is_atty: 0000000100002e70 pushq %rbp 0000000100002e71 movq %rsp, %rbp 0000000100002e74 subq $0x10, %rsp 0000000100002e78 movl %edi, -0x4(%rbp) 0000000100002e7b movl -0x4(%rbp), %edi 0000000100002e7e callq 0x10000a5f8 ## symbol stub for: _isatty 0000000100002e83 cmpl $0x0, %eax 0000000100002e86 setne %cl 0000000100002e89 andb $0x1, %cl 0000000100002e8c movzbl %cl, %eax 0000000100002e8f addq $0x10, %rsp 0000000100002e93 popq %rbp 0000000100002e94 retq 0000000100002e95 nopw %cs:(%rax,%rax) _f64_str: 0000000100002ea0 pushq %rbp 0000000100002ea1 movq %rsp, %rbp 0000000100002ea4 subq $0x30, %rsp 0000000100002ea8 movsd %xmm0, -0x18(%rbp) 0000000100002ead movl $0x29, %edi 0000000100002eb2 callq _v_malloc 0000000100002eb7 movq %rax, -0x20(%rbp) 0000000100002ebb movq -0x20(%rbp), %rdi 0000000100002ebf movsd -0x18(%rbp), %xmm0 0000000100002ec4 leaq 0x7acf(%rip), %rcx ## literal pool for: "%f" 0000000100002ecb xorl %esi, %esi 0000000100002ecd movq $-0x1, %rdx 0000000100002ed4 movb $0x1, %al 0000000100002ed6 callq 0x10000a5aa ## symbol stub for: ___sprintf_chk 0000000100002edb movq -0x20(%rbp), %rcx 0000000100002edf movq %rcx, %rdi 0000000100002ee2 movl %eax, -0x24(%rbp) 0000000100002ee5 movq %rcx, -0x30(%rbp) 0000000100002ee9 callq _vstrlen 0000000100002eee movq -0x30(%rbp), %rdi 0000000100002ef2 movl %eax, %esi 0000000100002ef4 callq _tos 0000000100002ef9 movq %rax, -0x10(%rbp) 0000000100002efd movl %edx, -0x8(%rbp) 0000000100002f00 movq -0x10(%rbp), %rax 0000000100002f04 movl -0x8(%rbp), %edx 0000000100002f07 addq $0x30, %rsp 0000000100002f0b popq %rbp 0000000100002f0c retq 0000000100002f0d nopl (%rax) _tos: 0000000100002f10 pushq %rbp 0000000100002f11 movq %rsp, %rbp 0000000100002f14 subq $0x30, %rsp 0000000100002f18 movq %rdi, -0x18(%rbp) 0000000100002f1c movl %esi, -0x1c(%rbp) 0000000100002f1f cmpq $0x0, -0x18(%rbp) 0000000100002f24 jne 0x100002f49 0000000100002f2a leaq 0x7af7(%rip), %rdi ## literal pool for: "tos(): nil string" 0000000100002f31 callq _tos3 0000000100002f36 movq %rax, -0x30(%rbp) 0000000100002f3a movl %edx, -0x28(%rbp) 0000000100002f3d movq -0x30(%rbp), %rdi 0000000100002f41 movl -0x28(%rbp), %esi 0000000100002f44 callq _v_panic 0000000100002f49 movq -0x18(%rbp), %rax 0000000100002f4d movq %rax, -0x10(%rbp) 0000000100002f51 movl -0x1c(%rbp), %ecx 0000000100002f54 movl %ecx, -0x8(%rbp) 0000000100002f57 movq -0x10(%rbp), %rax 0000000100002f5b movl -0x8(%rbp), %edx 0000000100002f5e addq $0x30, %rsp 0000000100002f62 popq %rbp 0000000100002f63 retq 0000000100002f64 nopw %cs:(%rax,%rax) _vstrlen: 0000000100002f70 pushq %rbp 0000000100002f71 movq %rsp, %rbp 0000000100002f74 subq $0x10, %rsp 0000000100002f78 movq %rdi, -0x8(%rbp) 0000000100002f7c movq -0x8(%rbp), %rdi 0000000100002f80 callq 0x10000a61c ## symbol stub for: _strlen 0000000100002f85 movl %eax, %ecx 0000000100002f87 movl %ecx, %eax 0000000100002f89 addq $0x10, %rsp 0000000100002f8d popq %rbp 0000000100002f8e retq 0000000100002f8f nop _f32_str: 0000000100002f90 pushq %rbp 0000000100002f91 movq %rsp, %rbp 0000000100002f94 subq $0x30, %rsp 0000000100002f98 movss %xmm0, -0x14(%rbp) 0000000100002f9d movl $0x29, %edi 0000000100002fa2 callq _v_malloc 0000000100002fa7 movq %rax, -0x20(%rbp) 0000000100002fab movq -0x20(%rbp), %rdi 0000000100002faf movss -0x14(%rbp), %xmm0 0000000100002fb4 cvtss2sd %xmm0, %xmm0 0000000100002fb8 leaq 0x79db(%rip), %rcx ## literal pool for: "%f" 0000000100002fbf xorl %esi, %esi 0000000100002fc1 movq $-0x1, %rdx 0000000100002fc8 movb $0x1, %al 0000000100002fca callq 0x10000a5aa ## symbol stub for: ___sprintf_chk 0000000100002fcf movq -0x20(%rbp), %rcx 0000000100002fd3 movq %rcx, %rdi 0000000100002fd6 movl %eax, -0x24(%rbp) 0000000100002fd9 movq %rcx, -0x30(%rbp) 0000000100002fdd callq _vstrlen 0000000100002fe2 movq -0x30(%rbp), %rdi 0000000100002fe6 movl %eax, %esi 0000000100002fe8 callq _tos 0000000100002fed movq %rax, -0x10(%rbp) 0000000100002ff1 movl %edx, -0x8(%rbp) 0000000100002ff4 movq -0x10(%rbp), %rax 0000000100002ff8 movl -0x8(%rbp), %edx 0000000100002ffb addq $0x30, %rsp 0000000100002fff popq %rbp 0000000100003000 retq 0000000100003001 nopw %cs:(%rax,%rax) _f32_abs: 0000000100003010 pushq %rbp 0000000100003011 movq %rsp, %rbp 0000000100003014 xorps %xmm1, %xmm1 0000000100003017 movss %xmm0, -0x4(%rbp) 000000010000301c ucomiss -0x4(%rbp), %xmm1 0000000100003020 jbe 0x100003042 0000000100003026 movss -0x4(%rbp), %xmm0 000000010000302b movd %xmm0, %eax 000000010000302f xorl $0x80000000, %eax 0000000100003034 movd %eax, %xmm0 0000000100003038 movss %xmm0, -0x8(%rbp) 000000010000303d jmp 0x10000304c 0000000100003042 movss -0x4(%rbp), %xmm0 0000000100003047 movss %xmm0, -0x8(%rbp) 000000010000304c movss -0x8(%rbp), %xmm0 0000000100003051 popq %rbp 0000000100003052 retq 0000000100003053 nopw %cs:(%rax,%rax) _f64_abs: 0000000100003060 pushq %rbp 0000000100003061 movq %rsp, %rbp 0000000100003064 xorps %xmm1, %xmm1 0000000100003067 movsd %xmm0, -0x8(%rbp) 000000010000306c ucomisd -0x8(%rbp), %xmm1 0000000100003071 jbe 0x10000309d 0000000100003077 movabsq $-0x8000000000000000, %rax 0000000100003081 movsd -0x8(%rbp), %xmm0 0000000100003086 movq %xmm0, %rcx 000000010000308b xorq %rax, %rcx 000000010000308e movq %rcx, %xmm0 0000000100003093 movsd %xmm0, -0x10(%rbp) 0000000100003098 jmp 0x1000030a7 000000010000309d movsd -0x8(%rbp), %xmm0 00000001000030a2 movsd %xmm0, -0x10(%rbp) 00000001000030a7 movsd -0x10(%rbp), %xmm0 00000001000030ac popq %rbp 00000001000030ad retq 00000001000030ae nop _f64_eq: 00000001000030b0 pushq %rbp 00000001000030b1 movq %rsp, %rbp 00000001000030b4 subq $0x10, %rsp 00000001000030b8 movsd %xmm0, -0x8(%rbp) 00000001000030bd movsd %xmm1, -0x10(%rbp) 00000001000030c2 movsd -0x8(%rbp), %xmm0 00000001000030c7 subsd -0x10(%rbp), %xmm0 00000001000030cc callq _f64_abs 00000001000030d1 movsd 0x7667(%rip), %xmm1 00000001000030d9 ucomisd %xmm0, %xmm1 00000001000030dd setae %al 00000001000030e0 andb $0x1, %al 00000001000030e2 movzbl %al, %eax 00000001000030e5 addq $0x10, %rsp 00000001000030e9 popq %rbp 00000001000030ea retq 00000001000030eb nopl (%rax,%rax) _f32_eq: 00000001000030f0 pushq %rbp 00000001000030f1 movq %rsp, %rbp 00000001000030f4 subq $0x10, %rsp 00000001000030f8 movss %xmm0, -0x4(%rbp) 00000001000030fd movss %xmm1, -0x8(%rbp) 0000000100003102 movss -0x4(%rbp), %xmm0 0000000100003107 subss -0x8(%rbp), %xmm0 000000010000310c callq _f32_abs 0000000100003111 movss 0x7647(%rip), %xmm1 0000000100003119 ucomiss %xmm0, %xmm1 000000010000311c setae %al 000000010000311f andb $0x1, %al 0000000100003121 movzbl %al, %eax 0000000100003124 addq $0x10, %rsp 0000000100003128 popq %rbp 0000000100003129 retq 000000010000312a nopw (%rax,%rax) _f64_eqbit: 0000000100003130 pushq %rbp 0000000100003131 movq %rsp, %rbp 0000000100003134 movsd %xmm0, -0x8(%rbp) 0000000100003139 movsd %xmm1, -0x10(%rbp) 000000010000313e movsd -0x8(%rbp), %xmm0 0000000100003143 ucomisd -0x10(%rbp), %xmm0 0000000100003148 sete %al 000000010000314b setnp %cl 000000010000314e andb %cl, %al 0000000100003150 andb $0x1, %al 0000000100003152 movzbl %al, %eax 0000000100003155 popq %rbp 0000000100003156 retq 0000000100003157 nopw (%rax,%rax) _f32_eqbit: 0000000100003160 pushq %rbp 0000000100003161 movq %rsp, %rbp 0000000100003164 movss %xmm0, -0x4(%rbp) 0000000100003169 movss %xmm1, -0x8(%rbp) 000000010000316e movss -0x4(%rbp), %xmm0 0000000100003173 ucomiss -0x8(%rbp), %xmm0 0000000100003177 sete %al 000000010000317a setnp %cl 000000010000317d andb %cl, %al 000000010000317f andb $0x1, %al 0000000100003181 movzbl %al, %eax 0000000100003184 popq %rbp 0000000100003185 retq 0000000100003186 nopw %cs:(%rax,%rax) _f64_ne: 0000000100003190 pushq %rbp 0000000100003191 movq %rsp, %rbp 0000000100003194 subq $0x10, %rsp 0000000100003198 movsd %xmm0, -0x8(%rbp) 000000010000319d movsd %xmm1, -0x10(%rbp) 00000001000031a2 movsd -0x8(%rbp), %xmm0 00000001000031a7 movsd -0x10(%rbp), %xmm1 00000001000031ac callq _f64_eq 00000001000031b1 xorb $-0x1, %al 00000001000031b3 andb $0x1, %al 00000001000031b5 movzbl %al, %eax 00000001000031b8 addq $0x10, %rsp 00000001000031bc popq %rbp 00000001000031bd retq 00000001000031be nop _f32_ne: 00000001000031c0 pushq %rbp 00000001000031c1 movq %rsp, %rbp 00000001000031c4 subq $0x10, %rsp 00000001000031c8 movss %xmm0, -0x4(%rbp) 00000001000031cd movss %xmm1, -0x8(%rbp) 00000001000031d2 movss -0x4(%rbp), %xmm0 00000001000031d7 movss -0x8(%rbp), %xmm1 00000001000031dc callq _f32_eq 00000001000031e1 xorb $-0x1, %al 00000001000031e3 andb $0x1, %al 00000001000031e5 movzbl %al, %eax 00000001000031e8 addq $0x10, %rsp 00000001000031ec popq %rbp 00000001000031ed retq 00000001000031ee nop _f64_nebit: 00000001000031f0 pushq %rbp 00000001000031f1 movq %rsp, %rbp 00000001000031f4 movsd %xmm0, -0x8(%rbp) 00000001000031f9 movsd %xmm1, -0x10(%rbp) 00000001000031fe movsd -0x8(%rbp), %xmm0 0000000100003203 ucomisd -0x10(%rbp), %xmm0 0000000100003208 setne %al 000000010000320b setp %cl 000000010000320e orb %cl, %al 0000000100003210 andb $0x1, %al 0000000100003212 movzbl %al, %eax 0000000100003215 popq %rbp 0000000100003216 retq 0000000100003217 nopw (%rax,%rax) _f32_nebit: 0000000100003220 pushq %rbp 0000000100003221 movq %rsp, %rbp 0000000100003224 movss %xmm0, -0x4(%rbp) 0000000100003229 movss %xmm1, -0x8(%rbp) 000000010000322e movss -0x4(%rbp), %xmm0 0000000100003233 ucomiss -0x8(%rbp), %xmm0 0000000100003237 setne %al 000000010000323a setp %cl 000000010000323d orb %cl, %al 000000010000323f andb $0x1, %al 0000000100003241 movzbl %al, %eax 0000000100003244 popq %rbp 0000000100003245 retq 0000000100003246 nopw %cs:(%rax,%rax) _f64_lt: 0000000100003250 pushq %rbp 0000000100003251 movq %rsp, %rbp 0000000100003254 subq $0x20, %rsp 0000000100003258 movsd %xmm0, -0x8(%rbp) 000000010000325d movsd %xmm1, -0x10(%rbp) 0000000100003262 movsd -0x8(%rbp), %xmm0 0000000100003267 movsd -0x10(%rbp), %xmm1 000000010000326c callq _f64_ne 0000000100003271 xorl %ecx, %ecx 0000000100003273 movb %cl, %dl 0000000100003275 testb $0x1, %al 0000000100003277 movb %dl, -0x11(%rbp) 000000010000327a jne 0x100003285 0000000100003280 jmp 0x100003297 0000000100003285 movsd -0x8(%rbp), %xmm0 000000010000328a movsd -0x10(%rbp), %xmm1 000000010000328f callq _f64_ltbit 0000000100003294 movb %al, -0x11(%rbp) 0000000100003297 movb -0x11(%rbp), %al 000000010000329a andb $0x1, %al 000000010000329c movzbl %al, %eax 000000010000329f addq $0x20, %rsp 00000001000032a3 popq %rbp 00000001000032a4 retq 00000001000032a5 nopw %cs:(%rax,%rax) _f64_ltbit: 00000001000032b0 pushq %rbp 00000001000032b1 movq %rsp, %rbp 00000001000032b4 movsd %xmm0, -0x8(%rbp) 00000001000032b9 movsd %xmm1, -0x10(%rbp) 00000001000032be movsd -0x8(%rbp), %xmm0 00000001000032c3 movsd -0x10(%rbp), %xmm1 00000001000032c8 ucomisd %xmm0, %xmm1 00000001000032cc seta %al 00000001000032cf andb $0x1, %al 00000001000032d1 movzbl %al, %eax 00000001000032d4 popq %rbp 00000001000032d5 retq 00000001000032d6 nopw %cs:(%rax,%rax) _f32_lt: 00000001000032e0 pushq %rbp 00000001000032e1 movq %rsp, %rbp 00000001000032e4 subq $0x10, %rsp 00000001000032e8 movss %xmm0, -0x4(%rbp) 00000001000032ed movss %xmm1, -0x8(%rbp) 00000001000032f2 movss -0x4(%rbp), %xmm0 00000001000032f7 movss -0x8(%rbp), %xmm1 00000001000032fc callq _f32_ne 0000000100003301 xorl %ecx, %ecx 0000000100003303 movb %cl, %dl 0000000100003305 testb $0x1, %al 0000000100003307 movb %dl, -0x9(%rbp) 000000010000330a jne 0x100003315 0000000100003310 jmp 0x100003327 0000000100003315 movss -0x4(%rbp), %xmm0 000000010000331a movss -0x8(%rbp), %xmm1 000000010000331f callq _f32_ltbit 0000000100003324 movb %al, -0x9(%rbp) 0000000100003327 movb -0x9(%rbp), %al 000000010000332a andb $0x1, %al 000000010000332c movzbl %al, %eax 000000010000332f addq $0x10, %rsp 0000000100003333 popq %rbp 0000000100003334 retq 0000000100003335 nopw %cs:(%rax,%rax) _f32_ltbit: 0000000100003340 pushq %rbp 0000000100003341 movq %rsp, %rbp 0000000100003344 movss %xmm0, -0x4(%rbp) 0000000100003349 movss %xmm1, -0x8(%rbp) 000000010000334e movss -0x4(%rbp), %xmm0 0000000100003353 movss -0x8(%rbp), %xmm1 0000000100003358 ucomiss %xmm0, %xmm1 000000010000335b seta %al 000000010000335e andb $0x1, %al 0000000100003360 movzbl %al, %eax 0000000100003363 popq %rbp 0000000100003364 retq 0000000100003365 nopw %cs:(%rax,%rax) _f64_le: 0000000100003370 pushq %rbp 0000000100003371 movq %rsp, %rbp 0000000100003374 subq $0x10, %rsp 0000000100003378 movsd %xmm0, -0x8(%rbp) 000000010000337d movsd %xmm1, -0x10(%rbp) 0000000100003382 movsd -0x8(%rbp), %xmm0 0000000100003387 movsd -0x10(%rbp), %xmm1 000000010000338c callq _f64_gt 0000000100003391 xorb $-0x1, %al 0000000100003393 andb $0x1, %al 0000000100003395 movzbl %al, %eax 0000000100003398 addq $0x10, %rsp 000000010000339c popq %rbp 000000010000339d retq 000000010000339e nop _f64_gt: 00000001000033a0 pushq %rbp 00000001000033a1 movq %rsp, %rbp 00000001000033a4 subq $0x20, %rsp 00000001000033a8 movsd %xmm0, -0x8(%rbp) 00000001000033ad movsd %xmm1, -0x10(%rbp) 00000001000033b2 movsd -0x8(%rbp), %xmm0 00000001000033b7 movsd -0x10(%rbp), %xmm1 00000001000033bc callq _f64_ne 00000001000033c1 xorl %ecx, %ecx 00000001000033c3 movb %cl, %dl 00000001000033c5 testb $0x1, %al 00000001000033c7 movb %dl, -0x11(%rbp) 00000001000033ca jne 0x1000033d5 00000001000033d0 jmp 0x1000033e7 00000001000033d5 movsd -0x8(%rbp), %xmm0 00000001000033da movsd -0x10(%rbp), %xmm1 00000001000033df callq _f64_gtbit 00000001000033e4 movb %al, -0x11(%rbp) 00000001000033e7 movb -0x11(%rbp), %al 00000001000033ea andb $0x1, %al 00000001000033ec movzbl %al, %eax 00000001000033ef addq $0x20, %rsp 00000001000033f3 popq %rbp 00000001000033f4 retq 00000001000033f5 nopw %cs:(%rax,%rax) _f32_le: 0000000100003400 pushq %rbp 0000000100003401 movq %rsp, %rbp 0000000100003404 subq $0x10, %rsp 0000000100003408 movss %xmm0, -0x4(%rbp) 000000010000340d movss %xmm1, -0x8(%rbp) 0000000100003412 movss -0x4(%rbp), %xmm0 0000000100003417 movss -0x8(%rbp), %xmm1 000000010000341c callq _f32_gt 0000000100003421 xorb $-0x1, %al 0000000100003423 andb $0x1, %al 0000000100003425 movzbl %al, %eax 0000000100003428 addq $0x10, %rsp 000000010000342c popq %rbp 000000010000342d retq 000000010000342e nop _f32_gt: 0000000100003430 pushq %rbp 0000000100003431 movq %rsp, %rbp 0000000100003434 subq $0x10, %rsp 0000000100003438 movss %xmm0, -0x4(%rbp) 000000010000343d movss %xmm1, -0x8(%rbp) 0000000100003442 movss -0x4(%rbp), %xmm0 0000000100003447 movss -0x8(%rbp), %xmm1 000000010000344c callq _f32_ne 0000000100003451 xorl %ecx, %ecx 0000000100003453 movb %cl, %dl 0000000100003455 testb $0x1, %al 0000000100003457 movb %dl, -0x9(%rbp) 000000010000345a jne 0x100003465 0000000100003460 jmp 0x100003477 0000000100003465 movss -0x4(%rbp), %xmm0 000000010000346a movss -0x8(%rbp), %xmm1 000000010000346f callq _f32_gtbit 0000000100003474 movb %al, -0x9(%rbp) 0000000100003477 movb -0x9(%rbp), %al 000000010000347a andb $0x1, %al 000000010000347c movzbl %al, %eax 000000010000347f addq $0x10, %rsp 0000000100003483 popq %rbp 0000000100003484 retq 0000000100003485 nopw %cs:(%rax,%rax) _f64_lebit: 0000000100003490 pushq %rbp 0000000100003491 movq %rsp, %rbp 0000000100003494 movsd %xmm0, -0x8(%rbp) 0000000100003499 movsd %xmm1, -0x10(%rbp) 000000010000349e movsd -0x8(%rbp), %xmm0 00000001000034a3 movsd -0x10(%rbp), %xmm1 00000001000034a8 ucomisd %xmm0, %xmm1 00000001000034ac setae %al 00000001000034af andb $0x1, %al 00000001000034b1 movzbl %al, %eax 00000001000034b4 popq %rbp 00000001000034b5 retq 00000001000034b6 nopw %cs:(%rax,%rax) _f32_lebit: 00000001000034c0 pushq %rbp 00000001000034c1 movq %rsp, %rbp 00000001000034c4 movss %xmm0, -0x4(%rbp) 00000001000034c9 movss %xmm1, -0x8(%rbp) 00000001000034ce movss -0x4(%rbp), %xmm0 00000001000034d3 movss -0x8(%rbp), %xmm1 00000001000034d8 ucomiss %xmm0, %xmm1 00000001000034db setae %al 00000001000034de andb $0x1, %al 00000001000034e0 movzbl %al, %eax 00000001000034e3 popq %rbp 00000001000034e4 retq 00000001000034e5 nopw %cs:(%rax,%rax) _f64_gtbit: 00000001000034f0 pushq %rbp 00000001000034f1 movq %rsp, %rbp 00000001000034f4 movsd %xmm0, -0x8(%rbp) 00000001000034f9 movsd %xmm1, -0x10(%rbp) 00000001000034fe movsd -0x8(%rbp), %xmm0 0000000100003503 ucomisd -0x10(%rbp), %xmm0 0000000100003508 seta %al 000000010000350b andb $0x1, %al 000000010000350d movzbl %al, %eax 0000000100003510 popq %rbp 0000000100003511 retq 0000000100003512 nopw %cs:(%rax,%rax) _f32_gtbit: 0000000100003520 pushq %rbp 0000000100003521 movq %rsp, %rbp 0000000100003524 movss %xmm0, -0x4(%rbp) 0000000100003529 movss %xmm1, -0x8(%rbp) 000000010000352e movss -0x4(%rbp), %xmm0 0000000100003533 ucomiss -0x8(%rbp), %xmm0 0000000100003537 seta %al 000000010000353a andb $0x1, %al 000000010000353c movzbl %al, %eax 000000010000353f popq %rbp 0000000100003540 retq 0000000100003541 nopw %cs:(%rax,%rax) _f64_ge: 0000000100003550 pushq %rbp 0000000100003551 movq %rsp, %rbp 0000000100003554 subq $0x10, %rsp 0000000100003558 movsd %xmm0, -0x8(%rbp) 000000010000355d movsd %xmm1, -0x10(%rbp) 0000000100003562 movsd -0x8(%rbp), %xmm0 0000000100003567 movsd -0x10(%rbp), %xmm1 000000010000356c callq _f64_lt 0000000100003571 xorb $-0x1, %al 0000000100003573 andb $0x1, %al 0000000100003575 movzbl %al, %eax 0000000100003578 addq $0x10, %rsp 000000010000357c popq %rbp 000000010000357d retq 000000010000357e nop _f32_ge: 0000000100003580 pushq %rbp 0000000100003581 movq %rsp, %rbp 0000000100003584 subq $0x10, %rsp 0000000100003588 movss %xmm0, -0x4(%rbp) 000000010000358d movss %xmm1, -0x8(%rbp) 0000000100003592 movss -0x4(%rbp), %xmm0 0000000100003597 movss -0x8(%rbp), %xmm1 000000010000359c callq _f32_lt 00000001000035a1 xorb $-0x1, %al 00000001000035a3 andb $0x1, %al 00000001000035a5 movzbl %al, %eax 00000001000035a8 addq $0x10, %rsp 00000001000035ac popq %rbp 00000001000035ad retq 00000001000035ae nop _f64_gebit: 00000001000035b0 pushq %rbp 00000001000035b1 movq %rsp, %rbp 00000001000035b4 movsd %xmm0, -0x8(%rbp) 00000001000035b9 movsd %xmm1, -0x10(%rbp) 00000001000035be movsd -0x8(%rbp), %xmm0 00000001000035c3 ucomisd -0x10(%rbp), %xmm0 00000001000035c8 setae %al 00000001000035cb andb $0x1, %al 00000001000035cd movzbl %al, %eax 00000001000035d0 popq %rbp 00000001000035d1 retq 00000001000035d2 nopw %cs:(%rax,%rax) _f32_gebit: 00000001000035e0 pushq %rbp 00000001000035e1 movq %rsp, %rbp 00000001000035e4 movss %xmm0, -0x4(%rbp) 00000001000035e9 movss %xmm1, -0x8(%rbp) 00000001000035ee movss -0x4(%rbp), %xmm0 00000001000035f3 ucomiss -0x8(%rbp), %xmm0 00000001000035f7 setae %al 00000001000035fa andb $0x1, %al 00000001000035fc movzbl %al, %eax 00000001000035ff popq %rbp 0000000100003600 retq 0000000100003601 nopw %cs:(%rax,%rax) _new_hashmap: 0000000100003610 pushq %rbp 0000000100003611 movq %rsp, %rbp 0000000100003614 subq $0x20, %rsp 0000000100003618 movq %rdi, %rax 000000010000361b leaq _builtin__min_cap(%rip), %rcx 0000000100003622 movl %esi, -0x4(%rbp) 0000000100003625 imull $0x5, -0x4(%rbp), %esi 0000000100003629 movl %esi, -0x8(%rbp) 000000010000362c movl -0x8(%rbp), %esi 000000010000362f cmpl (%rcx), %esi 0000000100003631 movq %rax, -0x10(%rbp) 0000000100003635 movq %rdi, -0x18(%rbp) 0000000100003639 jge 0x10000364b 000000010000363f leaq _builtin__min_cap(%rip), %rax 0000000100003646 movl (%rax), %ecx 0000000100003648 movl %ecx, -0x8(%rbp) 000000010000364b leaq _builtin__max_cap(%rip), %rax 0000000100003652 movl -0x8(%rbp), %ecx 0000000100003655 cmpl (%rax), %ecx 0000000100003657 jle 0x100003669 000000010000365d leaq _builtin__max_cap(%rip), %rax 0000000100003664 movl (%rax), %ecx 0000000100003666 movl %ecx, -0x8(%rbp) 0000000100003669 xorl %esi, %esi 000000010000366b movl $0x1, %edx 0000000100003670 movl $0x10, %ecx 0000000100003675 movl -0x8(%rbp), %eax 0000000100003678 movq -0x18(%rbp), %rdi 000000010000367c movl %eax, (%rdi) 000000010000367e addq $0x8, %rdi 0000000100003682 callq _new_array 0000000100003687 movl $0x20, %ecx 000000010000368c movq -0x18(%rbp), %rdi 0000000100003690 addq $0x20, %rdi 0000000100003694 movl -0x8(%rbp), %esi 0000000100003697 movl -0x8(%rbp), %edx 000000010000369a callq _make 000000010000369f movq -0x18(%rbp), %rdi 00000001000036a3 movl $0x4, 0x38(%rdi) 00000001000036aa movl $0x0, 0x3c(%rdi) 00000001000036b1 movq -0x10(%rbp), %rax 00000001000036b5 addq $0x20, %rsp 00000001000036b9 popq %rbp 00000001000036ba retq 00000001000036bb nopl (%rax,%rax) _hashmap_set: 00000001000036c0 pushq %rbp 00000001000036c1 movq %rsp, %rbp 00000001000036c4 subq $0x90, %rsp 00000001000036cb movq 0x9966(%rip), %rax ## literal pool symbol address: ___stack_chk_guard 00000001000036d2 movq (%rax), %rax 00000001000036d5 movq %rax, -0x8(%rbp) 00000001000036d9 movq %rsi, -0x38(%rbp) 00000001000036dd movl %edx, -0x30(%rbp) 00000001000036e0 movq %rdi, -0x40(%rbp) 00000001000036e4 movl %ecx, -0x44(%rbp) 00000001000036e7 movq -0x38(%rbp), %rdi 00000001000036eb movl -0x30(%rbp), %esi 00000001000036ee callq _string_hash 00000001000036f3 movl %eax, %edi 00000001000036f5 callq _b_fabs 00000001000036fa cvttsd2si %xmm0, %eax 00000001000036fe movl %eax, -0x48(%rbp) 0000000100003701 movl -0x48(%rbp), %eax 0000000100003704 movq -0x40(%rbp), %r8 0000000100003708 cltd 0000000100003709 idivl (%r8) 000000010000370c movl %edx, -0x4c(%rbp) 000000010000370f movq -0x40(%rbp), %r8 0000000100003713 addq $0x20, %r8 0000000100003717 movl -0x4c(%rbp), %edi 000000010000371a movq (%r8), %r9 000000010000371d movq %r9, (%rsp) 0000000100003721 movq 0x8(%r8), %r9 0000000100003725 movq %r9, 0x8(%rsp) 000000010000372a movq 0x10(%r8), %r8 000000010000372e movq %r8, 0x10(%rsp) 0000000100003733 callq _array_get 0000000100003738 cmpl $0x0, 0x8(%rax) 000000010000373c je 0x1000037d8 0000000100003742 movq -0x40(%rbp), %rax 0000000100003746 movl 0x3c(%rax), %ecx 0000000100003749 addl $0x1, %ecx 000000010000374c movl %ecx, 0x3c(%rax) 000000010000374f movq -0x40(%rbp), %rax 0000000100003753 addq $0x20, %rax 0000000100003757 movl -0x4c(%rbp), %edi 000000010000375a movq (%rax), %rdx 000000010000375d movq %rdx, (%rsp) 0000000100003761 movq 0x8(%rax), %rdx 0000000100003765 movq %rdx, 0x8(%rsp) 000000010000376a movq 0x10(%rax), %rax 000000010000376e movq %rax, 0x10(%rsp) 0000000100003773 callq _array_get 0000000100003778 movq %rax, -0x58(%rbp) 000000010000377c movq -0x58(%rbp), %rax 0000000100003780 cmpq $0x0, 0x18(%rax) 0000000100003785 je 0x10000379c 000000010000378b movq -0x58(%rbp), %rax 000000010000378f movq 0x18(%rax), %rax 0000000100003793 movq %rax, -0x58(%rbp) 0000000100003797 jmp 0x10000377c 000000010000379c movl $0x20, %esi 00000001000037a1 leaq -0x78(%rbp), %rax 00000001000037a5 movq -0x38(%rbp), %rcx 00000001000037a9 movq %rcx, -0x78(%rbp) 00000001000037ad movq -0x30(%rbp), %rcx 00000001000037b1 movq %rcx, -0x70(%rbp) 00000001000037b5 movl -0x44(%rbp), %edx 00000001000037b8 movl %edx, -0x68(%rbp) 00000001000037bb movq $0x0, -0x60(%rbp) 00000001000037c3 movq %rax, %rdi 00000001000037c6 callq _memdup 00000001000037cb movq -0x58(%rbp), %rcx 00000001000037cf movq %rax, 0x18(%rcx) 00000001000037d3 jmp 0x100003810 00000001000037d8 leaq -0x28(%rbp), %rax 00000001000037dc movq -0x40(%rbp), %rcx 00000001000037e0 addq $0x20, %rcx 00000001000037e4 movl -0x4c(%rbp), %esi 00000001000037e7 movq -0x38(%rbp), %rdx 00000001000037eb movq %rdx, -0x28(%rbp) 00000001000037ef movq -0x30(%rbp), %rdx 00000001000037f3 movq %rdx, -0x20(%rbp) 00000001000037f7 movl -0x44(%rbp), %edi 00000001000037fa movl %edi, -0x18(%rbp) 00000001000037fd movq $0x0, -0x10(%rbp) 0000000100003805 movq %rcx, %rdi 0000000100003808 movq %rax, %rdx 000000010000380b callq _array_set 0000000100003810 movq 0x9821(%rip), %rax ## literal pool symbol address: ___stack_chk_guard 0000000100003817 movq (%rax), %rax 000000010000381a movq -0x8(%rbp), %rcx 000000010000381e cmpq %rcx, %rax 0000000100003821 jne 0x100003830 0000000100003827 addq $0x90, %rsp 000000010000382e popq %rbp 000000010000382f retq 0000000100003830 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail 0000000100003835 ud2 0000000100003837 nopw (%rax,%rax) _b_fabs: 0000000100003840 pushq %rbp 0000000100003841 movq %rsp, %rbp 0000000100003844 movl %edi, -0x4(%rbp) 0000000100003847 cmpl $0x0, -0x4(%rbp) 000000010000384b jge 0x10000385e 0000000100003851 xorl %eax, %eax 0000000100003853 subl -0x4(%rbp), %eax 0000000100003856 movl %eax, -0x8(%rbp) 0000000100003859 jmp 0x100003864 000000010000385e movl -0x4(%rbp), %eax 0000000100003861 movl %eax, -0x8(%rbp) 0000000100003864 movl -0x8(%rbp), %eax 0000000100003867 cvtsi2sdl %eax, %xmm0 000000010000386b popq %rbp 000000010000386c retq 000000010000386d nopl (%rax) _string_hash: 0000000100003870 pushq %rbp 0000000100003871 movq %rsp, %rbp 0000000100003874 subq $0x50, %rsp 0000000100003878 movq %rdi, -0x10(%rbp) 000000010000387c movl %esi, -0x8(%rbp) 000000010000387f movl $0x0, -0x14(%rbp) 0000000100003886 cmpl $0x0, -0x14(%rbp) 000000010000388a jne 0x1000038fb 0000000100003890 cmpl $0x0, -0x8(%rbp) 0000000100003894 jle 0x1000038fb 000000010000389a leaq -0x40(%rbp), %rdi 000000010000389e movq -0x10(%rbp), %rax 00000001000038a2 movq %rax, -0x28(%rbp) 00000001000038a6 movq -0x8(%rbp), %rax 00000001000038aa movq %rax, -0x20(%rbp) 00000001000038ae movq -0x28(%rbp), %rsi 00000001000038b2 movl -0x20(%rbp), %edx 00000001000038b5 callq _string_bytes 00000001000038ba movl $0x0, -0x44(%rbp) 00000001000038c1 movl -0x44(%rbp), %eax 00000001000038c4 cmpl -0x20(%rbp), %eax 00000001000038c7 jge 0x1000038f6 00000001000038cd movq -0x40(%rbp), %rax 00000001000038d1 movslq -0x44(%rbp), %rcx 00000001000038d5 movb (%rax,%rcx), %dl 00000001000038d8 movb %dl, -0x45(%rbp) 00000001000038db imull $0x1f, -0x14(%rbp), %esi 00000001000038df movzbl -0x45(%rbp), %edi 00000001000038e3 addl %edi, %esi 00000001000038e5 movl %esi, -0x14(%rbp) 00000001000038e8 movl -0x44(%rbp), %eax 00000001000038eb addl $0x1, %eax 00000001000038ee movl %eax, -0x44(%rbp) 00000001000038f1 jmp 0x1000038c1 00000001000038f6 jmp 0x1000038fb 00000001000038fb movl -0x14(%rbp), %eax 00000001000038fe addq $0x50, %rsp 0000000100003902 popq %rbp 0000000100003903 retq 0000000100003904 nopw %cs:(%rax,%rax) _hashmap_get: 0000000100003910 pushq %rbp 0000000100003911 movq %rsp, %rbp 0000000100003914 subq $0x50, %rsp 0000000100003918 movq %rsi, -0x18(%rbp) 000000010000391c movl %edx, -0x10(%rbp) 000000010000391f movq %rdi, -0x20(%rbp) 0000000100003923 movq -0x18(%rbp), %rdi 0000000100003927 movl -0x10(%rbp), %esi 000000010000392a callq _string_hash 000000010000392f movl %eax, %edi 0000000100003931 callq _b_fabs 0000000100003936 cvttsd2si %xmm0, %eax 000000010000393a movl %eax, -0x24(%rbp) 000000010000393d movl -0x24(%rbp), %eax 0000000100003940 movq -0x20(%rbp), %rcx 0000000100003944 cltd 0000000100003945 idivl (%rcx) 0000000100003947 movl %edx, -0x28(%rbp) 000000010000394a movq -0x20(%rbp), %rcx 000000010000394e addq $0x20, %rcx 0000000100003952 movl -0x28(%rbp), %edi 0000000100003955 movq (%rcx), %r8 0000000100003958 movq %r8, (%rsp) 000000010000395c movq 0x8(%rcx), %r8 0000000100003960 movq %r8, 0x8(%rsp) 0000000100003965 movq 0x10(%rcx), %rcx 0000000100003969 movq %rcx, 0x10(%rsp) 000000010000396e callq _array_get 0000000100003973 movq %rax, -0x30(%rbp) 0000000100003977 movq -0x30(%rbp), %rax 000000010000397b cmpq $0x0, 0x18(%rax) 0000000100003980 je 0x1000039c9 0000000100003986 movq -0x30(%rbp), %rax 000000010000398a movq (%rax), %rdi 000000010000398d movl 0x8(%rax), %esi 0000000100003990 movq -0x18(%rbp), %rdx 0000000100003994 movl -0x10(%rbp), %ecx 0000000100003997 callq _string_eq 000000010000399c testb $0x1, %al 000000010000399e jne 0x1000039a9 00000001000039a4 jmp 0x1000039b8 00000001000039a9 movq -0x30(%rbp), %rax 00000001000039ad movl 0x10(%rax), %ecx 00000001000039b0 movl %ecx, -0x4(%rbp) 00000001000039b3 jmp 0x1000039d3 00000001000039b8 movq -0x30(%rbp), %rax 00000001000039bc movq 0x18(%rax), %rax 00000001000039c0 movq %rax, -0x30(%rbp) 00000001000039c4 jmp 0x100003977 00000001000039c9 movq -0x30(%rbp), %rax 00000001000039cd movl 0x10(%rax), %ecx 00000001000039d0 movl %ecx, -0x4(%rbp) 00000001000039d3 movl -0x4(%rbp), %eax 00000001000039d6 addq $0x50, %rsp 00000001000039da popq %rbp 00000001000039db retq 00000001000039dc nopl (%rax) _ptr_str: 00000001000039e0 pushq %rbp 00000001000039e1 movq %rsp, %rbp 00000001000039e4 subq $0x30, %rsp 00000001000039e8 movq %rdi, -0x18(%rbp) 00000001000039ec movl $0x29, %edi 00000001000039f1 callq _v_malloc 00000001000039f6 movq %rax, -0x20(%rbp) 00000001000039fa movq -0x20(%rbp), %rdi 00000001000039fe movq -0x18(%rbp), %r8 0000000100003a02 leaq 0x6f94(%rip), %rcx ## literal pool for: "%p" 0000000100003a09 xorl %edx, %edx 0000000100003a0b movb %dl, %sil 0000000100003a0e movq $-0x1, %rax 0000000100003a15 movb %sil, -0x21(%rbp) 0000000100003a19 movl %edx, %esi 0000000100003a1b movq %rax, %rdx 0000000100003a1e movb -0x21(%rbp), %al 0000000100003a21 callq 0x10000a5aa ## symbol stub for: ___sprintf_chk 0000000100003a26 movq -0x20(%rbp), %rcx 0000000100003a2a movq %rcx, %rdi 0000000100003a2d movl %eax, -0x28(%rbp) 0000000100003a30 movq %rcx, -0x30(%rbp) 0000000100003a34 callq _vstrlen 0000000100003a39 movq -0x30(%rbp), %rdi 0000000100003a3d movl %eax, %esi 0000000100003a3f callq _tos 0000000100003a44 movq %rax, -0x10(%rbp) 0000000100003a48 movl %edx, -0x8(%rbp) 0000000100003a4b movq -0x10(%rbp), %rax 0000000100003a4f movl -0x8(%rbp), %edx 0000000100003a52 addq $0x30, %rsp 0000000100003a56 popq %rbp 0000000100003a57 retq 0000000100003a58 nopl (%rax,%rax) _u32_str: 0000000100003a60 pushq %rbp 0000000100003a61 movq %rsp, %rbp 0000000100003a64 subq $0x40, %rsp 0000000100003a68 movl %edi, -0x14(%rbp) 0000000100003a6b movl -0x14(%rbp), %edi 0000000100003a6e movl %edi, -0x18(%rbp) 0000000100003a71 cmpl $0x0, -0x18(%rbp) 0000000100003a75 jne 0x100003a93 0000000100003a7b leaq 0x6f1e(%rip), %rdi ## literal pool for: "0" 0000000100003a82 callq _tos3 0000000100003a87 movq %rax, -0x10(%rbp) 0000000100003a8b movl %edx, -0x8(%rbp) 0000000100003a8e jmp 0x100003b30 0000000100003a93 movl $0x10, -0x1c(%rbp) 0000000100003a9a movl -0x1c(%rbp), %edi 0000000100003a9d callq _v_malloc 0000000100003aa2 movq %rax, -0x28(%rbp) 0000000100003aa6 movl $0x0, -0x2c(%rbp) 0000000100003aad cmpl $0x0, -0x18(%rbp) 0000000100003ab1 jbe 0x100003b05 0000000100003ab7 movl $0xa, %eax 0000000100003abc movl -0x18(%rbp), %ecx 0000000100003abf movl %eax, -0x34(%rbp) 0000000100003ac2 movl %ecx, %eax 0000000100003ac4 xorl %edx, %edx 0000000100003ac6 movl -0x34(%rbp), %ecx 0000000100003ac9 divl %ecx 0000000100003acb movl %edx, -0x30(%rbp) 0000000100003ace movl -0x30(%rbp), %edx 0000000100003ad1 addl $0x30, %edx 0000000100003ad4 movb %dl, %sil 0000000100003ad7 movq -0x28(%rbp), %rdi 0000000100003adb movl -0x1c(%rbp), %edx 0000000100003ade subl -0x2c(%rbp), %edx 0000000100003ae1 subl $0x1, %edx 0000000100003ae4 movslq %edx, %r8 0000000100003ae7 movb %sil, (%rdi,%r8) 0000000100003aeb movl -0x2c(%rbp), %edx 0000000100003aee addl $0x1, %edx 0000000100003af1 movl %edx, -0x2c(%rbp) 0000000100003af4 movl -0x18(%rbp), %edx 0000000100003af7 movl %edx, %eax 0000000100003af9 xorl %edx, %edx 0000000100003afb divl %ecx 0000000100003afd movl %eax, -0x18(%rbp) 0000000100003b00 jmp 0x100003aad 0000000100003b05 xorl %eax, %eax 0000000100003b07 movl %eax, %ecx 0000000100003b09 movq -0x28(%rbp), %rdx 0000000100003b0d movslq -0x1c(%rbp), %rsi 0000000100003b11 addq %rsi, %rdx 0000000100003b14 movslq -0x2c(%rbp), %rsi 0000000100003b18 subq %rsi, %rcx 0000000100003b1b addq %rcx, %rdx 0000000100003b1e movl -0x2c(%rbp), %esi 0000000100003b21 movq %rdx, %rdi 0000000100003b24 callq _tos 0000000100003b29 movq %rax, -0x10(%rbp) 0000000100003b2d movl %edx, -0x8(%rbp) 0000000100003b30 movq -0x10(%rbp), %rax 0000000100003b34 movl -0x8(%rbp), %edx 0000000100003b37 addq $0x40, %rsp 0000000100003b3b popq %rbp 0000000100003b3c retq 0000000100003b3d nopl (%rax) _i64_str: 0000000100003b40 pushq %rbp 0000000100003b41 movq %rsp, %rbp 0000000100003b44 subq $0x40, %rsp 0000000100003b48 movq %rdi, -0x18(%rbp) 0000000100003b4c movq -0x18(%rbp), %rdi 0000000100003b50 movq %rdi, -0x20(%rbp) 0000000100003b54 cmpq $0x0, -0x20(%rbp) 0000000100003b59 jne 0x100003b77 0000000100003b5f leaq 0x6e3a(%rip), %rdi ## literal pool for: "0" 0000000100003b66 callq _tos3 0000000100003b6b movq %rax, -0x10(%rbp) 0000000100003b6f movl %edx, -0x8(%rbp) 0000000100003b72 jmp 0x100003c62 0000000100003b77 movl $0x20, -0x24(%rbp) 0000000100003b7e movl -0x24(%rbp), %edi 0000000100003b81 callq _v_malloc 0000000100003b86 movq %rax, -0x30(%rbp) 0000000100003b8a movl $0x0, -0x34(%rbp) 0000000100003b91 movb $0x0, -0x35(%rbp) 0000000100003b95 cmpq $0x0, -0x20(%rbp) 0000000100003b9a jge 0x100003bb0 0000000100003ba0 xorl %eax, %eax 0000000100003ba2 movl %eax, %ecx 0000000100003ba4 subq -0x20(%rbp), %rcx 0000000100003ba8 movq %rcx, -0x20(%rbp) 0000000100003bac movb $0x1, -0x35(%rbp) 0000000100003bb0 jmp 0x100003bb5 0000000100003bb5 cmpq $0x0, -0x20(%rbp) 0000000100003bba jle 0x100003c10 0000000100003bc0 movl $0xa, %eax 0000000100003bc5 movl %eax, %ecx 0000000100003bc7 movq -0x20(%rbp), %rax 0000000100003bcb cqto 0000000100003bcd idivq %rcx 0000000100003bd0 movl %edx, %esi 0000000100003bd2 movl %esi, -0x3c(%rbp) 0000000100003bd5 movl -0x3c(%rbp), %esi 0000000100003bd8 addl $0x30, %esi 0000000100003bdb movb %sil, %dil 0000000100003bde movq -0x30(%rbp), %rdx 0000000100003be2 movl -0x24(%rbp), %esi 0000000100003be5 subl -0x34(%rbp), %esi 0000000100003be8 subl $0x1, %esi 0000000100003beb movslq %esi, %r8 0000000100003bee movb %dil, (%rdx,%r8) 0000000100003bf2 movl -0x34(%rbp), %esi 0000000100003bf5 addl $0x1, %esi 0000000100003bf8 movl %esi, -0x34(%rbp) 0000000100003bfb movq -0x20(%rbp), %rdx 0000000100003bff movq %rdx, %rax 0000000100003c02 cqto 0000000100003c04 idivq %rcx 0000000100003c07 movq %rax, -0x20(%rbp) 0000000100003c0b jmp 0x100003bb5 0000000100003c10 testb $0x1, -0x35(%rbp) 0000000100003c14 je 0x100003c37 0000000100003c1a movq -0x30(%rbp), %rax 0000000100003c1e movl -0x24(%rbp), %ecx 0000000100003c21 subl -0x34(%rbp), %ecx 0000000100003c24 subl $0x1, %ecx 0000000100003c27 movslq %ecx, %rdx 0000000100003c2a movb $0x2d, (%rax,%rdx) 0000000100003c2e movl -0x34(%rbp), %ecx 0000000100003c31 addl $0x1, %ecx 0000000100003c34 movl %ecx, -0x34(%rbp) 0000000100003c37 xorl %eax, %eax 0000000100003c39 movl %eax, %ecx 0000000100003c3b movq -0x30(%rbp), %rdx 0000000100003c3f movslq -0x24(%rbp), %rsi 0000000100003c43 addq %rsi, %rdx 0000000100003c46 movslq -0x34(%rbp), %rsi 0000000100003c4a subq %rsi, %rcx 0000000100003c4d addq %rcx, %rdx 0000000100003c50 movl -0x34(%rbp), %esi 0000000100003c53 movq %rdx, %rdi 0000000100003c56 callq _tos 0000000100003c5b movq %rax, -0x10(%rbp) 0000000100003c5f movl %edx, -0x8(%rbp) 0000000100003c62 movq -0x10(%rbp), %rax 0000000100003c66 movl -0x8(%rbp), %edx 0000000100003c69 addq $0x40, %rsp 0000000100003c6d popq %rbp 0000000100003c6e retq 0000000100003c6f nop _u64_str: 0000000100003c70 pushq %rbp 0000000100003c71 movq %rsp, %rbp 0000000100003c74 subq $0x40, %rsp 0000000100003c78 movq %rdi, -0x18(%rbp) 0000000100003c7c movq -0x18(%rbp), %rdi 0000000100003c80 movq %rdi, -0x20(%rbp) 0000000100003c84 cmpq $0x0, -0x20(%rbp) 0000000100003c89 jne 0x100003ca7 0000000100003c8f leaq 0x6d0a(%rip), %rdi ## literal pool for: "0" 0000000100003c96 callq _tos3 0000000100003c9b movq %rax, -0x10(%rbp) 0000000100003c9f movl %edx, -0x8(%rbp) 0000000100003ca2 jmp 0x100003d4a 0000000100003ca7 movl $0x20, -0x24(%rbp) 0000000100003cae movl -0x24(%rbp), %edi 0000000100003cb1 callq _v_malloc 0000000100003cb6 movq %rax, -0x30(%rbp) 0000000100003cba movl $0x0, -0x34(%rbp) 0000000100003cc1 cmpq $0x0, -0x20(%rbp) 0000000100003cc6 jbe 0x100003d1f 0000000100003ccc movl $0xa, %eax 0000000100003cd1 movl %eax, %ecx 0000000100003cd3 movq -0x20(%rbp), %rax 0000000100003cd7 xorl %edx, %edx 0000000100003cd9 divq %rcx 0000000100003cdc movq %rdx, -0x40(%rbp) 0000000100003ce0 movq -0x40(%rbp), %rdx 0000000100003ce4 addq $0x30, %rdx 0000000100003ce8 movb %dl, %sil 0000000100003ceb movq -0x30(%rbp), %rdx 0000000100003cef movl -0x24(%rbp), %edi 0000000100003cf2 subl -0x34(%rbp), %edi 0000000100003cf5 subl $0x1, %edi 0000000100003cf8 movslq %edi, %r8 0000000100003cfb movb %sil, (%rdx,%r8) 0000000100003cff movl -0x34(%rbp), %edi 0000000100003d02 addl $0x1, %edi 0000000100003d05 movl %edi, -0x34(%rbp) 0000000100003d08 movq -0x20(%rbp), %rdx 0000000100003d0c movq %rdx, %rax 0000000100003d0f xorl %edi, %edi 0000000100003d11 movl %edi, %edx 0000000100003d13 divq %rcx 0000000100003d16 movq %rax, -0x20(%rbp) 0000000100003d1a jmp 0x100003cc1 0000000100003d1f xorl %eax, %eax 0000000100003d21 movl %eax, %ecx 0000000100003d23 movq -0x30(%rbp), %rdx 0000000100003d27 movslq -0x24(%rbp), %rsi 0000000100003d2b addq %rsi, %rdx 0000000100003d2e movslq -0x34(%rbp), %rsi 0000000100003d32 subq %rsi, %rcx 0000000100003d35 addq %rcx, %rdx 0000000100003d38 movl -0x34(%rbp), %esi 0000000100003d3b movq %rdx, %rdi 0000000100003d3e callq _tos 0000000100003d43 movq %rax, -0x10(%rbp) 0000000100003d47 movl %edx, -0x8(%rbp) 0000000100003d4a movq -0x10(%rbp), %rax 0000000100003d4e movl -0x8(%rbp), %edx 0000000100003d51 addq $0x40, %rsp 0000000100003d55 popq %rbp 0000000100003d56 retq 0000000100003d57 nopw (%rax,%rax) _bool_str: 0000000100003d60 pushq %rbp 0000000100003d61 movq %rsp, %rbp 0000000100003d64 subq $0x20, %rsp 0000000100003d68 movb %dil, %al 0000000100003d6b andb $0x1, %al 0000000100003d6d movb %al, -0x11(%rbp) 0000000100003d70 testb $0x1, -0x11(%rbp) 0000000100003d74 je 0x100003d92 0000000100003d7a leaq 0x6c21(%rip), %rdi ## literal pool for: "true" 0000000100003d81 callq _tos3 0000000100003d86 movq %rax, -0x10(%rbp) 0000000100003d8a movl %edx, -0x8(%rbp) 0000000100003d8d jmp 0x100003da5 0000000100003d92 leaq 0x6c0e(%rip), %rdi ## literal pool for: "false" 0000000100003d99 callq _tos3 0000000100003d9e movq %rax, -0x10(%rbp) 0000000100003da2 movl %edx, -0x8(%rbp) 0000000100003da5 movq -0x10(%rbp), %rax 0000000100003da9 movl -0x8(%rbp), %edx 0000000100003dac addq $0x20, %rsp 0000000100003db0 popq %rbp 0000000100003db1 retq 0000000100003db2 nopw %cs:(%rax,%rax) _int_hex: 0000000100003dc0 pushq %rbp 0000000100003dc1 movq %rsp, %rbp 0000000100003dc4 subq $0x40, %rsp 0000000100003dc8 movl %edi, -0x14(%rbp) 0000000100003dcb cmpl $0x0, -0x14(%rbp) 0000000100003dcf jl 0x100003df2 0000000100003dd5 movl -0x14(%rbp), %edi 0000000100003dd8 callq _int_str 0000000100003ddd movq %rax, -0x28(%rbp) 0000000100003de1 movl %edx, -0x20(%rbp) 0000000100003de4 movl -0x20(%rbp), %edx 0000000100003de7 addl $0x3, %edx 0000000100003dea movl %edx, -0x38(%rbp) 0000000100003ded jmp 0x100003dff 0000000100003df2 movl $0xb, %eax 0000000100003df7 movl %eax, -0x38(%rbp) 0000000100003dfa jmp 0x100003dff 0000000100003dff movl -0x38(%rbp), %eax 0000000100003e02 movl %eax, -0x18(%rbp) 0000000100003e05 movl -0x18(%rbp), %edi 0000000100003e08 callq _v_malloc 0000000100003e0d movq %rax, -0x30(%rbp) 0000000100003e11 movq -0x30(%rbp), %rdi 0000000100003e15 movl -0x14(%rbp), %r8d 0000000100003e19 leaq 0x6b8d(%rip), %rcx ## literal pool for: "0x%x" 0000000100003e20 xorl %edx, %edx 0000000100003e22 movb %dl, %sil 0000000100003e25 movq $-0x1, %rax 0000000100003e2c movb %sil, -0x39(%rbp) 0000000100003e30 movl %edx, %esi 0000000100003e32 movq %rax, %rdx 0000000100003e35 movb -0x39(%rbp), %al 0000000100003e38 callq 0x10000a5aa ## symbol stub for: ___sprintf_chk 0000000100003e3d movl %eax, -0x34(%rbp) 0000000100003e40 movq -0x30(%rbp), %rdi 0000000100003e44 movl -0x34(%rbp), %esi 0000000100003e47 callq _tos 0000000100003e4c movq %rax, -0x10(%rbp) 0000000100003e50 movl %edx, -0x8(%rbp) 0000000100003e53 movq -0x10(%rbp), %rax 0000000100003e57 movl -0x8(%rbp), %edx 0000000100003e5a addq $0x40, %rsp 0000000100003e5e popq %rbp 0000000100003e5f retq _i64_hex: 0000000100003e60 pushq %rbp 0000000100003e61 movq %rsp, %rbp 0000000100003e64 subq $0x50, %rsp 0000000100003e68 movq %rdi, -0x18(%rbp) 0000000100003e6c cmpq $0x0, -0x18(%rbp) 0000000100003e71 jl 0x100003e95 0000000100003e77 movq -0x18(%rbp), %rdi 0000000100003e7b callq _i64_str 0000000100003e80 movq %rax, -0x30(%rbp) 0000000100003e84 movl %edx, -0x28(%rbp) 0000000100003e87 movl -0x28(%rbp), %edx 0000000100003e8a addl $0x3, %edx 0000000100003e8d movl %edx, -0x40(%rbp) 0000000100003e90 jmp 0x100003ea2 0000000100003e95 movl $0x13, %eax 0000000100003e9a movl %eax, -0x40(%rbp) 0000000100003e9d jmp 0x100003ea2 0000000100003ea2 movl -0x40(%rbp), %eax 0000000100003ea5 movl %eax, -0x1c(%rbp) 0000000100003ea8 movl -0x1c(%rbp), %edi 0000000100003eab callq _v_malloc 0000000100003eb0 movq %rax, -0x38(%rbp) 0000000100003eb4 movq -0x38(%rbp), %rdi 0000000100003eb8 movq -0x18(%rbp), %r8 0000000100003ebc leaq 0x6aef(%rip), %rcx ## literal pool for: "0x%llx" 0000000100003ec3 xorl %edx, %edx 0000000100003ec5 movb %dl, %sil 0000000100003ec8 movq $-0x1, %rax 0000000100003ecf movb %sil, -0x41(%rbp) 0000000100003ed3 movl %edx, %esi 0000000100003ed5 movq %rax, %rdx 0000000100003ed8 movb -0x41(%rbp), %al 0000000100003edb callq 0x10000a5aa ## symbol stub for: ___sprintf_chk 0000000100003ee0 movl %eax, -0x3c(%rbp) 0000000100003ee3 movq -0x38(%rbp), %rdi 0000000100003ee7 movl -0x3c(%rbp), %esi 0000000100003eea callq _tos 0000000100003eef movq %rax, -0x10(%rbp) 0000000100003ef3 movl %edx, -0x8(%rbp) 0000000100003ef6 movq -0x10(%rbp), %rax 0000000100003efa movl -0x8(%rbp), %edx 0000000100003efd addq $0x50, %rsp 0000000100003f01 popq %rbp 0000000100003f02 retq 0000000100003f03 nopw %cs:(%rax,%rax) _array_byte_contains: 0000000100003f10 pushq %rbp 0000000100003f11 movq %rsp, %rbp 0000000100003f14 movb %dil, %al 0000000100003f17 leaq 0x10(%rbp), %rcx 0000000100003f1b movb %al, -0x2(%rbp) 0000000100003f1e movq (%rcx), %rdx 0000000100003f21 movq %rdx, -0x20(%rbp) 0000000100003f25 movq 0x8(%rcx), %rdx 0000000100003f29 movq %rdx, -0x18(%rbp) 0000000100003f2d movq 0x10(%rcx), %rcx 0000000100003f31 movq %rcx, -0x10(%rbp) 0000000100003f35 movl $0x0, -0x24(%rbp) 0000000100003f3c movl -0x24(%rbp), %eax 0000000100003f3f cmpl -0x18(%rbp), %eax 0000000100003f42 jge 0x100003f82 0000000100003f48 movq -0x20(%rbp), %rax 0000000100003f4c movslq -0x24(%rbp), %rcx 0000000100003f50 movb (%rax,%rcx), %dl 0000000100003f53 movb %dl, -0x25(%rbp) 0000000100003f56 movzbl -0x25(%rbp), %esi 0000000100003f5a movzbl -0x2(%rbp), %edi 0000000100003f5e cmpl %edi, %esi 0000000100003f60 jne 0x100003f6f 0000000100003f66 movb $0x1, -0x1(%rbp) 0000000100003f6a jmp 0x100003f86 0000000100003f6f jmp 0x100003f74 0000000100003f74 movl -0x24(%rbp), %eax 0000000100003f77 addl $0x1, %eax 0000000100003f7a movl %eax, -0x24(%rbp) 0000000100003f7d jmp 0x100003f3c 0000000100003f82 movb $0x0, -0x1(%rbp) 0000000100003f86 movb -0x1(%rbp), %al 0000000100003f89 andb $0x1, %al 0000000100003f8b movzbl %al, %eax 0000000100003f8e popq %rbp 0000000100003f8f retq _rune_str: 0000000100003f90 pushq %rbp 0000000100003f91 movq %rsp, %rbp 0000000100003f94 subq $0x30, %rsp 0000000100003f98 movl %edi, -0x14(%rbp) 0000000100003f9b movl -0x14(%rbp), %edi 0000000100003f9e sarl $0x18, %edi 0000000100003fa1 andl $0xff, %edi 0000000100003fa7 movl %edi, -0x18(%rbp) 0000000100003faa movl -0x18(%rbp), %edi 0000000100003fad movb %dil, %al 0000000100003fb0 movzbl %al, %edi 0000000100003fb3 callq _utf8_char_len 0000000100003fb8 movl %eax, -0x1c(%rbp) 0000000100003fbb movl -0x1c(%rbp), %eax 0000000100003fbe addl $0x1, %eax 0000000100003fc1 movl %eax, %edi 0000000100003fc3 callq _v_malloc 0000000100003fc8 movq %rax, -0x10(%rbp) 0000000100003fcc movl -0x1c(%rbp), %edi 0000000100003fcf movl %edi, -0x8(%rbp) 0000000100003fd2 movl $0x0, -0x20(%rbp) 0000000100003fd9 movl -0x20(%rbp), %eax 0000000100003fdc cmpl -0x1c(%rbp), %eax 0000000100003fdf jge 0x10000401d 0000000100003fe5 movl $0x3, %eax 0000000100003fea movl -0x14(%rbp), %ecx 0000000100003fed subl -0x20(%rbp), %eax 0000000100003ff0 shll $0x3, %eax 0000000100003ff3 movl %ecx, -0x24(%rbp) 0000000100003ff6 movl %eax, %ecx 0000000100003ff8 movl -0x24(%rbp), %eax 0000000100003ffb sarl %cl, %eax 0000000100003ffd andl $0xff, %eax 0000000100004002 movb %al, %cl 0000000100004004 movq -0x10(%rbp), %rdx 0000000100004008 movslq -0x20(%rbp), %rsi 000000010000400c movb %cl, (%rdx,%rsi) 000000010000400f movl -0x20(%rbp), %eax 0000000100004012 addl $0x1, %eax 0000000100004015 movl %eax, -0x20(%rbp) 0000000100004018 jmp 0x100003fd9 000000010000401d movq -0x10(%rbp), %rax 0000000100004021 movslq -0x1c(%rbp), %rcx 0000000100004025 movb $0x0, (%rax,%rcx) 0000000100004029 movq -0x10(%rbp), %rax 000000010000402d movl -0x8(%rbp), %edx 0000000100004030 addq $0x30, %rsp 0000000100004034 popq %rbp 0000000100004035 retq 0000000100004036 nopw %cs:(%rax,%rax) _utf8_char_len: 0000000100004040 pushq %rbp 0000000100004041 movq %rsp, %rbp 0000000100004044 movb %dil, %al 0000000100004047 movl $0xe5000000, %edi 000000010000404c movb %al, -0x1(%rbp) 000000010000404f movzbl -0x1(%rbp), %ecx 0000000100004053 sarl $0x3, %ecx 0000000100004056 andl $0x1e, %ecx 0000000100004059 shrl %cl, %edi 000000010000405b andl $0x3, %edi 000000010000405e addl $0x1, %edi 0000000100004061 movl %edi, %eax 0000000100004063 popq %rbp 0000000100004064 retq 0000000100004065 nopw %cs:(%rax,%rax) _byte_str: 0000000100004070 pushq %rbp 0000000100004071 movq %rsp, %rbp 0000000100004074 subq $0x20, %rsp 0000000100004078 movb %dil, %al 000000010000407b movb %al, -0x11(%rbp) 000000010000407e movl $0x2, %edi 0000000100004083 callq _v_malloc 0000000100004088 movq %rax, -0x10(%rbp) 000000010000408c movl $0x1, -0x8(%rbp) 0000000100004093 movb -0x11(%rbp), %cl 0000000100004096 movq -0x10(%rbp), %rax 000000010000409a movb %cl, (%rax) 000000010000409c movq -0x10(%rbp), %rax 00000001000040a0 movb $0x0, 0x1(%rax) 00000001000040a4 movq -0x10(%rbp), %rax 00000001000040a8 movl -0x8(%rbp), %edx 00000001000040ab addq $0x20, %rsp 00000001000040af popq %rbp 00000001000040b0 retq 00000001000040b1 nopw %cs:(%rax,%rax) _byte_is_capital: 00000001000040c0 pushq %rbp 00000001000040c1 movq %rsp, %rbp 00000001000040c4 movb %dil, %al 00000001000040c7 xorl %edi, %edi 00000001000040c9 movb %dil, %cl 00000001000040cc movb %al, -0x1(%rbp) 00000001000040cf movzbl -0x1(%rbp), %edi 00000001000040d3 cmpl $0x41, %edi 00000001000040d6 movb %cl, -0x2(%rbp) 00000001000040d9 jl 0x1000040ec 00000001000040df movzbl -0x1(%rbp), %eax 00000001000040e3 cmpl $0x5a, %eax 00000001000040e6 setle %cl 00000001000040e9 movb %cl, -0x2(%rbp) 00000001000040ec movb -0x2(%rbp), %al 00000001000040ef andb $0x1, %al 00000001000040f1 movzbl %al, %eax 00000001000040f4 popq %rbp 00000001000040f5 retq 00000001000040f6 nopw %cs:(%rax,%rax) _array_byte_clone: 0000000100004100 pushq %rbp 0000000100004101 movq %rsp, %rbp 0000000100004104 subq $0x70, %rsp 0000000100004108 movq %rdi, %rax 000000010000410b leaq 0x10(%rbp), %rcx 000000010000410f leaq -0x18(%rbp), %rdx 0000000100004113 movl $0x1, %esi 0000000100004118 leaq -0x19(%rbp), %r8 000000010000411c movb $0x0, -0x19(%rbp) 0000000100004120 movq %rdi, -0x30(%rbp) 0000000100004124 movq %rdx, %rdi 0000000100004127 movl %esi, -0x34(%rbp) 000000010000412a movl -0x34(%rbp), %edx 000000010000412d movl -0x34(%rbp), %r9d 0000000100004131 movq %rcx, -0x40(%rbp) 0000000100004135 movl %r9d, %ecx 0000000100004138 movq %rax, -0x48(%rbp) 000000010000413c callq _new_array_from_c_array 0000000100004141 leaq -0x18(%rbp), %rax 0000000100004145 movq -0x40(%rbp), %rdi 0000000100004149 movl 0x8(%rdi), %esi 000000010000414c movq -0x30(%rbp), %rdi 0000000100004150 movq (%rax), %r8 0000000100004153 movq %r8, (%rsp) 0000000100004157 movq 0x8(%rax), %r8 000000010000415b movq %r8, 0x8(%rsp) 0000000100004160 movq 0x10(%rax), %rax 0000000100004164 movq %rax, 0x10(%rsp) 0000000100004169 callq _array_repeat 000000010000416e movl $0x0, -0x20(%rbp) 0000000100004175 movl -0x20(%rbp), %eax 0000000100004178 movq -0x40(%rbp), %rcx 000000010000417c cmpl 0x8(%rcx), %eax 000000010000417f jge 0x1000041d6 0000000100004185 movl -0x20(%rbp), %esi 0000000100004188 movl -0x20(%rbp), %edi 000000010000418b movq -0x40(%rbp), %rax 000000010000418f movq (%rax), %rcx 0000000100004192 movq %rcx, (%rsp) 0000000100004196 movq 0x8(%rax), %rcx 000000010000419a movq %rcx, 0x8(%rsp) 000000010000419f movq 0x10(%rax), %rcx 00000001000041a3 movq %rcx, 0x10(%rsp) 00000001000041a8 movl %esi, -0x4c(%rbp) 00000001000041ab callq _array_get 00000001000041b0 leaq -0x21(%rbp), %rcx 00000001000041b4 movb (%rax), %dl 00000001000041b6 movb %dl, -0x21(%rbp) 00000001000041b9 movq -0x30(%rbp), %rdi 00000001000041bd movl -0x4c(%rbp), %esi 00000001000041c0 movq %rcx, %rdx 00000001000041c3 callq _array_set 00000001000041c8 movl -0x20(%rbp), %eax 00000001000041cb addl $0x1, %eax 00000001000041ce movl %eax, -0x20(%rbp) 00000001000041d1 jmp 0x100004175 00000001000041d6 movq -0x48(%rbp), %rax 00000001000041da addq $0x70, %rsp 00000001000041de popq %rbp 00000001000041df retq _new_map: 00000001000041e0 pushq %rbp 00000001000041e1 movq %rsp, %rbp 00000001000041e4 subq $0x20, %rsp 00000001000041e8 movq %rdi, %rax 00000001000041eb xorl %ecx, %ecx 00000001000041ed movl $0x18, %r8d 00000001000041f3 movl %r8d, %r9d 00000001000041f6 movl %esi, -0x4(%rbp) 00000001000041f9 movl %edx, -0x8(%rbp) 00000001000041fc movq %rdi, %r10 00000001000041ff movq %rdi, -0x10(%rbp) 0000000100004203 movq %r10, %rdi 0000000100004206 movl %ecx, %esi 0000000100004208 movq %r9, %rdx 000000010000420b movq %rax, -0x18(%rbp) 000000010000420f callq 0x10000a604 ## symbol stub for: _memset 0000000100004214 movl -0x8(%rbp), %ecx 0000000100004217 movq -0x10(%rbp), %rax 000000010000421b movl %ecx, (%rax) 000000010000421d movq -0x18(%rbp), %rax 0000000100004221 addq $0x20, %rsp 0000000100004225 popq %rbp 0000000100004226 retq 0000000100004227 nopw (%rax,%rax) _new_map_init: 0000000100004230 pushq %rbp 0000000100004231 movq %rsp, %rbp 0000000100004234 subq $0x40, %rsp 0000000100004238 movq %rdi, %rax 000000010000423b xorl %r9d, %r9d 000000010000423e movl $0x18, %r10d 0000000100004244 movl %r10d, %r11d 0000000100004247 movl %esi, -0x4(%rbp) 000000010000424a movl %edx, -0x8(%rbp) 000000010000424d movq %rcx, -0x10(%rbp) 0000000100004251 movq %r8, -0x18(%rbp) 0000000100004255 movq %rdi, %rcx 0000000100004258 movq %rdi, -0x30(%rbp) 000000010000425c movq %rcx, %rdi 000000010000425f movl %r9d, %esi 0000000100004262 movq %r11, %rdx 0000000100004265 movq %rax, -0x38(%rbp) 0000000100004269 callq 0x10000a604 ## symbol stub for: _memset 000000010000426e movl -0x8(%rbp), %esi 0000000100004271 movq -0x30(%rbp), %rax 0000000100004275 movl %esi, (%rax) 0000000100004277 movl $0x0, -0x1c(%rbp) 000000010000427e movl -0x1c(%rbp), %esi 0000000100004281 movl %esi, -0x20(%rbp) 0000000100004284 movl -0x20(%rbp), %eax 0000000100004287 cmpl -0x4(%rbp), %eax 000000010000428a jge 0x1000042dd 0000000100004290 movl -0x20(%rbp), %eax 0000000100004293 movl %eax, -0x24(%rbp) 0000000100004296 movq -0x10(%rbp), %rcx 000000010000429a movslq -0x24(%rbp), %rdx 000000010000429e shlq $0x4, %rdx 00000001000042a2 addq %rdx, %rcx 00000001000042a5 movq -0x18(%rbp), %rdx 00000001000042a9 movl -0x24(%rbp), %eax 00000001000042ac imull -0x8(%rbp), %eax 00000001000042b0 movslq %eax, %rsi 00000001000042b3 addq %rsi, %rdx 00000001000042b6 movq (%rcx), %rsi 00000001000042b9 movl 0x8(%rcx), %eax 00000001000042bc movq -0x30(%rbp), %rdi 00000001000042c0 movq %rdx, -0x40(%rbp) 00000001000042c4 movl %eax, %edx 00000001000042c6 movq -0x40(%rbp), %rcx 00000001000042ca callq _map_set 00000001000042cf movl -0x20(%rbp), %eax 00000001000042d2 addl $0x1, %eax 00000001000042d5 movl %eax, -0x20(%rbp) 00000001000042d8 jmp 0x100004284 00000001000042dd movq -0x38(%rbp), %rax 00000001000042e1 addq $0x40, %rsp 00000001000042e5 popq %rbp 00000001000042e6 retq 00000001000042e7 nopw (%rax,%rax) _map_set: 00000001000042f0 pushq %rbp 00000001000042f1 movq %rsp, %rbp 00000001000042f4 subq $0x20, %rsp 00000001000042f8 movq %rsi, -0x10(%rbp) 00000001000042fc movl %edx, -0x8(%rbp) 00000001000042ff movq %rdi, -0x18(%rbp) 0000000100004303 movq %rcx, -0x20(%rbp) 0000000100004307 movq -0x18(%rbp), %rcx 000000010000430b movq 0x8(%rcx), %rcx 000000010000430f movq %rcx, %rdi 0000000100004312 callq _isnil 0000000100004317 testb $0x1, %al 0000000100004319 jne 0x100004324 000000010000431f jmp 0x100004354 0000000100004324 movq -0x20(%rbp), %rdx 0000000100004328 movq -0x18(%rbp), %rax 000000010000432c movl (%rax), %ecx 000000010000432e movq -0x10(%rbp), %rdi 0000000100004332 movl -0x8(%rbp), %esi 0000000100004335 callq _new_node 000000010000433a movq -0x18(%rbp), %rdx 000000010000433e movq %rax, 0x8(%rdx) 0000000100004342 movq -0x18(%rbp), %rax 0000000100004346 movl 0x10(%rax), %ecx 0000000100004349 addl $0x1, %ecx 000000010000434c movl %ecx, 0x10(%rax) 000000010000434f jmp 0x100004370 0000000100004354 movq -0x18(%rbp), %rdi 0000000100004358 movq -0x18(%rbp), %rax 000000010000435c movq 0x8(%rax), %rsi 0000000100004360 movq -0x20(%rbp), %r8 0000000100004364 movq -0x10(%rbp), %rdx 0000000100004368 movl -0x8(%rbp), %ecx 000000010000436b callq _map_insert 0000000100004370 addq $0x20, %rsp 0000000100004374 popq %rbp 0000000100004375 retq 0000000100004376 nopw %cs:(%rax,%rax) _new_node: 0000000100004380 pushq %rbp 0000000100004381 movq %rsp, %rbp 0000000100004384 subq $0x60, %rsp 0000000100004388 movq %rdi, -0x10(%rbp) 000000010000438c movl %esi, -0x8(%rbp) 000000010000438f movq %rdx, -0x18(%rbp) 0000000100004393 movl %ecx, -0x1c(%rbp) 0000000100004396 movq $0x0, -0x58(%rbp) 000000010000439e movq $0x0, -0x50(%rbp) 00000001000043a6 movb $0x0, -0x48(%rbp) 00000001000043aa movq -0x10(%rbp), %rdx 00000001000043ae movq %rdx, -0x40(%rbp) 00000001000043b2 movq -0x8(%rbp), %rdx 00000001000043b6 movq %rdx, -0x38(%rbp) 00000001000043ba movl -0x1c(%rbp), %edi 00000001000043bd callq _v_malloc 00000001000043c2 movl $0x30, %esi 00000001000043c7 leaq -0x58(%rbp), %rdx 00000001000043cb movq %rax, -0x30(%rbp) 00000001000043cf movq %rdx, %rdi 00000001000043d2 callq _memdup 00000001000043d7 movq $-0x1, %rcx 00000001000043de movq %rax, -0x28(%rbp) 00000001000043e2 movq -0x28(%rbp), %rax 00000001000043e6 movq 0x28(%rax), %rdi 00000001000043ea movq -0x18(%rbp), %rsi 00000001000043ee movslq -0x1c(%rbp), %rdx 00000001000043f2 callq 0x10000a598 ## symbol stub for: ___memcpy_chk 00000001000043f7 movq -0x28(%rbp), %rcx 00000001000043fb movq %rax, -0x60(%rbp) 00000001000043ff movq %rcx, %rax 0000000100004402 addq $0x60, %rsp 0000000100004406 popq %rbp 0000000100004407 retq 0000000100004408 nopl (%rax,%rax) _map_insert: 0000000100004410 pushq %rbp 0000000100004411 movq %rsp, %rbp 0000000100004414 subq $0x30, %rsp 0000000100004418 movq %rdx, -0x10(%rbp) 000000010000441c movl %ecx, -0x8(%rbp) 000000010000441f movq %rdi, -0x18(%rbp) 0000000100004423 movq %rsi, -0x20(%rbp) 0000000100004427 movq %r8, -0x28(%rbp) 000000010000442b movq -0x20(%rbp), %rdx 000000010000442f movq 0x18(%rdx), %rdi 0000000100004433 movl 0x20(%rdx), %esi 0000000100004436 movq -0x10(%rbp), %rdx 000000010000443a movl -0x8(%rbp), %ecx 000000010000443d callq _string_eq 0000000100004442 testb $0x1, %al 0000000100004444 jne 0x10000444f 000000010000444a jmp 0x100004477 000000010000444f movq $-0x1, %rcx 0000000100004456 movq -0x20(%rbp), %rax 000000010000445a movq 0x28(%rax), %rdi 000000010000445e movq -0x28(%rbp), %rsi 0000000100004462 movq -0x18(%rbp), %rax 0000000100004466 movslq (%rax), %rdx 0000000100004469 callq 0x10000a598 ## symbol stub for: ___memcpy_chk 000000010000446e movq %rax, -0x30(%rbp) 0000000100004472 jmp 0x100004553 0000000100004477 movq -0x20(%rbp), %rax 000000010000447b movq 0x18(%rax), %rdi 000000010000447f movl 0x20(%rax), %esi 0000000100004482 movq -0x10(%rbp), %rdx 0000000100004486 movl -0x8(%rbp), %ecx 0000000100004489 callq _string_gt 000000010000448e testb $0x1, %al 0000000100004490 jne 0x10000449b 0000000100004496 jmp 0x1000044f8 000000010000449b movq -0x20(%rbp), %rax 000000010000449f cmpq $0x0, (%rax) 00000001000044a3 jne 0x1000044d8 00000001000044a9 movq -0x28(%rbp), %rdx 00000001000044ad movq -0x18(%rbp), %rax 00000001000044b1 movl (%rax), %ecx 00000001000044b3 movq -0x10(%rbp), %rdi 00000001000044b7 movl -0x8(%rbp), %esi 00000001000044ba callq _new_node 00000001000044bf movq -0x20(%rbp), %rdx 00000001000044c3 movq %rax, (%rdx) 00000001000044c6 movq -0x18(%rbp), %rax 00000001000044ca movl 0x10(%rax), %ecx 00000001000044cd addl $0x1, %ecx 00000001000044d0 movl %ecx, 0x10(%rax) 00000001000044d3 jmp 0x1000044f3 00000001000044d8 movq -0x18(%rbp), %rdi 00000001000044dc movq -0x20(%rbp), %rax 00000001000044e0 movq (%rax), %rsi 00000001000044e3 movq -0x28(%rbp), %r8 00000001000044e7 movq -0x10(%rbp), %rdx 00000001000044eb movl -0x8(%rbp), %ecx 00000001000044ee callq _map_insert 00000001000044f3 jmp 0x100004553 00000001000044f8 movq -0x20(%rbp), %rax 00000001000044fc cmpq $0x0, 0x8(%rax) 0000000100004501 jne 0x100004537 0000000100004507 movq -0x28(%rbp), %rdx 000000010000450b movq -0x18(%rbp), %rax 000000010000450f movl (%rax), %ecx 0000000100004511 movq -0x10(%rbp), %rdi 0000000100004515 movl -0x8(%rbp), %esi 0000000100004518 callq _new_node 000000010000451d movq -0x20(%rbp), %rdx 0000000100004521 movq %rax, 0x8(%rdx) 0000000100004525 movq -0x18(%rbp), %rax 0000000100004529 movl 0x10(%rax), %ecx 000000010000452c addl $0x1, %ecx 000000010000452f movl %ecx, 0x10(%rax) 0000000100004532 jmp 0x100004553 0000000100004537 movq -0x18(%rbp), %rdi 000000010000453b movq -0x20(%rbp), %rax 000000010000453f movq 0x8(%rax), %rsi 0000000100004543 movq -0x28(%rbp), %r8 0000000100004547 movq -0x10(%rbp), %rdx 000000010000454b movl -0x8(%rbp), %ecx 000000010000454e callq _map_insert 0000000100004553 addq $0x30, %rsp 0000000100004557 popq %rbp 0000000100004558 retq 0000000100004559 nopl (%rax) _string_gt: 0000000100004560 pushq %rbp 0000000100004561 movq %rsp, %rbp 0000000100004564 subq $0x20, %rsp 0000000100004568 movq %rdi, -0x10(%rbp) 000000010000456c movl %esi, -0x8(%rbp) 000000010000456f movq %rdx, -0x20(%rbp) 0000000100004573 movl %ecx, -0x18(%rbp) 0000000100004576 movq -0x10(%rbp), %rdi 000000010000457a movl -0x8(%rbp), %esi 000000010000457d movq -0x20(%rbp), %rdx 0000000100004581 movl -0x18(%rbp), %ecx 0000000100004584 callq _string_le 0000000100004589 xorb $-0x1, %al 000000010000458b andb $0x1, %al 000000010000458d movzbl %al, %eax 0000000100004590 addq $0x20, %rsp 0000000100004594 popq %rbp 0000000100004595 retq 0000000100004596 nopw %cs:(%rax,%rax) _mapnode_find: 00000001000045a0 pushq %rbp 00000001000045a1 movq %rsp, %rbp 00000001000045a4 subq $0x40, %rsp 00000001000045a8 movq %rsi, -0x18(%rbp) 00000001000045ac movl %edx, -0x10(%rbp) 00000001000045af movq %rdi, -0x20(%rbp) 00000001000045b3 movq %rcx, -0x28(%rbp) 00000001000045b7 movl %r8d, -0x2c(%rbp) 00000001000045bb movq -0x20(%rbp), %rcx 00000001000045bf movq 0x18(%rcx), %rdi 00000001000045c3 movl 0x20(%rcx), %esi 00000001000045c6 movq -0x18(%rbp), %rdx 00000001000045ca movl -0x10(%rbp), %ecx 00000001000045cd callq _string_eq 00000001000045d2 testb $0x1, %al 00000001000045d4 jne 0x1000045df 00000001000045da jmp 0x100004608 00000001000045df movq $-0x1, %rcx 00000001000045e6 movq -0x28(%rbp), %rdi 00000001000045ea movq -0x20(%rbp), %rax 00000001000045ee movq 0x28(%rax), %rsi 00000001000045f2 movslq -0x2c(%rbp), %rdx 00000001000045f6 callq 0x10000a598 ## symbol stub for: ___memcpy_chk 00000001000045fb movb $0x1, -0x1(%rbp) 00000001000045ff movq %rax, -0x38(%rbp) 0000000100004603 jmp 0x1000046a1 0000000100004608 movq -0x20(%rbp), %rax 000000010000460c movq 0x18(%rax), %rdi 0000000100004610 movl 0x20(%rax), %esi 0000000100004613 movq -0x18(%rbp), %rdx 0000000100004617 movl -0x10(%rbp), %ecx 000000010000461a callq _string_gt 000000010000461f testb $0x1, %al 0000000100004621 jne 0x10000462c 0000000100004627 jmp 0x100004668 000000010000462c movq -0x20(%rbp), %rax 0000000100004630 cmpq $0x0, (%rax) 0000000100004634 jne 0x100004643 000000010000463a movb $0x0, -0x1(%rbp) 000000010000463e jmp 0x1000046a1 0000000100004643 movq -0x20(%rbp), %rax 0000000100004647 movq (%rax), %rdi 000000010000464a movq -0x28(%rbp), %rcx 000000010000464e movl -0x2c(%rbp), %r8d 0000000100004652 movq -0x18(%rbp), %rsi 0000000100004656 movl -0x10(%rbp), %edx 0000000100004659 callq _mapnode_find 000000010000465e andb $0x1, %al 0000000100004660 movb %al, -0x1(%rbp) 0000000100004663 jmp 0x1000046a1 0000000100004668 movq -0x20(%rbp), %rax 000000010000466c cmpq $0x0, 0x8(%rax) 0000000100004671 jne 0x100004680 0000000100004677 movb $0x0, -0x1(%rbp) 000000010000467b jmp 0x1000046a1 0000000100004680 movq -0x20(%rbp), %rax 0000000100004684 movq 0x8(%rax), %rdi 0000000100004688 movq -0x28(%rbp), %rcx 000000010000468c movl -0x2c(%rbp), %r8d 0000000100004690 movq -0x18(%rbp), %rsi 0000000100004694 movl -0x10(%rbp), %edx 0000000100004697 callq _mapnode_find 000000010000469c andb $0x1, %al 000000010000469e movb %al, -0x1(%rbp) 00000001000046a1 movb -0x1(%rbp), %al 00000001000046a4 andb $0x1, %al 00000001000046a6 movzbl %al, %eax 00000001000046a9 addq $0x40, %rsp 00000001000046ad popq %rbp 00000001000046ae retq 00000001000046af nop _mapnode_find2: 00000001000046b0 pushq %rbp 00000001000046b1 movq %rsp, %rbp 00000001000046b4 subq $0x30, %rsp 00000001000046b8 movq %rsi, -0x18(%rbp) 00000001000046bc movl %edx, -0x10(%rbp) 00000001000046bf movq %rdi, -0x20(%rbp) 00000001000046c3 movl %ecx, -0x24(%rbp) 00000001000046c6 movq -0x20(%rbp), %rsi 00000001000046ca movq 0x18(%rsi), %rdi 00000001000046ce movl 0x20(%rsi), %esi 00000001000046d1 movq -0x18(%rbp), %rdx 00000001000046d5 movl -0x10(%rbp), %ecx 00000001000046d8 callq _string_eq 00000001000046dd testb $0x1, %al 00000001000046df jne 0x1000046ea 00000001000046e5 jmp 0x1000046f3 00000001000046ea movb $0x1, -0x1(%rbp) 00000001000046ee jmp 0x10000479e 00000001000046f3 movq -0x20(%rbp), %rax 00000001000046f7 movq 0x18(%rax), %rdi 00000001000046fb movl 0x20(%rax), %esi 00000001000046fe movq -0x18(%rbp), %rdx 0000000100004702 movl -0x10(%rbp), %ecx 0000000100004705 callq _string_gt 000000010000470a testb $0x1, %al 000000010000470c jne 0x100004717 0000000100004712 jmp 0x10000475c 0000000100004717 movq -0x20(%rbp), %rax 000000010000471b movq (%rax), %rax 000000010000471e movq %rax, %rdi 0000000100004721 callq _isnil 0000000100004726 testb $0x1, %al 0000000100004728 jne 0x100004733 000000010000472e jmp 0x10000473c 0000000100004733 movb $0x0, -0x1(%rbp) 0000000100004737 jmp 0x10000479e 000000010000473c movq -0x20(%rbp), %rax 0000000100004740 movq (%rax), %rdi 0000000100004743 movl -0x24(%rbp), %ecx 0000000100004746 movq -0x18(%rbp), %rsi 000000010000474a movl -0x10(%rbp), %edx 000000010000474d callq _mapnode_find2 0000000100004752 andb $0x1, %al 0000000100004754 movb %al, -0x1(%rbp) 0000000100004757 jmp 0x10000479e 000000010000475c movq -0x20(%rbp), %rax 0000000100004760 movq 0x8(%rax), %rax 0000000100004764 movq %rax, %rdi 0000000100004767 callq _isnil 000000010000476c testb $0x1, %al 000000010000476e jne 0x100004779 0000000100004774 jmp 0x100004782 0000000100004779 movb $0x0, -0x1(%rbp) 000000010000477d jmp 0x10000479e 0000000100004782 movq -0x20(%rbp), %rax 0000000100004786 movq 0x8(%rax), %rdi 000000010000478a movl -0x24(%rbp), %ecx 000000010000478d movq -0x18(%rbp), %rsi 0000000100004791 movl -0x10(%rbp), %edx 0000000100004794 callq _mapnode_find2 0000000100004799 andb $0x1, %al 000000010000479b movb %al, -0x1(%rbp) 000000010000479e movb -0x1(%rbp), %al 00000001000047a1 andb $0x1, %al 00000001000047a3 movzbl %al, %eax 00000001000047a6 addq $0x30, %rsp 00000001000047aa popq %rbp 00000001000047ab retq 00000001000047ac nopl (%rax) _preorder_keys: 00000001000047b0 pushq %rbp 00000001000047b1 movq %rsp, %rbp 00000001000047b4 subq $0x40, %rsp 00000001000047b8 movq 0x8879(%rip), %rax ## literal pool symbol address: ___stack_chk_guard 00000001000047bf movq (%rax), %rax 00000001000047c2 movq %rax, -0x8(%rbp) 00000001000047c6 movq %rdi, -0x20(%rbp) 00000001000047ca movq %rsi, -0x28(%rbp) 00000001000047ce movl %edx, -0x2c(%rbp) 00000001000047d1 movl -0x2c(%rbp), %edx 00000001000047d4 movl %edx, -0x30(%rbp) 00000001000047d7 movq -0x20(%rbp), %rax 00000001000047db testb $0x1, 0x10(%rax) 00000001000047df jne 0x100004815 00000001000047e5 leaq -0x18(%rbp), %rax 00000001000047e9 movq -0x28(%rbp), %rdi 00000001000047ed movl -0x30(%rbp), %esi 00000001000047f0 movq -0x20(%rbp), %rcx 00000001000047f4 movq 0x18(%rcx), %rdx 00000001000047f8 movq %rdx, -0x18(%rbp) 00000001000047fc movq 0x20(%rcx), %rcx 0000000100004800 movq %rcx, -0x10(%rbp) 0000000100004804 movq %rax, %rdx 0000000100004807 callq _array_set 000000010000480c movl -0x30(%rbp), %esi 000000010000480f addl $0x1, %esi 0000000100004812 movl %esi, -0x30(%rbp) 0000000100004815 movq -0x20(%rbp), %rax 0000000100004819 movq (%rax), %rax 000000010000481c movq %rax, %rdi 000000010000481f callq _isnil 0000000100004824 testb $0x1, %al 0000000100004826 jne 0x100004842 000000010000482c movq -0x20(%rbp), %rax 0000000100004830 movq (%rax), %rdi 0000000100004833 movq -0x28(%rbp), %rsi 0000000100004837 movl -0x30(%rbp), %edx 000000010000483a callq _preorder_keys 000000010000483f movl %eax, -0x30(%rbp) 0000000100004842 movq -0x20(%rbp), %rax 0000000100004846 movq 0x8(%rax), %rax 000000010000484a movq %rax, %rdi 000000010000484d callq _isnil 0000000100004852 testb $0x1, %al 0000000100004854 jne 0x100004871 000000010000485a movq -0x20(%rbp), %rax 000000010000485e movq 0x8(%rax), %rdi 0000000100004862 movq -0x28(%rbp), %rsi 0000000100004866 movl -0x30(%rbp), %edx 0000000100004869 callq _preorder_keys 000000010000486e movl %eax, -0x30(%rbp) 0000000100004871 movl -0x30(%rbp), %eax 0000000100004874 movq 0x87bd(%rip), %rcx ## literal pool symbol address: ___stack_chk_guard 000000010000487b movq (%rcx), %rcx 000000010000487e movq -0x8(%rbp), %rdx 0000000100004882 cmpq %rdx, %rcx 0000000100004885 movl %eax, -0x34(%rbp) 0000000100004888 jne 0x100004897 000000010000488e movl -0x34(%rbp), %eax 0000000100004891 addq $0x40, %rsp 0000000100004895 popq %rbp 0000000100004896 retq 0000000100004897 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail 000000010000489c ud2 000000010000489e nop _map_keys: 00000001000048a0 pushq %rbp 00000001000048a1 movq %rsp, %rbp 00000001000048a4 subq $0x90, %rsp 00000001000048ab movq %rdi, %rax 00000001000048ae leaq 0x6104(%rip), %rcx ## literal pool for: "" 00000001000048b5 movq 0x877c(%rip), %rdx ## literal pool symbol address: ___stack_chk_guard 00000001000048bc movq (%rdx), %rdx 00000001000048bf movq %rdx, -0x8(%rbp) 00000001000048c3 movq %rsi, -0x38(%rbp) 00000001000048c7 movq %rdi, -0x58(%rbp) 00000001000048cb movq %rcx, %rdi 00000001000048ce movq %rax, -0x60(%rbp) 00000001000048d2 callq _tos3 00000001000048d7 leaq -0x50(%rbp), %rdi 00000001000048db movl $0x1, %r8d 00000001000048e1 movl $0x10, %ecx 00000001000048e6 leaq -0x18(%rbp), %rsi 00000001000048ea movq %rax, -0x18(%rbp) 00000001000048ee movl %edx, -0x10(%rbp) 00000001000048f1 movq %rsi, -0x68(%rbp) 00000001000048f5 movl %r8d, %esi 00000001000048f8 movl %r8d, %edx 00000001000048fb movq -0x68(%rbp), %r8 00000001000048ff callq _new_array_from_c_array 0000000100004904 leaq -0x50(%rbp), %rax 0000000100004908 movq -0x38(%rbp), %rdi 000000010000490c movl 0x10(%rdi), %esi 000000010000490f movq -0x58(%rbp), %rdi 0000000100004913 movq (%rax), %r8 0000000100004916 movq %r8, (%rsp) 000000010000491a movq 0x8(%rax), %r8 000000010000491e movq %r8, 0x8(%rsp) 0000000100004923 movq 0x10(%rax), %rax 0000000100004927 movq %rax, 0x10(%rsp) 000000010000492c callq _array_repeat 0000000100004931 movq -0x38(%rbp), %rax 0000000100004935 movq 0x8(%rax), %rax 0000000100004939 movq %rax, %rdi 000000010000493c callq _isnil 0000000100004941 testb $0x1, %al 0000000100004943 jne 0x10000494e 0000000100004949 jmp 0x100004953 000000010000494e jmp 0x100004984 0000000100004953 xorl %edx, %edx 0000000100004955 leaq -0x30(%rbp), %rsi 0000000100004959 movq -0x38(%rbp), %rax 000000010000495d movq 0x8(%rax), %rdi 0000000100004961 movq -0x58(%rbp), %rax 0000000100004965 movq (%rax), %rcx 0000000100004968 movq %rcx, -0x30(%rbp) 000000010000496c movq 0x8(%rax), %rcx 0000000100004970 movq %rcx, -0x28(%rbp) 0000000100004974 movq 0x10(%rax), %rcx 0000000100004978 movq %rcx, -0x20(%rbp) 000000010000497c callq _preorder_keys 0000000100004981 movl %eax, -0x6c(%rbp) 0000000100004984 movq 0x86ad(%rip), %rax ## literal pool symbol address: ___stack_chk_guard 000000010000498b movq (%rax), %rax 000000010000498e movq -0x8(%rbp), %rcx 0000000100004992 cmpq %rcx, %rax 0000000100004995 jne 0x1000049a8 000000010000499b movq -0x60(%rbp), %rax 000000010000499f addq $0x90, %rsp 00000001000049a6 popq %rbp 00000001000049a7 retq 00000001000049a8 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail 00000001000049ad ud2 00000001000049af nop _map_get: 00000001000049b0 pushq %rbp 00000001000049b1 movq %rsp, %rbp 00000001000049b4 subq $0x30, %rsp 00000001000049b8 leaq 0x10(%rbp), %rax 00000001000049bc movq %rdi, -0x18(%rbp) 00000001000049c0 movl %esi, -0x10(%rbp) 00000001000049c3 movq %rdx, -0x20(%rbp) 00000001000049c7 cmpq $0x0, 0x8(%rax) 00000001000049cc movq %rax, -0x28(%rbp) 00000001000049d0 jne 0x1000049df 00000001000049d6 movb $0x0, -0x1(%rbp) 00000001000049da jmp 0x1000049ff 00000001000049df movq -0x28(%rbp), %rax 00000001000049e3 movq 0x8(%rax), %rdi 00000001000049e7 movq -0x20(%rbp), %rcx 00000001000049eb movl (%rax), %r8d 00000001000049ee movq -0x18(%rbp), %rsi 00000001000049f2 movl -0x10(%rbp), %edx 00000001000049f5 callq _mapnode_find 00000001000049fa andb $0x1, %al 00000001000049fc movb %al, -0x1(%rbp) 00000001000049ff movb -0x1(%rbp), %al 0000000100004a02 andb $0x1, %al 0000000100004a04 movzbl %al, %eax 0000000100004a07 addq $0x30, %rsp 0000000100004a0b popq %rbp 0000000100004a0c retq 0000000100004a0d nopl (%rax) _v_mapnode_delete: 0000000100004a10 pushq %rbp 0000000100004a11 movq %rsp, %rbp 0000000100004a14 subq $0x30, %rsp 0000000100004a18 movq %rsi, -0x10(%rbp) 0000000100004a1c movl %edx, -0x8(%rbp) 0000000100004a1f movq %rdi, -0x18(%rbp) 0000000100004a23 movl %ecx, -0x1c(%rbp) 0000000100004a26 movq -0x18(%rbp), %rsi 0000000100004a2a movq 0x18(%rsi), %rdi 0000000100004a2e movl 0x20(%rsi), %esi 0000000100004a31 movq -0x10(%rbp), %rdx 0000000100004a35 movl -0x8(%rbp), %ecx 0000000100004a38 callq _string_eq 0000000100004a3d testb $0x1, %al 0000000100004a3f jne 0x100004a4a 0000000100004a45 jmp 0x100004a75 0000000100004a4a xorl %esi, %esi 0000000100004a4c movq $-0x1, %rcx 0000000100004a53 movq -0x18(%rbp), %rax 0000000100004a57 movq 0x28(%rax), %rdi 0000000100004a5b movslq -0x1c(%rbp), %rdx 0000000100004a5f callq 0x10000a5a4 ## symbol stub for: ___memset_chk 0000000100004a64 movq -0x18(%rbp), %rcx 0000000100004a68 movb $0x1, 0x10(%rcx) 0000000100004a6c movq %rax, -0x28(%rbp) 0000000100004a70 jmp 0x100004b18 0000000100004a75 movq -0x18(%rbp), %rax 0000000100004a79 movq 0x18(%rax), %rdi 0000000100004a7d movl 0x20(%rax), %esi 0000000100004a80 movq -0x10(%rbp), %rdx 0000000100004a84 movl -0x8(%rbp), %ecx 0000000100004a87 callq _string_gt 0000000100004a8c testb $0x1, %al 0000000100004a8e jne 0x100004a99 0000000100004a94 jmp 0x100004ad5 0000000100004a99 movq -0x18(%rbp), %rax 0000000100004a9d movq (%rax), %rax 0000000100004aa0 movq %rax, %rdi 0000000100004aa3 callq _isnil 0000000100004aa8 testb $0x1, %al 0000000100004aaa jne 0x100004ab5 0000000100004ab0 jmp 0x100004aba 0000000100004ab5 jmp 0x100004b18 0000000100004aba movq -0x18(%rbp), %rax 0000000100004abe movq (%rax), %rdi 0000000100004ac1 movl -0x1c(%rbp), %ecx 0000000100004ac4 movq -0x10(%rbp), %rsi 0000000100004ac8 movl -0x8(%rbp), %edx 0000000100004acb callq _v_mapnode_delete 0000000100004ad0 jmp 0x100004b13 0000000100004ad5 movq -0x18(%rbp), %rax 0000000100004ad9 movq 0x8(%rax), %rax 0000000100004add movq %rax, %rdi 0000000100004ae0 callq _isnil 0000000100004ae5 testb $0x1, %al 0000000100004ae7 jne 0x100004af2 0000000100004aed jmp 0x100004af7 0000000100004af2 jmp 0x100004b18 0000000100004af7 movq -0x18(%rbp), %rax 0000000100004afb movq 0x8(%rax), %rdi 0000000100004aff movl -0x1c(%rbp), %ecx 0000000100004b02 movq -0x10(%rbp), %rsi 0000000100004b06 movl -0x8(%rbp), %edx 0000000100004b09 callq _v_mapnode_delete 0000000100004b0e jmp 0x100004b13 0000000100004b13 jmp 0x100004b18 0000000100004b18 addq $0x30, %rsp 0000000100004b1c popq %rbp 0000000100004b1d retq 0000000100004b1e nop _v_map_delete: 0000000100004b20 pushq %rbp 0000000100004b21 movq %rsp, %rbp 0000000100004b24 subq $0x20, %rsp 0000000100004b28 movq %rsi, -0x10(%rbp) 0000000100004b2c movl %edx, -0x8(%rbp) 0000000100004b2f movq %rdi, -0x18(%rbp) 0000000100004b33 movq -0x18(%rbp), %rsi 0000000100004b37 movq 0x8(%rsi), %rdi 0000000100004b3b movq -0x18(%rbp), %rsi 0000000100004b3f movl (%rsi), %ecx 0000000100004b41 movq -0x10(%rbp), %rsi 0000000100004b45 movl -0x8(%rbp), %edx 0000000100004b48 callq _v_mapnode_delete 0000000100004b4d movq -0x18(%rbp), %rsi 0000000100004b51 movl 0x10(%rsi), %ecx 0000000100004b54 addl $-0x1, %ecx 0000000100004b57 movl %ecx, 0x10(%rsi) 0000000100004b5a addq $0x20, %rsp 0000000100004b5e popq %rbp 0000000100004b5f retq _map_exists: 0000000100004b60 pushq %rbp 0000000100004b61 movq %rsp, %rbp 0000000100004b64 subq $0x20, %rsp 0000000100004b68 leaq 0x10(%rbp), %rax 0000000100004b6c movq %rdi, -0x10(%rbp) 0000000100004b70 movl %esi, -0x8(%rbp) 0000000100004b73 movq 0x8(%rax), %rdi 0000000100004b77 movq %rax, -0x18(%rbp) 0000000100004b7b callq _isnil 0000000100004b80 xorl %esi, %esi 0000000100004b82 movb %sil, %cl 0000000100004b85 testb $0x1, %al 0000000100004b87 movb %cl, -0x19(%rbp) 0000000100004b8a jne 0x100004ba9 0000000100004b90 movq -0x18(%rbp), %rax 0000000100004b94 movq 0x8(%rax), %rdi 0000000100004b98 movl (%rax), %ecx 0000000100004b9a movq -0x10(%rbp), %rsi 0000000100004b9e movl -0x8(%rbp), %edx 0000000100004ba1 callq _mapnode_find2 0000000100004ba6 movb %al, -0x19(%rbp) 0000000100004ba9 movb -0x19(%rbp), %al 0000000100004bac andb $0x1, %al 0000000100004bae movzbl %al, %eax 0000000100004bb1 addq $0x20, %rsp 0000000100004bb5 popq %rbp 0000000100004bb6 retq 0000000100004bb7 nopw (%rax,%rax) _map_print: 0000000100004bc0 pushq %rbp 0000000100004bc1 movq %rsp, %rbp 0000000100004bc4 subq $0x20, %rsp 0000000100004bc8 leaq 0x5deb(%rip), %rdi ## literal pool for: "<<<<<<<<" 0000000100004bcf callq _tos3 0000000100004bd4 movq %rax, -0x10(%rbp) 0000000100004bd8 movl %edx, -0x8(%rbp) 0000000100004bdb movq -0x10(%rbp), %rdi 0000000100004bdf movl -0x8(%rbp), %esi 0000000100004be2 callq _println 0000000100004be7 leaq 0x5dd5(%rip), %rdi ## literal pool for: ">>>>>>>>>>" 0000000100004bee callq _tos3 0000000100004bf3 movq %rax, -0x20(%rbp) 0000000100004bf7 movl %edx, -0x18(%rbp) 0000000100004bfa movq -0x20(%rbp), %rdi 0000000100004bfe movl -0x18(%rbp), %esi 0000000100004c01 callq _println 0000000100004c06 addq $0x20, %rsp 0000000100004c0a popq %rbp 0000000100004c0b retq 0000000100004c0c nopl (%rax) _v_mapnode_free: 0000000100004c10 pushq %rbp 0000000100004c11 movq %rsp, %rbp 0000000100004c14 subq $0x10, %rsp 0000000100004c18 movq %rdi, -0x8(%rbp) 0000000100004c1c movq -0x8(%rbp), %rdi 0000000100004c20 cmpq $0x0, 0x28(%rdi) 0000000100004c25 je 0x100004c38 0000000100004c2b movq -0x8(%rbp), %rax 0000000100004c2f movq 0x28(%rax), %rdi 0000000100004c33 callq _v_free 0000000100004c38 movq -0x8(%rbp), %rax 0000000100004c3c cmpq $0x0, (%rax) 0000000100004c40 je 0x100004c52 0000000100004c46 movq -0x8(%rbp), %rax 0000000100004c4a movq (%rax), %rdi 0000000100004c4d callq _v_mapnode_free 0000000100004c52 movq -0x8(%rbp), %rax 0000000100004c56 cmpq $0x0, 0x8(%rax) 0000000100004c5b je 0x100004c6e 0000000100004c61 movq -0x8(%rbp), %rax 0000000100004c65 movq 0x8(%rax), %rdi 0000000100004c69 callq _v_mapnode_free 0000000100004c6e movq -0x8(%rbp), %rax 0000000100004c72 movq %rax, %rdi 0000000100004c75 callq _v_free 0000000100004c7a addq $0x10, %rsp 0000000100004c7e popq %rbp 0000000100004c7f retq _v_map_free: 0000000100004c80 pushq %rbp 0000000100004c81 movq %rsp, %rbp 0000000100004c84 subq $0x10, %rsp 0000000100004c88 movq %rdi, -0x8(%rbp) 0000000100004c8c movq -0x8(%rbp), %rdi 0000000100004c90 cmpq $0x0, 0x8(%rdi) 0000000100004c95 jne 0x100004ca0 0000000100004c9b jmp 0x100004cad 0000000100004ca0 movq -0x8(%rbp), %rax 0000000100004ca4 movq 0x8(%rax), %rdi 0000000100004ca8 callq _v_mapnode_free 0000000100004cad addq $0x10, %rsp 0000000100004cb1 popq %rbp 0000000100004cb2 retq 0000000100004cb3 nopw %cs:(%rax,%rax) _map_string_str: 0000000100004cc0 pushq %rbp 0000000100004cc1 movq %rsp, %rbp 0000000100004cc4 subq $0x100, %rsp 0000000100004ccb leaq 0x10(%rbp), %rax 0000000100004ccf cmpl $0x0, 0x10(%rax) 0000000100004cd3 movq %rax, -0xc0(%rbp) 0000000100004cda jne 0x100004cf8 0000000100004ce0 leaq 0x5ce7(%rip), %rdi ## literal pool for: "{}" 0000000100004ce7 callq _tos3 0000000100004cec movq %rax, -0x10(%rbp) 0000000100004cf0 movl %edx, -0x8(%rbp) 0000000100004cf3 jmp 0x100004ea6 0000000100004cf8 leaq -0x30(%rbp), %rdi 0000000100004cfc movl $0x32, %esi 0000000100004d01 callq _strings__new_builder 0000000100004d06 leaq 0x5cc4(%rip), %rdi ## literal pool for: "{" 0000000100004d0d callq _tos3 0000000100004d12 leaq -0x30(%rbp), %rdi 0000000100004d16 movq %rax, -0x40(%rbp) 0000000100004d1a movl %edx, -0x38(%rbp) 0000000100004d1d movq -0x40(%rbp), %rsi 0000000100004d21 movl -0x38(%rbp), %edx 0000000100004d24 callq _strings__Builder_writeln 0000000100004d29 leaq -0x70(%rbp), %rdi 0000000100004d2d leaq -0x58(%rbp), %rsi 0000000100004d31 movq -0xc0(%rbp), %rax 0000000100004d38 movq (%rax), %rcx 0000000100004d3b movq %rcx, -0x58(%rbp) 0000000100004d3f movq 0x8(%rax), %rcx 0000000100004d43 movq %rcx, -0x50(%rbp) 0000000100004d47 movq 0x10(%rax), %rcx 0000000100004d4b movq %rcx, -0x48(%rbp) 0000000100004d4f callq _map_keys 0000000100004d54 movl $0x0, -0x74(%rbp) 0000000100004d5b movl -0x74(%rbp), %eax 0000000100004d5e cmpl -0x68(%rbp), %eax 0000000100004d61 jge 0x100004e45 0000000100004d67 leaq -0x58(%rbp), %rax 0000000100004d6b leaq -0x98(%rbp), %rcx 0000000100004d72 xorl %esi, %esi 0000000100004d74 movl $0x10, %edx 0000000100004d79 movq -0x70(%rbp), %rdi 0000000100004d7d movslq -0x74(%rbp), %r8 0000000100004d81 shlq $0x4, %r8 0000000100004d85 addq %r8, %rdi 0000000100004d88 movq (%rdi), %r8 0000000100004d8b movq %r8, -0x88(%rbp) 0000000100004d92 movq 0x8(%rdi), %rdi 0000000100004d96 movq %rdi, -0x80(%rbp) 0000000100004d9a movq %rcx, %rdi 0000000100004d9d movq %rax, -0xc8(%rbp) 0000000100004da4 movq %rcx, -0xd0(%rbp) 0000000100004dab callq 0x10000a604 ## symbol stub for: _memset 0000000100004db0 movq -0xd0(%rbp), %rax 0000000100004db7 movq -0x88(%rbp), %rdi 0000000100004dbe movl -0x80(%rbp), %esi 0000000100004dc1 movq -0xc8(%rbp), %rcx 0000000100004dc8 movq (%rcx), %rdx 0000000100004dcb movq %rdx, (%rsp) 0000000100004dcf movq 0x8(%rcx), %rdx 0000000100004dd3 movq %rdx, 0x8(%rsp) 0000000100004dd8 movq 0x10(%rcx), %rdx 0000000100004ddc movq %rdx, 0x10(%rsp) 0000000100004de1 movq %rax, %rdx 0000000100004de4 callq _map_get 0000000100004de9 leaq 0x5be3(%rip), %rdi ## literal pool for: " \"%.*s\" => \"%.*s\"" 0000000100004df0 movl -0x80(%rbp), %esi 0000000100004df3 movq -0x88(%rbp), %rdx 0000000100004dfa movl -0x90(%rbp), %ecx 0000000100004e00 movq -0x98(%rbp), %r8 0000000100004e07 movb %al, -0xd1(%rbp) 0000000100004e0d movb $0x0, %al 0000000100004e0f callq __STR 0000000100004e14 leaq -0x30(%rbp), %rdi 0000000100004e18 movq %rax, -0xa8(%rbp) 0000000100004e1f movl %edx, -0xa0(%rbp) 0000000100004e25 movq -0xa8(%rbp), %rsi 0000000100004e2c movl -0xa0(%rbp), %edx 0000000100004e32 callq _strings__Builder_writeln 0000000100004e37 movl -0x74(%rbp), %eax 0000000100004e3a addl $0x1, %eax 0000000100004e3d movl %eax, -0x74(%rbp) 0000000100004e40 jmp 0x100004d5b 0000000100004e45 leaq 0x5b9a(%rip), %rdi ## literal pool for: "}" 0000000100004e4c callq _tos3 0000000100004e51 leaq -0x30(%rbp), %rdi 0000000100004e55 movq %rax, -0xb8(%rbp) 0000000100004e5c movl %edx, -0xb0(%rbp) 0000000100004e62 movq -0xb8(%rbp), %rsi 0000000100004e69 movl -0xb0(%rbp), %edx 0000000100004e6f callq _strings__Builder_writeln 0000000100004e74 leaq -0x30(%rbp), %rax 0000000100004e78 movq (%rax), %rsi 0000000100004e7b movq %rsi, (%rsp) 0000000100004e7f movq 0x8(%rax), %rsi 0000000100004e83 movq %rsi, 0x8(%rsp) 0000000100004e88 movq 0x10(%rax), %rsi 0000000100004e8c movq %rsi, 0x10(%rsp) 0000000100004e91 movq 0x18(%rax), %rax 0000000100004e95 movq %rax, 0x18(%rsp) 0000000100004e9a callq _strings__Builder_str 0000000100004e9f movq %rax, -0x10(%rbp) 0000000100004ea3 movl %edx, -0x8(%rbp) 0000000100004ea6 movq -0x10(%rbp), %rax 0000000100004eaa movl -0x8(%rbp), %edx 0000000100004ead addq $0x100, %rsp 0000000100004eb4 popq %rbp 0000000100004eb5 retq 0000000100004eb6 nopw %cs:(%rax,%rax) _strings__Builder_writeln: 0000000100004ec0 pushq %rbp 0000000100004ec1 movq %rsp, %rbp 0000000100004ec4 subq $0x20, %rsp 0000000100004ec8 movq %rsi, -0x10(%rbp) 0000000100004ecc movl %edx, -0x8(%rbp) 0000000100004ecf movq %rdi, -0x18(%rbp) 0000000100004ed3 movq -0x18(%rbp), %rdi 0000000100004ed7 movq -0x10(%rbp), %rsi 0000000100004edb movl -0x8(%rbp), %edx 0000000100004ede callq _array_push_many 0000000100004ee3 leaq -0x19(%rbp), %rsi 0000000100004ee7 movb $0xa, -0x19(%rbp) 0000000100004eeb movq -0x18(%rbp), %rdi 0000000100004eef callq _array_push 0000000100004ef4 movl -0x8(%rbp), %edx 0000000100004ef7 addl $0x1, %edx 0000000100004efa movq -0x18(%rbp), %rsi 0000000100004efe addl 0x18(%rsi), %edx 0000000100004f01 movl %edx, 0x18(%rsi) 0000000100004f04 addq $0x20, %rsp 0000000100004f08 popq %rbp 0000000100004f09 retq 0000000100004f0a nopw (%rax,%rax) _opt_ok: 0000000100004f10 pushq %rbp 0000000100004f11 movq %rsp, %rbp 0000000100004f14 subq $0x50, %rsp 0000000100004f18 movq %rdi, %rax 0000000100004f1b movq %rsi, -0x8(%rbp) 0000000100004f1f movl %edx, -0xc(%rbp) 0000000100004f22 cmpl $0xff, -0xc(%rbp) 0000000100004f29 movq %rax, -0x28(%rbp) 0000000100004f2d movq %rdi, -0x30(%rbp) 0000000100004f31 jl 0x100004f5b 0000000100004f37 leaq 0x5aaa(%rip), %rdi ## literal pool for: "option size too big: %d (max is 255), this is a temporary limit" 0000000100004f3e movl -0xc(%rbp), %esi 0000000100004f41 movb $0x0, %al 0000000100004f43 callq __STR 0000000100004f48 movq %rax, -0x20(%rbp) 0000000100004f4c movl %edx, -0x18(%rbp) 0000000100004f4f movq -0x20(%rbp), %rdi 0000000100004f53 movl -0x18(%rbp), %esi 0000000100004f56 callq _v_panic 0000000100004f5b leaq 0x5a57(%rip), %rdi ## literal pool for: "" 0000000100004f62 xorl %eax, %eax 0000000100004f64 movl $0x118, %ecx 0000000100004f69 movl %ecx, %edx 0000000100004f6b movq -0x30(%rbp), %rsi 0000000100004f6f movq %rdi, -0x38(%rbp) 0000000100004f73 movq %rsi, %rdi 0000000100004f76 movl %eax, %esi 0000000100004f78 movl %eax, -0x3c(%rbp) 0000000100004f7b callq 0x10000a604 ## symbol stub for: _memset 0000000100004f80 movq -0x38(%rbp), %rdi 0000000100004f84 movl -0x3c(%rbp), %esi 0000000100004f87 callq _tos 0000000100004f8c movl $0x118, %ecx 0000000100004f91 movq -0x30(%rbp), %rdi 0000000100004f95 movq %rax, 0x100(%rdi) 0000000100004f9c movl %edx, 0x108(%rdi) 0000000100004fa2 movb $0x1, 0x110(%rdi) 0000000100004fa9 movb $0x0, 0x111(%rdi) 0000000100004fb0 movq -0x8(%rbp), %rsi 0000000100004fb4 movslq -0xc(%rbp), %rdx 0000000100004fb8 callq 0x10000a598 ## symbol stub for: ___memcpy_chk 0000000100004fbd movq -0x28(%rbp), %rcx 0000000100004fc1 movq %rax, -0x48(%rbp) 0000000100004fc5 movq %rcx, %rax 0000000100004fc8 addq $0x50, %rsp 0000000100004fcc popq %rbp 0000000100004fcd retq 0000000100004fce nop _opt_none: 0000000100004fd0 pushq %rbp 0000000100004fd1 movq %rsp, %rbp 0000000100004fd4 subq $0x20, %rsp 0000000100004fd8 movq %rdi, %rax 0000000100004fdb leaq 0x59d7(%rip), %rcx ## literal pool for: "" 0000000100004fe2 xorl %edx, %edx 0000000100004fe4 movl $0x118, %esi 0000000100004fe9 movl %esi, %r8d 0000000100004fec movq %rdi, %r9 0000000100004fef movq %rdi, -0x8(%rbp) 0000000100004ff3 movq %r9, %rdi 0000000100004ff6 movl %edx, %esi 0000000100004ff8 movl %edx, -0xc(%rbp) 0000000100004ffb movq %r8, %rdx 0000000100004ffe movq %rax, -0x18(%rbp) 0000000100005002 movq %rcx, -0x20(%rbp) 0000000100005006 callq 0x10000a604 ## symbol stub for: _memset 000000010000500b movq -0x20(%rbp), %rdi 000000010000500f movl -0xc(%rbp), %esi 0000000100005012 callq _tos 0000000100005017 movq -0x8(%rbp), %rcx 000000010000501b movq %rax, 0x100(%rcx) 0000000100005022 movl %edx, 0x108(%rcx) 0000000100005028 movb $0x0, 0x110(%rcx) 000000010000502f movb $0x1, 0x111(%rcx) 0000000100005036 movq -0x18(%rbp), %rax 000000010000503a addq $0x20, %rsp 000000010000503e popq %rbp 000000010000503f retq _v_error: 0000000100005040 pushq %rbp 0000000100005041 movq %rsp, %rbp 0000000100005044 subq $0x20, %rsp 0000000100005048 movq %rdi, %rax 000000010000504b xorl %ecx, %ecx 000000010000504d movl $0x118, %r8d 0000000100005053 movl %r8d, %r9d 0000000100005056 movq %rsi, -0x10(%rbp) 000000010000505a movl %edx, -0x8(%rbp) 000000010000505d movq %rdi, %rsi 0000000100005060 movq %rdi, -0x18(%rbp) 0000000100005064 movq %rsi, %rdi 0000000100005067 movl %ecx, %esi 0000000100005069 movq %r9, %rdx 000000010000506c movq %rax, -0x20(%rbp) 0000000100005070 callq 0x10000a604 ## symbol stub for: _memset 0000000100005075 movq -0x10(%rbp), %rax 0000000100005079 movq -0x18(%rbp), %rdx 000000010000507d movq %rax, 0x100(%rdx) 0000000100005084 movq -0x8(%rbp), %rax 0000000100005088 movq %rax, 0x108(%rdx) 000000010000508f movb $0x0, 0x110(%rdx) 0000000100005096 movb $0x0, 0x111(%rdx) 000000010000509d movq -0x20(%rbp), %rax 00000001000050a1 addq $0x20, %rsp 00000001000050a5 popq %rbp 00000001000050a6 retq 00000001000050a7 nopw (%rax,%rax) _todo: 00000001000050b0 pushq %rbp 00000001000050b1 movq %rsp, %rbp 00000001000050b4 popq %rbp 00000001000050b5 retq 00000001000050b6 nopw %cs:(%rax,%rax) _tos_clone: 00000001000050c0 pushq %rbp 00000001000050c1 movq %rsp, %rbp 00000001000050c4 subq $0x40, %rsp 00000001000050c8 movq %rdi, -0x18(%rbp) 00000001000050cc cmpq $0x0, -0x18(%rbp) 00000001000050d1 jne 0x1000050f6 00000001000050d7 leaq 0x595c(%rip), %rdi ## literal pool for: "tos: nil string" 00000001000050de callq _tos3 00000001000050e3 movq %rax, -0x28(%rbp) 00000001000050e7 movl %edx, -0x20(%rbp) 00000001000050ea movq -0x28(%rbp), %rdi 00000001000050ee movl -0x20(%rbp), %esi 00000001000050f1 callq _v_panic 00000001000050f6 movq -0x18(%rbp), %rdi 00000001000050fa callq _tos2 00000001000050ff movq %rax, -0x38(%rbp) 0000000100005103 movl %edx, -0x30(%rbp) 0000000100005106 movq -0x38(%rbp), %rdi 000000010000510a movl -0x30(%rbp), %esi 000000010000510d callq _string_clone 0000000100005112 movq %rax, -0x10(%rbp) 0000000100005116 movl %edx, -0x8(%rbp) 0000000100005119 movq -0x10(%rbp), %rax 000000010000511d movl -0x8(%rbp), %edx 0000000100005120 addq $0x40, %rsp 0000000100005124 popq %rbp 0000000100005125 retq 0000000100005126 nopw %cs:(%rax,%rax) _string_clone: 0000000100005130 pushq %rbp 0000000100005131 movq %rsp, %rbp 0000000100005134 subq $0x30, %rsp 0000000100005138 movq %rdi, -0x20(%rbp) 000000010000513c movl %esi, -0x18(%rbp) 000000010000513f movl -0x18(%rbp), %esi 0000000100005142 addl $0x1, %esi 0000000100005145 movl %esi, %edi 0000000100005147 callq _v_malloc 000000010000514c movq %rax, -0x10(%rbp) 0000000100005150 movl -0x18(%rbp), %esi 0000000100005153 movl %esi, -0x8(%rbp) 0000000100005156 movl $0x0, -0x24(%rbp) 000000010000515d movl -0x24(%rbp), %eax 0000000100005160 cmpl -0x18(%rbp), %eax 0000000100005163 jge 0x10000518d 0000000100005169 movq -0x20(%rbp), %rax 000000010000516d movslq -0x24(%rbp), %rcx 0000000100005171 movb (%rax,%rcx), %dl 0000000100005174 movq -0x10(%rbp), %rax 0000000100005178 movslq -0x24(%rbp), %rcx 000000010000517c movb %dl, (%rax,%rcx) 000000010000517f movl -0x24(%rbp), %eax 0000000100005182 addl $0x1, %eax 0000000100005185 movl %eax, -0x24(%rbp) 0000000100005188 jmp 0x10000515d 000000010000518d movq -0x10(%rbp), %rax 0000000100005191 movslq -0x18(%rbp), %rcx 0000000100005195 movb $0x0, (%rax,%rcx) 0000000100005199 movq -0x10(%rbp), %rax 000000010000519d movl -0x8(%rbp), %edx 00000001000051a0 addq $0x30, %rsp 00000001000051a4 popq %rbp 00000001000051a5 retq 00000001000051a6 nopw %cs:(%rax,%rax) _string_replace: 00000001000051b0 pushq %rbp 00000001000051b1 movq %rsp, %rbp 00000001000051b4 subq $0xe0, %rsp 00000001000051bb movq %rdi, -0x20(%rbp) 00000001000051bf movl %esi, -0x18(%rbp) 00000001000051c2 movq %rdx, -0x30(%rbp) 00000001000051c6 movl %ecx, -0x28(%rbp) 00000001000051c9 movq %r8, -0x40(%rbp) 00000001000051cd movl %r9d, -0x38(%rbp) 00000001000051d1 cmpl $0x0, -0x18(%rbp) 00000001000051d5 je 0x1000051e5 00000001000051db cmpl $0x0, -0x28(%rbp) 00000001000051df jne 0x1000051fa 00000001000051e5 movq -0x20(%rbp), %rax 00000001000051e9 movq %rax, -0x10(%rbp) 00000001000051ed movq -0x18(%rbp), %rax 00000001000051f1 movq %rax, -0x8(%rbp) 00000001000051f5 jmp 0x1000054b6 00000001000051fa leaq -0x58(%rbp), %rdi 00000001000051fe xorl %eax, %eax 0000000100005200 movl $0x4, %ecx 0000000100005205 leaq -0x5c(%rbp), %rdx 0000000100005209 movl $0x0, -0x5c(%rbp) 0000000100005210 movl %eax, %esi 0000000100005212 movq %rdx, -0xc0(%rbp) 0000000100005219 movl %eax, %edx 000000010000521b movq -0xc0(%rbp), %r8 0000000100005222 callq _new_array_from_c_array 0000000100005227 movq -0x20(%rbp), %rdi 000000010000522b movq %rdi, -0x70(%rbp) 000000010000522f movq -0x18(%rbp), %rdi 0000000100005233 movq %rdi, -0x68(%rbp) 0000000100005237 movl $0x0, -0x74(%rbp) 000000010000523e movq -0x70(%rbp), %rdi 0000000100005242 movl -0x68(%rbp), %esi 0000000100005245 movq -0x30(%rbp), %rdx 0000000100005249 movl -0x28(%rbp), %ecx 000000010000524c callq _string_index 0000000100005251 movl %eax, -0x78(%rbp) 0000000100005254 cmpl $0x0, -0x78(%rbp) 0000000100005258 jge 0x100005263 000000010000525e jmp 0x1000052c8 0000000100005263 leaq -0x58(%rbp), %rdi 0000000100005267 leaq -0x7c(%rbp), %rax 000000010000526b movl -0x74(%rbp), %ecx 000000010000526e addl -0x78(%rbp), %ecx 0000000100005271 movl %ecx, -0x7c(%rbp) 0000000100005274 movq %rax, %rsi 0000000100005277 callq _array_push 000000010000527c movl -0x28(%rbp), %ecx 000000010000527f addl -0x78(%rbp), %ecx 0000000100005282 movl %ecx, -0x78(%rbp) 0000000100005285 movl -0x78(%rbp), %ecx 0000000100005288 addl -0x74(%rbp), %ecx 000000010000528b movl %ecx, -0x74(%rbp) 000000010000528e movl -0x78(%rbp), %edx 0000000100005291 movl -0x68(%rbp), %ecx 0000000100005294 movq -0x70(%rbp), %rdi 0000000100005298 movl -0x68(%rbp), %esi 000000010000529b callq _string_substr 00000001000052a0 movq %rax, -0x90(%rbp) 00000001000052a7 movl %edx, -0x88(%rbp) 00000001000052ad movq -0x90(%rbp), %rax 00000001000052b4 movq %rax, -0x70(%rbp) 00000001000052b8 movq -0x88(%rbp), %rax 00000001000052bf movq %rax, -0x68(%rbp) 00000001000052c3 jmp 0x10000523e 00000001000052c8 cmpl $0x0, -0x50(%rbp) 00000001000052cc jne 0x1000052e7 00000001000052d2 movq -0x20(%rbp), %rax 00000001000052d6 movq %rax, -0x10(%rbp) 00000001000052da movq -0x18(%rbp), %rax 00000001000052de movq %rax, -0x8(%rbp) 00000001000052e2 jmp 0x1000054b6 00000001000052e7 movl -0x18(%rbp), %eax 00000001000052ea movl -0x50(%rbp), %ecx 00000001000052ed movl -0x38(%rbp), %edx 00000001000052f0 subl -0x28(%rbp), %edx 00000001000052f3 imull %edx, %ecx 00000001000052f6 addl %ecx, %eax 00000001000052f8 movl %eax, -0x94(%rbp) 00000001000052fe movl -0x94(%rbp), %eax 0000000100005304 addl $0x1, %eax 0000000100005307 movl %eax, %edi 0000000100005309 callq _v_malloc 000000010000530e leaq -0x58(%rbp), %rsi 0000000100005312 movq %rax, -0xa0(%rbp) 0000000100005319 movl $0x0, -0xa4(%rbp) 0000000100005323 movl -0xa4(%rbp), %edi 0000000100005329 movq (%rsi), %rax 000000010000532c movq %rax, (%rsp) 0000000100005330 movq 0x8(%rsi), %rax 0000000100005334 movq %rax, 0x8(%rsp) 0000000100005339 movq 0x10(%rsi), %rax 000000010000533d movq %rax, 0x10(%rsp) 0000000100005342 callq _array_get 0000000100005347 movl (%rax), %ecx 0000000100005349 movl %ecx, -0xa8(%rbp) 000000010000534f movl $0x0, -0xac(%rbp) 0000000100005359 movl $0x0, -0xb0(%rbp) 0000000100005363 movl -0xb0(%rbp), %eax 0000000100005369 cmpl -0x18(%rbp), %eax 000000010000536c jge 0x10000548b 0000000100005372 movl -0xb0(%rbp), %eax 0000000100005378 cmpl -0xa8(%rbp), %eax 000000010000537e jne 0x100005444 0000000100005384 movl $0x0, -0xb4(%rbp) 000000010000538e movl -0xb4(%rbp), %eax 0000000100005394 cmpl -0x38(%rbp), %eax 0000000100005397 jge 0x1000053df 000000010000539d movq -0x40(%rbp), %rax 00000001000053a1 movslq -0xb4(%rbp), %rcx 00000001000053a8 movb (%rax,%rcx), %dl 00000001000053ab movq -0xa0(%rbp), %rax 00000001000053b2 movslq -0xac(%rbp), %rcx 00000001000053b9 movb %dl, (%rax,%rcx) 00000001000053bc movl -0xac(%rbp), %esi 00000001000053c2 addl $0x1, %esi 00000001000053c5 movl %esi, -0xac(%rbp) 00000001000053cb movl -0xb4(%rbp), %eax 00000001000053d1 addl $0x1, %eax 00000001000053d4 movl %eax, -0xb4(%rbp) 00000001000053da jmp 0x10000538e 00000001000053df movl -0x28(%rbp), %eax 00000001000053e2 subl $0x1, %eax 00000001000053e5 addl -0xb0(%rbp), %eax 00000001000053eb movl %eax, -0xb0(%rbp) 00000001000053f1 movl -0xa4(%rbp), %eax 00000001000053f7 addl $0x1, %eax 00000001000053fa movl %eax, -0xa4(%rbp) 0000000100005400 movl -0xa4(%rbp), %eax 0000000100005406 cmpl -0x50(%rbp), %eax 0000000100005409 jge 0x10000543f 000000010000540f leaq -0x58(%rbp), %rax 0000000100005413 movl -0xa4(%rbp), %edi 0000000100005419 movq (%rax), %rcx 000000010000541c movq %rcx, (%rsp) 0000000100005420 movq 0x8(%rax), %rcx 0000000100005424 movq %rcx, 0x8(%rsp) 0000000100005429 movq 0x10(%rax), %rax 000000010000542d movq %rax, 0x10(%rsp) 0000000100005432 callq _array_get 0000000100005437 movl (%rax), %edi 0000000100005439 movl %edi, -0xa8(%rbp) 000000010000543f jmp 0x100005472 0000000100005444 movq -0x20(%rbp), %rax 0000000100005448 movslq -0xb0(%rbp), %rcx 000000010000544f movb (%rax,%rcx), %dl 0000000100005452 movq -0xa0(%rbp), %rax 0000000100005459 movslq -0xac(%rbp), %rcx 0000000100005460 movb %dl, (%rax,%rcx) 0000000100005463 movl -0xac(%rbp), %esi 0000000100005469 addl $0x1, %esi 000000010000546c movl %esi, -0xac(%rbp) 0000000100005472 jmp 0x100005477 0000000100005477 movl -0xb0(%rbp), %eax 000000010000547d addl $0x1, %eax 0000000100005480 movl %eax, -0xb0(%rbp) 0000000100005486 jmp 0x100005363 000000010000548b movq -0xa0(%rbp), %rax 0000000100005492 movslq -0x94(%rbp), %rcx 0000000100005499 movb $0x0, (%rax,%rcx) 000000010000549d movq -0xa0(%rbp), %rdi 00000001000054a4 movl -0x94(%rbp), %esi 00000001000054aa callq _tos 00000001000054af movq %rax, -0x10(%rbp) 00000001000054b3 movl %edx, -0x8(%rbp) 00000001000054b6 movq -0x10(%rbp), %rax 00000001000054ba movl -0x8(%rbp), %edx 00000001000054bd addq $0xe0, %rsp 00000001000054c4 popq %rbp 00000001000054c5 retq 00000001000054c6 nopw %cs:(%rax,%rax) _string_index: 00000001000054d0 pushq %rbp 00000001000054d1 movq %rsp, %rbp 00000001000054d4 movq %rdi, -0x18(%rbp) 00000001000054d8 movl %esi, -0x10(%rbp) 00000001000054db movq %rdx, -0x28(%rbp) 00000001000054df movl %ecx, -0x20(%rbp) 00000001000054e2 movl -0x20(%rbp), %ecx 00000001000054e5 cmpl -0x10(%rbp), %ecx 00000001000054e8 jle 0x1000054fa 00000001000054ee movl $0xffffffff, -0x4(%rbp) 00000001000054f5 jmp 0x100005598 00000001000054fa movl $0x0, -0x2c(%rbp) 0000000100005501 movl -0x2c(%rbp), %eax 0000000100005504 cmpl -0x10(%rbp), %eax 0000000100005507 jge 0x100005591 000000010000550d movl $0x0, -0x30(%rbp) 0000000100005514 xorl %eax, %eax 0000000100005516 movb %al, %cl 0000000100005518 movl -0x30(%rbp), %eax 000000010000551b cmpl -0x20(%rbp), %eax 000000010000551e movb %cl, -0x31(%rbp) 0000000100005521 jge 0x10000554e 0000000100005527 movq -0x18(%rbp), %rax 000000010000552b movl -0x2c(%rbp), %ecx 000000010000552e addl -0x30(%rbp), %ecx 0000000100005531 movslq %ecx, %rdx 0000000100005534 movzbl (%rax,%rdx), %ecx 0000000100005538 movq -0x28(%rbp), %rax 000000010000553c movslq -0x30(%rbp), %rdx 0000000100005540 movzbl (%rax,%rdx), %esi 0000000100005544 cmpl %esi, %ecx 0000000100005546 sete %dil 000000010000554a movb %dil, -0x31(%rbp) 000000010000554e movb -0x31(%rbp), %al 0000000100005551 testb $0x1, %al 0000000100005553 jne 0x10000555e 0000000100005559 jmp 0x10000556c 000000010000555e movl -0x30(%rbp), %eax 0000000100005561 addl $0x1, %eax 0000000100005564 movl %eax, -0x30(%rbp) 0000000100005567 jmp 0x100005514 000000010000556c movl -0x30(%rbp), %eax 000000010000556f cmpl -0x20(%rbp), %eax 0000000100005572 jne 0x100005583 0000000100005578 movl -0x2c(%rbp), %eax 000000010000557b movl %eax, -0x4(%rbp) 000000010000557e jmp 0x100005598 0000000100005583 movl -0x2c(%rbp), %eax 0000000100005586 addl $0x1, %eax 0000000100005589 movl %eax, -0x2c(%rbp) 000000010000558c jmp 0x100005501 0000000100005591 movl $0xffffffff, -0x4(%rbp) 0000000100005598 movl -0x4(%rbp), %eax 000000010000559b popq %rbp 000000010000559c retq 000000010000559d nopl (%rax) _string_substr: 00000001000055a0 pushq %rbp 00000001000055a1 movq %rsp, %rbp 00000001000055a4 subq $0x40, %rsp 00000001000055a8 movq %rdi, -0x20(%rbp) 00000001000055ac movl %esi, -0x18(%rbp) 00000001000055af movl %edx, -0x24(%rbp) 00000001000055b2 movl %ecx, -0x28(%rbp) 00000001000055b5 movl -0x24(%rbp), %ecx 00000001000055b8 cmpl -0x28(%rbp), %ecx 00000001000055bb jg 0x1000055ed 00000001000055c1 movl -0x24(%rbp), %eax 00000001000055c4 cmpl -0x18(%rbp), %eax 00000001000055c7 jg 0x1000055ed 00000001000055cd movl -0x28(%rbp), %eax 00000001000055d0 cmpl -0x18(%rbp), %eax 00000001000055d3 jg 0x1000055ed 00000001000055d9 cmpl $0x0, -0x24(%rbp) 00000001000055dd jl 0x1000055ed 00000001000055e3 cmpl $0x0, -0x28(%rbp) 00000001000055e7 jge 0x100005617 00000001000055ed leaq 0x5490(%rip), %rdi ## literal pool for: "substr(%d, %d) out of bounds (len=%d)" 00000001000055f4 movl -0x24(%rbp), %esi 00000001000055f7 movl -0x28(%rbp), %edx 00000001000055fa movl -0x18(%rbp), %ecx 00000001000055fd movb $0x0, %al 00000001000055ff callq __STR 0000000100005604 movq %rax, -0x38(%rbp) 0000000100005608 movl %edx, -0x30(%rbp) 000000010000560b movq -0x38(%rbp), %rdi 000000010000560f movl -0x30(%rbp), %esi 0000000100005612 callq _v_panic 0000000100005617 movl -0x28(%rbp), %eax 000000010000561a subl -0x24(%rbp), %eax 000000010000561d movl %eax, -0x3c(%rbp) 0000000100005620 movl -0x3c(%rbp), %eax 0000000100005623 addl $0x1, %eax 0000000100005626 movl %eax, %edi 0000000100005628 callq _v_malloc 000000010000562d movq %rax, -0x10(%rbp) 0000000100005631 movl -0x3c(%rbp), %edi 0000000100005634 movl %edi, -0x8(%rbp) 0000000100005637 movl $0x0, -0x40(%rbp) 000000010000563e movl -0x40(%rbp), %eax 0000000100005641 cmpl -0x3c(%rbp), %eax 0000000100005644 jge 0x100005675 000000010000564a movq -0x20(%rbp), %rax 000000010000564e movl -0x24(%rbp), %ecx 0000000100005651 addl -0x40(%rbp), %ecx 0000000100005654 movslq %ecx, %rdx 0000000100005657 movb (%rax,%rdx), %sil 000000010000565b movq -0x10(%rbp), %rax 000000010000565f movslq -0x40(%rbp), %rdx 0000000100005663 movb %sil, (%rax,%rdx) 0000000100005667 movl -0x40(%rbp), %eax 000000010000566a addl $0x1, %eax 000000010000566d movl %eax, -0x40(%rbp) 0000000100005670 jmp 0x10000563e 0000000100005675 movq -0x10(%rbp), %rax 0000000100005679 movslq -0x3c(%rbp), %rcx 000000010000567d movb $0x0, (%rax,%rcx) 0000000100005681 movq -0x10(%rbp), %rax 0000000100005685 movl -0x8(%rbp), %edx 0000000100005688 addq $0x40, %rsp 000000010000568c popq %rbp 000000010000568d retq 000000010000568e nop _v_string_int: 0000000100005690 pushq %rbp 0000000100005691 movq %rsp, %rbp 0000000100005694 subq $0x10, %rsp 0000000100005698 xorl %edx, %edx 000000010000569a movl $0x20, %ecx 000000010000569f movq %rdi, -0x10(%rbp) 00000001000056a3 movl %esi, -0x8(%rbp) 00000001000056a6 movq -0x10(%rbp), %rdi 00000001000056aa movl -0x8(%rbp), %esi 00000001000056ad callq _strconv__parse_int 00000001000056b2 movl %eax, %ecx 00000001000056b4 movl %ecx, %eax 00000001000056b6 addq $0x10, %rsp 00000001000056ba popq %rbp 00000001000056bb retq 00000001000056bc nopl (%rax) _strconv__parse_int: 00000001000056c0 pushq %rbp 00000001000056c1 movq %rsp, %rbp 00000001000056c4 subq $0x80, %rsp 00000001000056cb movq %rdi, -0x18(%rbp) 00000001000056cf movl %esi, -0x10(%rbp) 00000001000056d2 movl %edx, -0x1c(%rbp) 00000001000056d5 movl %ecx, -0x20(%rbp) 00000001000056d8 movq -0x18(%rbp), %rdi 00000001000056dc movq %rdi, -0x30(%rbp) 00000001000056e0 movq -0x10(%rbp), %rdi 00000001000056e4 movq %rdi, -0x28(%rbp) 00000001000056e8 movl -0x20(%rbp), %ecx 00000001000056eb movl %ecx, -0x34(%rbp) 00000001000056ee cmpl $0x1, -0x28(%rbp) 00000001000056f2 jge 0x100005705 00000001000056f8 movq $0x0, -0x8(%rbp) 0000000100005700 jmp 0x100005879 0000000100005705 xorl %edx, %edx 0000000100005707 movb $0x0, -0x35(%rbp) 000000010000570b movq -0x30(%rbp), %rdi 000000010000570f movl -0x28(%rbp), %esi 0000000100005712 callq _string_at 0000000100005717 movzbl %al, %edx 000000010000571a cmpl $0x2b, %edx 000000010000571d jne 0x100005750 0000000100005723 movl $0x1, %edx 0000000100005728 movq -0x30(%rbp), %rdi 000000010000572c movl -0x28(%rbp), %esi 000000010000572f callq _string_right 0000000100005734 movq %rax, -0x48(%rbp) 0000000100005738 movl %edx, -0x40(%rbp) 000000010000573b movq -0x48(%rbp), %rax 000000010000573f movq %rax, -0x30(%rbp) 0000000100005743 movq -0x40(%rbp), %rax 0000000100005747 movq %rax, -0x28(%rbp) 000000010000574b jmp 0x10000579b 0000000100005750 xorl %edx, %edx 0000000100005752 movq -0x30(%rbp), %rdi 0000000100005756 movl -0x28(%rbp), %esi 0000000100005759 callq _string_at 000000010000575e movzbl %al, %edx 0000000100005761 cmpl $0x2d, %edx 0000000100005764 jne 0x100005796 000000010000576a movl $0x1, %edx 000000010000576f movb $0x1, -0x35(%rbp) 0000000100005773 movq -0x30(%rbp), %rdi 0000000100005777 movl -0x28(%rbp), %esi 000000010000577a callq _string_right 000000010000577f movq %rax, -0x58(%rbp) 0000000100005783 movl %edx, -0x50(%rbp) 0000000100005786 movq -0x58(%rbp), %rax 000000010000578a movq %rax, -0x30(%rbp) 000000010000578e movq -0x50(%rbp), %rax 0000000100005792 movq %rax, -0x28(%rbp) 0000000100005796 jmp 0x10000579b 000000010000579b movl -0x1c(%rbp), %edx 000000010000579e movl -0x34(%rbp), %ecx 00000001000057a1 movq -0x30(%rbp), %rdi 00000001000057a5 movl -0x28(%rbp), %esi 00000001000057a8 callq _strconv__parse_uint 00000001000057ad movq %rax, -0x60(%rbp) 00000001000057b1 cmpq $0x0, -0x60(%rbp) 00000001000057b6 jne 0x1000057c9 00000001000057bc movq $0x0, -0x8(%rbp) 00000001000057c4 jmp 0x100005879 00000001000057c9 cmpl $0x0, -0x34(%rbp) 00000001000057cd jne 0x1000057da 00000001000057d3 movl $0x20, -0x34(%rbp) 00000001000057da movl $0x1, %eax 00000001000057df movl %eax, %ecx 00000001000057e1 movl -0x34(%rbp), %eax 00000001000057e4 subl $0x1, %eax 00000001000057e7 movslq %eax, %rdx 00000001000057ea movq %rcx, -0x70(%rbp) 00000001000057ee movq %rdx, %rcx 00000001000057f1 movq -0x70(%rbp), %rdx 00000001000057f5 shlq %cl, %rdx 00000001000057f8 movq %rdx, -0x68(%rbp) 00000001000057fc testb $0x1, -0x35(%rbp) 0000000100005800 jne 0x100005825 0000000100005806 movq -0x60(%rbp), %rax 000000010000580a cmpq -0x68(%rbp), %rax 000000010000580e jb 0x100005825 0000000100005814 movq -0x68(%rbp), %rax 0000000100005818 subq $0x1, %rax 000000010000581c movq %rax, -0x8(%rbp) 0000000100005820 jmp 0x100005879 0000000100005825 testb $0x1, -0x35(%rbp) 0000000100005829 je 0x10000584e 000000010000582f movq -0x60(%rbp), %rax 0000000100005833 cmpq -0x68(%rbp), %rax 0000000100005837 jbe 0x10000584e 000000010000583d xorl %eax, %eax 000000010000583f movl %eax, %ecx 0000000100005841 subq -0x68(%rbp), %rcx 0000000100005845 movq %rcx, -0x8(%rbp) 0000000100005849 jmp 0x100005879 000000010000584e testb $0x1, -0x35(%rbp) 0000000100005852 je 0x100005869 0000000100005858 xorl %eax, %eax 000000010000585a movl %eax, %ecx 000000010000585c subq -0x60(%rbp), %rcx 0000000100005860 movq %rcx, -0x78(%rbp) 0000000100005864 jmp 0x100005871 0000000100005869 movq -0x60(%rbp), %rax 000000010000586d movq %rax, -0x78(%rbp) 0000000100005871 movq -0x78(%rbp), %rax 0000000100005875 movq %rax, -0x8(%rbp) 0000000100005879 movq -0x8(%rbp), %rax 000000010000587d addq $0x80, %rsp 0000000100005884 popq %rbp 0000000100005885 retq 0000000100005886 nopw %cs:(%rax,%rax) _string_i64: 0000000100005890 pushq %rbp 0000000100005891 movq %rsp, %rbp 0000000100005894 subq $0x10, %rsp 0000000100005898 xorl %edx, %edx 000000010000589a movl $0x40, %ecx 000000010000589f movq %rdi, -0x10(%rbp) 00000001000058a3 movl %esi, -0x8(%rbp) 00000001000058a6 movq -0x10(%rbp), %rdi 00000001000058aa movl -0x8(%rbp), %esi 00000001000058ad callq _strconv__parse_int 00000001000058b2 addq $0x10, %rsp 00000001000058b6 popq %rbp 00000001000058b7 retq 00000001000058b8 nopl (%rax,%rax) _string_f32: 00000001000058c0 pushq %rbp 00000001000058c1 movq %rsp, %rbp 00000001000058c4 subq $0x10, %rsp 00000001000058c8 movq %rdi, -0x10(%rbp) 00000001000058cc movl %esi, -0x8(%rbp) 00000001000058cf movq -0x10(%rbp), %rdi 00000001000058d3 callq 0x10000a5c2 ## symbol stub for: _atof 00000001000058d8 cvtsd2ss %xmm0, %xmm0 00000001000058dc addq $0x10, %rsp 00000001000058e0 popq %rbp 00000001000058e1 retq 00000001000058e2 nopw %cs:(%rax,%rax) _string_f64: 00000001000058f0 pushq %rbp 00000001000058f1 movq %rsp, %rbp 00000001000058f4 subq $0x10, %rsp 00000001000058f8 movq %rdi, -0x10(%rbp) 00000001000058fc movl %esi, -0x8(%rbp) 00000001000058ff movq -0x10(%rbp), %rdi 0000000100005903 callq 0x10000a5c2 ## symbol stub for: _atof 0000000100005908 addq $0x10, %rsp 000000010000590c popq %rbp 000000010000590d retq 000000010000590e nop _string_u32: 0000000100005910 pushq %rbp 0000000100005911 movq %rsp, %rbp 0000000100005914 subq $0x10, %rsp 0000000100005918 xorl %edx, %edx 000000010000591a movl $0x20, %ecx 000000010000591f movq %rdi, -0x10(%rbp) 0000000100005923 movl %esi, -0x8(%rbp) 0000000100005926 movq -0x10(%rbp), %rdi 000000010000592a movl -0x8(%rbp), %esi 000000010000592d callq _strconv__parse_uint 0000000100005932 movl %eax, %ecx 0000000100005934 movl %ecx, %eax 0000000100005936 addq $0x10, %rsp 000000010000593a popq %rbp 000000010000593b retq 000000010000593c nopl (%rax) _strconv__parse_uint: 0000000100005940 pushq %rbp 0000000100005941 movq %rsp, %rbp 0000000100005944 subq $0x80, %rsp 000000010000594b movq %rdi, -0x18(%rbp) 000000010000594f movl %esi, -0x10(%rbp) 0000000100005952 movl %edx, -0x1c(%rbp) 0000000100005955 movl %ecx, -0x20(%rbp) 0000000100005958 movl -0x20(%rbp), %ecx 000000010000595b movl %ecx, -0x24(%rbp) 000000010000595e movl -0x1c(%rbp), %ecx 0000000100005961 movl %ecx, -0x28(%rbp) 0000000100005964 cmpl $0x1, -0x10(%rbp) 0000000100005968 jl 0x100005982 000000010000596e movq -0x18(%rbp), %rdi 0000000100005972 movl -0x10(%rbp), %esi 0000000100005975 callq _strconv__underscore_ok 000000010000597a testb $0x1, %al 000000010000597c jne 0x10000598f 0000000100005982 movq $0x0, -0x8(%rbp) 000000010000598a jmp 0x100005d3a 000000010000598f movl $0x2, %eax 0000000100005994 cmpl $0x0, -0x28(%rbp) 0000000100005998 sete %cl 000000010000599b andb $0x1, %cl 000000010000599e movb %cl, -0x29(%rbp) 00000001000059a1 movl $0x0, -0x30(%rbp) 00000001000059a8 cmpl -0x28(%rbp), %eax 00000001000059ab jg 0x1000059c0 00000001000059b1 cmpl $0x24, -0x28(%rbp) 00000001000059b5 jg 0x1000059c0 00000001000059bb jmp 0x100005aed 00000001000059c0 cmpl $0x0, -0x28(%rbp) 00000001000059c4 jne 0x100005adb 00000001000059ca xorl %edx, %edx 00000001000059cc movl $0xa, -0x28(%rbp) 00000001000059d3 movq -0x18(%rbp), %rdi 00000001000059d7 movl -0x10(%rbp), %esi 00000001000059da callq _string_at 00000001000059df movzbl %al, %edx 00000001000059e2 cmpl $0x30, %edx 00000001000059e5 jne 0x100005ad6 00000001000059eb cmpl $0x3, -0x10(%rbp) 00000001000059ef jl 0x100005a2f 00000001000059f5 movl $0x1, %edx 00000001000059fa movq -0x18(%rbp), %rdi 00000001000059fe movl -0x10(%rbp), %esi 0000000100005a01 callq _string_at 0000000100005a06 movzbl %al, %edi 0000000100005a09 callq _strconv__byte_to_lower 0000000100005a0e movzbl %al, %edx 0000000100005a11 cmpl $0x62, %edx 0000000100005a14 jne 0x100005a2f 0000000100005a1a movl $0x2, -0x28(%rbp) 0000000100005a21 movl -0x30(%rbp), %eax 0000000100005a24 addl $0x2, %eax 0000000100005a27 movl %eax, -0x30(%rbp) 0000000100005a2a jmp 0x100005ad1 0000000100005a2f cmpl $0x3, -0x10(%rbp) 0000000100005a33 jl 0x100005a73 0000000100005a39 movl $0x1, %edx 0000000100005a3e movq -0x18(%rbp), %rdi 0000000100005a42 movl -0x10(%rbp), %esi 0000000100005a45 callq _string_at 0000000100005a4a movzbl %al, %edi 0000000100005a4d callq _strconv__byte_to_lower 0000000100005a52 movzbl %al, %edx 0000000100005a55 cmpl $0x6f, %edx 0000000100005a58 jne 0x100005a73 0000000100005a5e movl $0x8, -0x28(%rbp) 0000000100005a65 movl -0x30(%rbp), %eax 0000000100005a68 addl $0x2, %eax 0000000100005a6b movl %eax, -0x30(%rbp) 0000000100005a6e jmp 0x100005acc 0000000100005a73 cmpl $0x3, -0x10(%rbp) 0000000100005a77 jl 0x100005ab7 0000000100005a7d movl $0x1, %edx 0000000100005a82 movq -0x18(%rbp), %rdi 0000000100005a86 movl -0x10(%rbp), %esi 0000000100005a89 callq _string_at 0000000100005a8e movzbl %al, %edi 0000000100005a91 callq _strconv__byte_to_lower 0000000100005a96 movzbl %al, %edx 0000000100005a99 cmpl $0x78, %edx 0000000100005a9c jne 0x100005ab7 0000000100005aa2 movl $0x10, -0x28(%rbp) 0000000100005aa9 movl -0x30(%rbp), %eax 0000000100005aac addl $0x2, %eax 0000000100005aaf movl %eax, -0x30(%rbp) 0000000100005ab2 jmp 0x100005ac7 0000000100005ab7 movl $0x8, -0x28(%rbp) 0000000100005abe movl -0x30(%rbp), %eax 0000000100005ac1 addl $0x1, %eax 0000000100005ac4 movl %eax, -0x30(%rbp) 0000000100005ac7 jmp 0x100005acc 0000000100005acc jmp 0x100005ad1 0000000100005ad1 jmp 0x100005ad6 0000000100005ad6 jmp 0x100005ae8 0000000100005adb movq $0x0, -0x8(%rbp) 0000000100005ae3 jmp 0x100005d3a 0000000100005ae8 jmp 0x100005aed 0000000100005aed cmpl $0x0, -0x24(%rbp) 0000000100005af1 jne 0x100005b03 0000000100005af7 movl $0x20, -0x24(%rbp) 0000000100005afe jmp 0x100005b29 0000000100005b03 cmpl $0x0, -0x24(%rbp) 0000000100005b07 jl 0x100005b17 0000000100005b0d cmpl $0x40, -0x24(%rbp) 0000000100005b11 jle 0x100005b24 0000000100005b17 movq $0x0, -0x8(%rbp) 0000000100005b1f jmp 0x100005d3a 0000000100005b24 jmp 0x100005b29 0000000100005b29 leaq _strconv__max_u64(%rip), %rax 0000000100005b30 movq (%rax), %rax 0000000100005b33 movslq -0x28(%rbp), %rcx 0000000100005b37 xorl %edx, %edx 0000000100005b39 divq %rcx 0000000100005b3c addq $0x1, %rax 0000000100005b40 movq %rax, -0x38(%rbp) 0000000100005b44 cmpl $0x40, -0x24(%rbp) 0000000100005b48 jne 0x100005b61 0000000100005b4e leaq _strconv__max_u64(%rip), %rax 0000000100005b55 movq (%rax), %rax 0000000100005b58 movq %rax, -0x70(%rbp) 0000000100005b5c jmp 0x100005b82 0000000100005b61 movl $0x1, %eax 0000000100005b66 movl %eax, %ecx 0000000100005b68 movslq -0x24(%rbp), %rdx 0000000100005b6c movq %rcx, -0x78(%rbp) 0000000100005b70 movq %rdx, %rcx 0000000100005b73 movq -0x78(%rbp), %rdx 0000000100005b77 shlq %cl, %rdx 0000000100005b7a subq $0x1, %rdx 0000000100005b7e movq %rdx, -0x70(%rbp) 0000000100005b82 movq -0x70(%rbp), %rax 0000000100005b86 movq %rax, -0x40(%rbp) 0000000100005b8a movb $0x0, -0x41(%rbp) 0000000100005b8e movq $0x0, -0x50(%rbp) 0000000100005b96 movl -0x30(%rbp), %ecx 0000000100005b99 movl %ecx, -0x54(%rbp) 0000000100005b9c movl -0x54(%rbp), %ecx 0000000100005b9f movl %ecx, -0x58(%rbp) 0000000100005ba2 movl -0x58(%rbp), %eax 0000000100005ba5 cmpl -0x10(%rbp), %eax 0000000100005ba8 jge 0x100005d07 0000000100005bae movl -0x58(%rbp), %eax 0000000100005bb1 movl %eax, -0x5c(%rbp) 0000000100005bb4 movl -0x5c(%rbp), %edx 0000000100005bb7 movq -0x18(%rbp), %rdi 0000000100005bbb movl -0x10(%rbp), %esi 0000000100005bbe callq _string_at 0000000100005bc3 movb %al, -0x5d(%rbp) 0000000100005bc6 movzbl -0x5d(%rbp), %edi 0000000100005bca callq _strconv__byte_to_lower 0000000100005bcf movb %al, -0x5e(%rbp) 0000000100005bd2 movb $0x0, -0x5f(%rbp) 0000000100005bd6 movzbl -0x5d(%rbp), %edx 0000000100005bda cmpl $0x5f, %edx 0000000100005bdd jne 0x100005bf6 0000000100005be3 testb $0x1, -0x29(%rbp) 0000000100005be7 je 0x100005bf6 0000000100005bed movb $0x1, -0x41(%rbp) 0000000100005bf1 jmp 0x100005cf9 0000000100005bf6 movl $0x30, %eax 0000000100005bfb movzbl -0x5d(%rbp), %ecx 0000000100005bff cmpl %ecx, %eax 0000000100005c01 jg 0x100005c25 0000000100005c07 movzbl -0x5d(%rbp), %eax 0000000100005c0b cmpl $0x39, %eax 0000000100005c0e jg 0x100005c25 0000000100005c14 movzbl -0x5d(%rbp), %eax 0000000100005c18 subl $0x30, %eax 0000000100005c1b movb %al, %cl 0000000100005c1d movb %cl, -0x5f(%rbp) 0000000100005c20 jmp 0x100005c69 0000000100005c25 movl $0x61, %eax 0000000100005c2a movzbl -0x5e(%rbp), %ecx 0000000100005c2e cmpl %ecx, %eax 0000000100005c30 jg 0x100005c57 0000000100005c36 movzbl -0x5e(%rbp), %eax 0000000100005c3a cmpl $0x7a, %eax 0000000100005c3d jg 0x100005c57 0000000100005c43 movzbl -0x5e(%rbp), %eax 0000000100005c47 subl $0x61, %eax 0000000100005c4a addl $0xa, %eax 0000000100005c4d movb %al, %cl 0000000100005c4f movb %cl, -0x5f(%rbp) 0000000100005c52 jmp 0x100005c64 0000000100005c57 movq $0x0, -0x8(%rbp) 0000000100005c5f jmp 0x100005d3a 0000000100005c64 jmp 0x100005c69 0000000100005c69 jmp 0x100005c6e 0000000100005c6e movzbl -0x5f(%rbp), %eax 0000000100005c72 movl -0x28(%rbp), %ecx 0000000100005c75 movb %cl, %dl 0000000100005c77 movzbl %dl, %ecx 0000000100005c7a cmpl %ecx, %eax 0000000100005c7c jl 0x100005c8f 0000000100005c82 movq $0x0, -0x8(%rbp) 0000000100005c8a jmp 0x100005d3a 0000000100005c8f movq -0x50(%rbp), %rax 0000000100005c93 cmpq -0x38(%rbp), %rax 0000000100005c97 jb 0x100005caa 0000000100005c9d movq -0x40(%rbp), %rax 0000000100005ca1 movq %rax, -0x8(%rbp) 0000000100005ca5 jmp 0x100005d3a 0000000100005caa movslq -0x28(%rbp), %rax 0000000100005cae imulq -0x50(%rbp), %rax 0000000100005cb3 movq %rax, -0x50(%rbp) 0000000100005cb7 movq -0x50(%rbp), %rax 0000000100005cbb movzbl -0x5f(%rbp), %ecx 0000000100005cbf movl %ecx, %edx 0000000100005cc1 addq %rdx, %rax 0000000100005cc4 movq %rax, -0x68(%rbp) 0000000100005cc8 movq -0x68(%rbp), %rax 0000000100005ccc cmpq -0x50(%rbp), %rax 0000000100005cd0 jb 0x100005ce4 0000000100005cd6 movq -0x68(%rbp), %rax 0000000100005cda cmpq -0x40(%rbp), %rax 0000000100005cde jbe 0x100005cf1 0000000100005ce4 movq -0x40(%rbp), %rax 0000000100005ce8 movq %rax, -0x8(%rbp) 0000000100005cec jmp 0x100005d3a 0000000100005cf1 movq -0x68(%rbp), %rax 0000000100005cf5 movq %rax, -0x50(%rbp) 0000000100005cf9 movl -0x58(%rbp), %eax 0000000100005cfc addl $0x1, %eax 0000000100005cff movl %eax, -0x58(%rbp) 0000000100005d02 jmp 0x100005ba2 0000000100005d07 testb $0x1, -0x41(%rbp) 0000000100005d0b je 0x100005d32 0000000100005d11 movq -0x18(%rbp), %rdi 0000000100005d15 movl -0x10(%rbp), %esi 0000000100005d18 callq _strconv__underscore_ok 0000000100005d1d testb $0x1, %al 0000000100005d1f jne 0x100005d32 0000000100005d25 movq $0x0, -0x8(%rbp) 0000000100005d2d jmp 0x100005d3a 0000000100005d32 movq -0x50(%rbp), %rax 0000000100005d36 movq %rax, -0x8(%rbp) 0000000100005d3a movq -0x8(%rbp), %rax 0000000100005d3e addq $0x80, %rsp 0000000100005d45 popq %rbp 0000000100005d46 retq 0000000100005d47 nopw (%rax,%rax) _string_u64: 0000000100005d50 pushq %rbp 0000000100005d51 movq %rsp, %rbp 0000000100005d54 subq $0x10, %rsp 0000000100005d58 xorl %edx, %edx 0000000100005d5a movl $0x40, %ecx 0000000100005d5f movq %rdi, -0x10(%rbp) 0000000100005d63 movl %esi, -0x8(%rbp) 0000000100005d66 movq -0x10(%rbp), %rdi 0000000100005d6a movl -0x8(%rbp), %esi 0000000100005d6d callq _strconv__parse_uint 0000000100005d72 addq $0x10, %rsp 0000000100005d76 popq %rbp 0000000100005d77 retq 0000000100005d78 nopl (%rax,%rax) _string_ne: 0000000100005d80 pushq %rbp 0000000100005d81 movq %rsp, %rbp 0000000100005d84 subq $0x20, %rsp 0000000100005d88 movq %rdi, -0x10(%rbp) 0000000100005d8c movl %esi, -0x8(%rbp) 0000000100005d8f movq %rdx, -0x20(%rbp) 0000000100005d93 movl %ecx, -0x18(%rbp) 0000000100005d96 movq -0x10(%rbp), %rdi 0000000100005d9a movl -0x8(%rbp), %esi 0000000100005d9d movq -0x20(%rbp), %rdx 0000000100005da1 movl -0x18(%rbp), %ecx 0000000100005da4 callq _string_eq 0000000100005da9 xorb $-0x1, %al 0000000100005dab andb $0x1, %al 0000000100005dad movzbl %al, %eax 0000000100005db0 addq $0x20, %rsp 0000000100005db4 popq %rbp 0000000100005db5 retq 0000000100005db6 nopw %cs:(%rax,%rax) _string_lt: 0000000100005dc0 pushq %rbp 0000000100005dc1 movq %rsp, %rbp 0000000100005dc4 movq %rdi, -0x18(%rbp) 0000000100005dc8 movl %esi, -0x10(%rbp) 0000000100005dcb movq %rdx, -0x28(%rbp) 0000000100005dcf movl %ecx, -0x20(%rbp) 0000000100005dd2 movl $0x0, -0x2c(%rbp) 0000000100005dd9 movl -0x2c(%rbp), %eax 0000000100005ddc cmpl -0x10(%rbp), %eax 0000000100005ddf jge 0x100005e5b 0000000100005de5 movl -0x2c(%rbp), %eax 0000000100005de8 cmpl -0x20(%rbp), %eax 0000000100005deb jge 0x100005e11 0000000100005df1 movq -0x18(%rbp), %rax 0000000100005df5 movslq -0x2c(%rbp), %rcx 0000000100005df9 movzbl (%rax,%rcx), %edx 0000000100005dfd movq -0x28(%rbp), %rax 0000000100005e01 movslq -0x2c(%rbp), %rcx 0000000100005e05 movzbl (%rax,%rcx), %esi 0000000100005e09 cmpl %esi, %edx 0000000100005e0b jle 0x100005e1a 0000000100005e11 movb $0x0, -0x1(%rbp) 0000000100005e15 jmp 0x100005e74 0000000100005e1a movq -0x18(%rbp), %rax 0000000100005e1e movslq -0x2c(%rbp), %rcx 0000000100005e22 movzbl (%rax,%rcx), %edx 0000000100005e26 movq -0x28(%rbp), %rax 0000000100005e2a movslq -0x2c(%rbp), %rcx 0000000100005e2e movzbl (%rax,%rcx), %esi 0000000100005e32 cmpl %esi, %edx 0000000100005e34 jge 0x100005e43 0000000100005e3a movb $0x1, -0x1(%rbp) 0000000100005e3e jmp 0x100005e74 0000000100005e43 jmp 0x100005e48 0000000100005e48 jmp 0x100005e4d 0000000100005e4d movl -0x2c(%rbp), %eax 0000000100005e50 addl $0x1, %eax 0000000100005e53 movl %eax, -0x2c(%rbp) 0000000100005e56 jmp 0x100005dd9 0000000100005e5b movl -0x10(%rbp), %eax 0000000100005e5e cmpl -0x20(%rbp), %eax 0000000100005e61 jge 0x100005e70 0000000100005e67 movb $0x1, -0x1(%rbp) 0000000100005e6b jmp 0x100005e74 0000000100005e70 movb $0x0, -0x1(%rbp) 0000000100005e74 movb -0x1(%rbp), %al 0000000100005e77 andb $0x1, %al 0000000100005e79 movzbl %al, %eax 0000000100005e7c popq %rbp 0000000100005e7d retq 0000000100005e7e nop _string_le: 0000000100005e80 pushq %rbp 0000000100005e81 movq %rsp, %rbp 0000000100005e84 subq $0x30, %rsp 0000000100005e88 movq %rdi, -0x10(%rbp) 0000000100005e8c movl %esi, -0x8(%rbp) 0000000100005e8f movq %rdx, -0x20(%rbp) 0000000100005e93 movl %ecx, -0x18(%rbp) 0000000100005e96 movq -0x10(%rbp), %rdi 0000000100005e9a movl -0x8(%rbp), %esi 0000000100005e9d movq -0x20(%rbp), %rdx 0000000100005ea1 movl -0x18(%rbp), %ecx 0000000100005ea4 callq _string_lt 0000000100005ea9 movb $0x1, %r8b 0000000100005eac testb $0x1, %al 0000000100005eae movb %r8b, -0x21(%rbp) 0000000100005eb2 jne 0x100005ece 0000000100005eb8 movq -0x10(%rbp), %rdi 0000000100005ebc movl -0x8(%rbp), %esi 0000000100005ebf movq -0x20(%rbp), %rdx 0000000100005ec3 movl -0x18(%rbp), %ecx 0000000100005ec6 callq _string_eq 0000000100005ecb movb %al, -0x21(%rbp) 0000000100005ece movb -0x21(%rbp), %al 0000000100005ed1 andb $0x1, %al 0000000100005ed3 movzbl %al, %eax 0000000100005ed6 addq $0x30, %rsp 0000000100005eda popq %rbp 0000000100005edb retq 0000000100005edc nopl (%rax) _string_ge: 0000000100005ee0 pushq %rbp 0000000100005ee1 movq %rsp, %rbp 0000000100005ee4 subq $0x20, %rsp 0000000100005ee8 movq %rdi, -0x10(%rbp) 0000000100005eec movl %esi, -0x8(%rbp) 0000000100005eef movq %rdx, -0x20(%rbp) 0000000100005ef3 movl %ecx, -0x18(%rbp) 0000000100005ef6 movq -0x10(%rbp), %rdi 0000000100005efa movl -0x8(%rbp), %esi 0000000100005efd movq -0x20(%rbp), %rdx 0000000100005f01 movl -0x18(%rbp), %ecx 0000000100005f04 callq _string_lt 0000000100005f09 xorb $-0x1, %al 0000000100005f0b andb $0x1, %al 0000000100005f0d movzbl %al, %eax 0000000100005f10 addq $0x20, %rsp 0000000100005f14 popq %rbp 0000000100005f15 retq 0000000100005f16 nopw %cs:(%rax,%rax) _string_split: 0000000100005f20 pushq %rbp 0000000100005f21 movq %rsp, %rbp 0000000100005f24 pushq %r14 0000000100005f26 pushq %rbx 0000000100005f27 subq $0xc0, %rsp 0000000100005f2e movq %rdi, %rax 0000000100005f31 leaq -0x60(%rbp), %r9 0000000100005f35 xorl %r10d, %r10d 0000000100005f38 movl $0x10, %r11d 0000000100005f3e leaq -0x28(%rbp), %rbx 0000000100005f42 movq 0x70ef(%rip), %r14 ## literal pool symbol address: ___stack_chk_guard 0000000100005f49 movq (%r14), %r14 0000000100005f4c movq %r14, -0x18(%rbp) 0000000100005f50 movq %rsi, -0x38(%rbp) 0000000100005f54 movl %edx, -0x30(%rbp) 0000000100005f57 movq %rcx, -0x48(%rbp) 0000000100005f5b movl %r8d, -0x40(%rbp) 0000000100005f5f movq $0x0, -0x28(%rbp) 0000000100005f67 movl $0x0, -0x20(%rbp) 0000000100005f6e movq %rdi, -0xc0(%rbp) 0000000100005f75 movq %r9, %rdi 0000000100005f78 movl %r10d, %esi 0000000100005f7b movl %r10d, %edx 0000000100005f7e movl %r11d, %ecx 0000000100005f81 movq %rbx, %r8 0000000100005f84 movq %rax, -0xc8(%rbp) 0000000100005f8b callq _new_array_from_c_array 0000000100005f90 cmpl $0x0, -0x40(%rbp) 0000000100005f94 jne 0x100005fdd 0000000100005f9a leaq -0x60(%rbp), %rdi 0000000100005f9e leaq -0x70(%rbp), %rax 0000000100005fa2 movq -0x38(%rbp), %rcx 0000000100005fa6 movq %rcx, -0x70(%rbp) 0000000100005faa movq -0x30(%rbp), %rcx 0000000100005fae movq %rcx, -0x68(%rbp) 0000000100005fb2 movq %rax, %rsi 0000000100005fb5 callq _array_push 0000000100005fba movq -0x60(%rbp), %rax 0000000100005fbe movq -0xc0(%rbp), %rcx 0000000100005fc5 movq %rax, (%rcx) 0000000100005fc8 movq -0x58(%rbp), %rax 0000000100005fcc movq %rax, 0x8(%rcx) 0000000100005fd0 movq -0x50(%rbp), %rax 0000000100005fd4 movq %rax, 0x10(%rcx) 0000000100005fd8 jmp 0x10000620b 0000000100005fdd cmpl $0x1, -0x40(%rbp) 0000000100005fe1 jne 0x100006008 0000000100005fe7 movq -0x48(%rbp), %rax 0000000100005feb movb (%rax), %cl 0000000100005fed movq -0x38(%rbp), %rsi 0000000100005ff1 movl -0x30(%rbp), %edx 0000000100005ff4 movq -0xc0(%rbp), %rdi 0000000100005ffb movzbl %cl, %ecx 0000000100005ffe callq _string_split_single 0000000100006003 jmp 0x10000620b 0000000100006008 movl $0x0, -0x74(%rbp) 000000010000600f movl $0x0, -0x78(%rbp) 0000000100006016 movl -0x74(%rbp), %eax 0000000100006019 cmpl -0x30(%rbp), %eax 000000010000601c jge 0x1000061ed 0000000100006022 movq -0x38(%rbp), %rax 0000000100006026 movslq -0x74(%rbp), %rcx 000000010000602a movzbl (%rax,%rcx), %edx 000000010000602e movq -0x48(%rbp), %rax 0000000100006032 movzbl (%rax), %esi 0000000100006035 cmpl %esi, %edx 0000000100006037 sete %dil 000000010000603b andb $0x1, %dil 000000010000603f movb %dil, -0x79(%rbp) 0000000100006043 movl $0x1, -0x80(%rbp) 000000010000604a xorl %eax, %eax 000000010000604c movb %al, %cl 000000010000604e movl -0x80(%rbp), %eax 0000000100006051 cmpl -0x40(%rbp), %eax 0000000100006054 movb %cl, -0xc9(%rbp) 000000010000605a jge 0x100006069 0000000100006060 movb -0x79(%rbp), %al 0000000100006063 movb %al, -0xc9(%rbp) 0000000100006069 movb -0xc9(%rbp), %al 000000010000606f testb $0x1, %al 0000000100006071 jne 0x10000607c 0000000100006077 jmp 0x1000060d3 000000010000607c xorl %eax, %eax 000000010000607e movb %al, %cl 0000000100006080 testb $0x1, -0x79(%rbp) 0000000100006084 movb %cl, -0xca(%rbp) 000000010000608a je 0x1000060ba 0000000100006090 movq -0x38(%rbp), %rax 0000000100006094 movl -0x74(%rbp), %ecx 0000000100006097 addl -0x80(%rbp), %ecx 000000010000609a movslq %ecx, %rdx 000000010000609d movzbl (%rax,%rdx), %ecx 00000001000060a1 movq -0x48(%rbp), %rax 00000001000060a5 movslq -0x80(%rbp), %rdx 00000001000060a9 movzbl (%rax,%rdx), %esi 00000001000060ad cmpl %esi, %ecx 00000001000060af sete %dil 00000001000060b3 movb %dil, -0xca(%rbp) 00000001000060ba movb -0xca(%rbp), %al 00000001000060c0 andb $0x1, %al 00000001000060c2 movb %al, -0x79(%rbp) 00000001000060c5 movl -0x80(%rbp), %ecx 00000001000060c8 addl $0x1, %ecx 00000001000060cb movl %ecx, -0x80(%rbp) 00000001000060ce jmp 0x10000604a 00000001000060d3 movl -0x74(%rbp), %eax 00000001000060d6 movl -0x30(%rbp), %ecx 00000001000060d9 subl $0x1, %ecx 00000001000060dc cmpl %ecx, %eax 00000001000060de sete %dl 00000001000060e1 andb $0x1, %dl 00000001000060e4 movb %dl, -0x81(%rbp) 00000001000060ea testb $0x1, -0x79(%rbp) 00000001000060ee jne 0x100006101 00000001000060f4 testb $0x1, -0x81(%rbp) 00000001000060fb je 0x1000061df 0000000100006101 testb $0x1, -0x81(%rbp) 0000000100006108 je 0x100006117 000000010000610e movl -0x74(%rbp), %eax 0000000100006111 addl $0x1, %eax 0000000100006114 movl %eax, -0x74(%rbp) 0000000100006117 movl -0x78(%rbp), %edx 000000010000611a movl -0x74(%rbp), %ecx 000000010000611d movq -0x38(%rbp), %rdi 0000000100006121 movl -0x30(%rbp), %esi 0000000100006124 callq _string_substr 0000000100006129 movq %rax, -0x98(%rbp) 0000000100006130 movl %edx, -0x90(%rbp) 0000000100006136 cmpl $0x0, -0x90(%rbp) 000000010000613d jle 0x1000061d9 0000000100006143 movq -0x98(%rbp), %rdi 000000010000614a movl -0x90(%rbp), %esi 0000000100006150 movq -0x48(%rbp), %rdx 0000000100006154 movl -0x40(%rbp), %ecx 0000000100006157 callq _string_starts_with 000000010000615c testb $0x1, %al 000000010000615e jne 0x100006169 0000000100006164 jmp 0x1000061a7 0000000100006169 movl -0x40(%rbp), %edx 000000010000616c movq -0x98(%rbp), %rdi 0000000100006173 movl -0x90(%rbp), %esi 0000000100006179 callq _string_right 000000010000617e movq %rax, -0xa8(%rbp) 0000000100006185 movl %edx, -0xa0(%rbp) 000000010000618b movq -0xa8(%rbp), %rax 0000000100006192 movq %rax, -0x98(%rbp) 0000000100006199 movq -0xa0(%rbp), %rax 00000001000061a0 movq %rax, -0x90(%rbp) 00000001000061a7 movq -0x98(%rbp), %rdi 00000001000061ae movl -0x90(%rbp), %esi 00000001000061b4 callq _string_trim_space 00000001000061b9 leaq -0x60(%rbp), %rdi 00000001000061bd leaq -0xb8(%rbp), %rcx 00000001000061c4 movq %rax, -0xb8(%rbp) 00000001000061cb movl %edx, -0xb0(%rbp) 00000001000061d1 movq %rcx, %rsi 00000001000061d4 callq _array_push 00000001000061d9 movl -0x74(%rbp), %eax 00000001000061dc movl %eax, -0x78(%rbp) 00000001000061df movl -0x74(%rbp), %eax 00000001000061e2 addl $0x1, %eax 00000001000061e5 movl %eax, -0x74(%rbp) 00000001000061e8 jmp 0x100006016 00000001000061ed movq -0x60(%rbp), %rax 00000001000061f1 movq -0xc0(%rbp), %rcx 00000001000061f8 movq %rax, (%rcx) 00000001000061fb movq -0x58(%rbp), %rax 00000001000061ff movq %rax, 0x8(%rcx) 0000000100006203 movq -0x50(%rbp), %rax 0000000100006207 movq %rax, 0x10(%rcx) 000000010000620b movq 0x6e26(%rip), %rax ## literal pool symbol address: ___stack_chk_guard 0000000100006212 movq (%rax), %rax 0000000100006215 movq -0x18(%rbp), %rcx 0000000100006219 cmpq %rcx, %rax 000000010000621c jne 0x100006235 0000000100006222 movq -0xc8(%rbp), %rax 0000000100006229 addq $0xc0, %rsp 0000000100006230 popq %rbx 0000000100006231 popq %r14 0000000100006233 popq %rbp 0000000100006234 retq 0000000100006235 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail 000000010000623a ud2 000000010000623c nopl (%rax) _string_split_single: 0000000100006240 pushq %rbp 0000000100006241 movq %rsp, %rbp 0000000100006244 subq $0x80, %rsp 000000010000624b movb %cl, %al 000000010000624d movq %rdi, %r8 0000000100006250 xorl %ecx, %ecx 0000000100006252 movl $0x10, %r9d 0000000100006258 leaq -0x18(%rbp), %r10 000000010000625c movq 0x6dd5(%rip), %r11 ## literal pool symbol address: ___stack_chk_guard 0000000100006263 movq (%r11), %r11 0000000100006266 movq %r11, -0x8(%rbp) 000000010000626a movq %rsi, -0x28(%rbp) 000000010000626e movl %edx, -0x20(%rbp) 0000000100006271 movb %al, -0x29(%rbp) 0000000100006274 movq $0x0, -0x18(%rbp) 000000010000627c movl $0x0, -0x10(%rbp) 0000000100006283 movq %rdi, -0x78(%rbp) 0000000100006287 movl %ecx, %esi 0000000100006289 movl %ecx, %edx 000000010000628b movl %r9d, %ecx 000000010000628e movq %r8, -0x80(%rbp) 0000000100006292 movq %r10, %r8 0000000100006295 callq _new_array_from_c_array 000000010000629a movzbl -0x29(%rbp), %ecx 000000010000629e cmpl $0x0, %ecx 00000001000062a1 jne 0x1000062cc 00000001000062a7 leaq -0x40(%rbp), %rax 00000001000062ab movq -0x28(%rbp), %rcx 00000001000062af movq %rcx, -0x40(%rbp) 00000001000062b3 movq -0x20(%rbp), %rcx 00000001000062b7 movq %rcx, -0x38(%rbp) 00000001000062bb movq -0x78(%rbp), %rdi 00000001000062bf movq %rax, %rsi 00000001000062c2 callq _array_push 00000001000062c7 jmp 0x1000063b2 00000001000062cc movl $0x0, -0x44(%rbp) 00000001000062d3 movl $0x0, -0x48(%rbp) 00000001000062da movl -0x44(%rbp), %eax 00000001000062dd cmpl -0x20(%rbp), %eax 00000001000062e0 jge 0x1000063ad 00000001000062e6 movq -0x28(%rbp), %rax 00000001000062ea movslq -0x44(%rbp), %rcx 00000001000062ee movzbl (%rax,%rcx), %edx 00000001000062f2 movzbl -0x29(%rbp), %esi 00000001000062f6 cmpl %esi, %edx 00000001000062f8 sete %dil 00000001000062fc andb $0x1, %dil 0000000100006300 movb %dil, -0x49(%rbp) 0000000100006304 movl -0x44(%rbp), %edx 0000000100006307 movl -0x20(%rbp), %esi 000000010000630a subl $0x1, %esi 000000010000630d cmpl %esi, %edx 000000010000630f sete %dil 0000000100006313 andb $0x1, %dil 0000000100006317 movb %dil, -0x4a(%rbp) 000000010000631b testb $0x1, -0x49(%rbp) 000000010000631f jne 0x10000632f 0000000100006325 testb $0x1, -0x4a(%rbp) 0000000100006329 je 0x10000639f 000000010000632f testb $0x1, -0x49(%rbp) 0000000100006333 jne 0x100006353 0000000100006339 movl -0x44(%rbp), %eax 000000010000633c movl -0x20(%rbp), %ecx 000000010000633f subl $0x1, %ecx 0000000100006342 cmpl %ecx, %eax 0000000100006344 jne 0x100006353 000000010000634a movl -0x44(%rbp), %eax 000000010000634d addl $0x1, %eax 0000000100006350 movl %eax, -0x44(%rbp) 0000000100006353 movl -0x48(%rbp), %edx 0000000100006356 movl -0x44(%rbp), %ecx 0000000100006359 movq -0x28(%rbp), %rdi 000000010000635d movl -0x20(%rbp), %esi 0000000100006360 callq _string_substr 0000000100006365 movq %rax, -0x60(%rbp) 0000000100006369 movl %edx, -0x58(%rbp) 000000010000636c cmpl $0x0, -0x58(%rbp) 0000000100006370 jle 0x100006396 0000000100006376 leaq -0x70(%rbp), %rax 000000010000637a movq -0x60(%rbp), %rcx 000000010000637e movq %rcx, -0x70(%rbp) 0000000100006382 movq -0x58(%rbp), %rcx 0000000100006386 movq %rcx, -0x68(%rbp) 000000010000638a movq -0x78(%rbp), %rdi 000000010000638e movq %rax, %rsi 0000000100006391 callq _array_push 0000000100006396 movl -0x44(%rbp), %eax 0000000100006399 addl $0x1, %eax 000000010000639c movl %eax, -0x48(%rbp) 000000010000639f movl -0x44(%rbp), %eax 00000001000063a2 addl $0x1, %eax 00000001000063a5 movl %eax, -0x44(%rbp) 00000001000063a8 jmp 0x1000062da 00000001000063ad jmp 0x1000063b2 00000001000063b2 movq 0x6c7f(%rip), %rax ## literal pool symbol address: ___stack_chk_guard 00000001000063b9 movq (%rax), %rax 00000001000063bc movq -0x8(%rbp), %rcx 00000001000063c0 cmpq %rcx, %rax 00000001000063c3 jne 0x1000063d6 00000001000063c9 movq -0x80(%rbp), %rax 00000001000063cd addq $0x80, %rsp 00000001000063d4 popq %rbp 00000001000063d5 retq 00000001000063d6 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail 00000001000063db ud2 00000001000063dd nopl (%rax) _string_starts_with: 00000001000063e0 pushq %rbp 00000001000063e1 movq %rsp, %rbp 00000001000063e4 subq $0x30, %rsp 00000001000063e8 movq %rdi, -0x10(%rbp) 00000001000063ec movl %esi, -0x8(%rbp) 00000001000063ef movq %rdx, -0x20(%rbp) 00000001000063f3 movl %ecx, -0x18(%rbp) 00000001000063f6 movq -0x10(%rbp), %rdi 00000001000063fa movl -0x8(%rbp), %esi 00000001000063fd movq -0x20(%rbp), %rdx 0000000100006401 movl -0x18(%rbp), %ecx 0000000100006404 callq _string_index 0000000100006409 cmpl $0x0, %eax 000000010000640c sete %r8b 0000000100006410 andb $0x1, %r8b 0000000100006414 movb %r8b, -0x21(%rbp) 0000000100006418 movb -0x21(%rbp), %r8b 000000010000641c andb $0x1, %r8b 0000000100006420 movzbl %r8b, %eax 0000000100006424 addq $0x30, %rsp 0000000100006428 popq %rbp 0000000100006429 retq 000000010000642a nopw (%rax,%rax) _string_right: 0000000100006430 pushq %rbp 0000000100006431 movq %rsp, %rbp 0000000100006434 subq $0x30, %rsp 0000000100006438 movq %rdi, -0x20(%rbp) 000000010000643c movl %esi, -0x18(%rbp) 000000010000643f movl %edx, -0x24(%rbp) 0000000100006442 movl -0x24(%rbp), %edx 0000000100006445 cmpl -0x18(%rbp), %edx 0000000100006448 jl 0x100006466 000000010000644e leaq 0x4564(%rip), %rdi ## literal pool for: "" 0000000100006455 callq _tos3 000000010000645a movq %rax, -0x10(%rbp) 000000010000645e movl %edx, -0x8(%rbp) 0000000100006461 jmp 0x10000647f 0000000100006466 movl -0x24(%rbp), %edx 0000000100006469 movl -0x18(%rbp), %ecx 000000010000646c movq -0x20(%rbp), %rdi 0000000100006470 movl -0x18(%rbp), %esi 0000000100006473 callq _string_substr 0000000100006478 movq %rax, -0x10(%rbp) 000000010000647c movl %edx, -0x8(%rbp) 000000010000647f movq -0x10(%rbp), %rax 0000000100006483 movl -0x8(%rbp), %edx 0000000100006486 addq $0x30, %rsp 000000010000648a popq %rbp 000000010000648b retq 000000010000648c nopl (%rax) _string_trim_space: 0000000100006490 pushq %rbp 0000000100006491 movq %rsp, %rbp 0000000100006494 subq $0x30, %rsp 0000000100006498 movq %rdi, -0x20(%rbp) 000000010000649c movl %esi, -0x18(%rbp) 000000010000649f leaq 0x4606(%rip), %rdi ## literal pool for: " \n\t\013\014\015" 00000001000064a6 callq _tos3 00000001000064ab movq %rax, -0x30(%rbp) 00000001000064af movl %edx, -0x28(%rbp) 00000001000064b2 movq -0x20(%rbp), %rdi 00000001000064b6 movl -0x18(%rbp), %esi 00000001000064b9 movq -0x30(%rbp), %rdx 00000001000064bd movl -0x28(%rbp), %ecx 00000001000064c0 callq _string_trim 00000001000064c5 movq %rax, -0x10(%rbp) 00000001000064c9 movl %edx, -0x8(%rbp) 00000001000064cc movq -0x10(%rbp), %rax 00000001000064d0 movl -0x8(%rbp), %edx 00000001000064d3 addq $0x30, %rsp 00000001000064d7 popq %rbp 00000001000064d8 retq 00000001000064d9 nopl (%rax) _string_split_into_lines: 00000001000064e0 pushq %rbp 00000001000064e1 movq %rsp, %rbp 00000001000064e4 subq $0x70, %rsp 00000001000064e8 movq %rdi, %rax 00000001000064eb xorl %ecx, %ecx 00000001000064ed movl $0x10, %r8d 00000001000064f3 leaq -0x18(%rbp), %r9 00000001000064f7 movq 0x6b3a(%rip), %r10 ## literal pool symbol address: ___stack_chk_guard 00000001000064fe movq (%r10), %r10 0000000100006501 movq %r10, -0x8(%rbp) 0000000100006505 movq %rsi, -0x28(%rbp) 0000000100006509 movl %edx, -0x20(%rbp) 000000010000650c movq $0x0, -0x18(%rbp) 0000000100006514 movl $0x0, -0x10(%rbp) 000000010000651b movq %rdi, -0x60(%rbp) 000000010000651f movl %ecx, %esi 0000000100006521 movl %ecx, %edx 0000000100006523 movl %r8d, %ecx 0000000100006526 movq %r9, %r8 0000000100006529 movq %rax, -0x68(%rbp) 000000010000652d callq _new_array_from_c_array 0000000100006532 cmpl $0x0, -0x20(%rbp) 0000000100006536 jne 0x100006541 000000010000653c jmp 0x100006603 0000000100006541 movl $0x0, -0x2c(%rbp) 0000000100006548 movl $0x0, -0x30(%rbp) 000000010000654f movl -0x30(%rbp), %eax 0000000100006552 cmpl -0x20(%rbp), %eax 0000000100006555 jge 0x1000065fe 000000010000655b movl -0x30(%rbp), %eax 000000010000655e movl -0x20(%rbp), %ecx 0000000100006561 subl $0x1, %ecx 0000000100006564 cmpl %ecx, %eax 0000000100006566 sete %dl 0000000100006569 andb $0x1, %dl 000000010000656c movb %dl, -0x31(%rbp) 000000010000656f movq -0x28(%rbp), %rsi 0000000100006573 movslq -0x30(%rbp), %rdi 0000000100006577 movzbl (%rsi,%rdi), %eax 000000010000657b cmpl $0xa, %eax 000000010000657e je 0x10000658e 0000000100006584 testb $0x1, -0x31(%rbp) 0000000100006588 je 0x1000065eb 000000010000658e testb $0x1, -0x31(%rbp) 0000000100006592 je 0x1000065a1 0000000100006598 movl -0x30(%rbp), %eax 000000010000659b addl $0x1, %eax 000000010000659e movl %eax, -0x30(%rbp) 00000001000065a1 movl -0x2c(%rbp), %edx 00000001000065a4 movl -0x30(%rbp), %ecx 00000001000065a7 movq -0x28(%rbp), %rdi 00000001000065ab movl -0x20(%rbp), %esi 00000001000065ae callq _string_substr 00000001000065b3 leaq -0x58(%rbp), %rdi 00000001000065b7 movq %rax, -0x48(%rbp) 00000001000065bb movl %edx, -0x40(%rbp) 00000001000065be movq -0x48(%rbp), %rax 00000001000065c2 movq %rax, -0x58(%rbp) 00000001000065c6 movq -0x40(%rbp), %rax 00000001000065ca movq %rax, -0x50(%rbp) 00000001000065ce movq -0x60(%rbp), %rax 00000001000065d2 movq %rdi, -0x70(%rbp) 00000001000065d6 movq %rax, %rdi 00000001000065d9 movq -0x70(%rbp), %rsi 00000001000065dd callq _array_push 00000001000065e2 movl -0x30(%rbp), %ecx 00000001000065e5 addl $0x1, %ecx 00000001000065e8 movl %ecx, -0x2c(%rbp) 00000001000065eb jmp 0x1000065f0 00000001000065f0 movl -0x30(%rbp), %eax 00000001000065f3 addl $0x1, %eax 00000001000065f6 movl %eax, -0x30(%rbp) 00000001000065f9 jmp 0x10000654f 00000001000065fe jmp 0x100006603 0000000100006603 movq 0x6a2e(%rip), %rax ## literal pool symbol address: ___stack_chk_guard 000000010000660a movq (%rax), %rax 000000010000660d movq -0x8(%rbp), %rcx 0000000100006611 cmpq %rcx, %rax 0000000100006614 jne 0x100006624 000000010000661a movq -0x68(%rbp), %rax 000000010000661e addq $0x70, %rsp 0000000100006622 popq %rbp 0000000100006623 retq 0000000100006624 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail 0000000100006629 ud2 000000010000662b nopl (%rax,%rax) _string_left: 0000000100006630 pushq %rbp 0000000100006631 movq %rsp, %rbp 0000000100006634 subq $0x30, %rsp 0000000100006638 movq %rdi, -0x20(%rbp) 000000010000663c movl %esi, -0x18(%rbp) 000000010000663f movl %edx, -0x24(%rbp) 0000000100006642 movl -0x24(%rbp), %edx 0000000100006645 cmpl -0x18(%rbp), %edx 0000000100006648 jl 0x100006663 000000010000664e movq -0x20(%rbp), %rax 0000000100006652 movq %rax, -0x10(%rbp) 0000000100006656 movq -0x18(%rbp), %rax 000000010000665a movq %rax, -0x8(%rbp) 000000010000665e jmp 0x10000667b 0000000100006663 xorl %edx, %edx 0000000100006665 movl -0x24(%rbp), %ecx 0000000100006668 movq -0x20(%rbp), %rdi 000000010000666c movl -0x18(%rbp), %esi 000000010000666f callq _string_substr 0000000100006674 movq %rax, -0x10(%rbp) 0000000100006678 movl %edx, -0x8(%rbp) 000000010000667b movq -0x10(%rbp), %rax 000000010000667f movl -0x8(%rbp), %edx 0000000100006682 addq $0x30, %rsp 0000000100006686 popq %rbp 0000000100006687 retq 0000000100006688 nopl (%rax,%rax) _string_index_kmp: 0000000100006690 pushq %rbp 0000000100006691 movq %rsp, %rbp 0000000100006694 subq $0xa0, %rsp 000000010000669b movq %rdi, -0x18(%rbp) 000000010000669f movl %esi, -0x10(%rbp) 00000001000066a2 movq %rdx, -0x28(%rbp) 00000001000066a6 movl %ecx, -0x20(%rbp) 00000001000066a9 movl -0x20(%rbp), %ecx 00000001000066ac cmpl -0x10(%rbp), %ecx 00000001000066af jle 0x1000066c1 00000001000066b5 movl $0xffffffff, -0x4(%rbp) 00000001000066bc jmp 0x1000068ec 00000001000066c1 leaq -0x58(%rbp), %rdi 00000001000066c5 movl $0x1, %eax 00000001000066ca movl $0x4, %ecx 00000001000066cf leaq -0x5c(%rbp), %rdx 00000001000066d3 movl $0x0, -0x5c(%rbp) 00000001000066da movl %eax, %esi 00000001000066dc movq %rdx, -0x78(%rbp) 00000001000066e0 movl %eax, %edx 00000001000066e2 movq -0x78(%rbp), %r8 00000001000066e6 callq _new_array_from_c_array 00000001000066eb leaq -0x40(%rbp), %rdi 00000001000066ef leaq -0x58(%rbp), %r8 00000001000066f3 movl -0x20(%rbp), %esi 00000001000066f6 movq (%r8), %r9 00000001000066f9 movq %r9, (%rsp) 00000001000066fd movq 0x8(%r8), %r9 0000000100006701 movq %r9, 0x8(%rsp) 0000000100006706 movq 0x10(%r8), %r8 000000010000670a movq %r8, 0x10(%rsp) 000000010000670f callq _array_repeat 0000000100006714 movl $0x0, -0x60(%rbp) 000000010000671b movl $0x1, -0x64(%rbp) 0000000100006722 movl -0x64(%rbp), %eax 0000000100006725 cmpl -0x20(%rbp), %eax 0000000100006728 jge 0x1000067f8 000000010000672e jmp 0x100006733 0000000100006733 xorl %eax, %eax 0000000100006735 movb %al, %cl 0000000100006737 movq -0x28(%rbp), %rdx 000000010000673b movslq -0x60(%rbp), %rsi 000000010000673f movzbl (%rdx,%rsi), %eax 0000000100006743 movq -0x28(%rbp), %rdx 0000000100006747 movslq -0x64(%rbp), %rsi 000000010000674b movzbl (%rdx,%rsi), %edi 000000010000674f cmpl %edi, %eax 0000000100006751 movb %cl, -0x79(%rbp) 0000000100006754 je 0x100006764 000000010000675a cmpl $0x0, -0x60(%rbp) 000000010000675e setg %al 0000000100006761 movb %al, -0x79(%rbp) 0000000100006764 movb -0x79(%rbp), %al 0000000100006767 testb $0x1, %al 0000000100006769 jne 0x100006774 000000010000676f jmp 0x1000067a8 0000000100006774 leaq -0x40(%rbp), %rax 0000000100006778 movl -0x60(%rbp), %ecx 000000010000677b subl $0x1, %ecx 000000010000677e movq (%rax), %rdx 0000000100006781 movq %rdx, (%rsp) 0000000100006785 movq 0x8(%rax), %rdx 0000000100006789 movq %rdx, 0x8(%rsp) 000000010000678e movq 0x10(%rax), %rax 0000000100006792 movq %rax, 0x10(%rsp) 0000000100006797 movl %ecx, %edi 0000000100006799 callq _array_get 000000010000679e movl (%rax), %ecx 00000001000067a0 movl %ecx, -0x60(%rbp) 00000001000067a3 jmp 0x100006733 00000001000067a8 movq -0x28(%rbp), %rax 00000001000067ac movslq -0x60(%rbp), %rcx 00000001000067b0 movzbl (%rax,%rcx), %edx 00000001000067b4 movq -0x28(%rbp), %rax 00000001000067b8 movslq -0x64(%rbp), %rcx 00000001000067bc movzbl (%rax,%rcx), %esi 00000001000067c0 cmpl %esi, %edx 00000001000067c2 jne 0x1000067d1 00000001000067c8 movl -0x60(%rbp), %eax 00000001000067cb addl $0x1, %eax 00000001000067ce movl %eax, -0x60(%rbp) 00000001000067d1 leaq -0x40(%rbp), %rdi 00000001000067d5 leaq -0x68(%rbp), %rax 00000001000067d9 movl -0x64(%rbp), %esi 00000001000067dc movl -0x60(%rbp), %ecx 00000001000067df movl %ecx, -0x68(%rbp) 00000001000067e2 movq %rax, %rdx 00000001000067e5 callq _array_set 00000001000067ea movl -0x64(%rbp), %eax 00000001000067ed addl $0x1, %eax 00000001000067f0 movl %eax, -0x64(%rbp) 00000001000067f3 jmp 0x100006722 00000001000067f8 movl $0x0, -0x60(%rbp) 00000001000067ff movl $0x0, -0x6c(%rbp) 0000000100006806 movl -0x6c(%rbp), %eax 0000000100006809 cmpl -0x10(%rbp), %eax 000000010000680c jge 0x1000068e5 0000000100006812 jmp 0x100006817 0000000100006817 xorl %eax, %eax 0000000100006819 movb %al, %cl 000000010000681b movq -0x28(%rbp), %rdx 000000010000681f movslq -0x60(%rbp), %rsi 0000000100006823 movzbl (%rdx,%rsi), %eax 0000000100006827 movq -0x18(%rbp), %rdx 000000010000682b movslq -0x6c(%rbp), %rsi 000000010000682f movzbl (%rdx,%rsi), %edi 0000000100006833 cmpl %edi, %eax 0000000100006835 movb %cl, -0x7a(%rbp) 0000000100006838 je 0x100006848 000000010000683e cmpl $0x0, -0x60(%rbp) 0000000100006842 setg %al 0000000100006845 movb %al, -0x7a(%rbp) 0000000100006848 movb -0x7a(%rbp), %al 000000010000684b testb $0x1, %al 000000010000684d jne 0x100006858 0000000100006853 jmp 0x10000688c 0000000100006858 leaq -0x40(%rbp), %rax 000000010000685c movl -0x60(%rbp), %ecx 000000010000685f subl $0x1, %ecx 0000000100006862 movq (%rax), %rdx 0000000100006865 movq %rdx, (%rsp) 0000000100006869 movq 0x8(%rax), %rdx 000000010000686d movq %rdx, 0x8(%rsp) 0000000100006872 movq 0x10(%rax), %rax 0000000100006876 movq %rax, 0x10(%rsp) 000000010000687b movl %ecx, %edi 000000010000687d callq _array_get 0000000100006882 movl (%rax), %ecx 0000000100006884 movl %ecx, -0x60(%rbp) 0000000100006887 jmp 0x100006817 000000010000688c movq -0x28(%rbp), %rax 0000000100006890 movslq -0x60(%rbp), %rcx 0000000100006894 movzbl (%rax,%rcx), %edx 0000000100006898 movq -0x18(%rbp), %rax 000000010000689c movslq -0x6c(%rbp), %rcx 00000001000068a0 movzbl (%rax,%rcx), %esi 00000001000068a4 cmpl %esi, %edx 00000001000068a6 jne 0x1000068b5 00000001000068ac movl -0x60(%rbp), %eax 00000001000068af addl $0x1, %eax 00000001000068b2 movl %eax, -0x60(%rbp) 00000001000068b5 movl -0x60(%rbp), %eax 00000001000068b8 cmpl -0x20(%rbp), %eax 00000001000068bb jne 0x1000068d2 00000001000068c1 movl -0x6c(%rbp), %eax 00000001000068c4 subl -0x20(%rbp), %eax 00000001000068c7 addl $0x1, %eax 00000001000068ca movl %eax, -0x4(%rbp) 00000001000068cd jmp 0x1000068ec 00000001000068d2 jmp 0x1000068d7 00000001000068d7 movl -0x6c(%rbp), %eax 00000001000068da addl $0x1, %eax 00000001000068dd movl %eax, -0x6c(%rbp) 00000001000068e0 jmp 0x100006806 00000001000068e5 movl $0xffffffff, -0x4(%rbp) 00000001000068ec movl -0x4(%rbp), %eax 00000001000068ef addq $0xa0, %rsp 00000001000068f6 popq %rbp 00000001000068f7 retq 00000001000068f8 nopl (%rax,%rax) _string_index_any: 0000000100006900 pushq %rbp 0000000100006901 movq %rsp, %rbp 0000000100006904 subq $0x70, %rsp 0000000100006908 leaq -0x50(%rbp), %rax 000000010000690c movq %rdi, -0x18(%rbp) 0000000100006910 movl %esi, -0x10(%rbp) 0000000100006913 movq %rdx, -0x28(%rbp) 0000000100006917 movl %ecx, -0x20(%rbp) 000000010000691a movq -0x28(%rbp), %rdx 000000010000691e movq %rdx, -0x38(%rbp) 0000000100006922 movq -0x20(%rbp), %rdx 0000000100006926 movq %rdx, -0x30(%rbp) 000000010000692a movq -0x38(%rbp), %rsi 000000010000692e movl -0x30(%rbp), %edx 0000000100006931 movq %rax, %rdi 0000000100006934 callq _string_bytes 0000000100006939 movl $0x0, -0x54(%rbp) 0000000100006940 movl -0x54(%rbp), %eax 0000000100006943 cmpl -0x30(%rbp), %eax 0000000100006946 jge 0x1000069a8 000000010000694c movq -0x50(%rbp), %rax 0000000100006950 movslq -0x54(%rbp), %rcx 0000000100006954 movb (%rax,%rcx), %dl 0000000100006957 movb %dl, -0x55(%rbp) 000000010000695a movzbl -0x55(%rbp), %edi 000000010000695e callq _byte_str 0000000100006963 movq %rax, -0x70(%rbp) 0000000100006967 movl %edx, -0x68(%rbp) 000000010000696a movq -0x18(%rbp), %rdi 000000010000696e movl -0x10(%rbp), %esi 0000000100006971 movq -0x70(%rbp), %rdx 0000000100006975 movl -0x68(%rbp), %ecx 0000000100006978 callq _string_index 000000010000697d movl %eax, -0x5c(%rbp) 0000000100006980 cmpl $-0x1, -0x5c(%rbp) 0000000100006984 je 0x100006995 000000010000698a movl -0x5c(%rbp), %eax 000000010000698d movl %eax, -0x4(%rbp) 0000000100006990 jmp 0x1000069af 0000000100006995 jmp 0x10000699a 000000010000699a movl -0x54(%rbp), %eax 000000010000699d addl $0x1, %eax 00000001000069a0 movl %eax, -0x54(%rbp) 00000001000069a3 jmp 0x100006940 00000001000069a8 movl $0xffffffff, -0x4(%rbp) 00000001000069af movl -0x4(%rbp), %eax 00000001000069b2 addq $0x70, %rsp 00000001000069b6 popq %rbp 00000001000069b7 retq 00000001000069b8 nopl (%rax,%rax) _string_bytes: 00000001000069c0 pushq %rbp 00000001000069c1 movq %rsp, %rbp 00000001000069c4 subq $0x80, %rsp 00000001000069cb movq %rdi, %rax 00000001000069ce movq %rsi, -0x10(%rbp) 00000001000069d2 movl %edx, -0x8(%rbp) 00000001000069d5 cmpl $0x0, -0x8(%rbp) 00000001000069d9 movq %rax, -0x58(%rbp) 00000001000069dd movq %rdi, -0x60(%rbp) 00000001000069e1 jne 0x100006a08 00000001000069e7 xorl %eax, %eax 00000001000069e9 movl $0x1, %ecx 00000001000069ee leaq -0x11(%rbp), %r8 00000001000069f2 movb $0x0, -0x11(%rbp) 00000001000069f6 movq -0x60(%rbp), %rdi 00000001000069fa movl %eax, %esi 00000001000069fc movl %eax, %edx 00000001000069fe callq _new_array_from_c_array 0000000100006a03 jmp 0x100006a84 0000000100006a08 leaq -0x48(%rbp), %rdi 0000000100006a0c movl $0x1, %eax 0000000100006a11 leaq -0x49(%rbp), %r8 0000000100006a15 movb $0x0, -0x49(%rbp) 0000000100006a19 movl %eax, %esi 0000000100006a1b movl %eax, %edx 0000000100006a1d movl %eax, %ecx 0000000100006a1f callq _new_array_from_c_array 0000000100006a24 leaq -0x30(%rbp), %rdi 0000000100006a28 leaq -0x48(%rbp), %r8 0000000100006a2c movl -0x8(%rbp), %esi 0000000100006a2f movq (%r8), %r9 0000000100006a32 movq %r9, (%rsp) 0000000100006a36 movq 0x8(%r8), %r9 0000000100006a3a movq %r9, 0x8(%rsp) 0000000100006a3f movq 0x10(%r8), %r8 0000000100006a43 movq %r8, 0x10(%rsp) 0000000100006a48 callq _array_repeat 0000000100006a4d movq $-0x1, %rcx 0000000100006a54 movq -0x30(%rbp), %rdi 0000000100006a58 movq -0x10(%rbp), %rsi 0000000100006a5c movslq -0x8(%rbp), %rdx 0000000100006a60 callq 0x10000a598 ## symbol stub for: ___memcpy_chk 0000000100006a65 movq -0x30(%rbp), %rcx 0000000100006a69 movq -0x60(%rbp), %rdx 0000000100006a6d movq %rcx, (%rdx) 0000000100006a70 movq -0x28(%rbp), %rcx 0000000100006a74 movq %rcx, 0x8(%rdx) 0000000100006a78 movq -0x20(%rbp), %rcx 0000000100006a7c movq %rcx, 0x10(%rdx) 0000000100006a80 movq %rax, -0x68(%rbp) 0000000100006a84 movq -0x58(%rbp), %rax 0000000100006a88 addq $0x80, %rsp 0000000100006a8f popq %rbp 0000000100006a90 retq 0000000100006a91 nopw %cs:(%rax,%rax) _string_last_index: 0000000100006aa0 pushq %rbp 0000000100006aa1 movq %rsp, %rbp 0000000100006aa4 movq %rdi, -0x18(%rbp) 0000000100006aa8 movl %esi, -0x10(%rbp) 0000000100006aab movq %rdx, -0x28(%rbp) 0000000100006aaf movl %ecx, -0x20(%rbp) 0000000100006ab2 movl -0x20(%rbp), %ecx 0000000100006ab5 cmpl -0x10(%rbp), %ecx 0000000100006ab8 jle 0x100006aca 0000000100006abe movl $0xffffffff, -0x4(%rbp) 0000000100006ac5 jmp 0x100006b68 0000000100006aca movl -0x10(%rbp), %eax 0000000100006acd subl -0x20(%rbp), %eax 0000000100006ad0 movl %eax, -0x2c(%rbp) 0000000100006ad3 cmpl $0x0, -0x2c(%rbp) 0000000100006ad7 jl 0x100006b61 0000000100006add movl $0x0, -0x30(%rbp) 0000000100006ae4 xorl %eax, %eax 0000000100006ae6 movb %al, %cl 0000000100006ae8 movl -0x30(%rbp), %eax 0000000100006aeb cmpl -0x20(%rbp), %eax 0000000100006aee movb %cl, -0x31(%rbp) 0000000100006af1 jge 0x100006b1e 0000000100006af7 movq -0x18(%rbp), %rax 0000000100006afb movl -0x2c(%rbp), %ecx 0000000100006afe addl -0x30(%rbp), %ecx 0000000100006b01 movslq %ecx, %rdx 0000000100006b04 movzbl (%rax,%rdx), %ecx 0000000100006b08 movq -0x28(%rbp), %rax 0000000100006b0c movslq -0x30(%rbp), %rdx 0000000100006b10 movzbl (%rax,%rdx), %esi 0000000100006b14 cmpl %esi, %ecx 0000000100006b16 sete %dil 0000000100006b1a movb %dil, -0x31(%rbp) 0000000100006b1e movb -0x31(%rbp), %al 0000000100006b21 testb $0x1, %al 0000000100006b23 jne 0x100006b2e 0000000100006b29 jmp 0x100006b3c 0000000100006b2e movl -0x30(%rbp), %eax 0000000100006b31 addl $0x1, %eax 0000000100006b34 movl %eax, -0x30(%rbp) 0000000100006b37 jmp 0x100006ae4 0000000100006b3c movl -0x30(%rbp), %eax 0000000100006b3f cmpl -0x20(%rbp), %eax 0000000100006b42 jne 0x100006b53 0000000100006b48 movl -0x2c(%rbp), %eax 0000000100006b4b movl %eax, -0x4(%rbp) 0000000100006b4e jmp 0x100006b68 0000000100006b53 movl -0x2c(%rbp), %eax 0000000100006b56 addl $-0x1, %eax 0000000100006b59 movl %eax, -0x2c(%rbp) 0000000100006b5c jmp 0x100006ad3 0000000100006b61 movl $0xffffffff, -0x4(%rbp) 0000000100006b68 movl -0x4(%rbp), %eax 0000000100006b6b popq %rbp 0000000100006b6c retq 0000000100006b6d nopl (%rax) _string_index_after: 0000000100006b70 pushq %rbp 0000000100006b71 movq %rsp, %rbp 0000000100006b74 movq %rdi, -0x18(%rbp) 0000000100006b78 movl %esi, -0x10(%rbp) 0000000100006b7b movq %rdx, -0x28(%rbp) 0000000100006b7f movl %ecx, -0x20(%rbp) 0000000100006b82 movl %r8d, -0x2c(%rbp) 0000000100006b86 movl -0x20(%rbp), %ecx 0000000100006b89 cmpl -0x10(%rbp), %ecx 0000000100006b8c jle 0x100006b9e 0000000100006b92 movl $0xffffffff, -0x4(%rbp) 0000000100006b99 jmp 0x100006c74 0000000100006b9e movl -0x2c(%rbp), %eax 0000000100006ba1 movl %eax, -0x30(%rbp) 0000000100006ba4 cmpl $0x0, -0x2c(%rbp) 0000000100006ba8 jge 0x100006bb5 0000000100006bae movl $0x0, -0x30(%rbp) 0000000100006bb5 movl -0x2c(%rbp), %eax 0000000100006bb8 cmpl -0x10(%rbp), %eax 0000000100006bbb jl 0x100006bcd 0000000100006bc1 movl $0xffffffff, -0x4(%rbp) 0000000100006bc8 jmp 0x100006c74 0000000100006bcd movl -0x30(%rbp), %eax 0000000100006bd0 movl %eax, -0x34(%rbp) 0000000100006bd3 movl -0x34(%rbp), %eax 0000000100006bd6 cmpl -0x10(%rbp), %eax 0000000100006bd9 jge 0x100006c6d 0000000100006bdf movl $0x0, -0x38(%rbp) 0000000100006be6 movl -0x34(%rbp), %eax 0000000100006be9 movl %eax, -0x3c(%rbp) 0000000100006bec xorl %eax, %eax 0000000100006bee movb %al, %cl 0000000100006bf0 movl -0x38(%rbp), %eax 0000000100006bf3 cmpl -0x20(%rbp), %eax 0000000100006bf6 movb %cl, -0x3d(%rbp) 0000000100006bf9 jge 0x100006c21 0000000100006bff movq -0x18(%rbp), %rax 0000000100006c03 movslq -0x3c(%rbp), %rcx 0000000100006c07 movzbl (%rax,%rcx), %edx 0000000100006c0b movq -0x28(%rbp), %rax 0000000100006c0f movslq -0x38(%rbp), %rcx 0000000100006c13 movzbl (%rax,%rcx), %esi 0000000100006c17 cmpl %esi, %edx 0000000100006c19 sete %dil 0000000100006c1d movb %dil, -0x3d(%rbp) 0000000100006c21 movb -0x3d(%rbp), %al 0000000100006c24 testb $0x1, %al 0000000100006c26 jne 0x100006c31 0000000100006c2c jmp 0x100006c48 0000000100006c31 movl -0x38(%rbp), %eax 0000000100006c34 addl $0x1, %eax 0000000100006c37 movl %eax, -0x38(%rbp) 0000000100006c3a movl -0x3c(%rbp), %eax 0000000100006c3d addl $0x1, %eax 0000000100006c40 movl %eax, -0x3c(%rbp) 0000000100006c43 jmp 0x100006bec 0000000100006c48 movl -0x38(%rbp), %eax 0000000100006c4b cmpl -0x20(%rbp), %eax 0000000100006c4e jne 0x100006c5f 0000000100006c54 movl -0x34(%rbp), %eax 0000000100006c57 movl %eax, -0x4(%rbp) 0000000100006c5a jmp 0x100006c74 0000000100006c5f movl -0x34(%rbp), %eax 0000000100006c62 addl $0x1, %eax 0000000100006c65 movl %eax, -0x34(%rbp) 0000000100006c68 jmp 0x100006bd3 0000000100006c6d movl $0xffffffff, -0x4(%rbp) 0000000100006c74 movl -0x4(%rbp), %eax 0000000100006c77 popq %rbp 0000000100006c78 retq 0000000100006c79 nopl (%rax) _string_index_byte: 0000000100006c80 pushq %rbp 0000000100006c81 movq %rsp, %rbp 0000000100006c84 movb %dl, %al 0000000100006c86 movq %rdi, -0x18(%rbp) 0000000100006c8a movl %esi, -0x10(%rbp) 0000000100006c8d movb %al, -0x19(%rbp) 0000000100006c90 movl $0x0, -0x20(%rbp) 0000000100006c97 movl -0x20(%rbp), %eax 0000000100006c9a cmpl -0x10(%rbp), %eax 0000000100006c9d jge 0x100006cd9 0000000100006ca3 movq -0x18(%rbp), %rax 0000000100006ca7 movslq -0x20(%rbp), %rcx 0000000100006cab movzbl (%rax,%rcx), %edx 0000000100006caf movzbl -0x19(%rbp), %esi 0000000100006cb3 cmpl %esi, %edx 0000000100006cb5 jne 0x100006cc6 0000000100006cbb movl -0x20(%rbp), %eax 0000000100006cbe movl %eax, -0x4(%rbp) 0000000100006cc1 jmp 0x100006ce0 0000000100006cc6 jmp 0x100006ccb 0000000100006ccb movl -0x20(%rbp), %eax 0000000100006cce addl $0x1, %eax 0000000100006cd1 movl %eax, -0x20(%rbp) 0000000100006cd4 jmp 0x100006c97 0000000100006cd9 movl $0xffffffff, -0x4(%rbp) 0000000100006ce0 movl -0x4(%rbp), %eax 0000000100006ce3 popq %rbp 0000000100006ce4 retq 0000000100006ce5 nopw %cs:(%rax,%rax) _string_last_index_byte: 0000000100006cf0 pushq %rbp 0000000100006cf1 movq %rsp, %rbp 0000000100006cf4 movb %dl, %al 0000000100006cf6 movq %rdi, -0x18(%rbp) 0000000100006cfa movl %esi, -0x10(%rbp) 0000000100006cfd movb %al, -0x19(%rbp) 0000000100006d00 movl -0x10(%rbp), %edx 0000000100006d03 subl $0x1, %edx 0000000100006d06 movl %edx, -0x20(%rbp) 0000000100006d09 cmpl $0x0, -0x20(%rbp) 0000000100006d0d jl 0x100006d49 0000000100006d13 movq -0x18(%rbp), %rax 0000000100006d17 movslq -0x20(%rbp), %rcx 0000000100006d1b movzbl (%rax,%rcx), %edx 0000000100006d1f movzbl -0x19(%rbp), %esi 0000000100006d23 cmpl %esi, %edx 0000000100006d25 jne 0x100006d36 0000000100006d2b movl -0x20(%rbp), %eax 0000000100006d2e movl %eax, -0x4(%rbp) 0000000100006d31 jmp 0x100006d50 0000000100006d36 jmp 0x100006d3b 0000000100006d3b movl -0x20(%rbp), %eax 0000000100006d3e addl $-0x1, %eax 0000000100006d41 movl %eax, -0x20(%rbp) 0000000100006d44 jmp 0x100006d09 0000000100006d49 movl $0xffffffff, -0x4(%rbp) 0000000100006d50 movl -0x4(%rbp), %eax 0000000100006d53 popq %rbp 0000000100006d54 retq 0000000100006d55 nopw %cs:(%rax,%rax) _string_count: 0000000100006d60 pushq %rbp 0000000100006d61 movq %rsp, %rbp 0000000100006d64 subq $0x30, %rsp 0000000100006d68 movq %rdi, -0x18(%rbp) 0000000100006d6c movl %esi, -0x10(%rbp) 0000000100006d6f movq %rdx, -0x28(%rbp) 0000000100006d73 movl %ecx, -0x20(%rbp) 0000000100006d76 cmpl $0x0, -0x10(%rbp) 0000000100006d7a je 0x100006d8a 0000000100006d80 cmpl $0x0, -0x20(%rbp) 0000000100006d84 jne 0x100006d96 0000000100006d8a movl $0x0, -0x4(%rbp) 0000000100006d91 jmp 0x100006e02 0000000100006d96 movl -0x20(%rbp), %eax 0000000100006d99 cmpl -0x10(%rbp), %eax 0000000100006d9c jle 0x100006dae 0000000100006da2 movl $0x0, -0x4(%rbp) 0000000100006da9 jmp 0x100006e02 0000000100006dae movl $0x0, -0x2c(%rbp) 0000000100006db5 movl $0x0, -0x30(%rbp) 0000000100006dbc movl -0x30(%rbp), %r8d 0000000100006dc0 movq -0x18(%rbp), %rdi 0000000100006dc4 movl -0x10(%rbp), %esi 0000000100006dc7 movq -0x28(%rbp), %rdx 0000000100006dcb movl -0x20(%rbp), %ecx 0000000100006dce callq _string_index_after 0000000100006dd3 movl %eax, -0x30(%rbp) 0000000100006dd6 cmpl $-0x1, -0x30(%rbp) 0000000100006dda jne 0x100006deb 0000000100006de0 movl -0x2c(%rbp), %eax 0000000100006de3 movl %eax, -0x4(%rbp) 0000000100006de6 jmp 0x100006e02 0000000100006deb movl -0x20(%rbp), %eax 0000000100006dee addl -0x30(%rbp), %eax 0000000100006df1 movl %eax, -0x30(%rbp) 0000000100006df4 movl -0x2c(%rbp), %eax 0000000100006df7 addl $0x1, %eax 0000000100006dfa movl %eax, -0x2c(%rbp) 0000000100006dfd jmp 0x100006dbc 0000000100006e02 movl -0x4(%rbp), %eax 0000000100006e05 addq $0x30, %rsp 0000000100006e09 popq %rbp 0000000100006e0a retq 0000000100006e0b nopl (%rax,%rax) _string_contains: 0000000100006e10 pushq %rbp 0000000100006e11 movq %rsp, %rbp 0000000100006e14 subq $0x30, %rsp 0000000100006e18 movq %rdi, -0x10(%rbp) 0000000100006e1c movl %esi, -0x8(%rbp) 0000000100006e1f movq %rdx, -0x20(%rbp) 0000000100006e23 movl %ecx, -0x18(%rbp) 0000000100006e26 movq -0x10(%rbp), %rdi 0000000100006e2a movl -0x8(%rbp), %esi 0000000100006e2d movq -0x20(%rbp), %rdx 0000000100006e31 movl -0x18(%rbp), %ecx 0000000100006e34 callq _string_index 0000000100006e39 cmpl $-0x1, %eax 0000000100006e3c setg %r8b 0000000100006e40 andb $0x1, %r8b 0000000100006e44 movb %r8b, -0x21(%rbp) 0000000100006e48 movb -0x21(%rbp), %r8b 0000000100006e4c andb $0x1, %r8b 0000000100006e50 movzbl %r8b, %eax 0000000100006e54 addq $0x30, %rsp 0000000100006e58 popq %rbp 0000000100006e59 retq 0000000100006e5a nopw (%rax,%rax) _string_ends_with: 0000000100006e60 pushq %rbp 0000000100006e61 movq %rsp, %rbp 0000000100006e64 subq $0x30, %rsp 0000000100006e68 movq %rdi, -0x18(%rbp) 0000000100006e6c movl %esi, -0x10(%rbp) 0000000100006e6f movq %rdx, -0x28(%rbp) 0000000100006e73 movl %ecx, -0x20(%rbp) 0000000100006e76 movl -0x20(%rbp), %ecx 0000000100006e79 cmpl -0x10(%rbp), %ecx 0000000100006e7c jle 0x100006e8b 0000000100006e82 movb $0x0, -0x1(%rbp) 0000000100006e86 jmp 0x100006ebe 0000000100006e8b movq -0x18(%rbp), %rdi 0000000100006e8f movl -0x10(%rbp), %esi 0000000100006e92 movq -0x28(%rbp), %rdx 0000000100006e96 movl -0x20(%rbp), %ecx 0000000100006e99 callq _string_last_index 0000000100006e9e movl -0x10(%rbp), %ecx 0000000100006ea1 subl -0x20(%rbp), %ecx 0000000100006ea4 cmpl %ecx, %eax 0000000100006ea6 sete %r8b 0000000100006eaa andb $0x1, %r8b 0000000100006eae movb %r8b, -0x29(%rbp) 0000000100006eb2 movb -0x29(%rbp), %r8b 0000000100006eb6 andb $0x1, %r8b 0000000100006eba movb %r8b, -0x1(%rbp) 0000000100006ebe movb -0x1(%rbp), %al 0000000100006ec1 andb $0x1, %al 0000000100006ec3 movzbl %al, %eax 0000000100006ec6 addq $0x30, %rsp 0000000100006eca popq %rbp 0000000100006ecb retq 0000000100006ecc nopl (%rax) _string_to_lower: 0000000100006ed0 pushq %rbp 0000000100006ed1 movq %rsp, %rbp 0000000100006ed4 subq $0x30, %rsp 0000000100006ed8 movq %rdi, -0x20(%rbp) 0000000100006edc movl %esi, -0x18(%rbp) 0000000100006edf movl -0x18(%rbp), %esi 0000000100006ee2 addl $0x1, %esi 0000000100006ee5 movl %esi, %edi 0000000100006ee7 callq _v_malloc 0000000100006eec movq %rax, -0x28(%rbp) 0000000100006ef0 movl $0x0, -0x2c(%rbp) 0000000100006ef7 movl -0x2c(%rbp), %eax 0000000100006efa cmpl -0x18(%rbp), %eax 0000000100006efd jge 0x100006f2f 0000000100006f03 movq -0x20(%rbp), %rax 0000000100006f07 movslq -0x2c(%rbp), %rcx 0000000100006f0b movzbl (%rax,%rcx), %edi 0000000100006f0f callq 0x10000a622 ## symbol stub for: _tolower 0000000100006f14 movb %al, %dl 0000000100006f16 movq -0x28(%rbp), %rcx 0000000100006f1a movslq -0x2c(%rbp), %rsi 0000000100006f1e movb %dl, (%rcx,%rsi) 0000000100006f21 movl -0x2c(%rbp), %eax 0000000100006f24 addl $0x1, %eax 0000000100006f27 movl %eax, -0x2c(%rbp) 0000000100006f2a jmp 0x100006ef7 0000000100006f2f movq -0x28(%rbp), %rdi 0000000100006f33 movl -0x18(%rbp), %esi 0000000100006f36 callq _tos 0000000100006f3b movq %rax, -0x10(%rbp) 0000000100006f3f movl %edx, -0x8(%rbp) 0000000100006f42 movq -0x10(%rbp), %rax 0000000100006f46 movl -0x8(%rbp), %edx 0000000100006f49 addq $0x30, %rsp 0000000100006f4d popq %rbp 0000000100006f4e retq 0000000100006f4f nop _string_to_upper: 0000000100006f50 pushq %rbp 0000000100006f51 movq %rsp, %rbp 0000000100006f54 subq $0x30, %rsp 0000000100006f58 movq %rdi, -0x20(%rbp) 0000000100006f5c movl %esi, -0x18(%rbp) 0000000100006f5f movl -0x18(%rbp), %esi 0000000100006f62 addl $0x1, %esi 0000000100006f65 movl %esi, %edi 0000000100006f67 callq _v_malloc 0000000100006f6c movq %rax, -0x28(%rbp) 0000000100006f70 movl $0x0, -0x2c(%rbp) 0000000100006f77 movl -0x2c(%rbp), %eax 0000000100006f7a cmpl -0x18(%rbp), %eax 0000000100006f7d jge 0x100006faf 0000000100006f83 movq -0x20(%rbp), %rax 0000000100006f87 movslq -0x2c(%rbp), %rcx 0000000100006f8b movzbl (%rax,%rcx), %edi 0000000100006f8f callq 0x10000a628 ## symbol stub for: _toupper 0000000100006f94 movb %al, %dl 0000000100006f96 movq -0x28(%rbp), %rcx 0000000100006f9a movslq -0x2c(%rbp), %rsi 0000000100006f9e movb %dl, (%rcx,%rsi) 0000000100006fa1 movl -0x2c(%rbp), %eax 0000000100006fa4 addl $0x1, %eax 0000000100006fa7 movl %eax, -0x2c(%rbp) 0000000100006faa jmp 0x100006f77 0000000100006faf movq -0x28(%rbp), %rdi 0000000100006fb3 movl -0x18(%rbp), %esi 0000000100006fb6 callq _tos 0000000100006fbb movq %rax, -0x10(%rbp) 0000000100006fbf movl %edx, -0x8(%rbp) 0000000100006fc2 movq -0x10(%rbp), %rax 0000000100006fc6 movl -0x8(%rbp), %edx 0000000100006fc9 addq $0x30, %rsp 0000000100006fcd popq %rbp 0000000100006fce retq 0000000100006fcf nop _string_capitalize: 0000000100006fd0 pushq %rbp 0000000100006fd1 movq %rsp, %rbp 0000000100006fd4 subq $0x60, %rsp 0000000100006fd8 movq %rdi, -0x20(%rbp) 0000000100006fdc movl %esi, -0x18(%rbp) 0000000100006fdf movq -0x20(%rbp), %rdi 0000000100006fe3 movl -0x18(%rbp), %esi 0000000100006fe6 callq _string_to_lower 0000000100006feb movq %rax, -0x30(%rbp) 0000000100006fef movl %edx, -0x28(%rbp) 0000000100006ff2 movq -0x30(%rbp), %rax 0000000100006ff6 movzbl (%rax), %edi 0000000100006ff9 callq _byte_str 0000000100006ffe movq %rax, -0x50(%rbp) 0000000100007002 movl %edx, -0x48(%rbp) 0000000100007005 movq -0x50(%rbp), %rdi 0000000100007009 movl -0x48(%rbp), %esi 000000010000700c callq _string_to_upper 0000000100007011 movq %rax, -0x40(%rbp) 0000000100007015 movl %edx, -0x38(%rbp) 0000000100007018 movq -0x30(%rbp), %rdi 000000010000701c movl -0x28(%rbp), %esi 000000010000701f movl $0x1, %edx 0000000100007024 callq _string_right 0000000100007029 movq %rax, -0x60(%rbp) 000000010000702d movl %edx, -0x58(%rbp) 0000000100007030 movq -0x40(%rbp), %rdi 0000000100007034 movl -0x38(%rbp), %esi 0000000100007037 movq -0x60(%rbp), %rdx 000000010000703b movl -0x58(%rbp), %ecx 000000010000703e callq _string_add 0000000100007043 movq %rax, -0x10(%rbp) 0000000100007047 movl %edx, -0x8(%rbp) 000000010000704a movq -0x10(%rbp), %rax 000000010000704e movl -0x8(%rbp), %edx 0000000100007051 addq $0x60, %rsp 0000000100007055 popq %rbp 0000000100007056 retq 0000000100007057 nopw (%rax,%rax) _string_title: 0000000100007060 pushq %rbp 0000000100007061 movq %rsp, %rbp 0000000100007064 subq $0xf0, %rsp 000000010000706b leaq 0x3a38(%rip), %rax ## literal pool for: " " 0000000100007072 movq 0x5fbf(%rip), %rcx ## literal pool symbol address: ___stack_chk_guard 0000000100007079 movq (%rcx), %rcx 000000010000707c movq %rcx, -0x8(%rbp) 0000000100007080 movq %rdi, -0x38(%rbp) 0000000100007084 movl %esi, -0x30(%rbp) 0000000100007087 movq %rax, %rdi 000000010000708a callq _tos3 000000010000708f leaq -0x50(%rbp), %rdi 0000000100007093 movq %rax, -0x60(%rbp) 0000000100007097 movl %edx, -0x58(%rbp) 000000010000709a movq -0x38(%rbp), %rsi 000000010000709e movl -0x30(%rbp), %edx 00000001000070a1 movq -0x60(%rbp), %rcx 00000001000070a5 movl -0x58(%rbp), %r8d 00000001000070a9 callq _string_split 00000001000070ae leaq -0x78(%rbp), %rdi 00000001000070b2 xorl %edx, %edx 00000001000070b4 movl $0x10, %ecx 00000001000070b9 leaq -0x18(%rbp), %rax 00000001000070bd movq $0x0, -0x18(%rbp) 00000001000070c5 movl $0x0, -0x10(%rbp) 00000001000070cc movl %edx, %esi 00000001000070ce movq %rax, %r8 00000001000070d1 callq _new_array_from_c_array 00000001000070d6 movq -0x50(%rbp), %rax 00000001000070da movq %rax, -0x90(%rbp) 00000001000070e1 movq -0x48(%rbp), %rax 00000001000070e5 movq %rax, -0x88(%rbp) 00000001000070ec movq -0x40(%rbp), %rax 00000001000070f0 movq %rax, -0x80(%rbp) 00000001000070f4 movl $0x0, -0x94(%rbp) 00000001000070fe movl -0x94(%rbp), %eax 0000000100007104 cmpl -0x88(%rbp), %eax 000000010000710a jge 0x100007180 0000000100007110 movq -0x90(%rbp), %rax 0000000100007117 movslq -0x94(%rbp), %rcx 000000010000711e shlq $0x4, %rcx 0000000100007122 addq %rcx, %rax 0000000100007125 movq (%rax), %rcx 0000000100007128 movq %rcx, -0xa8(%rbp) 000000010000712f movq 0x8(%rax), %rax 0000000100007133 movq %rax, -0xa0(%rbp) 000000010000713a movq -0xa8(%rbp), %rdi 0000000100007141 movl -0xa0(%rbp), %esi 0000000100007147 callq _string_capitalize 000000010000714c leaq -0x78(%rbp), %rdi 0000000100007150 leaq -0xb8(%rbp), %rcx 0000000100007157 movq %rax, -0xb8(%rbp) 000000010000715e movl %edx, -0xb0(%rbp) 0000000100007164 movq %rcx, %rsi 0000000100007167 callq _array_push 000000010000716c movl -0x94(%rbp), %eax 0000000100007172 addl $0x1, %eax 0000000100007175 movl %eax, -0x94(%rbp) 000000010000717b jmp 0x1000070fe 0000000100007180 leaq 0x3923(%rip), %rdi ## literal pool for: " " 0000000100007187 callq _tos3 000000010000718c movq %rax, -0xc8(%rbp) 0000000100007193 movl %edx, -0xc0(%rbp) 0000000100007199 movq -0xc8(%rbp), %rdi 00000001000071a0 movl -0xc0(%rbp), %esi 00000001000071a6 movq -0x68(%rbp), %rax 00000001000071aa movq %rsp, %rcx 00000001000071ad movq %rax, 0x10(%rcx) 00000001000071b1 movq -0x78(%rbp), %rax 00000001000071b5 movq -0x70(%rbp), %r8 00000001000071b9 movq %r8, 0x8(%rcx) 00000001000071bd movq %rax, (%rcx) 00000001000071c0 callq _array_string_join 00000001000071c5 movq %rax, -0x28(%rbp) 00000001000071c9 movl %edx, -0x20(%rbp) 00000001000071cc movl -0x20(%rbp), %edx 00000001000071cf movq -0x28(%rbp), %rax 00000001000071d3 movq 0x5e5e(%rip), %rcx ## literal pool symbol address: ___stack_chk_guard 00000001000071da movq (%rcx), %rcx 00000001000071dd movq -0x8(%rbp), %rdi 00000001000071e1 cmpq %rdi, %rcx 00000001000071e4 movl %edx, -0xcc(%rbp) 00000001000071ea movq %rax, -0xd8(%rbp) 00000001000071f1 jne 0x10000720d 00000001000071f7 movq -0xd8(%rbp), %rax 00000001000071fe movl -0xcc(%rbp), %edx 0000000100007204 addq $0xf0, %rsp 000000010000720b popq %rbp 000000010000720c retq 000000010000720d callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail 0000000100007212 ud2 0000000100007214 nopw %cs:(%rax,%rax) _array_string_join: 0000000100007220 pushq %rbp 0000000100007221 movq %rsp, %rbp 0000000100007224 subq $0xc0, %rsp 000000010000722b leaq 0x10(%rbp), %rax 000000010000722f movq %rdi, -0x20(%rbp) 0000000100007233 movl %esi, -0x18(%rbp) 0000000100007236 cmpl $0x0, 0x8(%rax) 000000010000723a movq %rax, -0xb8(%rbp) 0000000100007241 jne 0x10000725f 0000000100007247 leaq 0x376b(%rip), %rdi ## literal pool for: "" 000000010000724e callq _tos3 0000000100007253 movq %rax, -0x10(%rbp) 0000000100007257 movl %edx, -0x8(%rbp) 000000010000725a jmp 0x10000747f 000000010000725f movl $0x0, -0x24(%rbp) 0000000100007266 movq -0xb8(%rbp), %rax 000000010000726d movq (%rax), %rcx 0000000100007270 movq %rcx, -0x40(%rbp) 0000000100007274 movq 0x8(%rax), %rcx 0000000100007278 movq %rcx, -0x38(%rbp) 000000010000727c movq 0x10(%rax), %rcx 0000000100007280 movq %rcx, -0x30(%rbp) 0000000100007284 movl $0x0, -0x44(%rbp) 000000010000728b movl -0x44(%rbp), %eax 000000010000728e cmpl -0x38(%rbp), %eax 0000000100007291 jge 0x1000072cf 0000000100007297 movq -0x40(%rbp), %rax 000000010000729b movslq -0x44(%rbp), %rcx 000000010000729f shlq $0x4, %rcx 00000001000072a3 addq %rcx, %rax 00000001000072a6 movq (%rax), %rcx 00000001000072a9 movq %rcx, -0x58(%rbp) 00000001000072ad movq 0x8(%rax), %rax 00000001000072b1 movq %rax, -0x50(%rbp) 00000001000072b5 movl -0x50(%rbp), %edx 00000001000072b8 addl -0x18(%rbp), %edx 00000001000072bb addl -0x24(%rbp), %edx 00000001000072be movl %edx, -0x24(%rbp) 00000001000072c1 movl -0x44(%rbp), %eax 00000001000072c4 addl $0x1, %eax 00000001000072c7 movl %eax, -0x44(%rbp) 00000001000072ca jmp 0x10000728b 00000001000072cf leaq 0x36e3(%rip), %rdi ## literal pool for: "" 00000001000072d6 movl -0x18(%rbp), %eax 00000001000072d9 movl -0x24(%rbp), %ecx 00000001000072dc subl %eax, %ecx 00000001000072de movl %ecx, -0x24(%rbp) 00000001000072e1 callq _tos3 00000001000072e6 movq %rax, -0x68(%rbp) 00000001000072ea movl %edx, -0x60(%rbp) 00000001000072ed movl -0x24(%rbp), %ecx 00000001000072f0 movl %ecx, -0x60(%rbp) 00000001000072f3 movl -0x60(%rbp), %ecx 00000001000072f6 addl $0x1, %ecx 00000001000072f9 movl %ecx, %edi 00000001000072fb callq _v_malloc 0000000100007300 movq %rax, -0x68(%rbp) 0000000100007304 movl $0x0, -0x6c(%rbp) 000000010000730b movq -0xb8(%rbp), %rax 0000000100007312 movq (%rax), %rsi 0000000100007315 movq %rsi, -0x88(%rbp) 000000010000731c movq 0x8(%rax), %rsi 0000000100007320 movq %rsi, -0x80(%rbp) 0000000100007324 movq 0x10(%rax), %rsi 0000000100007328 movq %rsi, -0x78(%rbp) 000000010000732c movl $0x0, -0x8c(%rbp) 0000000100007336 movl -0x8c(%rbp), %eax 000000010000733c cmpl -0x80(%rbp), %eax 000000010000733f jge 0x100007463 0000000100007345 movq -0x88(%rbp), %rax 000000010000734c movslq -0x8c(%rbp), %rcx 0000000100007353 shlq $0x4, %rcx 0000000100007357 addq %rcx, %rax 000000010000735a movq (%rax), %rcx 000000010000735d movq %rcx, -0xa0(%rbp) 0000000100007364 movq 0x8(%rax), %rax 0000000100007368 movq %rax, -0x98(%rbp) 000000010000736f movl $0x0, -0xa4(%rbp) 0000000100007379 movl -0xa4(%rbp), %eax 000000010000737f cmpl -0x98(%rbp), %eax 0000000100007385 jge 0x1000073db 000000010000738b movq -0xa0(%rbp), %rax 0000000100007392 movslq -0xa4(%rbp), %rcx 0000000100007399 movb (%rax,%rcx), %dl 000000010000739c movb %dl, -0xa5(%rbp) 00000001000073a2 movq -0xa0(%rbp), %rax 00000001000073a9 movslq -0xa4(%rbp), %rcx 00000001000073b0 movb (%rax,%rcx), %dl 00000001000073b3 movq -0x68(%rbp), %rax 00000001000073b7 movslq -0x6c(%rbp), %rcx 00000001000073bb movb %dl, (%rax,%rcx) 00000001000073be movl -0x6c(%rbp), %esi 00000001000073c1 addl $0x1, %esi 00000001000073c4 movl %esi, -0x6c(%rbp) 00000001000073c7 movl -0xa4(%rbp), %eax 00000001000073cd addl $0x1, %eax 00000001000073d0 movl %eax, -0xa4(%rbp) 00000001000073d6 jmp 0x100007379 00000001000073db movl -0x8c(%rbp), %eax 00000001000073e1 movq -0xb8(%rbp), %rcx 00000001000073e8 movl 0x8(%rcx), %edx 00000001000073eb subl $0x1, %edx 00000001000073ee cmpl %edx, %eax 00000001000073f0 je 0x10000744a 00000001000073f6 movl $0x0, -0xac(%rbp) 0000000100007400 movl -0xac(%rbp), %eax 0000000100007406 cmpl -0x18(%rbp), %eax 0000000100007409 jge 0x100007445 000000010000740f movq -0x20(%rbp), %rax 0000000100007413 movslq -0xac(%rbp), %rcx 000000010000741a movb (%rax,%rcx), %dl 000000010000741d movq -0x68(%rbp), %rax 0000000100007421 movslq -0x6c(%rbp), %rcx 0000000100007425 movb %dl, (%rax,%rcx) 0000000100007428 movl -0x6c(%rbp), %esi 000000010000742b addl $0x1, %esi 000000010000742e movl %esi, -0x6c(%rbp) 0000000100007431 movl -0xac(%rbp), %eax 0000000100007437 addl $0x1, %eax 000000010000743a movl %eax, -0xac(%rbp) 0000000100007440 jmp 0x100007400 0000000100007445 jmp 0x10000744a 000000010000744a jmp 0x10000744f 000000010000744f movl -0x8c(%rbp), %eax 0000000100007455 addl $0x1, %eax 0000000100007458 movl %eax, -0x8c(%rbp) 000000010000745e jmp 0x100007336 0000000100007463 movq -0x68(%rbp), %rax 0000000100007467 movslq -0x60(%rbp), %rcx 000000010000746b movb $0x0, (%rax,%rcx) 000000010000746f movq -0x68(%rbp), %rax 0000000100007473 movq %rax, -0x10(%rbp) 0000000100007477 movq -0x60(%rbp), %rax 000000010000747b movq %rax, -0x8(%rbp) 000000010000747f movq -0x10(%rbp), %rax 0000000100007483 movl -0x8(%rbp), %edx 0000000100007486 addq $0xc0, %rsp 000000010000748d popq %rbp 000000010000748e retq 000000010000748f nop _string_find_between: 0000000100007490 pushq %rbp 0000000100007491 movq %rsp, %rbp 0000000100007494 subq $0x60, %rsp 0000000100007498 movq %rdi, -0x20(%rbp) 000000010000749c movl %esi, -0x18(%rbp) 000000010000749f movq %rdx, -0x30(%rbp) 00000001000074a3 movl %ecx, -0x28(%rbp) 00000001000074a6 movq %r8, -0x40(%rbp) 00000001000074aa movl %r9d, -0x38(%rbp) 00000001000074ae movq -0x20(%rbp), %rdi 00000001000074b2 movl -0x18(%rbp), %esi 00000001000074b5 movq -0x30(%rbp), %rdx 00000001000074b9 movl -0x28(%rbp), %ecx 00000001000074bc callq _string_index 00000001000074c1 movl %eax, -0x44(%rbp) 00000001000074c4 cmpl $-0x1, -0x44(%rbp) 00000001000074c8 jne 0x1000074e6 00000001000074ce leaq 0x34e4(%rip), %rdi ## literal pool for: "" 00000001000074d5 callq _tos3 00000001000074da movq %rax, -0x10(%rbp) 00000001000074de movl %edx, -0x8(%rbp) 00000001000074e1 jmp 0x10000754c 00000001000074e6 movl -0x44(%rbp), %eax 00000001000074e9 addl -0x28(%rbp), %eax 00000001000074ec movq -0x20(%rbp), %rdi 00000001000074f0 movl -0x18(%rbp), %esi 00000001000074f3 movl %eax, %edx 00000001000074f5 callq _string_right 00000001000074fa movq %rax, -0x58(%rbp) 00000001000074fe movl %edx, -0x50(%rbp) 0000000100007501 movq -0x58(%rbp), %rdi 0000000100007505 movl -0x50(%rbp), %esi 0000000100007508 movq -0x40(%rbp), %rdx 000000010000750c movl -0x38(%rbp), %ecx 000000010000750f callq _string_index 0000000100007514 movl %eax, -0x5c(%rbp) 0000000100007517 cmpl $-0x1, -0x5c(%rbp) 000000010000751b jne 0x100007536 0000000100007521 movq -0x58(%rbp), %rax 0000000100007525 movq %rax, -0x10(%rbp) 0000000100007529 movq -0x50(%rbp), %rax 000000010000752d movq %rax, -0x8(%rbp) 0000000100007531 jmp 0x10000754c 0000000100007536 movl -0x5c(%rbp), %edx 0000000100007539 movq -0x58(%rbp), %rdi 000000010000753d movl -0x50(%rbp), %esi 0000000100007540 callq _string_left 0000000100007545 movq %rax, -0x10(%rbp) 0000000100007549 movl %edx, -0x8(%rbp) 000000010000754c movq -0x10(%rbp), %rax 0000000100007550 movl -0x8(%rbp), %edx 0000000100007553 addq $0x60, %rsp 0000000100007557 popq %rbp 0000000100007558 retq 0000000100007559 nopl (%rax) _array_string_contains: 0000000100007560 pushq %rbp 0000000100007561 movq %rsp, %rbp 0000000100007564 subq $0x50, %rsp 0000000100007568 leaq 0x10(%rbp), %rax 000000010000756c movq %rdi, -0x18(%rbp) 0000000100007570 movl %esi, -0x10(%rbp) 0000000100007573 movq (%rax), %rdi 0000000100007576 movq %rdi, -0x30(%rbp) 000000010000757a movq 0x8(%rax), %rdi 000000010000757e movq %rdi, -0x28(%rbp) 0000000100007582 movq 0x10(%rax), %rax 0000000100007586 movq %rax, -0x20(%rbp) 000000010000758a movl $0x0, -0x34(%rbp) 0000000100007591 movl -0x34(%rbp), %eax 0000000100007594 cmpl -0x28(%rbp), %eax 0000000100007597 jge 0x1000075f7 000000010000759d movq -0x30(%rbp), %rax 00000001000075a1 movslq -0x34(%rbp), %rcx 00000001000075a5 shlq $0x4, %rcx 00000001000075a9 addq %rcx, %rax 00000001000075ac movq (%rax), %rcx 00000001000075af movq %rcx, -0x48(%rbp) 00000001000075b3 movq 0x8(%rax), %rax 00000001000075b7 movq %rax, -0x40(%rbp) 00000001000075bb movq -0x48(%rbp), %rdi 00000001000075bf movl -0x40(%rbp), %esi 00000001000075c2 movq -0x18(%rbp), %rdx 00000001000075c6 movl -0x10(%rbp), %ecx 00000001000075c9 callq _string_eq 00000001000075ce testb $0x1, %al 00000001000075d0 jne 0x1000075db 00000001000075d6 jmp 0x1000075e4 00000001000075db movb $0x1, -0x1(%rbp) 00000001000075df jmp 0x1000075fb 00000001000075e4 jmp 0x1000075e9 00000001000075e9 movl -0x34(%rbp), %eax 00000001000075ec addl $0x1, %eax 00000001000075ef movl %eax, -0x34(%rbp) 00000001000075f2 jmp 0x100007591 00000001000075f7 movb $0x0, -0x1(%rbp) 00000001000075fb movb -0x1(%rbp), %al 00000001000075fe andb $0x1, %al 0000000100007600 movzbl %al, %eax 0000000100007603 addq $0x50, %rsp 0000000100007607 popq %rbp 0000000100007608 retq 0000000100007609 nopl (%rax) _array_int_contains: 0000000100007610 pushq %rbp 0000000100007611 movq %rsp, %rbp 0000000100007614 leaq 0x10(%rbp), %rax 0000000100007618 movl %edi, -0x8(%rbp) 000000010000761b movq (%rax), %rcx 000000010000761e movq %rcx, -0x20(%rbp) 0000000100007622 movq 0x8(%rax), %rcx 0000000100007626 movq %rcx, -0x18(%rbp) 000000010000762a movq 0x10(%rax), %rax 000000010000762e movq %rax, -0x10(%rbp) 0000000100007632 movl $0x0, -0x24(%rbp) 0000000100007639 movl -0x24(%rbp), %eax 000000010000763c cmpl -0x18(%rbp), %eax 000000010000763f jge 0x10000767b 0000000100007645 movq -0x20(%rbp), %rax 0000000100007649 movslq -0x24(%rbp), %rcx 000000010000764d movl (%rax,%rcx,4), %edx 0000000100007650 movl %edx, -0x28(%rbp) 0000000100007653 movl -0x28(%rbp), %edx 0000000100007656 cmpl -0x8(%rbp), %edx 0000000100007659 jne 0x100007668 000000010000765f movb $0x1, -0x1(%rbp) 0000000100007663 jmp 0x10000767f 0000000100007668 jmp 0x10000766d 000000010000766d movl -0x24(%rbp), %eax 0000000100007670 addl $0x1, %eax 0000000100007673 movl %eax, -0x24(%rbp) 0000000100007676 jmp 0x100007639 000000010000767b movb $0x0, -0x1(%rbp) 000000010000767f movb -0x1(%rbp), %al 0000000100007682 andb $0x1, %al 0000000100007684 movzbl %al, %eax 0000000100007687 popq %rbp 0000000100007688 retq 0000000100007689 nopl (%rax) _byte_is_space: 0000000100007690 pushq %rbp 0000000100007691 movq %rsp, %rbp 0000000100007694 movb %dil, %al 0000000100007697 movb $0x1, %cl 0000000100007699 movb %al, -0x1(%rbp) 000000010000769c movzbl -0x1(%rbp), %edi 00000001000076a0 cmpl $0x20, %edi 00000001000076a3 movb %cl, -0x2(%rbp) 00000001000076a6 je 0x100007701 00000001000076ac movb $0x1, %al 00000001000076ae movzbl -0x1(%rbp), %ecx 00000001000076b2 cmpl $0xa, %ecx 00000001000076b5 movb %al, -0x2(%rbp) 00000001000076b8 je 0x100007701 00000001000076be movb $0x1, %al 00000001000076c0 movzbl -0x1(%rbp), %ecx 00000001000076c4 cmpl $0x9, %ecx 00000001000076c7 movb %al, -0x2(%rbp) 00000001000076ca je 0x100007701 00000001000076d0 movb $0x1, %al 00000001000076d2 movzbl -0x1(%rbp), %ecx 00000001000076d6 cmpl $0xb, %ecx 00000001000076d9 movb %al, -0x2(%rbp) 00000001000076dc je 0x100007701 00000001000076e2 movb $0x1, %al 00000001000076e4 movzbl -0x1(%rbp), %ecx 00000001000076e8 cmpl $0xc, %ecx 00000001000076eb movb %al, -0x2(%rbp) 00000001000076ee je 0x100007701 00000001000076f4 movzbl -0x1(%rbp), %eax 00000001000076f8 cmpl $0xd, %eax 00000001000076fb sete %cl 00000001000076fe movb %cl, -0x2(%rbp) 0000000100007701 movb -0x2(%rbp), %al 0000000100007704 andb $0x1, %al 0000000100007706 movzbl %al, %eax 0000000100007709 popq %rbp 000000010000770a retq 000000010000770b nopl (%rax,%rax) _string_trim: 0000000100007710 pushq %rbp 0000000100007711 movq %rsp, %rbp 0000000100007714 subq $0x70, %rsp 0000000100007718 movq %rdi, -0x20(%rbp) 000000010000771c movl %esi, -0x18(%rbp) 000000010000771f movq %rdx, -0x30(%rbp) 0000000100007723 movl %ecx, -0x28(%rbp) 0000000100007726 cmpl $0x1, -0x18(%rbp) 000000010000772a jl 0x10000773a 0000000100007730 cmpl $0x1, -0x28(%rbp) 0000000100007734 jge 0x10000774f 000000010000773a movq -0x20(%rbp), %rax 000000010000773e movq %rax, -0x10(%rbp) 0000000100007742 movq -0x18(%rbp), %rax 0000000100007746 movq %rax, -0x8(%rbp) 000000010000774a jmp 0x100007888 000000010000774f leaq -0x48(%rbp), %rdi 0000000100007753 movq -0x30(%rbp), %rsi 0000000100007757 movl -0x28(%rbp), %edx 000000010000775a callq _string_bytes 000000010000775f movl $0x0, -0x4c(%rbp) 0000000100007766 movl -0x18(%rbp), %edx 0000000100007769 subl $0x1, %edx 000000010000776c movl %edx, -0x50(%rbp) 000000010000776f movb $0x1, -0x51(%rbp) 0000000100007773 xorl %eax, %eax 0000000100007775 movb %al, %cl 0000000100007777 movl -0x4c(%rbp), %eax 000000010000777a cmpl -0x18(%rbp), %eax 000000010000777d movb %cl, -0x52(%rbp) 0000000100007780 jg 0x10000779d 0000000100007786 xorl %eax, %eax 0000000100007788 movb %al, %cl 000000010000778a cmpl $-0x1, -0x50(%rbp) 000000010000778e movb %cl, -0x52(%rbp) 0000000100007791 jl 0x10000779d 0000000100007797 movb -0x51(%rbp), %al 000000010000779a movb %al, -0x52(%rbp) 000000010000779d movb -0x52(%rbp), %al 00000001000077a0 testb $0x1, %al 00000001000077a2 jne 0x1000077ad 00000001000077a8 jmp 0x10000786a 00000001000077ad leaq -0x48(%rbp), %rax 00000001000077b1 movb $0x0, -0x51(%rbp) 00000001000077b5 movq -0x20(%rbp), %rcx 00000001000077b9 movslq -0x4c(%rbp), %rdx 00000001000077bd movq (%rax), %rsi 00000001000077c0 movq %rsi, (%rsp) 00000001000077c4 movq 0x8(%rax), %rsi 00000001000077c8 movq %rsi, 0x8(%rsp) 00000001000077cd movq 0x10(%rax), %rax 00000001000077d1 movq %rax, 0x10(%rsp) 00000001000077d6 movzbl (%rcx,%rdx), %edi 00000001000077da callq _array_byte_contains 00000001000077df testb $0x1, %al 00000001000077e1 jne 0x1000077ec 00000001000077e7 jmp 0x1000077f9 00000001000077ec movl -0x4c(%rbp), %eax 00000001000077ef addl $0x1, %eax 00000001000077f2 movl %eax, -0x4c(%rbp) 00000001000077f5 movb $0x1, -0x51(%rbp) 00000001000077f9 leaq -0x48(%rbp), %rax 00000001000077fd movq -0x20(%rbp), %rcx 0000000100007801 movslq -0x50(%rbp), %rdx 0000000100007805 movq (%rax), %rsi 0000000100007808 movq %rsi, (%rsp) 000000010000780c movq 0x8(%rax), %rsi 0000000100007810 movq %rsi, 0x8(%rsp) 0000000100007815 movq 0x10(%rax), %rax 0000000100007819 movq %rax, 0x10(%rsp) 000000010000781e movzbl (%rcx,%rdx), %edi 0000000100007822 callq _array_byte_contains 0000000100007827 testb $0x1, %al 0000000100007829 jne 0x100007834 000000010000782f jmp 0x100007841 0000000100007834 movl -0x50(%rbp), %eax 0000000100007837 addl $-0x1, %eax 000000010000783a movl %eax, -0x50(%rbp) 000000010000783d movb $0x1, -0x51(%rbp) 0000000100007841 movl -0x4c(%rbp), %eax 0000000100007844 cmpl -0x50(%rbp), %eax 0000000100007847 jle 0x100007865 000000010000784d leaq 0x3165(%rip), %rdi ## literal pool for: "" 0000000100007854 callq _tos3 0000000100007859 movq %rax, -0x10(%rbp) 000000010000785d movl %edx, -0x8(%rbp) 0000000100007860 jmp 0x100007888 0000000100007865 jmp 0x100007773 000000010000786a movl -0x4c(%rbp), %edx 000000010000786d movl -0x50(%rbp), %eax 0000000100007870 addl $0x1, %eax 0000000100007873 movq -0x20(%rbp), %rdi 0000000100007877 movl -0x18(%rbp), %esi 000000010000787a movl %eax, %ecx 000000010000787c callq _string_substr 0000000100007881 movq %rax, -0x10(%rbp) 0000000100007885 movl %edx, -0x8(%rbp) 0000000100007888 movq -0x10(%rbp), %rax 000000010000788c movl -0x8(%rbp), %edx 000000010000788f addq $0x70, %rsp 0000000100007893 popq %rbp 0000000100007894 retq 0000000100007895 nopw %cs:(%rax,%rax) _string_trim_left: 00000001000078a0 pushq %rbp 00000001000078a1 movq %rsp, %rbp 00000001000078a4 subq $0x70, %rsp 00000001000078a8 movq %rdi, -0x20(%rbp) 00000001000078ac movl %esi, -0x18(%rbp) 00000001000078af movq %rdx, -0x30(%rbp) 00000001000078b3 movl %ecx, -0x28(%rbp) 00000001000078b6 cmpl $0x1, -0x18(%rbp) 00000001000078ba jl 0x1000078ca 00000001000078c0 cmpl $0x1, -0x28(%rbp) 00000001000078c4 jge 0x1000078df 00000001000078ca movq -0x20(%rbp), %rax 00000001000078ce movq %rax, -0x10(%rbp) 00000001000078d2 movq -0x18(%rbp), %rax 00000001000078d6 movq %rax, -0x8(%rbp) 00000001000078da jmp 0x10000796e 00000001000078df leaq -0x48(%rbp), %rdi 00000001000078e3 movq -0x30(%rbp), %rsi 00000001000078e7 movl -0x28(%rbp), %edx 00000001000078ea callq _string_bytes 00000001000078ef movl $0x0, -0x4c(%rbp) 00000001000078f6 xorl %eax, %eax 00000001000078f8 movb %al, %cl 00000001000078fa movl -0x4c(%rbp), %eax 00000001000078fd cmpl -0x18(%rbp), %eax 0000000100007900 movb %cl, -0x4d(%rbp) 0000000100007903 jg 0x10000793a 0000000100007909 leaq -0x48(%rbp), %rax 000000010000790d movq -0x20(%rbp), %rcx 0000000100007911 movslq -0x4c(%rbp), %rdx 0000000100007915 movq (%rax), %rsi 0000000100007918 movq %rsi, (%rsp) 000000010000791c movq 0x8(%rax), %rsi 0000000100007920 movq %rsi, 0x8(%rsp) 0000000100007925 movq 0x10(%rax), %rax 0000000100007929 movq %rax, 0x10(%rsp) 000000010000792e movzbl (%rcx,%rdx), %edi 0000000100007932 callq _array_byte_contains 0000000100007937 movb %al, -0x4d(%rbp) 000000010000793a movb -0x4d(%rbp), %al 000000010000793d testb $0x1, %al 000000010000793f jne 0x10000794a 0000000100007945 jmp 0x100007958 000000010000794a movl -0x4c(%rbp), %eax 000000010000794d addl $0x1, %eax 0000000100007950 movl %eax, -0x4c(%rbp) 0000000100007953 jmp 0x1000078f6 0000000100007958 movl -0x4c(%rbp), %edx 000000010000795b movq -0x20(%rbp), %rdi 000000010000795f movl -0x18(%rbp), %esi 0000000100007962 callq _string_right 0000000100007967 movq %rax, -0x10(%rbp) 000000010000796b movl %edx, -0x8(%rbp) 000000010000796e movq -0x10(%rbp), %rax 0000000100007972 movl -0x8(%rbp), %edx 0000000100007975 addq $0x70, %rsp 0000000100007979 popq %rbp 000000010000797a retq 000000010000797b nopl (%rax,%rax) _string_trim_right: 0000000100007980 pushq %rbp 0000000100007981 movq %rsp, %rbp 0000000100007984 subq $0x70, %rsp 0000000100007988 movq %rdi, -0x20(%rbp) 000000010000798c movl %esi, -0x18(%rbp) 000000010000798f movq %rdx, -0x30(%rbp) 0000000100007993 movl %ecx, -0x28(%rbp) 0000000100007996 cmpl $0x1, -0x18(%rbp) 000000010000799a jl 0x1000079aa 00000001000079a0 cmpl $0x1, -0x28(%rbp) 00000001000079a4 jge 0x1000079bf 00000001000079aa movq -0x20(%rbp), %rax 00000001000079ae movq %rax, -0x10(%rbp) 00000001000079b2 movq -0x18(%rbp), %rax 00000001000079b6 movq %rax, -0x8(%rbp) 00000001000079ba jmp 0x100007a53 00000001000079bf leaq -0x48(%rbp), %rdi 00000001000079c3 movq -0x30(%rbp), %rsi 00000001000079c7 movl -0x28(%rbp), %edx 00000001000079ca callq _string_bytes 00000001000079cf movl -0x18(%rbp), %edx 00000001000079d2 subl $0x1, %edx 00000001000079d5 movl %edx, -0x4c(%rbp) 00000001000079d8 xorl %eax, %eax 00000001000079da movb %al, %cl 00000001000079dc cmpl $-0x1, -0x4c(%rbp) 00000001000079e0 movb %cl, -0x4d(%rbp) 00000001000079e3 jl 0x100007a1a 00000001000079e9 leaq -0x48(%rbp), %rax 00000001000079ed movq -0x20(%rbp), %rcx 00000001000079f1 movslq -0x4c(%rbp), %rdx 00000001000079f5 movq (%rax), %rsi 00000001000079f8 movq %rsi, (%rsp) 00000001000079fc movq 0x8(%rax), %rsi 0000000100007a00 movq %rsi, 0x8(%rsp) 0000000100007a05 movq 0x10(%rax), %rax 0000000100007a09 movq %rax, 0x10(%rsp) 0000000100007a0e movzbl (%rcx,%rdx), %edi 0000000100007a12 callq _array_byte_contains 0000000100007a17 movb %al, -0x4d(%rbp) 0000000100007a1a movb -0x4d(%rbp), %al 0000000100007a1d testb $0x1, %al 0000000100007a1f jne 0x100007a2a 0000000100007a25 jmp 0x100007a38 0000000100007a2a movl -0x4c(%rbp), %eax 0000000100007a2d addl $-0x1, %eax 0000000100007a30 movl %eax, -0x4c(%rbp) 0000000100007a33 jmp 0x1000079d8 0000000100007a38 movl -0x4c(%rbp), %eax 0000000100007a3b addl $0x1, %eax 0000000100007a3e movq -0x20(%rbp), %rdi 0000000100007a42 movl -0x18(%rbp), %esi 0000000100007a45 movl %eax, %edx 0000000100007a47 callq _string_left 0000000100007a4c movq %rax, -0x10(%rbp) 0000000100007a50 movl %edx, -0x8(%rbp) 0000000100007a53 movq -0x10(%rbp), %rax 0000000100007a57 movl -0x8(%rbp), %edx 0000000100007a5a addq $0x70, %rsp 0000000100007a5e popq %rbp 0000000100007a5f retq _compare_strings: 0000000100007a60 pushq %rbp 0000000100007a61 movq %rsp, %rbp 0000000100007a64 subq $0x20, %rsp 0000000100007a68 movq %rdi, -0x10(%rbp) 0000000100007a6c movq %rsi, -0x18(%rbp) 0000000100007a70 movq -0x10(%rbp), %rsi 0000000100007a74 movq -0x18(%rbp), %rdi 0000000100007a78 movq (%rsi), %rax 0000000100007a7b movl 0x8(%rsi), %esi 0000000100007a7e movq (%rdi), %rdx 0000000100007a81 movl 0x8(%rdi), %ecx 0000000100007a84 movq %rax, %rdi 0000000100007a87 callq _string_lt 0000000100007a8c testb $0x1, %al 0000000100007a8e jne 0x100007a99 0000000100007a94 jmp 0x100007aa5 0000000100007a99 movl $0xffffffff, -0x4(%rbp) 0000000100007aa0 jmp 0x100007ade 0000000100007aa5 movq -0x10(%rbp), %rax 0000000100007aa9 movq -0x18(%rbp), %rcx 0000000100007aad movq (%rax), %rdi 0000000100007ab0 movl 0x8(%rax), %esi 0000000100007ab3 movq (%rcx), %rdx 0000000100007ab6 movl 0x8(%rcx), %ecx 0000000100007ab9 callq _string_gt 0000000100007abe testb $0x1, %al 0000000100007ac0 jne 0x100007acb 0000000100007ac6 jmp 0x100007ad7 0000000100007acb movl $0x1, -0x4(%rbp) 0000000100007ad2 jmp 0x100007ade 0000000100007ad7 movl $0x0, -0x4(%rbp) 0000000100007ade movl -0x4(%rbp), %eax 0000000100007ae1 addq $0x20, %rsp 0000000100007ae5 popq %rbp 0000000100007ae6 retq 0000000100007ae7 nopw (%rax,%rax) _compare_strings_by_len: 0000000100007af0 pushq %rbp 0000000100007af1 movq %rsp, %rbp 0000000100007af4 movq %rdi, -0x10(%rbp) 0000000100007af8 movq %rsi, -0x18(%rbp) 0000000100007afc movq -0x10(%rbp), %rsi 0000000100007b00 movl 0x8(%rsi), %eax 0000000100007b03 movq -0x18(%rbp), %rsi 0000000100007b07 cmpl 0x8(%rsi), %eax 0000000100007b0a jge 0x100007b1c 0000000100007b10 movl $0xffffffff, -0x4(%rbp) 0000000100007b17 jmp 0x100007b43 0000000100007b1c movq -0x10(%rbp), %rax 0000000100007b20 movl 0x8(%rax), %ecx 0000000100007b23 movq -0x18(%rbp), %rax 0000000100007b27 cmpl 0x8(%rax), %ecx 0000000100007b2a jle 0x100007b3c 0000000100007b30 movl $0x1, -0x4(%rbp) 0000000100007b37 jmp 0x100007b43 0000000100007b3c movl $0x0, -0x4(%rbp) 0000000100007b43 movl -0x4(%rbp), %eax 0000000100007b46 popq %rbp 0000000100007b47 retq 0000000100007b48 nopl (%rax,%rax) _compare_lower_strings: 0000000100007b50 pushq %rbp 0000000100007b51 movq %rsp, %rbp 0000000100007b54 subq $0x30, %rsp 0000000100007b58 movq %rdi, -0x8(%rbp) 0000000100007b5c movq %rsi, -0x10(%rbp) 0000000100007b60 movq -0x8(%rbp), %rsi 0000000100007b64 movq (%rsi), %rdi 0000000100007b67 movl 0x8(%rsi), %esi 0000000100007b6a callq _string_to_lower 0000000100007b6f movq %rax, -0x20(%rbp) 0000000100007b73 movl %edx, -0x18(%rbp) 0000000100007b76 movq -0x10(%rbp), %rax 0000000100007b7a movq (%rax), %rdi 0000000100007b7d movl 0x8(%rax), %esi 0000000100007b80 callq _string_to_lower 0000000100007b85 leaq -0x20(%rbp), %rdi 0000000100007b89 leaq -0x30(%rbp), %rsi 0000000100007b8d movq %rax, -0x30(%rbp) 0000000100007b91 movl %edx, -0x28(%rbp) 0000000100007b94 callq _compare_strings 0000000100007b99 addq $0x30, %rsp 0000000100007b9d popq %rbp 0000000100007b9e retq 0000000100007b9f nop _array_string_sort: 0000000100007ba0 pushq %rbp 0000000100007ba1 movq %rsp, %rbp 0000000100007ba4 subq $0x10, %rsp 0000000100007ba8 leaq _compare_strings(%rip), %rax 0000000100007baf movq %rdi, -0x8(%rbp) 0000000100007bb3 movq -0x8(%rbp), %rdi 0000000100007bb7 movq %rax, %rsi 0000000100007bba callq _array_sort_with_compare 0000000100007bbf addq $0x10, %rsp 0000000100007bc3 popq %rbp 0000000100007bc4 retq 0000000100007bc5 nopw %cs:(%rax,%rax) _array_string_sort_ignore_case: 0000000100007bd0 pushq %rbp 0000000100007bd1 movq %rsp, %rbp 0000000100007bd4 subq $0x10, %rsp 0000000100007bd8 leaq _compare_lower_strings(%rip), %rax 0000000100007bdf movq %rdi, -0x8(%rbp) 0000000100007be3 movq -0x8(%rbp), %rdi 0000000100007be7 movq %rax, %rsi 0000000100007bea callq _array_sort_with_compare 0000000100007bef addq $0x10, %rsp 0000000100007bf3 popq %rbp 0000000100007bf4 retq 0000000100007bf5 nopw %cs:(%rax,%rax) _array_string_sort_by_len: 0000000100007c00 pushq %rbp 0000000100007c01 movq %rsp, %rbp 0000000100007c04 subq $0x10, %rsp 0000000100007c08 leaq _compare_strings_by_len(%rip), %rax 0000000100007c0f movq %rdi, -0x8(%rbp) 0000000100007c13 movq -0x8(%rbp), %rdi 0000000100007c17 movq %rax, %rsi 0000000100007c1a callq _array_sort_with_compare 0000000100007c1f addq $0x10, %rsp 0000000100007c23 popq %rbp 0000000100007c24 retq 0000000100007c25 nopw %cs:(%rax,%rax) _string_ustring: 0000000100007c30 pushq %rbp 0000000100007c31 movq %rsp, %rbp 0000000100007c34 subq $0x30, %rsp 0000000100007c38 movq %rdi, %rax 0000000100007c3b xorl %ecx, %ecx 0000000100007c3d movl $0x4, %r8d 0000000100007c43 movq %rsi, -0x10(%rbp) 0000000100007c47 movl %edx, -0x8(%rbp) 0000000100007c4a movq -0x10(%rbp), %rsi 0000000100007c4e movq %rsi, (%rdi) 0000000100007c51 movq -0x8(%rbp), %rsi 0000000100007c55 movq %rsi, 0x8(%rdi) 0000000100007c59 movq %rdi, %rsi 0000000100007c5c addq $0x10, %rsi 0000000100007c60 movl -0x8(%rbp), %edx 0000000100007c63 movq %rdi, -0x28(%rbp) 0000000100007c67 movq %rsi, %rdi 0000000100007c6a movl %ecx, %esi 0000000100007c6c movl %r8d, %ecx 0000000100007c6f movq %rax, -0x30(%rbp) 0000000100007c73 callq _new_array 0000000100007c78 movq -0x28(%rbp), %rax 0000000100007c7c movl $0x0, 0x28(%rax) 0000000100007c83 movl $0x0, -0x14(%rbp) 0000000100007c8a movl -0x14(%rbp), %eax 0000000100007c8d cmpl -0x8(%rbp), %eax 0000000100007c90 jge 0x100007cee 0000000100007c96 movq -0x10(%rbp), %rax 0000000100007c9a movslq -0x14(%rbp), %rcx 0000000100007c9e movzbl (%rax,%rcx), %edi 0000000100007ca2 callq _utf8_char_len 0000000100007ca7 leaq -0x1c(%rbp), %rcx 0000000100007cab movl %eax, -0x18(%rbp) 0000000100007cae movl -0x14(%rbp), %eax 0000000100007cb1 movl %eax, -0x1c(%rbp) 0000000100007cb4 movq -0x28(%rbp), %rdx 0000000100007cb8 addq $0x10, %rdx 0000000100007cbc movq %rdx, %rdi 0000000100007cbf movq %rcx, %rsi 0000000100007cc2 callq _array_push 0000000100007cc7 movl -0x18(%rbp), %eax 0000000100007cca subl $0x1, %eax 0000000100007ccd addl -0x14(%rbp), %eax 0000000100007cd0 movl %eax, -0x14(%rbp) 0000000100007cd3 movq -0x28(%rbp), %rcx 0000000100007cd7 movl 0x28(%rcx), %eax 0000000100007cda addl $0x1, %eax 0000000100007cdd movl %eax, 0x28(%rcx) 0000000100007ce0 movl -0x14(%rbp), %eax 0000000100007ce3 addl $0x1, %eax 0000000100007ce6 movl %eax, -0x14(%rbp) 0000000100007ce9 jmp 0x100007c8a 0000000100007cee movq -0x30(%rbp), %rax 0000000100007cf2 addq $0x30, %rsp 0000000100007cf6 popq %rbp 0000000100007cf7 retq 0000000100007cf8 nopl (%rax,%rax) _string_ustring_tmp: 0000000100007d00 pushq %rbp 0000000100007d01 movq %rsp, %rbp 0000000100007d04 subq $0x50, %rsp 0000000100007d08 movq %rdi, %rax 0000000100007d0b leaq _g_ustring_runes(%rip), %rcx 0000000100007d12 movq %rsi, -0x10(%rbp) 0000000100007d16 movl %edx, -0x8(%rbp) 0000000100007d19 cmpl $0x0, 0x8(%rcx) 0000000100007d1d movq %rax, -0x40(%rbp) 0000000100007d21 movq %rdi, -0x48(%rbp) 0000000100007d25 jne 0x100007d5e 0000000100007d2b leaq -0x28(%rbp), %rdi 0000000100007d2f xorl %esi, %esi 0000000100007d31 movl $0x80, %edx 0000000100007d36 movl $0x4, %ecx 0000000100007d3b callq _new_array 0000000100007d40 leaq _g_ustring_runes(%rip), %rdi 0000000100007d47 movq -0x28(%rbp), %rax 0000000100007d4b movq %rax, (%rdi) 0000000100007d4e movq -0x20(%rbp), %rax 0000000100007d52 movq %rax, 0x8(%rdi) 0000000100007d56 movq -0x18(%rbp), %rax 0000000100007d5a movq %rax, 0x10(%rdi) 0000000100007d5e xorl %esi, %esi 0000000100007d60 movl $0x1, %edx 0000000100007d65 movl $0x4, %ecx 0000000100007d6a movq -0x10(%rbp), %rax 0000000100007d6e movq -0x48(%rbp), %rdi 0000000100007d72 movq %rax, (%rdi) 0000000100007d75 movq -0x8(%rbp), %rax 0000000100007d79 movq %rax, 0x8(%rdi) 0000000100007d7d addq $0x10, %rdi 0000000100007d81 callq _new_array 0000000100007d86 leaq _g_ustring_runes(%rip), %rax 0000000100007d8d movq -0x48(%rbp), %rdi 0000000100007d91 movl $0x0, 0x28(%rdi) 0000000100007d98 movq (%rax), %r8 0000000100007d9b movq %r8, 0x10(%rdi) 0000000100007d9f movq 0x8(%rax), %r8 0000000100007da3 movq %r8, 0x18(%rdi) 0000000100007da7 movq 0x10(%rax), %rax 0000000100007dab movq %rax, 0x20(%rdi) 0000000100007daf movl -0x8(%rbp), %ecx 0000000100007db2 movl %ecx, 0x18(%rdi) 0000000100007db5 movl $0x0, -0x2c(%rbp) 0000000100007dbc movl $0x0, -0x30(%rbp) 0000000100007dc3 movl -0x30(%rbp), %eax 0000000100007dc6 cmpl -0x8(%rbp), %eax 0000000100007dc9 jge 0x100007e33 0000000100007dcf movq -0x10(%rbp), %rax 0000000100007dd3 movslq -0x30(%rbp), %rcx 0000000100007dd7 movzbl (%rax,%rcx), %edi 0000000100007ddb callq _utf8_char_len 0000000100007de0 leaq -0x38(%rbp), %rcx 0000000100007de4 movl %eax, -0x34(%rbp) 0000000100007de7 movq -0x48(%rbp), %rdx 0000000100007deb addq $0x10, %rdx 0000000100007def movl -0x2c(%rbp), %esi 0000000100007df2 movl -0x30(%rbp), %eax 0000000100007df5 movl %eax, -0x38(%rbp) 0000000100007df8 movq %rdx, %rdi 0000000100007dfb movq %rcx, %rdx 0000000100007dfe callq _array_set 0000000100007e03 movl -0x2c(%rbp), %eax 0000000100007e06 addl $0x1, %eax 0000000100007e09 movl %eax, -0x2c(%rbp) 0000000100007e0c movl -0x34(%rbp), %eax 0000000100007e0f subl $0x1, %eax 0000000100007e12 addl -0x30(%rbp), %eax 0000000100007e15 movl %eax, -0x30(%rbp) 0000000100007e18 movq -0x48(%rbp), %rcx 0000000100007e1c movl 0x28(%rcx), %eax 0000000100007e1f addl $0x1, %eax 0000000100007e22 movl %eax, 0x28(%rcx) 0000000100007e25 movl -0x30(%rbp), %eax 0000000100007e28 addl $0x1, %eax 0000000100007e2b movl %eax, -0x30(%rbp) 0000000100007e2e jmp 0x100007dc3 0000000100007e33 movq -0x40(%rbp), %rax 0000000100007e37 addq $0x50, %rsp 0000000100007e3b popq %rbp 0000000100007e3c retq 0000000100007e3d nopl (%rax) _ustring_eq: 0000000100007e40 pushq %rbp 0000000100007e41 movq %rsp, %rbp 0000000100007e44 subq $0x20, %rsp 0000000100007e48 leaq 0x40(%rbp), %rax 0000000100007e4c leaq 0x10(%rbp), %rcx 0000000100007e50 movl 0x28(%rcx), %edx 0000000100007e53 cmpl 0x28(%rax), %edx 0000000100007e56 movq %rax, -0x10(%rbp) 0000000100007e5a movq %rcx, -0x18(%rbp) 0000000100007e5e jne 0x100007e8a 0000000100007e64 movq -0x18(%rbp), %rax 0000000100007e68 movq (%rax), %rdi 0000000100007e6b movl 0x8(%rax), %esi 0000000100007e6e movq -0x10(%rbp), %rcx 0000000100007e72 movq (%rcx), %rdx 0000000100007e75 movl 0x8(%rcx), %ecx 0000000100007e78 callq _string_ne 0000000100007e7d testb $0x1, %al 0000000100007e7f jne 0x100007e8a 0000000100007e85 jmp 0x100007e93 0000000100007e8a movb $0x0, -0x1(%rbp) 0000000100007e8e jmp 0x100007e97 0000000100007e93 movb $0x1, -0x1(%rbp) 0000000100007e97 movb -0x1(%rbp), %al 0000000100007e9a andb $0x1, %al 0000000100007e9c movzbl %al, %eax 0000000100007e9f addq $0x20, %rsp 0000000100007ea3 popq %rbp 0000000100007ea4 retq 0000000100007ea5 nopw %cs:(%rax,%rax) _ustring_ne: 0000000100007eb0 pushq %rbp 0000000100007eb1 movq %rsp, %rbp 0000000100007eb4 subq $0x60, %rsp 0000000100007eb8 leaq 0x40(%rbp), %rax 0000000100007ebc leaq 0x10(%rbp), %rcx 0000000100007ec0 movq 0x28(%rax), %rdx 0000000100007ec4 movq %rsp, %rsi 0000000100007ec7 movq %rdx, 0x58(%rsi) 0000000100007ecb movq 0x20(%rax), %rdx 0000000100007ecf movq %rdx, 0x50(%rsi) 0000000100007ed3 movq 0x18(%rax), %rdx 0000000100007ed7 movq %rdx, 0x48(%rsi) 0000000100007edb movq 0x10(%rax), %rdx 0000000100007edf movq %rdx, 0x40(%rsi) 0000000100007ee3 movq (%rax), %rdx 0000000100007ee6 movq 0x8(%rax), %rax 0000000100007eea movq %rax, 0x38(%rsi) 0000000100007eee movq %rdx, 0x30(%rsi) 0000000100007ef2 movq 0x28(%rcx), %rax 0000000100007ef6 movq %rax, 0x28(%rsi) 0000000100007efa movq 0x20(%rcx), %rax 0000000100007efe movq %rax, 0x20(%rsi) 0000000100007f02 movq 0x18(%rcx), %rax 0000000100007f06 movq %rax, 0x18(%rsi) 0000000100007f0a movq 0x10(%rcx), %rax 0000000100007f0e movq %rax, 0x10(%rsi) 0000000100007f12 movq (%rcx), %rax 0000000100007f15 movq 0x8(%rcx), %rcx 0000000100007f19 movq %rcx, 0x8(%rsi) 0000000100007f1d movq %rax, (%rsi) 0000000100007f20 callq _ustring_eq 0000000100007f25 xorb $-0x1, %al 0000000100007f27 andb $0x1, %al 0000000100007f29 movzbl %al, %eax 0000000100007f2c addq $0x60, %rsp 0000000100007f30 popq %rbp 0000000100007f31 retq 0000000100007f32 nopw %cs:(%rax,%rax) _ustring_lt: 0000000100007f40 pushq %rbp 0000000100007f41 movq %rsp, %rbp 0000000100007f44 leaq 0x40(%rbp), %rax 0000000100007f48 leaq 0x10(%rbp), %rcx 0000000100007f4c movq (%rcx), %rdi 0000000100007f4f movl 0x8(%rcx), %esi 0000000100007f52 movq (%rax), %rdx 0000000100007f55 movl 0x8(%rax), %ecx 0000000100007f58 callq _string_lt 0000000100007f5d andb $0x1, %al 0000000100007f5f movzbl %al, %eax 0000000100007f62 popq %rbp 0000000100007f63 retq 0000000100007f64 nopw %cs:(%rax,%rax) _ustring_le: 0000000100007f70 pushq %rbp 0000000100007f71 movq %rsp, %rbp 0000000100007f74 subq $0x80, %rsp 0000000100007f7b leaq 0x40(%rbp), %rax 0000000100007f7f leaq 0x10(%rbp), %rcx 0000000100007f83 movq 0x28(%rax), %rdx 0000000100007f87 movq %rsp, %rsi 0000000100007f8a movq %rdx, 0x58(%rsi) 0000000100007f8e movq 0x20(%rax), %rdx 0000000100007f92 movq %rdx, 0x50(%rsi) 0000000100007f96 movq 0x18(%rax), %rdx 0000000100007f9a movq %rdx, 0x48(%rsi) 0000000100007f9e movq 0x10(%rax), %rdx 0000000100007fa2 movq %rdx, 0x40(%rsi) 0000000100007fa6 movq (%rax), %rdx 0000000100007fa9 movq 0x8(%rax), %rdi 0000000100007fad movq %rdi, 0x38(%rsi) 0000000100007fb1 movq %rdx, 0x30(%rsi) 0000000100007fb5 movq 0x28(%rcx), %rdx 0000000100007fb9 movq %rdx, 0x28(%rsi) 0000000100007fbd movq 0x20(%rcx), %rdx 0000000100007fc1 movq %rdx, 0x20(%rsi) 0000000100007fc5 movq 0x18(%rcx), %rdx 0000000100007fc9 movq %rdx, 0x18(%rsi) 0000000100007fcd movq 0x10(%rcx), %rdx 0000000100007fd1 movq %rdx, 0x10(%rsi) 0000000100007fd5 movq (%rcx), %rdx 0000000100007fd8 movq 0x8(%rcx), %rdi 0000000100007fdc movq %rdi, 0x8(%rsi) 0000000100007fe0 movq %rdx, (%rsi) 0000000100007fe3 movq %rax, -0x8(%rbp) 0000000100007fe7 movq %rcx, -0x10(%rbp) 0000000100007feb callq _ustring_lt 0000000100007ff0 movb $0x1, %r8b 0000000100007ff3 testb $0x1, %al 0000000100007ff5 movb %r8b, -0x11(%rbp) 0000000100007ff9 jne 0x10000806f 0000000100007fff movq -0x8(%rbp), %rax 0000000100008003 movq 0x28(%rax), %rcx 0000000100008007 movq %rsp, %rdx 000000010000800a movq %rcx, 0x58(%rdx) 000000010000800e movq 0x20(%rax), %rcx 0000000100008012 movq %rcx, 0x50(%rdx) 0000000100008016 movq 0x18(%rax), %rcx 000000010000801a movq %rcx, 0x48(%rdx) 000000010000801e movq 0x10(%rax), %rcx 0000000100008022 movq %rcx, 0x40(%rdx) 0000000100008026 movq (%rax), %rcx 0000000100008029 movq 0x8(%rax), %rsi 000000010000802d movq %rsi, 0x38(%rdx) 0000000100008031 movq %rcx, 0x30(%rdx) 0000000100008035 movq -0x10(%rbp), %rcx 0000000100008039 movq 0x28(%rcx), %rsi 000000010000803d movq %rsi, 0x28(%rdx) 0000000100008041 movq 0x20(%rcx), %rsi 0000000100008045 movq %rsi, 0x20(%rdx) 0000000100008049 movq 0x18(%rcx), %rsi 000000010000804d movq %rsi, 0x18(%rdx) 0000000100008051 movq 0x10(%rcx), %rsi 0000000100008055 movq %rsi, 0x10(%rdx) 0000000100008059 movq (%rcx), %rsi 000000010000805c movq 0x8(%rcx), %rdi 0000000100008060 movq %rdi, 0x8(%rdx) 0000000100008064 movq %rsi, (%rdx) 0000000100008067 callq _ustring_eq 000000010000806c movb %al, -0x11(%rbp) 000000010000806f movb -0x11(%rbp), %al 0000000100008072 andb $0x1, %al 0000000100008074 movzbl %al, %eax 0000000100008077 addq $0x80, %rsp 000000010000807e popq %rbp 000000010000807f retq _ustring_gt: 0000000100008080 pushq %rbp 0000000100008081 movq %rsp, %rbp 0000000100008084 subq $0x60, %rsp 0000000100008088 leaq 0x40(%rbp), %rax 000000010000808c leaq 0x10(%rbp), %rcx 0000000100008090 movq 0x28(%rax), %rdx 0000000100008094 movq %rsp, %rsi 0000000100008097 movq %rdx, 0x58(%rsi) 000000010000809b movq 0x20(%rax), %rdx 000000010000809f movq %rdx, 0x50(%rsi) 00000001000080a3 movq 0x18(%rax), %rdx 00000001000080a7 movq %rdx, 0x48(%rsi) 00000001000080ab movq 0x10(%rax), %rdx 00000001000080af movq %rdx, 0x40(%rsi) 00000001000080b3 movq (%rax), %rdx 00000001000080b6 movq 0x8(%rax), %rax 00000001000080ba movq %rax, 0x38(%rsi) 00000001000080be movq %rdx, 0x30(%rsi) 00000001000080c2 movq 0x28(%rcx), %rax 00000001000080c6 movq %rax, 0x28(%rsi) 00000001000080ca movq 0x20(%rcx), %rax 00000001000080ce movq %rax, 0x20(%rsi) 00000001000080d2 movq 0x18(%rcx), %rax 00000001000080d6 movq %rax, 0x18(%rsi) 00000001000080da movq 0x10(%rcx), %rax 00000001000080de movq %rax, 0x10(%rsi) 00000001000080e2 movq (%rcx), %rax 00000001000080e5 movq 0x8(%rcx), %rcx 00000001000080e9 movq %rcx, 0x8(%rsi) 00000001000080ed movq %rax, (%rsi) 00000001000080f0 callq _ustring_le 00000001000080f5 xorb $-0x1, %al 00000001000080f7 andb $0x1, %al 00000001000080f9 movzbl %al, %eax 00000001000080fc addq $0x60, %rsp 0000000100008100 popq %rbp 0000000100008101 retq 0000000100008102 nopw %cs:(%rax,%rax) _ustring_ge: 0000000100008110 pushq %rbp 0000000100008111 movq %rsp, %rbp 0000000100008114 subq $0x60, %rsp 0000000100008118 leaq 0x40(%rbp), %rax 000000010000811c leaq 0x10(%rbp), %rcx 0000000100008120 movq 0x28(%rax), %rdx 0000000100008124 movq %rsp, %rsi 0000000100008127 movq %rdx, 0x58(%rsi) 000000010000812b movq 0x20(%rax), %rdx 000000010000812f movq %rdx, 0x50(%rsi) 0000000100008133 movq 0x18(%rax), %rdx 0000000100008137 movq %rdx, 0x48(%rsi) 000000010000813b movq 0x10(%rax), %rdx 000000010000813f movq %rdx, 0x40(%rsi) 0000000100008143 movq (%rax), %rdx 0000000100008146 movq 0x8(%rax), %rax 000000010000814a movq %rax, 0x38(%rsi) 000000010000814e movq %rdx, 0x30(%rsi) 0000000100008152 movq 0x28(%rcx), %rax 0000000100008156 movq %rax, 0x28(%rsi) 000000010000815a movq 0x20(%rcx), %rax 000000010000815e movq %rax, 0x20(%rsi) 0000000100008162 movq 0x18(%rcx), %rax 0000000100008166 movq %rax, 0x18(%rsi) 000000010000816a movq 0x10(%rcx), %rax 000000010000816e movq %rax, 0x10(%rsi) 0000000100008172 movq (%rcx), %rax 0000000100008175 movq 0x8(%rcx), %rcx 0000000100008179 movq %rcx, 0x8(%rsi) 000000010000817d movq %rax, (%rsi) 0000000100008180 callq _ustring_lt 0000000100008185 xorb $-0x1, %al 0000000100008187 andb $0x1, %al 0000000100008189 movzbl %al, %eax 000000010000818c addq $0x60, %rsp 0000000100008190 popq %rbp 0000000100008191 retq 0000000100008192 nopw %cs:(%rax,%rax) _ustring_add: 00000001000081a0 pushq %rbp 00000001000081a1 movq %rsp, %rbp 00000001000081a4 subq $0x40, %rsp 00000001000081a8 movq %rdi, %rax 00000001000081ab leaq 0x40(%rbp), %rcx 00000001000081af leaq 0x10(%rbp), %rdx 00000001000081b3 movq (%rdx), %rsi 00000001000081b6 movl 0x8(%rdx), %r8d 00000001000081ba movq (%rcx), %r9 00000001000081bd movl 0x8(%rcx), %r10d 00000001000081c1 movq %rdi, -0x28(%rbp) 00000001000081c5 movq %rsi, %rdi 00000001000081c8 movl %r8d, %esi 00000001000081cb movq %rdx, -0x30(%rbp) 00000001000081cf movq %r9, %rdx 00000001000081d2 movq %rcx, -0x38(%rbp) 00000001000081d6 movl %r10d, %ecx 00000001000081d9 movq %rax, -0x40(%rbp) 00000001000081dd callq _string_add 00000001000081e2 xorl %esi, %esi 00000001000081e4 movl $0x4, %ecx 00000001000081e9 movq -0x28(%rbp), %rdi 00000001000081ed movq %rax, (%rdi) 00000001000081f0 movl %edx, 0x8(%rdi) 00000001000081f3 addq $0x10, %rdi 00000001000081f7 movq -0x30(%rbp), %rax 00000001000081fb movl 0x8(%rax), %edx 00000001000081fe movq -0x38(%rbp), %r9 0000000100008202 addl 0x8(%r9), %edx 0000000100008206 callq _new_array 000000010000820b movq -0x28(%rbp), %rax 000000010000820f movl $0x0, 0x28(%rax) 0000000100008216 movl $0x0, -0x4(%rbp) 000000010000821d movl $0x0, -0x8(%rbp) 0000000100008224 movl -0x8(%rbp), %eax 0000000100008227 movq -0x30(%rbp), %rcx 000000010000822b cmpl 0x8(%rcx), %eax 000000010000822e jge 0x100008298 0000000100008234 movq -0x30(%rbp), %rax 0000000100008238 movq (%rax), %rcx 000000010000823b movslq -0x8(%rbp), %rdx 000000010000823f movzbl (%rcx,%rdx), %edi 0000000100008243 callq _utf8_char_len 0000000100008248 leaq -0x10(%rbp), %rcx 000000010000824c movl %eax, -0xc(%rbp) 000000010000824f movl -0x4(%rbp), %eax 0000000100008252 movl %eax, -0x10(%rbp) 0000000100008255 movq -0x28(%rbp), %rdx 0000000100008259 addq $0x10, %rdx 000000010000825d movq %rdx, %rdi 0000000100008260 movq %rcx, %rsi 0000000100008263 callq _array_push 0000000100008268 movl -0xc(%rbp), %eax 000000010000826b subl $0x1, %eax 000000010000826e addl -0x8(%rbp), %eax 0000000100008271 movl %eax, -0x8(%rbp) 0000000100008274 movl -0xc(%rbp), %eax 0000000100008277 addl -0x4(%rbp), %eax 000000010000827a movl %eax, -0x4(%rbp) 000000010000827d movq -0x28(%rbp), %rcx 0000000100008281 movl 0x28(%rcx), %eax 0000000100008284 addl $0x1, %eax 0000000100008287 movl %eax, 0x28(%rcx) 000000010000828a movl -0x8(%rbp), %eax 000000010000828d addl $0x1, %eax 0000000100008290 movl %eax, -0x8(%rbp) 0000000100008293 jmp 0x100008224 0000000100008298 movl $0x0, -0x14(%rbp) 000000010000829f movl -0x14(%rbp), %eax 00000001000082a2 movq -0x38(%rbp), %rcx 00000001000082a6 cmpl 0x8(%rcx), %eax 00000001000082a9 jge 0x100008313 00000001000082af movq -0x38(%rbp), %rax 00000001000082b3 movq (%rax), %rcx 00000001000082b6 movslq -0x14(%rbp), %rdx 00000001000082ba movzbl (%rcx,%rdx), %edi 00000001000082be callq _utf8_char_len 00000001000082c3 leaq -0x1c(%rbp), %rcx 00000001000082c7 movl %eax, -0x18(%rbp) 00000001000082ca movl -0x4(%rbp), %eax 00000001000082cd movl %eax, -0x1c(%rbp) 00000001000082d0 movq -0x28(%rbp), %rdx 00000001000082d4 addq $0x10, %rdx 00000001000082d8 movq %rdx, %rdi 00000001000082db movq %rcx, %rsi 00000001000082de callq _array_push 00000001000082e3 movl -0x18(%rbp), %eax 00000001000082e6 subl $0x1, %eax 00000001000082e9 addl -0x14(%rbp), %eax 00000001000082ec movl %eax, -0x14(%rbp) 00000001000082ef movl -0x18(%rbp), %eax 00000001000082f2 addl -0x4(%rbp), %eax 00000001000082f5 movl %eax, -0x4(%rbp) 00000001000082f8 movq -0x28(%rbp), %rcx 00000001000082fc movl 0x28(%rcx), %eax 00000001000082ff addl $0x1, %eax 0000000100008302 movl %eax, 0x28(%rcx) 0000000100008305 movl -0x14(%rbp), %eax 0000000100008308 addl $0x1, %eax 000000010000830b movl %eax, -0x14(%rbp) 000000010000830e jmp 0x10000829f 0000000100008313 movq -0x40(%rbp), %rax 0000000100008317 addq $0x40, %rsp 000000010000831b popq %rbp 000000010000831c retq 000000010000831d nopl (%rax) _ustring_index_after: 0000000100008320 pushq %rbp 0000000100008321 movq %rsp, %rbp 0000000100008324 subq $0x80, %rsp 000000010000832b leaq 0x40(%rbp), %rax 000000010000832f leaq 0x10(%rbp), %rcx 0000000100008333 movl %edi, -0x8(%rbp) 0000000100008336 movl 0x28(%rax), %edi 0000000100008339 cmpl 0x28(%rcx), %edi 000000010000833c movq %rcx, -0x40(%rbp) 0000000100008340 movq %rax, -0x48(%rbp) 0000000100008344 jle 0x100008356 000000010000834a movl $0xffffffff, -0x4(%rbp) 0000000100008351 jmp 0x1000084b8 0000000100008356 movl -0x8(%rbp), %eax 0000000100008359 movl %eax, -0xc(%rbp) 000000010000835c cmpl $0x0, -0x8(%rbp) 0000000100008360 jge 0x10000836d 0000000100008366 movl $0x0, -0xc(%rbp) 000000010000836d movl -0x8(%rbp), %eax 0000000100008370 movq -0x40(%rbp), %rcx 0000000100008374 cmpl 0x28(%rcx), %eax 0000000100008377 jle 0x100008389 000000010000837d movl $0xffffffff, -0x4(%rbp) 0000000100008384 jmp 0x1000084b8 0000000100008389 movl -0xc(%rbp), %eax 000000010000838c movl %eax, -0x10(%rbp) 000000010000838f movl -0x10(%rbp), %eax 0000000100008392 movq -0x40(%rbp), %rcx 0000000100008396 cmpl 0x28(%rcx), %eax 0000000100008399 jge 0x1000084b1 000000010000839f movl $0x0, -0x14(%rbp) 00000001000083a6 movl -0x10(%rbp), %eax 00000001000083a9 movl %eax, -0x18(%rbp) 00000001000083ac xorl %eax, %eax 00000001000083ae movb %al, %cl 00000001000083b0 movl -0x14(%rbp), %eax 00000001000083b3 movq -0x48(%rbp), %rdx 00000001000083b7 cmpl 0x28(%rdx), %eax 00000001000083ba movb %cl, -0x49(%rbp) 00000001000083bd jge 0x100008461 00000001000083c3 movl -0x18(%rbp), %edi 00000001000083c6 movq -0x40(%rbp), %rax 00000001000083ca movq 0x28(%rax), %rcx 00000001000083ce movq %rsp, %rdx 00000001000083d1 movq %rcx, 0x28(%rdx) 00000001000083d5 movq 0x20(%rax), %rcx 00000001000083d9 movq %rcx, 0x20(%rdx) 00000001000083dd movq 0x18(%rax), %rcx 00000001000083e1 movq %rcx, 0x18(%rdx) 00000001000083e5 movq 0x10(%rax), %rcx 00000001000083e9 movq %rcx, 0x10(%rdx) 00000001000083ed movq (%rax), %rcx 00000001000083f0 movq 0x8(%rax), %rsi 00000001000083f4 movq %rsi, 0x8(%rdx) 00000001000083f8 movq %rcx, (%rdx) 00000001000083fb callq _ustring_at 0000000100008400 movq %rax, -0x28(%rbp) 0000000100008404 movl %edx, -0x20(%rbp) 0000000100008407 movl -0x14(%rbp), %edi 000000010000840a movq -0x48(%rbp), %rax 000000010000840e movq 0x28(%rax), %rcx 0000000100008412 movq %rsp, %rsi 0000000100008415 movq %rcx, 0x28(%rsi) 0000000100008419 movq 0x20(%rax), %rcx 000000010000841d movq %rcx, 0x20(%rsi) 0000000100008421 movq 0x18(%rax), %rcx 0000000100008425 movq %rcx, 0x18(%rsi) 0000000100008429 movq 0x10(%rax), %rcx 000000010000842d movq %rcx, 0x10(%rsi) 0000000100008431 movq (%rax), %rcx 0000000100008434 movq 0x8(%rax), %r8 0000000100008438 movq %r8, 0x8(%rsi) 000000010000843c movq %rcx, (%rsi) 000000010000843f callq _ustring_at 0000000100008444 movq %rax, -0x38(%rbp) 0000000100008448 movl %edx, -0x30(%rbp) 000000010000844b movq -0x28(%rbp), %rdi 000000010000844f movl -0x20(%rbp), %esi 0000000100008452 movq -0x38(%rbp), %rdx 0000000100008456 movl -0x30(%rbp), %ecx 0000000100008459 callq _string_eq 000000010000845e movb %al, -0x49(%rbp) 0000000100008461 movb -0x49(%rbp), %al 0000000100008464 testb $0x1, %al 0000000100008466 jne 0x100008471 000000010000846c jmp 0x100008488 0000000100008471 movl -0x14(%rbp), %eax 0000000100008474 addl $0x1, %eax 0000000100008477 movl %eax, -0x14(%rbp) 000000010000847a movl -0x18(%rbp), %eax 000000010000847d addl $0x1, %eax 0000000100008480 movl %eax, -0x18(%rbp) 0000000100008483 jmp 0x1000083ac 0000000100008488 movl -0x14(%rbp), %eax 000000010000848b movq -0x48(%rbp), %rcx 000000010000848f cmpl 0x28(%rcx), %eax 0000000100008492 jne 0x1000084a3 0000000100008498 movl -0x10(%rbp), %eax 000000010000849b movl %eax, -0x4(%rbp) 000000010000849e jmp 0x1000084b8 00000001000084a3 movl -0x10(%rbp), %eax 00000001000084a6 addl $0x1, %eax 00000001000084a9 movl %eax, -0x10(%rbp) 00000001000084ac jmp 0x10000838f 00000001000084b1 movl $0xffffffff, -0x4(%rbp) 00000001000084b8 movl -0x4(%rbp), %eax 00000001000084bb addq $0x80, %rsp 00000001000084c2 popq %rbp 00000001000084c3 retq 00000001000084c4 nopw %cs:(%rax,%rax) _ustring_at: 00000001000084d0 pushq %rbp 00000001000084d1 movq %rsp, %rbp 00000001000084d4 subq $0x60, %rsp 00000001000084d8 leaq 0x10(%rbp), %rax 00000001000084dc movl %edi, -0x14(%rbp) 00000001000084df cmpl $0x0, -0x14(%rbp) 00000001000084e3 movq %rax, -0x30(%rbp) 00000001000084e7 jl 0x1000084fd 00000001000084ed movl -0x14(%rbp), %eax 00000001000084f0 movq -0x30(%rbp), %rcx 00000001000084f4 cmpl 0x28(%rcx), %eax 00000001000084f7 jl 0x100008528 00000001000084fd leaq 0x25af(%rip), %rdi ## literal pool for: "string index out of range: %d / %d" 0000000100008504 movl -0x14(%rbp), %esi 0000000100008507 movq -0x30(%rbp), %rax 000000010000850b movl 0x18(%rax), %edx 000000010000850e movb $0x0, %al 0000000100008510 callq __STR 0000000100008515 movq %rax, -0x28(%rbp) 0000000100008519 movl %edx, -0x20(%rbp) 000000010000851c movq -0x28(%rbp), %rdi 0000000100008520 movl -0x20(%rbp), %esi 0000000100008523 callq _v_panic 0000000100008528 movl -0x14(%rbp), %eax 000000010000852b movl %eax, %ecx 000000010000852d incl %ecx 000000010000852f movq -0x30(%rbp), %rdx 0000000100008533 movq 0x28(%rdx), %rsi 0000000100008537 movq %rsp, %rdi 000000010000853a movq %rsi, 0x28(%rdi) 000000010000853e movq 0x20(%rdx), %rsi 0000000100008542 movq %rsi, 0x20(%rdi) 0000000100008546 movq 0x18(%rdx), %rsi 000000010000854a movq %rsi, 0x18(%rdi) 000000010000854e movq 0x10(%rdx), %rsi 0000000100008552 movq %rsi, 0x10(%rdi) 0000000100008556 movq (%rdx), %rsi 0000000100008559 movq 0x8(%rdx), %r8 000000010000855d movq %r8, 0x8(%rdi) 0000000100008561 movq %rsi, (%rdi) 0000000100008564 movl %eax, %edi 0000000100008566 movl %ecx, %esi 0000000100008568 callq _ustring_substr 000000010000856d movq %rax, -0x10(%rbp) 0000000100008571 movl %edx, -0x8(%rbp) 0000000100008574 movq -0x10(%rbp), %rax 0000000100008578 movl -0x8(%rbp), %edx 000000010000857b addq $0x60, %rsp 000000010000857f popq %rbp 0000000100008580 retq 0000000100008581 nopw %cs:(%rax,%rax) _ustring_count: 0000000100008590 pushq %rbp 0000000100008591 movq %rsp, %rbp 0000000100008594 subq $0x80, %rsp 000000010000859b leaq 0x40(%rbp), %rax 000000010000859f leaq 0x10(%rbp), %rcx 00000001000085a3 cmpl $0x0, 0x28(%rcx) 00000001000085a7 movq %rax, -0x18(%rbp) 00000001000085ab movq %rcx, -0x20(%rbp) 00000001000085af je 0x1000085c3 00000001000085b5 movq -0x18(%rbp), %rax 00000001000085b9 cmpl $0x0, 0x28(%rax) 00000001000085bd jne 0x1000085cf 00000001000085c3 movl $0x0, -0x4(%rbp) 00000001000085ca jmp 0x1000086a0 00000001000085cf movq -0x18(%rbp), %rax 00000001000085d3 movl 0x28(%rax), %ecx 00000001000085d6 movq -0x20(%rbp), %rdx 00000001000085da cmpl 0x28(%rdx), %ecx 00000001000085dd jle 0x1000085ef 00000001000085e3 movl $0x0, -0x4(%rbp) 00000001000085ea jmp 0x1000086a0 00000001000085ef movl $0x0, -0x8(%rbp) 00000001000085f6 movl $0x0, -0xc(%rbp) 00000001000085fd movl -0xc(%rbp), %edi 0000000100008600 movq -0x18(%rbp), %rax 0000000100008604 movq 0x28(%rax), %rcx 0000000100008608 movq %rsp, %rdx 000000010000860b movq %rcx, 0x58(%rdx) 000000010000860f movq 0x20(%rax), %rcx 0000000100008613 movq %rcx, 0x50(%rdx) 0000000100008617 movq 0x18(%rax), %rcx 000000010000861b movq %rcx, 0x48(%rdx) 000000010000861f movq 0x10(%rax), %rcx 0000000100008623 movq %rcx, 0x40(%rdx) 0000000100008627 movq (%rax), %rcx 000000010000862a movq 0x8(%rax), %rsi 000000010000862e movq %rsi, 0x38(%rdx) 0000000100008632 movq %rcx, 0x30(%rdx) 0000000100008636 movq -0x20(%rbp), %rcx 000000010000863a movq 0x28(%rcx), %rsi 000000010000863e movq %rsi, 0x28(%rdx) 0000000100008642 movq 0x20(%rcx), %rsi 0000000100008646 movq %rsi, 0x20(%rdx) 000000010000864a movq 0x18(%rcx), %rsi 000000010000864e movq %rsi, 0x18(%rdx) 0000000100008652 movq 0x10(%rcx), %rsi 0000000100008656 movq %rsi, 0x10(%rdx) 000000010000865a movq (%rcx), %rsi 000000010000865d movq 0x8(%rcx), %r8 0000000100008661 movq %r8, 0x8(%rdx) 0000000100008665 movq %rsi, (%rdx) 0000000100008668 callq _ustring_index_after 000000010000866d movl %eax, -0xc(%rbp) 0000000100008670 cmpl $-0x1, -0xc(%rbp) 0000000100008674 jne 0x100008685 000000010000867a movl -0x8(%rbp), %eax 000000010000867d movl %eax, -0x4(%rbp) 0000000100008680 jmp 0x1000086a0 0000000100008685 movq -0x18(%rbp), %rax 0000000100008689 movl 0x28(%rax), %ecx 000000010000868c addl -0xc(%rbp), %ecx 000000010000868f movl %ecx, -0xc(%rbp) 0000000100008692 movl -0x8(%rbp), %ecx 0000000100008695 addl $0x1, %ecx 0000000100008698 movl %ecx, -0x8(%rbp) 000000010000869b jmp 0x1000085fd 00000001000086a0 movl -0x4(%rbp), %eax 00000001000086a3 addq $0x80, %rsp 00000001000086aa popq %rbp 00000001000086ab retq 00000001000086ac nopl (%rax) _ustring_substr: 00000001000086b0 pushq %rbp 00000001000086b1 movq %rsp, %rbp 00000001000086b4 subq $0x60, %rsp 00000001000086b8 leaq 0x10(%rbp), %rax 00000001000086bc movl %edi, -0x14(%rbp) 00000001000086bf movl %esi, -0x18(%rbp) 00000001000086c2 movl -0x14(%rbp), %esi 00000001000086c5 cmpl -0x18(%rbp), %esi 00000001000086c8 movq %rax, -0x38(%rbp) 00000001000086cc jg 0x100008706 00000001000086d2 movl -0x14(%rbp), %eax 00000001000086d5 movq -0x38(%rbp), %rcx 00000001000086d9 cmpl 0x28(%rcx), %eax 00000001000086dc jg 0x100008706 00000001000086e2 movl -0x18(%rbp), %eax 00000001000086e5 movq -0x38(%rbp), %rcx 00000001000086e9 cmpl 0x28(%rcx), %eax 00000001000086ec jg 0x100008706 00000001000086f2 cmpl $0x0, -0x14(%rbp) 00000001000086f6 jl 0x100008706 00000001000086fc cmpl $0x0, -0x18(%rbp) 0000000100008700 jge 0x100008734 0000000100008706 leaq 0x2377(%rip), %rdi ## literal pool for: "substr(%d, %d) out of bounds (len=%d)" 000000010000870d movl -0x14(%rbp), %esi 0000000100008710 movl -0x18(%rbp), %edx 0000000100008713 movq -0x38(%rbp), %rax 0000000100008717 movl 0x28(%rax), %ecx 000000010000871a movb $0x0, %al 000000010000871c callq __STR 0000000100008721 movq %rax, -0x28(%rbp) 0000000100008725 movl %edx, -0x20(%rbp) 0000000100008728 movq -0x28(%rbp), %rdi 000000010000872c movl -0x20(%rbp), %esi 000000010000872f callq _v_panic 0000000100008734 movl -0x18(%rbp), %eax 0000000100008737 movq -0x38(%rbp), %rcx 000000010000873b cmpl 0x28(%rcx), %eax 000000010000873e jl 0x100008753 0000000100008744 movq -0x38(%rbp), %rax 0000000100008748 movl 0x8(%rax), %ecx 000000010000874b movl %ecx, -0x3c(%rbp) 000000010000874e jmp 0x100008781 0000000100008753 movq -0x38(%rbp), %rax 0000000100008757 addq $0x10, %rax 000000010000875b movl -0x18(%rbp), %edi 000000010000875e movq (%rax), %rcx 0000000100008761 movq %rcx, (%rsp) 0000000100008765 movq 0x8(%rax), %rcx 0000000100008769 movq %rcx, 0x8(%rsp) 000000010000876e movq 0x10(%rax), %rax 0000000100008772 movq %rax, 0x10(%rsp) 0000000100008777 callq _array_get 000000010000877c movl (%rax), %edi 000000010000877e movl %edi, -0x3c(%rbp) 0000000100008781 movl -0x3c(%rbp), %eax 0000000100008784 movl %eax, -0x2c(%rbp) 0000000100008787 movl -0x14(%rbp), %edi 000000010000878a movq -0x38(%rbp), %rcx 000000010000878e movq 0x20(%rcx), %rdx 0000000100008792 movq %rsp, %rsi 0000000100008795 movq %rdx, 0x10(%rsi) 0000000100008799 movq 0x10(%rcx), %rdx 000000010000879d movq 0x18(%rcx), %r8 00000001000087a1 movq %r8, 0x8(%rsi) 00000001000087a5 movq %rdx, (%rsi) 00000001000087a8 callq _array_get 00000001000087ad movl (%rax), %edx 00000001000087af movl -0x2c(%rbp), %ecx 00000001000087b2 movq -0x38(%rbp), %rax 00000001000087b6 movq (%rax), %rdi 00000001000087b9 movl 0x8(%rax), %esi 00000001000087bc callq _string_substr 00000001000087c1 movq %rax, -0x10(%rbp) 00000001000087c5 movl %edx, -0x8(%rbp) 00000001000087c8 movq -0x10(%rbp), %rax 00000001000087cc movl -0x8(%rbp), %edx 00000001000087cf addq $0x60, %rsp 00000001000087d3 popq %rbp 00000001000087d4 retq 00000001000087d5 nopw %cs:(%rax,%rax) _ustring_left: 00000001000087e0 pushq %rbp 00000001000087e1 movq %rsp, %rbp 00000001000087e4 subq $0x60, %rsp 00000001000087e8 leaq 0x10(%rbp), %rax 00000001000087ec movl %edi, -0x14(%rbp) 00000001000087ef movl -0x14(%rbp), %edi 00000001000087f2 cmpl 0x28(%rax), %edi 00000001000087f5 movq %rax, -0x20(%rbp) 00000001000087f9 jl 0x100008817 00000001000087ff movq -0x20(%rbp), %rax 0000000100008803 movq (%rax), %rcx 0000000100008806 movq %rcx, -0x10(%rbp) 000000010000880a movq 0x8(%rax), %rcx 000000010000880e movq %rcx, -0x8(%rbp) 0000000100008812 jmp 0x100008862 0000000100008817 xorl %eax, %eax 0000000100008819 movl -0x14(%rbp), %esi 000000010000881c movq -0x20(%rbp), %rcx 0000000100008820 movq 0x28(%rcx), %rdx 0000000100008824 movq %rsp, %rdi 0000000100008827 movq %rdx, 0x28(%rdi) 000000010000882b movq 0x20(%rcx), %rdx 000000010000882f movq %rdx, 0x20(%rdi) 0000000100008833 movq 0x18(%rcx), %rdx 0000000100008837 movq %rdx, 0x18(%rdi) 000000010000883b movq 0x10(%rcx), %rdx 000000010000883f movq %rdx, 0x10(%rdi) 0000000100008843 movq (%rcx), %rdx 0000000100008846 movq 0x8(%rcx), %r8 000000010000884a movq %r8, 0x8(%rdi) 000000010000884e movq %rdx, (%rdi) 0000000100008851 xorl %edi, %edi 0000000100008853 movl %eax, -0x24(%rbp) 0000000100008856 callq _ustring_substr 000000010000885b movq %rax, -0x10(%rbp) 000000010000885f movl %edx, -0x8(%rbp) 0000000100008862 movq -0x10(%rbp), %rax 0000000100008866 movl -0x8(%rbp), %edx 0000000100008869 addq $0x60, %rsp 000000010000886d popq %rbp 000000010000886e retq 000000010000886f nop _ustring_right: 0000000100008870 pushq %rbp 0000000100008871 movq %rsp, %rbp 0000000100008874 subq $0x50, %rsp 0000000100008878 leaq 0x10(%rbp), %rax 000000010000887c movl %edi, -0x14(%rbp) 000000010000887f movl -0x14(%rbp), %edi 0000000100008882 cmpl 0x28(%rax), %edi 0000000100008885 movq %rax, -0x20(%rbp) 0000000100008889 jl 0x1000088a7 000000010000888f leaq 0x2123(%rip), %rdi ## literal pool for: "" 0000000100008896 callq _tos3 000000010000889b movq %rax, -0x10(%rbp) 000000010000889f movl %edx, -0x8(%rbp) 00000001000088a2 jmp 0x1000088ee 00000001000088a7 movl -0x14(%rbp), %edi 00000001000088aa movq -0x20(%rbp), %rax 00000001000088ae movl 0x28(%rax), %esi 00000001000088b1 movq 0x28(%rax), %rcx 00000001000088b5 movq %rsp, %rdx 00000001000088b8 movq %rcx, 0x28(%rdx) 00000001000088bc movq 0x20(%rax), %rcx 00000001000088c0 movq %rcx, 0x20(%rdx) 00000001000088c4 movq 0x18(%rax), %rcx 00000001000088c8 movq %rcx, 0x18(%rdx) 00000001000088cc movq 0x10(%rax), %rcx 00000001000088d0 movq %rcx, 0x10(%rdx) 00000001000088d4 movq (%rax), %rcx 00000001000088d7 movq 0x8(%rax), %r8 00000001000088db movq %r8, 0x8(%rdx) 00000001000088df movq %rcx, (%rdx) 00000001000088e2 callq _ustring_substr 00000001000088e7 movq %rax, -0x10(%rbp) 00000001000088eb movl %edx, -0x8(%rbp) 00000001000088ee movq -0x10(%rbp), %rax 00000001000088f2 movl -0x8(%rbp), %edx 00000001000088f5 addq $0x50, %rsp 00000001000088f9 popq %rbp 00000001000088fa retq 00000001000088fb nopl (%rax,%rax) _string_at: 0000000100008900 pushq %rbp 0000000100008901 movq %rsp, %rbp 0000000100008904 subq $0x30, %rsp 0000000100008908 movq %rdi, -0x10(%rbp) 000000010000890c movl %esi, -0x8(%rbp) 000000010000890f movl %edx, -0x14(%rbp) 0000000100008912 cmpl $0x0, -0x14(%rbp) 0000000100008916 jl 0x100008928 000000010000891c movl -0x14(%rbp), %eax 000000010000891f cmpl -0x8(%rbp), %eax 0000000100008922 jl 0x10000894f 0000000100008928 leaq 0x2184(%rip), %rdi ## literal pool for: "string index out of range: %d / %d" 000000010000892f movl -0x14(%rbp), %esi 0000000100008932 movl -0x8(%rbp), %edx 0000000100008935 movb $0x0, %al 0000000100008937 callq __STR 000000010000893c movq %rax, -0x28(%rbp) 0000000100008940 movl %edx, -0x20(%rbp) 0000000100008943 movq -0x28(%rbp), %rdi 0000000100008947 movl -0x20(%rbp), %esi 000000010000894a callq _v_panic 000000010000894f movq -0x10(%rbp), %rax 0000000100008953 movslq -0x14(%rbp), %rcx 0000000100008957 movzbl (%rax,%rcx), %eax 000000010000895b addq $0x30, %rsp 000000010000895f popq %rbp 0000000100008960 retq 0000000100008961 nopw %cs:(%rax,%rax) _v_ustring_free: 0000000100008970 pushq %rbp 0000000100008971 movq %rsp, %rbp 0000000100008974 subq $0x20, %rsp 0000000100008978 leaq 0x10(%rbp), %rax 000000010000897c addq $0x10, %rax 0000000100008980 movq (%rax), %rcx 0000000100008983 movq %rcx, (%rsp) 0000000100008987 movq 0x8(%rax), %rcx 000000010000898b movq %rcx, 0x8(%rsp) 0000000100008990 movq 0x10(%rax), %rax 0000000100008994 movq %rax, 0x10(%rsp) 0000000100008999 callq _v_array_free 000000010000899e addq $0x20, %rsp 00000001000089a2 popq %rbp 00000001000089a3 retq 00000001000089a4 nopw %cs:(%rax,%rax) _byte_is_digit: 00000001000089b0 pushq %rbp 00000001000089b1 movq %rsp, %rbp 00000001000089b4 movb %dil, %al 00000001000089b7 xorl %edi, %edi 00000001000089b9 movb %dil, %cl 00000001000089bc movb %al, -0x1(%rbp) 00000001000089bf movzbl -0x1(%rbp), %edi 00000001000089c3 cmpl $0x30, %edi 00000001000089c6 movb %cl, -0x2(%rbp) 00000001000089c9 jl 0x1000089dc 00000001000089cf movzbl -0x1(%rbp), %eax 00000001000089d3 cmpl $0x39, %eax 00000001000089d6 setle %cl 00000001000089d9 movb %cl, -0x2(%rbp) 00000001000089dc movb -0x2(%rbp), %al 00000001000089df andb $0x1, %al 00000001000089e1 movzbl %al, %eax 00000001000089e4 popq %rbp 00000001000089e5 retq 00000001000089e6 nopw %cs:(%rax,%rax) _byte_is_hex_digit: 00000001000089f0 pushq %rbp 00000001000089f1 movq %rsp, %rbp 00000001000089f4 subq $0x10, %rsp 00000001000089f8 movb %dil, %al 00000001000089fb movb %al, -0x1(%rbp) 00000001000089fe movzbl -0x1(%rbp), %edi 0000000100008a02 callq _byte_is_digit 0000000100008a07 movb $0x1, %cl 0000000100008a09 testb $0x1, %al 0000000100008a0b movb %cl, -0x2(%rbp) 0000000100008a0e jne 0x100008a5a 0000000100008a14 movzbl -0x1(%rbp), %eax 0000000100008a18 cmpl $0x61, %eax 0000000100008a1b jl 0x100008a33 0000000100008a21 movb $0x1, %al 0000000100008a23 movzbl -0x1(%rbp), %ecx 0000000100008a27 cmpl $0x66, %ecx 0000000100008a2a movb %al, -0x2(%rbp) 0000000100008a2d jle 0x100008a5a 0000000100008a33 xorl %eax, %eax 0000000100008a35 movb %al, %cl 0000000100008a37 movzbl -0x1(%rbp), %eax 0000000100008a3b cmpl $0x41, %eax 0000000100008a3e movb %cl, -0x3(%rbp) 0000000100008a41 jl 0x100008a54 0000000100008a47 movzbl -0x1(%rbp), %eax 0000000100008a4b cmpl $0x46, %eax 0000000100008a4e setle %cl 0000000100008a51 movb %cl, -0x3(%rbp) 0000000100008a54 movb -0x3(%rbp), %al 0000000100008a57 movb %al, -0x2(%rbp) 0000000100008a5a movb -0x2(%rbp), %al 0000000100008a5d andb $0x1, %al 0000000100008a5f movzbl %al, %eax 0000000100008a62 addq $0x10, %rsp 0000000100008a66 popq %rbp 0000000100008a67 retq 0000000100008a68 nopl (%rax,%rax) _byte_is_oct_digit: 0000000100008a70 pushq %rbp 0000000100008a71 movq %rsp, %rbp 0000000100008a74 movb %dil, %al 0000000100008a77 xorl %edi, %edi 0000000100008a79 movb %dil, %cl 0000000100008a7c movb %al, -0x1(%rbp) 0000000100008a7f movzbl -0x1(%rbp), %edi 0000000100008a83 cmpl $0x30, %edi 0000000100008a86 movb %cl, -0x2(%rbp) 0000000100008a89 jl 0x100008a9c 0000000100008a8f movzbl -0x1(%rbp), %eax 0000000100008a93 cmpl $0x37, %eax 0000000100008a96 setle %cl 0000000100008a99 movb %cl, -0x2(%rbp) 0000000100008a9c movb -0x2(%rbp), %al 0000000100008a9f andb $0x1, %al 0000000100008aa1 movzbl %al, %eax 0000000100008aa4 popq %rbp 0000000100008aa5 retq 0000000100008aa6 nopw %cs:(%rax,%rax) _byte_is_letter: 0000000100008ab0 pushq %rbp 0000000100008ab1 movq %rsp, %rbp 0000000100008ab4 movb %dil, %al 0000000100008ab7 movb %al, -0x1(%rbp) 0000000100008aba movzbl -0x1(%rbp), %edi 0000000100008abe cmpl $0x61, %edi 0000000100008ac1 jl 0x100008ad9 0000000100008ac7 movb $0x1, %al 0000000100008ac9 movzbl -0x1(%rbp), %ecx 0000000100008acd cmpl $0x7a, %ecx 0000000100008ad0 movb %al, -0x2(%rbp) 0000000100008ad3 jle 0x100008b00 0000000100008ad9 xorl %eax, %eax 0000000100008adb movb %al, %cl 0000000100008add movzbl -0x1(%rbp), %eax 0000000100008ae1 cmpl $0x41, %eax 0000000100008ae4 movb %cl, -0x3(%rbp) 0000000100008ae7 jl 0x100008afa 0000000100008aed movzbl -0x1(%rbp), %eax 0000000100008af1 cmpl $0x5a, %eax 0000000100008af4 setle %cl 0000000100008af7 movb %cl, -0x3(%rbp) 0000000100008afa movb -0x3(%rbp), %al 0000000100008afd movb %al, -0x2(%rbp) 0000000100008b00 movb -0x2(%rbp), %al 0000000100008b03 andb $0x1, %al 0000000100008b05 movzbl %al, %eax 0000000100008b08 popq %rbp 0000000100008b09 retq 0000000100008b0a nopw (%rax,%rax) _v_string_free: 0000000100008b10 pushq %rbp 0000000100008b11 movq %rsp, %rbp 0000000100008b14 subq $0x10, %rsp 0000000100008b18 movq %rdi, -0x10(%rbp) 0000000100008b1c movl %esi, -0x8(%rbp) 0000000100008b1f movq -0x10(%rbp), %rdi 0000000100008b23 callq _v_free 0000000100008b28 addq $0x10, %rsp 0000000100008b2c popq %rbp 0000000100008b2d retq 0000000100008b2e nop _string_all_before: 0000000100008b30 pushq %rbp 0000000100008b31 movq %rsp, %rbp 0000000100008b34 subq $0x40, %rsp 0000000100008b38 movq %rdi, -0x20(%rbp) 0000000100008b3c movl %esi, -0x18(%rbp) 0000000100008b3f movq %rdx, -0x30(%rbp) 0000000100008b43 movl %ecx, -0x28(%rbp) 0000000100008b46 movq -0x20(%rbp), %rdi 0000000100008b4a movl -0x18(%rbp), %esi 0000000100008b4d movq -0x30(%rbp), %rdx 0000000100008b51 movl -0x28(%rbp), %ecx 0000000100008b54 callq _string_index 0000000100008b59 movl %eax, -0x34(%rbp) 0000000100008b5c cmpl $-0x1, -0x34(%rbp) 0000000100008b60 jne 0x100008b7b 0000000100008b66 movq -0x20(%rbp), %rax 0000000100008b6a movq %rax, -0x10(%rbp) 0000000100008b6e movq -0x18(%rbp), %rax 0000000100008b72 movq %rax, -0x8(%rbp) 0000000100008b76 jmp 0x100008b91 0000000100008b7b movl -0x34(%rbp), %edx 0000000100008b7e movq -0x20(%rbp), %rdi 0000000100008b82 movl -0x18(%rbp), %esi 0000000100008b85 callq _string_left 0000000100008b8a movq %rax, -0x10(%rbp) 0000000100008b8e movl %edx, -0x8(%rbp) 0000000100008b91 movq -0x10(%rbp), %rax 0000000100008b95 movl -0x8(%rbp), %edx 0000000100008b98 addq $0x40, %rsp 0000000100008b9c popq %rbp 0000000100008b9d retq 0000000100008b9e nop _string_all_before_last: 0000000100008ba0 pushq %rbp 0000000100008ba1 movq %rsp, %rbp 0000000100008ba4 subq $0x40, %rsp 0000000100008ba8 movq %rdi, -0x20(%rbp) 0000000100008bac movl %esi, -0x18(%rbp) 0000000100008baf movq %rdx, -0x30(%rbp) 0000000100008bb3 movl %ecx, -0x28(%rbp) 0000000100008bb6 movq -0x20(%rbp), %rdi 0000000100008bba movl -0x18(%rbp), %esi 0000000100008bbd movq -0x30(%rbp), %rdx 0000000100008bc1 movl -0x28(%rbp), %ecx 0000000100008bc4 callq _string_last_index 0000000100008bc9 movl %eax, -0x34(%rbp) 0000000100008bcc cmpl $-0x1, -0x34(%rbp) 0000000100008bd0 jne 0x100008beb 0000000100008bd6 movq -0x20(%rbp), %rax 0000000100008bda movq %rax, -0x10(%rbp) 0000000100008bde movq -0x18(%rbp), %rax 0000000100008be2 movq %rax, -0x8(%rbp) 0000000100008be6 jmp 0x100008c01 0000000100008beb movl -0x34(%rbp), %edx 0000000100008bee movq -0x20(%rbp), %rdi 0000000100008bf2 movl -0x18(%rbp), %esi 0000000100008bf5 callq _string_left 0000000100008bfa movq %rax, -0x10(%rbp) 0000000100008bfe movl %edx, -0x8(%rbp) 0000000100008c01 movq -0x10(%rbp), %rax 0000000100008c05 movl -0x8(%rbp), %edx 0000000100008c08 addq $0x40, %rsp 0000000100008c0c popq %rbp 0000000100008c0d retq 0000000100008c0e nop _string_all_after: 0000000100008c10 pushq %rbp 0000000100008c11 movq %rsp, %rbp 0000000100008c14 subq $0x40, %rsp 0000000100008c18 movq %rdi, -0x20(%rbp) 0000000100008c1c movl %esi, -0x18(%rbp) 0000000100008c1f movq %rdx, -0x30(%rbp) 0000000100008c23 movl %ecx, -0x28(%rbp) 0000000100008c26 movq -0x20(%rbp), %rdi 0000000100008c2a movl -0x18(%rbp), %esi 0000000100008c2d movq -0x30(%rbp), %rdx 0000000100008c31 movl -0x28(%rbp), %ecx 0000000100008c34 callq _string_last_index 0000000100008c39 movl %eax, -0x34(%rbp) 0000000100008c3c cmpl $-0x1, -0x34(%rbp) 0000000100008c40 jne 0x100008c5b 0000000100008c46 movq -0x20(%rbp), %rax 0000000100008c4a movq %rax, -0x10(%rbp) 0000000100008c4e movq -0x18(%rbp), %rax 0000000100008c52 movq %rax, -0x8(%rbp) 0000000100008c56 jmp 0x100008c76 0000000100008c5b movl -0x34(%rbp), %eax 0000000100008c5e addl -0x28(%rbp), %eax 0000000100008c61 movq -0x20(%rbp), %rdi 0000000100008c65 movl -0x18(%rbp), %esi 0000000100008c68 movl %eax, %edx 0000000100008c6a callq _string_right 0000000100008c6f movq %rax, -0x10(%rbp) 0000000100008c73 movl %edx, -0x8(%rbp) 0000000100008c76 movq -0x10(%rbp), %rax 0000000100008c7a movl -0x8(%rbp), %edx 0000000100008c7d addq $0x40, %rsp 0000000100008c81 popq %rbp 0000000100008c82 retq 0000000100008c83 nopw %cs:(%rax,%rax) _array_string_join_lines: 0000000100008c90 pushq %rbp 0000000100008c91 movq %rsp, %rbp 0000000100008c94 subq $0x40, %rsp 0000000100008c98 leaq 0x10(%rbp), %rax 0000000100008c9c leaq 0x1e33(%rip), %rdi ## literal pool for: "\n" 0000000100008ca3 movq %rax, -0x28(%rbp) 0000000100008ca7 callq _tos3 0000000100008cac movq %rax, -0x20(%rbp) 0000000100008cb0 movl %edx, -0x18(%rbp) 0000000100008cb3 movq -0x20(%rbp), %rdi 0000000100008cb7 movl -0x18(%rbp), %esi 0000000100008cba movq -0x28(%rbp), %rax 0000000100008cbe movq 0x10(%rax), %rcx 0000000100008cc2 movq %rsp, %r8 0000000100008cc5 movq %rcx, 0x10(%r8) 0000000100008cc9 movq (%rax), %rcx 0000000100008ccc movq 0x8(%rax), %r9 0000000100008cd0 movq %r9, 0x8(%r8) 0000000100008cd4 movq %rcx, (%r8) 0000000100008cd7 callq _array_string_join 0000000100008cdc movq %rax, -0x10(%rbp) 0000000100008ce0 movl %edx, -0x8(%rbp) 0000000100008ce3 movq -0x10(%rbp), %rax 0000000100008ce7 movl -0x8(%rbp), %edx 0000000100008cea addq $0x40, %rsp 0000000100008cee popq %rbp 0000000100008cef retq _string_reverse: 0000000100008cf0 pushq %rbp 0000000100008cf1 movq %rsp, %rbp 0000000100008cf4 subq $0x30, %rsp 0000000100008cf8 movq %rdi, -0x20(%rbp) 0000000100008cfc movl %esi, -0x18(%rbp) 0000000100008cff movl -0x18(%rbp), %edi 0000000100008d02 callq _v_malloc 0000000100008d07 movq %rax, -0x10(%rbp) 0000000100008d0b movl -0x18(%rbp), %esi 0000000100008d0e movl %esi, -0x8(%rbp) 0000000100008d11 movl -0x18(%rbp), %esi 0000000100008d14 subl $0x1, %esi 0000000100008d17 movl %esi, -0x24(%rbp) 0000000100008d1a cmpl $0x0, -0x24(%rbp) 0000000100008d1e jl 0x100008d50 0000000100008d24 movq -0x20(%rbp), %rax 0000000100008d28 movslq -0x24(%rbp), %rcx 0000000100008d2c movb (%rax,%rcx), %dl 0000000100008d2f movq -0x10(%rbp), %rax 0000000100008d33 movl -0x18(%rbp), %esi 0000000100008d36 subl -0x24(%rbp), %esi 0000000100008d39 subl $0x1, %esi 0000000100008d3c movslq %esi, %rcx 0000000100008d3f movb %dl, (%rax,%rcx) 0000000100008d42 movl -0x24(%rbp), %eax 0000000100008d45 addl $-0x1, %eax 0000000100008d48 movl %eax, -0x24(%rbp) 0000000100008d4b jmp 0x100008d1a 0000000100008d50 movq -0x10(%rbp), %rax 0000000100008d54 movl -0x8(%rbp), %edx 0000000100008d57 addq $0x30, %rsp 0000000100008d5b popq %rbp 0000000100008d5c retq 0000000100008d5d nopl (%rax) _string_limit: 0000000100008d60 pushq %rbp 0000000100008d61 movq %rsp, %rbp 0000000100008d64 subq $0xa0, %rsp 0000000100008d6b leaq -0x58(%rbp), %rax 0000000100008d6f movq %rdi, -0x20(%rbp) 0000000100008d73 movl %esi, -0x18(%rbp) 0000000100008d76 movl %edx, -0x24(%rbp) 0000000100008d79 movq -0x20(%rbp), %rsi 0000000100008d7d movl -0x18(%rbp), %edx 0000000100008d80 movq %rax, %rdi 0000000100008d83 callq _string_ustring 0000000100008d88 movl -0x30(%rbp), %edx 0000000100008d8b cmpl -0x24(%rbp), %edx 0000000100008d8e jg 0x100008da9 0000000100008d94 movq -0x20(%rbp), %rax 0000000100008d98 movq %rax, -0x10(%rbp) 0000000100008d9c movq -0x18(%rbp), %rax 0000000100008da0 movq %rax, -0x8(%rbp) 0000000100008da4 jmp 0x100008df9 0000000100008da9 leaq -0x58(%rbp), %rax 0000000100008dad xorl %ecx, %ecx 0000000100008daf movl -0x24(%rbp), %esi 0000000100008db2 movq -0x30(%rbp), %rdx 0000000100008db6 movq %rsp, %rdi 0000000100008db9 movq %rdx, 0x28(%rdi) 0000000100008dbd movq -0x38(%rbp), %rdx 0000000100008dc1 movq %rdx, 0x20(%rdi) 0000000100008dc5 movq -0x40(%rbp), %rdx 0000000100008dc9 movq %rdx, 0x18(%rdi) 0000000100008dcd movq -0x48(%rbp), %rdx 0000000100008dd1 movq %rdx, 0x10(%rdi) 0000000100008dd5 movq -0x58(%rbp), %rdx 0000000100008dd9 movq -0x50(%rbp), %r8 0000000100008ddd movq %r8, 0x8(%rdi) 0000000100008de1 movq %rdx, (%rdi) 0000000100008de4 xorl %edi, %edi 0000000100008de6 movq %rax, -0x60(%rbp) 0000000100008dea movl %ecx, -0x64(%rbp) 0000000100008ded callq _ustring_substr 0000000100008df2 movq %rax, -0x10(%rbp) 0000000100008df6 movl %edx, -0x8(%rbp) 0000000100008df9 movq -0x10(%rbp), %rax 0000000100008dfd movl -0x8(%rbp), %edx 0000000100008e00 addq $0xa0, %rsp 0000000100008e07 popq %rbp 0000000100008e08 retq 0000000100008e09 nopl (%rax) _byte_is_white: 0000000100008e10 pushq %rbp 0000000100008e11 movq %rsp, %rbp 0000000100008e14 movb %dil, %al 0000000100008e17 movb $0x1, %cl 0000000100008e19 movb %al, -0x1(%rbp) 0000000100008e1c movzbl -0x1(%rbp), %edi 0000000100008e20 movl %edi, -0x8(%rbp) 0000000100008e23 cmpl $0xa, -0x8(%rbp) 0000000100008e27 movb %cl, -0x9(%rbp) 0000000100008e2a je 0x100008e6a 0000000100008e30 movb $0x1, %al 0000000100008e32 cmpl $0x20, -0x8(%rbp) 0000000100008e36 movb %al, -0x9(%rbp) 0000000100008e39 je 0x100008e6a 0000000100008e3f movb $0x1, %al 0000000100008e41 cmpl $0x9, -0x8(%rbp) 0000000100008e45 movb %al, -0x9(%rbp) 0000000100008e48 je 0x100008e6a 0000000100008e4e movb $0x1, %al 0000000100008e50 cmpl $0xd, -0x8(%rbp) 0000000100008e54 movb %al, -0x9(%rbp) 0000000100008e57 je 0x100008e6a 0000000100008e5d movzbl -0x1(%rbp), %eax 0000000100008e61 cmpl $0xd, %eax 0000000100008e64 sete %cl 0000000100008e67 movb %cl, -0x9(%rbp) 0000000100008e6a movb -0x9(%rbp), %al 0000000100008e6d andb $0x1, %al 0000000100008e6f movzbl %al, %eax 0000000100008e72 popq %rbp 0000000100008e73 retq 0000000100008e74 nopw %cs:(%rax,%rax) _string_repeat: 0000000100008e80 pushq %rbp 0000000100008e81 movq %rsp, %rbp 0000000100008e84 subq $0x50, %rsp 0000000100008e88 movq %rdi, -0x20(%rbp) 0000000100008e8c movl %esi, -0x18(%rbp) 0000000100008e8f movl %edx, -0x24(%rbp) 0000000100008e92 cmpl $0x1, -0x24(%rbp) 0000000100008e96 jg 0x100008eb1 0000000100008e9c movq -0x20(%rbp), %rax 0000000100008ea0 movq %rax, -0x10(%rbp) 0000000100008ea4 movq -0x18(%rbp), %rax 0000000100008ea8 movq %rax, -0x8(%rbp) 0000000100008eac jmp 0x100008f68 0000000100008eb1 movl -0x18(%rbp), %eax 0000000100008eb4 imull -0x24(%rbp), %eax 0000000100008eb8 addl $0x1, %eax 0000000100008ebb movl %eax, %edi 0000000100008ebd callq _v_malloc 0000000100008ec2 movq %rax, -0x30(%rbp) 0000000100008ec6 movl $0x0, -0x34(%rbp) 0000000100008ecd movl -0x34(%rbp), %edi 0000000100008ed0 movl %edi, -0x38(%rbp) 0000000100008ed3 movl -0x38(%rbp), %eax 0000000100008ed6 cmpl -0x24(%rbp), %eax 0000000100008ed9 jge 0x100008f46 0000000100008edf movl -0x38(%rbp), %eax 0000000100008ee2 movl %eax, -0x3c(%rbp) 0000000100008ee5 movl $0x0, -0x40(%rbp) 0000000100008eec movl -0x40(%rbp), %eax 0000000100008eef movl %eax, -0x44(%rbp) 0000000100008ef2 movl -0x44(%rbp), %eax 0000000100008ef5 cmpl -0x18(%rbp), %eax 0000000100008ef8 jge 0x100008f33 0000000100008efe movl -0x44(%rbp), %eax 0000000100008f01 movl %eax, -0x48(%rbp) 0000000100008f04 movq -0x20(%rbp), %rcx 0000000100008f08 movslq -0x48(%rbp), %rdx 0000000100008f0c movb (%rcx,%rdx), %sil 0000000100008f10 movq -0x30(%rbp), %rcx 0000000100008f14 movl -0x3c(%rbp), %eax 0000000100008f17 imull -0x18(%rbp), %eax 0000000100008f1b addl -0x48(%rbp), %eax 0000000100008f1e movslq %eax, %rdx 0000000100008f21 movb %sil, (%rcx,%rdx) 0000000100008f25 movl -0x44(%rbp), %eax 0000000100008f28 addl $0x1, %eax 0000000100008f2b movl %eax, -0x44(%rbp) 0000000100008f2e jmp 0x100008ef2 0000000100008f33 jmp 0x100008f38 0000000100008f38 movl -0x38(%rbp), %eax 0000000100008f3b addl $0x1, %eax 0000000100008f3e movl %eax, -0x38(%rbp) 0000000100008f41 jmp 0x100008ed3 0000000100008f46 movq -0x30(%rbp), %rax 0000000100008f4a movl -0x18(%rbp), %ecx 0000000100008f4d imull -0x24(%rbp), %ecx 0000000100008f51 movslq %ecx, %rdx 0000000100008f54 movb $0x0, (%rax,%rdx) 0000000100008f58 movq -0x30(%rbp), %rdi 0000000100008f5c callq _tos2 0000000100008f61 movq %rax, -0x10(%rbp) 0000000100008f65 movl %edx, -0x8(%rbp) 0000000100008f68 movq -0x10(%rbp), %rax 0000000100008f6c movl -0x8(%rbp), %edx 0000000100008f6f addq $0x50, %rsp 0000000100008f73 popq %rbp 0000000100008f74 retq 0000000100008f75 nopw %cs:(%rax,%rax) _utf32_to_str: 0000000100008f80 pushq %rbp 0000000100008f81 movq %rsp, %rbp 0000000100008f84 subq $0x20, %rsp 0000000100008f88 movl $0x5, %eax 0000000100008f8d movl %edi, -0x14(%rbp) 0000000100008f90 movl -0x14(%rbp), %edi 0000000100008f93 movl %edi, -0x18(%rbp) 0000000100008f96 movl %eax, %edi 0000000100008f98 callq _v_malloc 0000000100008f9d movq %rax, -0x20(%rbp) 0000000100008fa1 cmpl $0x7f, -0x18(%rbp) 0000000100008fa5 jg 0x100008fd0 0000000100008fab movl $0x1, %esi 0000000100008fb0 movl -0x18(%rbp), %eax 0000000100008fb3 movb %al, %cl 0000000100008fb5 movq -0x20(%rbp), %rdx 0000000100008fb9 movb %cl, (%rdx) 0000000100008fbb movq -0x20(%rbp), %rdi 0000000100008fbf callq _tos 0000000100008fc4 movq %rax, -0x10(%rbp) 0000000100008fc8 movl %edx, -0x8(%rbp) 0000000100008fcb jmp 0x100009112 0000000100008fd0 cmpl $0x7ff, -0x18(%rbp) 0000000100008fd7 jg 0x10000901e 0000000100008fdd movl $0x2, %esi 0000000100008fe2 movl -0x18(%rbp), %eax 0000000100008fe5 sarl $0x6, %eax 0000000100008fe8 orl $0xc0, %eax 0000000100008fed movb %al, %cl 0000000100008fef movq -0x20(%rbp), %rdx 0000000100008ff3 movb %cl, (%rdx) 0000000100008ff5 movl -0x18(%rbp), %eax 0000000100008ff8 andl $0x3f, %eax 0000000100008ffb orl $0x80, %eax 0000000100009000 movb %al, %cl 0000000100009002 movq -0x20(%rbp), %rdx 0000000100009006 movb %cl, 0x1(%rdx) 0000000100009009 movq -0x20(%rbp), %rdi 000000010000900d callq _tos 0000000100009012 movq %rax, -0x10(%rbp) 0000000100009016 movl %edx, -0x8(%rbp) 0000000100009019 jmp 0x100009112 000000010000901e cmpl $0xffff, -0x18(%rbp) 0000000100009025 jg 0x100009083 000000010000902b movl $0x3, %esi 0000000100009030 movl -0x18(%rbp), %eax 0000000100009033 sarl $0xc, %eax 0000000100009036 orl $0xe0, %eax 000000010000903b movb %al, %cl 000000010000903d movq -0x20(%rbp), %rdx 0000000100009041 movb %cl, (%rdx) 0000000100009043 movl -0x18(%rbp), %eax 0000000100009046 sarl $0x6, %eax 0000000100009049 andl $0x3f, %eax 000000010000904c orl $0x80, %eax 0000000100009051 movb %al, %cl 0000000100009053 movq -0x20(%rbp), %rdx 0000000100009057 movb %cl, 0x1(%rdx) 000000010000905a movl -0x18(%rbp), %eax 000000010000905d andl $0x3f, %eax 0000000100009060 orl $0x80, %eax 0000000100009065 movb %al, %cl 0000000100009067 movq -0x20(%rbp), %rdx 000000010000906b movb %cl, 0x2(%rdx) 000000010000906e movq -0x20(%rbp), %rdi 0000000100009072 callq _tos 0000000100009077 movq %rax, -0x10(%rbp) 000000010000907b movl %edx, -0x8(%rbp) 000000010000907e jmp 0x100009112 0000000100009083 cmpl $0x10ffff, -0x18(%rbp) 000000010000908a jg 0x1000090ff 0000000100009090 movl $0x4, %esi 0000000100009095 movl -0x18(%rbp), %eax 0000000100009098 sarl $0x12, %eax 000000010000909b orl $0xf0, %eax 00000001000090a0 movb %al, %cl 00000001000090a2 movq -0x20(%rbp), %rdx 00000001000090a6 movb %cl, (%rdx) 00000001000090a8 movl -0x18(%rbp), %eax 00000001000090ab sarl $0xc, %eax 00000001000090ae andl $0x3f, %eax 00000001000090b1 orl $0x80, %eax 00000001000090b6 movb %al, %cl 00000001000090b8 movq -0x20(%rbp), %rdx 00000001000090bc movb %cl, 0x1(%rdx) 00000001000090bf movl -0x18(%rbp), %eax 00000001000090c2 sarl $0x6, %eax 00000001000090c5 andl $0x3f, %eax 00000001000090c8 orl $0x80, %eax 00000001000090cd movb %al, %cl 00000001000090cf movq -0x20(%rbp), %rdx 00000001000090d3 movb %cl, 0x2(%rdx) 00000001000090d6 movl -0x18(%rbp), %eax 00000001000090d9 andl $0x3f, %eax 00000001000090dc orl $0x80, %eax 00000001000090e1 movb %al, %cl 00000001000090e3 movq -0x20(%rbp), %rdx 00000001000090e7 movb %cl, 0x3(%rdx) 00000001000090ea movq -0x20(%rbp), %rdi 00000001000090ee callq _tos 00000001000090f3 movq %rax, -0x10(%rbp) 00000001000090f7 movl %edx, -0x8(%rbp) 00000001000090fa jmp 0x100009112 00000001000090ff leaq 0x18b3(%rip), %rdi ## literal pool for: "" 0000000100009106 callq _tos3 000000010000910b movq %rax, -0x10(%rbp) 000000010000910f movl %edx, -0x8(%rbp) 0000000100009112 movq -0x10(%rbp), %rax 0000000100009116 movl -0x8(%rbp), %edx 0000000100009119 addq $0x20, %rsp 000000010000911d popq %rbp 000000010000911e retq 000000010000911f nop _utf32_to_str_no_malloc: 0000000100009120 pushq %rbp 0000000100009121 movq %rsp, %rbp 0000000100009124 subq $0x30, %rsp 0000000100009128 movl %edi, -0x14(%rbp) 000000010000912b movq %rsi, -0x20(%rbp) 000000010000912f movl -0x14(%rbp), %edi 0000000100009132 movl %edi, -0x24(%rbp) 0000000100009135 movq -0x20(%rbp), %rsi 0000000100009139 movq %rsi, -0x30(%rbp) 000000010000913d cmpl $0x7f, -0x24(%rbp) 0000000100009141 jg 0x10000916c 0000000100009147 movl $0x1, %esi 000000010000914c movl -0x24(%rbp), %eax 000000010000914f movb %al, %cl 0000000100009151 movq -0x30(%rbp), %rdx 0000000100009155 movb %cl, (%rdx) 0000000100009157 movq -0x30(%rbp), %rdi 000000010000915b callq _tos 0000000100009160 movq %rax, -0x10(%rbp) 0000000100009164 movl %edx, -0x8(%rbp) 0000000100009167 jmp 0x1000092ae 000000010000916c cmpl $0x7ff, -0x24(%rbp) 0000000100009173 jg 0x1000091ba 0000000100009179 movl $0x2, %esi 000000010000917e movl -0x24(%rbp), %eax 0000000100009181 sarl $0x6, %eax 0000000100009184 orl $0xc0, %eax 0000000100009189 movb %al, %cl 000000010000918b movq -0x30(%rbp), %rdx 000000010000918f movb %cl, (%rdx) 0000000100009191 movl -0x24(%rbp), %eax 0000000100009194 andl $0x3f, %eax 0000000100009197 orl $0x80, %eax 000000010000919c movb %al, %cl 000000010000919e movq -0x30(%rbp), %rdx 00000001000091a2 movb %cl, 0x1(%rdx) 00000001000091a5 movq -0x30(%rbp), %rdi 00000001000091a9 callq _tos 00000001000091ae movq %rax, -0x10(%rbp) 00000001000091b2 movl %edx, -0x8(%rbp) 00000001000091b5 jmp 0x1000092ae 00000001000091ba cmpl $0xffff, -0x24(%rbp) 00000001000091c1 jg 0x10000921f 00000001000091c7 movl $0x3, %esi 00000001000091cc movl -0x24(%rbp), %eax 00000001000091cf sarl $0xc, %eax 00000001000091d2 orl $0xe0, %eax 00000001000091d7 movb %al, %cl 00000001000091d9 movq -0x30(%rbp), %rdx 00000001000091dd movb %cl, (%rdx) 00000001000091df movl -0x24(%rbp), %eax 00000001000091e2 sarl $0x6, %eax 00000001000091e5 andl $0x3f, %eax 00000001000091e8 orl $0x80, %eax 00000001000091ed movb %al, %cl 00000001000091ef movq -0x30(%rbp), %rdx 00000001000091f3 movb %cl, 0x1(%rdx) 00000001000091f6 movl -0x24(%rbp), %eax 00000001000091f9 andl $0x3f, %eax 00000001000091fc orl $0x80, %eax 0000000100009201 movb %al, %cl 0000000100009203 movq -0x30(%rbp), %rdx 0000000100009207 movb %cl, 0x2(%rdx) 000000010000920a movq -0x30(%rbp), %rdi 000000010000920e callq _tos 0000000100009213 movq %rax, -0x10(%rbp) 0000000100009217 movl %edx, -0x8(%rbp) 000000010000921a jmp 0x1000092ae 000000010000921f cmpl $0x10ffff, -0x24(%rbp) 0000000100009226 jg 0x10000929b 000000010000922c movl $0x4, %esi 0000000100009231 movl -0x24(%rbp), %eax 0000000100009234 sarl $0x12, %eax 0000000100009237 orl $0xf0, %eax 000000010000923c movb %al, %cl 000000010000923e movq -0x30(%rbp), %rdx 0000000100009242 movb %cl, (%rdx) 0000000100009244 movl -0x24(%rbp), %eax 0000000100009247 sarl $0xc, %eax 000000010000924a andl $0x3f, %eax 000000010000924d orl $0x80, %eax 0000000100009252 movb %al, %cl 0000000100009254 movq -0x30(%rbp), %rdx 0000000100009258 movb %cl, 0x1(%rdx) 000000010000925b movl -0x24(%rbp), %eax 000000010000925e sarl $0x6, %eax 0000000100009261 andl $0x3f, %eax 0000000100009264 orl $0x80, %eax 0000000100009269 movb %al, %cl 000000010000926b movq -0x30(%rbp), %rdx 000000010000926f movb %cl, 0x2(%rdx) 0000000100009272 movl -0x24(%rbp), %eax 0000000100009275 andl $0x3f, %eax 0000000100009278 orl $0x80, %eax 000000010000927d movb %al, %cl 000000010000927f movq -0x30(%rbp), %rdx 0000000100009283 movb %cl, 0x3(%rdx) 0000000100009286 movq -0x30(%rbp), %rdi 000000010000928a callq _tos 000000010000928f movq %rax, -0x10(%rbp) 0000000100009293 movl %edx, -0x8(%rbp) 0000000100009296 jmp 0x1000092ae 000000010000929b leaq 0x1717(%rip), %rdi ## literal pool for: "" 00000001000092a2 callq _tos3 00000001000092a7 movq %rax, -0x10(%rbp) 00000001000092ab movl %edx, -0x8(%rbp) 00000001000092ae movq -0x10(%rbp), %rax 00000001000092b2 movl -0x8(%rbp), %edx 00000001000092b5 addq $0x30, %rsp 00000001000092b9 popq %rbp 00000001000092ba retq 00000001000092bb nopl (%rax,%rax) _string_utf32_code: 00000001000092c0 pushq %rbp 00000001000092c1 movq %rsp, %rbp 00000001000092c4 movq %rdi, -0x18(%rbp) 00000001000092c8 movl %esi, -0x10(%rbp) 00000001000092cb cmpl $0x0, -0x10(%rbp) 00000001000092cf jne 0x1000092e1 00000001000092d5 movl $0x0, -0x4(%rbp) 00000001000092dc jmp 0x10000937c 00000001000092e1 cmpl $0x1, -0x10(%rbp) 00000001000092e5 jne 0x1000092fa 00000001000092eb movq -0x18(%rbp), %rax 00000001000092ef movzbl (%rax), %ecx 00000001000092f2 movl %ecx, -0x4(%rbp) 00000001000092f5 jmp 0x10000937c 00000001000092fa movl $0x6, %eax 00000001000092ff movq -0x18(%rbp), %rcx 0000000100009303 movzbl (%rcx), %edx 0000000100009306 movb %dl, %sil 0000000100009309 movb %sil, -0x19(%rbp) 000000010000930d movzbl -0x19(%rbp), %edx 0000000100009311 movl -0x10(%rbp), %ecx 0000000100009314 shll %cl, %edx 0000000100009316 movb %dl, %cl 0000000100009318 movb %cl, -0x19(%rbp) 000000010000931b movzbl -0x19(%rbp), %edx 000000010000931f movl %edx, -0x20(%rbp) 0000000100009322 subl -0x10(%rbp), %eax 0000000100009325 movl %eax, -0x24(%rbp) 0000000100009328 movl $0x1, -0x28(%rbp) 000000010000932f movl -0x28(%rbp), %eax 0000000100009332 cmpl -0x10(%rbp), %eax 0000000100009335 jge 0x100009376 000000010000933b movq -0x18(%rbp), %rax 000000010000933f movslq -0x28(%rbp), %rcx 0000000100009343 movzbl (%rax,%rcx), %edx 0000000100009347 movl %edx, -0x2c(%rbp) 000000010000934a movl -0x20(%rbp), %edx 000000010000934d movl -0x24(%rbp), %ecx 0000000100009350 shll %cl, %edx 0000000100009352 movl %edx, -0x20(%rbp) 0000000100009355 movl -0x2c(%rbp), %edx 0000000100009358 andl $0x3f, %edx 000000010000935b orl -0x20(%rbp), %edx 000000010000935e movl %edx, -0x20(%rbp) 0000000100009361 movl $0x6, -0x24(%rbp) 0000000100009368 movl -0x28(%rbp), %eax 000000010000936b addl $0x1, %eax 000000010000936e movl %eax, -0x28(%rbp) 0000000100009371 jmp 0x10000932f 0000000100009376 movl -0x20(%rbp), %eax 0000000100009379 movl %eax, -0x4(%rbp) 000000010000937c movl -0x4(%rbp), %eax 000000010000937f popq %rbp 0000000100009380 retq 0000000100009381 nopw %cs:(%rax,%rax) _string_to_wide: 0000000100009390 pushq %rbp 0000000100009391 movq %rsp, %rbp 0000000100009394 xorl %eax, %eax 0000000100009396 movq %rdi, -0x10(%rbp) 000000010000939a movl %esi, -0x8(%rbp) 000000010000939d popq %rbp 000000010000939e retq 000000010000939f nop _string_from_wide: 00000001000093a0 pushq %rbp 00000001000093a1 movq %rsp, %rbp 00000001000093a4 subq $0x20, %rsp 00000001000093a8 movq %rdi, -0x18(%rbp) 00000001000093ac leaq 0x1606(%rip), %rdi ## literal pool for: "" 00000001000093b3 callq _tos3 00000001000093b8 movq %rax, -0x10(%rbp) 00000001000093bc movl %edx, -0x8(%rbp) 00000001000093bf movq -0x10(%rbp), %rax 00000001000093c3 movl -0x8(%rbp), %edx 00000001000093c6 addq $0x20, %rsp 00000001000093ca popq %rbp 00000001000093cb retq 00000001000093cc nopl (%rax) _string_from_wide2: 00000001000093d0 pushq %rbp 00000001000093d1 movq %rsp, %rbp 00000001000093d4 subq $0x20, %rsp 00000001000093d8 movq %rdi, -0x18(%rbp) 00000001000093dc movl %esi, -0x1c(%rbp) 00000001000093df leaq 0x15d3(%rip), %rdi ## literal pool for: "" 00000001000093e6 callq _tos3 00000001000093eb movq %rax, -0x10(%rbp) 00000001000093ef movl %edx, -0x8(%rbp) 00000001000093f2 movq -0x10(%rbp), %rax 00000001000093f6 movl -0x8(%rbp), %edx 00000001000093f9 addq $0x20, %rsp 00000001000093fd popq %rbp 00000001000093fe retq 00000001000093ff nop _utf8_len: 0000000100009400 pushq %rbp 0000000100009401 movq %rsp, %rbp 0000000100009404 movb %dil, %al 0000000100009407 movb %al, -0x1(%rbp) 000000010000940a movl $0x0, -0x8(%rbp) 0000000100009411 movb -0x1(%rbp), %al 0000000100009414 movb %al, -0x9(%rbp) 0000000100009417 movzbl -0x9(%rbp), %edi 000000010000941b andl $0xf0, %edi 0000000100009421 cmpl $0x0, %edi 0000000100009424 je 0x10000943b 000000010000942a movzbl -0x9(%rbp), %eax 000000010000942e sarl $0x4, %eax 0000000100009431 movb %al, %cl 0000000100009433 movb %cl, -0x9(%rbp) 0000000100009436 jmp 0x100009444 000000010000943b movl -0x8(%rbp), %eax 000000010000943e addl $0x4, %eax 0000000100009441 movl %eax, -0x8(%rbp) 0000000100009444 movzbl -0x9(%rbp), %eax 0000000100009448 andl $0xc, %eax 000000010000944b cmpl $0x0, %eax 000000010000944e je 0x100009465 0000000100009454 movzbl -0x9(%rbp), %eax 0000000100009458 sarl $0x2, %eax 000000010000945b movb %al, %cl 000000010000945d movb %cl, -0x9(%rbp) 0000000100009460 jmp 0x10000946e 0000000100009465 movl -0x8(%rbp), %eax 0000000100009468 addl $0x2, %eax 000000010000946b movl %eax, -0x8(%rbp) 000000010000946e movzbl -0x9(%rbp), %eax 0000000100009472 andl $0x2, %eax 0000000100009475 cmpl $0x0, %eax 0000000100009478 jne 0x100009487 000000010000947e movl -0x8(%rbp), %eax 0000000100009481 addl $0x1, %eax 0000000100009484 movl %eax, -0x8(%rbp) 0000000100009487 movl -0x8(%rbp), %eax 000000010000948a popq %rbp 000000010000948b retq 000000010000948c nopl (%rax) _utf8_getchar: 0000000100009490 pushq %rbp 0000000100009491 movq %rsp, %rbp 0000000100009494 subq $0x20, %rsp 0000000100009498 callq 0x10000a5f2 ## symbol stub for: _getchar 000000010000949d movl %eax, -0x8(%rbp) 00000001000094a0 movl -0x8(%rbp), %eax 00000001000094a3 xorl $-0x1, %eax 00000001000094a6 movb %al, %cl 00000001000094a8 movzbl %cl, %edi 00000001000094ab callq _utf8_len 00000001000094b0 movl %eax, -0xc(%rbp) 00000001000094b3 cmpl $0x0, -0x8(%rbp) 00000001000094b7 jge 0x1000094c9 00000001000094bd movl $0x0, -0x4(%rbp) 00000001000094c4 jmp 0x10000959a 00000001000094c9 cmpl $0x0, -0xc(%rbp) 00000001000094cd jne 0x1000094de 00000001000094d3 movl -0x8(%rbp), %eax 00000001000094d6 movl %eax, -0x4(%rbp) 00000001000094d9 jmp 0x10000959a 00000001000094de cmpl $0x1, -0xc(%rbp) 00000001000094e2 jne 0x1000094f4 00000001000094e8 movl $0xffffffff, -0x4(%rbp) 00000001000094ef jmp 0x10000959a 00000001000094f4 movl $0x1, %eax 00000001000094f9 movl $0x7, %ecx 00000001000094fe movl -0x8(%rbp), %edx 0000000100009501 subl -0xc(%rbp), %ecx 0000000100009504 shll %cl, %eax 0000000100009506 subl $0x1, %eax 0000000100009509 andl %eax, %edx 000000010000950b movl %edx, -0x10(%rbp) 000000010000950e movl $0x0, -0x14(%rbp) 0000000100009515 movl -0x14(%rbp), %eax 0000000100009518 addl $0x1, %eax 000000010000951b cmpl -0xc(%rbp), %eax 000000010000951e jge 0x100009594 0000000100009524 callq 0x10000a5f2 ## symbol stub for: _getchar 0000000100009529 movl %eax, -0x18(%rbp) 000000010000952c cmpl $-0x1, -0x18(%rbp) 0000000100009530 je 0x10000955f 0000000100009536 movl -0x18(%rbp), %eax 0000000100009539 sarl $0x6, %eax 000000010000953c cmpl $0x2, %eax 000000010000953f jne 0x10000955f 0000000100009545 movl -0x10(%rbp), %eax 0000000100009548 shll $0x6, %eax 000000010000954b movl %eax, -0x10(%rbp) 000000010000954e movl -0x18(%rbp), %eax 0000000100009551 andl $0x3f, %eax 0000000100009554 orl -0x10(%rbp), %eax 0000000100009557 movl %eax, -0x10(%rbp) 000000010000955a jmp 0x100009581 000000010000955f cmpl $-0x1, -0x18(%rbp) 0000000100009563 jne 0x100009575 0000000100009569 movl $0x0, -0x4(%rbp) 0000000100009570 jmp 0x10000959a 0000000100009575 movl $0xffffffff, -0x4(%rbp) 000000010000957c jmp 0x10000959a 0000000100009581 jmp 0x100009586 0000000100009586 movl -0x14(%rbp), %eax 0000000100009589 addl $0x1, %eax 000000010000958c movl %eax, -0x14(%rbp) 000000010000958f jmp 0x100009515 0000000100009594 movl -0x10(%rbp), %eax 0000000100009597 movl %eax, -0x4(%rbp) 000000010000959a movl -0x4(%rbp), %eax 000000010000959d addq $0x20, %rsp 00000001000095a1 popq %rbp 00000001000095a2 retq 00000001000095a3 nopw %cs:(%rax,%rax) _strings__Builder_cut: 00000001000095b0 pushq %rbp 00000001000095b1 movq %rsp, %rbp 00000001000095b4 movq %rdi, -0x8(%rbp) 00000001000095b8 movl %esi, -0xc(%rbp) 00000001000095bb movl -0xc(%rbp), %esi 00000001000095be movq -0x8(%rbp), %rdi 00000001000095c2 movl 0x18(%rdi), %eax 00000001000095c5 subl %esi, %eax 00000001000095c7 movl %eax, 0x18(%rdi) 00000001000095ca popq %rbp 00000001000095cb retq 00000001000095cc nopl (%rax) _strings__Builder_free: 00000001000095d0 pushq %rbp 00000001000095d1 movq %rsp, %rbp 00000001000095d4 movq %rdi, -0x8(%rbp) 00000001000095d8 popq %rbp 00000001000095d9 retq 00000001000095da nopw (%rax,%rax) _strings__levenshtein_distance: 00000001000095e0 pushq %rbp 00000001000095e1 movq %rsp, %rbp 00000001000095e4 subq $0xf0, %rsp 00000001000095eb leaq -0x50(%rbp), %rax 00000001000095ef movl $0x1, %r8d 00000001000095f5 movl $0x4, %r9d 00000001000095fb leaq -0x54(%rbp), %r10 00000001000095ff movq %rdi, -0x10(%rbp) 0000000100009603 movl %esi, -0x8(%rbp) 0000000100009606 movq %rdx, -0x20(%rbp) 000000010000960a movl %ecx, -0x18(%rbp) 000000010000960d movl $0x0, -0x54(%rbp) 0000000100009614 movq %rax, %rdi 0000000100009617 movl %r8d, %esi 000000010000961a movl %r8d, %edx 000000010000961d movl %r9d, %ecx 0000000100009620 movq %r10, %r8 0000000100009623 callq _new_array_from_c_array 0000000100009628 leaq -0x38(%rbp), %rdi 000000010000962c leaq -0x50(%rbp), %rax 0000000100009630 movl -0x18(%rbp), %ecx 0000000100009633 addl $0x1, %ecx 0000000100009636 movq (%rax), %r8 0000000100009639 movq %r8, (%rsp) 000000010000963d movq 0x8(%rax), %r8 0000000100009641 movq %r8, 0x8(%rsp) 0000000100009646 movq 0x10(%rax), %rax 000000010000964a movq %rax, 0x10(%rsp) 000000010000964f movl %ecx, %esi 0000000100009651 callq _array_repeat 0000000100009656 leaq -0x80(%rbp), %rdi 000000010000965a movq -0x10(%rbp), %rax 000000010000965e movq %rax, -0x68(%rbp) 0000000100009662 movq -0x8(%rbp), %rax 0000000100009666 movq %rax, -0x60(%rbp) 000000010000966a movq -0x68(%rbp), %rsi 000000010000966e movl -0x60(%rbp), %edx 0000000100009671 callq _string_bytes 0000000100009676 movl $0x0, -0x84(%rbp) 0000000100009680 movl -0x84(%rbp), %eax 0000000100009686 cmpl -0x60(%rbp), %eax 0000000100009689 jge 0x10000998d 000000010000968f leaq -0x38(%rbp), %rax 0000000100009693 xorl %edi, %edi 0000000100009695 movq -0x80(%rbp), %rcx 0000000100009699 movslq -0x84(%rbp), %rdx 00000001000096a0 movb (%rcx,%rdx), %sil 00000001000096a4 movb %sil, -0x85(%rbp) 00000001000096ab movl $0x1, -0x8c(%rbp) 00000001000096b5 movq (%rax), %rcx 00000001000096b8 movq %rcx, (%rsp) 00000001000096bc movq 0x8(%rax), %rcx 00000001000096c0 movq %rcx, 0x8(%rsp) 00000001000096c5 movq 0x10(%rax), %rax 00000001000096c9 movq %rax, 0x10(%rsp) 00000001000096ce callq _array_get 00000001000096d3 leaq -0x38(%rbp), %rcx 00000001000096d7 xorl %edi, %edi 00000001000096d9 movl (%rax), %r8d 00000001000096dc movl %r8d, -0x90(%rbp) 00000001000096e3 movq (%rcx), %rax 00000001000096e6 movq %rax, (%rsp) 00000001000096ea movq 0x8(%rcx), %rax 00000001000096ee movq %rax, 0x8(%rsp) 00000001000096f3 movq 0x10(%rcx), %rax 00000001000096f7 movq %rax, 0x10(%rsp) 00000001000096fc callq _array_get 0000000100009701 leaq -0xb8(%rbp), %rdi 0000000100009708 movl (%rax), %r8d 000000010000970b addl $0x1, %r8d 000000010000970f movl %r8d, (%rax) 0000000100009712 movq -0x20(%rbp), %rax 0000000100009716 movq %rax, -0xa0(%rbp) 000000010000971d movq -0x18(%rbp), %rax 0000000100009721 movq %rax, -0x98(%rbp) 0000000100009728 movq -0xa0(%rbp), %rsi 000000010000972f movl -0x98(%rbp), %edx 0000000100009735 callq _string_bytes 000000010000973a movl $0x0, -0xbc(%rbp) 0000000100009744 movl -0xbc(%rbp), %eax 000000010000974a cmpl -0x98(%rbp), %eax 0000000100009750 jge 0x100009974 0000000100009756 leaq -0x38(%rbp), %rax 000000010000975a movq -0xb8(%rbp), %rcx 0000000100009761 movslq -0xbc(%rbp), %rdx 0000000100009768 movb (%rcx,%rdx), %sil 000000010000976c movb %sil, -0xbd(%rbp) 0000000100009773 movl -0x8c(%rbp), %edi 0000000100009779 movq (%rax), %rcx 000000010000977c movq %rcx, (%rsp) 0000000100009780 movq 0x8(%rax), %rcx 0000000100009784 movq %rcx, 0x8(%rsp) 0000000100009789 movq 0x10(%rax), %rax 000000010000978d movq %rax, 0x10(%rsp) 0000000100009792 callq _array_get 0000000100009797 leaq -0x38(%rbp), %rcx 000000010000979b movl (%rax), %edi 000000010000979d addl $0x1, %edi 00000001000097a0 movl -0x8c(%rbp), %r8d 00000001000097a7 subl $0x1, %r8d 00000001000097ab movq (%rcx), %rax 00000001000097ae movq %rax, (%rsp) 00000001000097b2 movq 0x8(%rcx), %rax 00000001000097b6 movq %rax, 0x8(%rsp) 00000001000097bb movq 0x10(%rcx), %rax 00000001000097bf movq %rax, 0x10(%rsp) 00000001000097c4 movl %edi, -0xcc(%rbp) 00000001000097ca movl %r8d, %edi 00000001000097cd callq _array_get 00000001000097d2 movl (%rax), %edi 00000001000097d4 addl $0x1, %edi 00000001000097d7 movl -0xcc(%rbp), %r8d 00000001000097de cmpl %edi, %r8d 00000001000097e1 jg 0x10000981f 00000001000097e7 leaq -0x38(%rbp), %rax 00000001000097eb movl -0x8c(%rbp), %edi 00000001000097f1 movq (%rax), %rcx 00000001000097f4 movq %rcx, (%rsp) 00000001000097f8 movq 0x8(%rax), %rcx 00000001000097fc movq %rcx, 0x8(%rsp) 0000000100009801 movq 0x10(%rax), %rax 0000000100009805 movq %rax, 0x10(%rsp) 000000010000980a callq _array_get 000000010000980f movl (%rax), %edi 0000000100009811 addl $0x1, %edi 0000000100009814 movl %edi, -0xd0(%rbp) 000000010000981a jmp 0x100009857 000000010000981f leaq -0x38(%rbp), %rax 0000000100009823 movl -0x8c(%rbp), %ecx 0000000100009829 subl $0x1, %ecx 000000010000982c movq (%rax), %rdx 000000010000982f movq %rdx, (%rsp) 0000000100009833 movq 0x8(%rax), %rdx 0000000100009837 movq %rdx, 0x8(%rsp) 000000010000983c movq 0x10(%rax), %rax 0000000100009840 movq %rax, 0x10(%rsp) 0000000100009845 movl %ecx, %edi 0000000100009847 callq _array_get 000000010000984c movl (%rax), %ecx 000000010000984e addl $0x1, %ecx 0000000100009851 movl %ecx, -0xd0(%rbp) 0000000100009857 movl -0xd0(%rbp), %eax 000000010000985d movl %eax, -0xc4(%rbp) 0000000100009863 movzbl -0xbd(%rbp), %eax 000000010000986a movzbl -0x85(%rbp), %ecx 0000000100009871 cmpl %ecx, %eax 0000000100009873 je 0x1000098c1 0000000100009879 movl -0xc4(%rbp), %eax 000000010000987f movl -0x90(%rbp), %ecx 0000000100009885 addl $0x1, %ecx 0000000100009888 cmpl %ecx, %eax 000000010000988a jg 0x1000098a1 0000000100009890 movl -0xc4(%rbp), %eax 0000000100009896 movl %eax, -0xd4(%rbp) 000000010000989c jmp 0x1000098b0 00000001000098a1 movl -0x90(%rbp), %eax 00000001000098a7 addl $0x1, %eax 00000001000098aa movl %eax, -0xd4(%rbp) 00000001000098b0 movl -0xd4(%rbp), %eax 00000001000098b6 movl %eax, -0xc4(%rbp) 00000001000098bc jmp 0x1000098fc 00000001000098c1 movl -0xc4(%rbp), %eax 00000001000098c7 cmpl -0x90(%rbp), %eax 00000001000098cd jg 0x1000098e4 00000001000098d3 movl -0xc4(%rbp), %eax 00000001000098d9 movl %eax, -0xd8(%rbp) 00000001000098df jmp 0x1000098f0 00000001000098e4 movl -0x90(%rbp), %eax 00000001000098ea movl %eax, -0xd8(%rbp) 00000001000098f0 movl -0xd8(%rbp), %eax 00000001000098f6 movl %eax, -0xc4(%rbp) 00000001000098fc leaq -0x38(%rbp), %rax 0000000100009900 movl -0x8c(%rbp), %edi 0000000100009906 movq (%rax), %rcx 0000000100009909 movq %rcx, (%rsp) 000000010000990d movq 0x8(%rax), %rcx 0000000100009911 movq %rcx, 0x8(%rsp) 0000000100009916 movq 0x10(%rax), %rax 000000010000991a movq %rax, 0x10(%rsp) 000000010000991f callq _array_get 0000000100009924 leaq -0x38(%rbp), %rdi 0000000100009928 leaq -0xc8(%rbp), %rcx 000000010000992f movl (%rax), %edx 0000000100009931 movl %edx, -0x90(%rbp) 0000000100009937 movl -0x8c(%rbp), %esi 000000010000993d movl -0xc4(%rbp), %edx 0000000100009943 movl %edx, -0xc8(%rbp) 0000000100009949 movq %rcx, %rdx 000000010000994c callq _array_set 0000000100009951 movl -0x8c(%rbp), %esi 0000000100009957 addl $0x1, %esi 000000010000995a movl %esi, -0x8c(%rbp) 0000000100009960 movl -0xbc(%rbp), %eax 0000000100009966 addl $0x1, %eax 0000000100009969 movl %eax, -0xbc(%rbp) 000000010000996f jmp 0x100009744 0000000100009974 jmp 0x100009979 0000000100009979 movl -0x84(%rbp), %eax 000000010000997f addl $0x1, %eax 0000000100009982 movl %eax, -0x84(%rbp) 0000000100009988 jmp 0x100009680 000000010000998d leaq -0x38(%rbp), %rax 0000000100009991 movl -0x30(%rbp), %ecx 0000000100009994 subl $0x1, %ecx 0000000100009997 movq (%rax), %rdx 000000010000999a movq %rdx, (%rsp) 000000010000999e movq 0x8(%rax), %rdx 00000001000099a2 movq %rdx, 0x8(%rsp) 00000001000099a7 movq 0x10(%rax), %rax 00000001000099ab movq %rax, 0x10(%rsp) 00000001000099b0 movl %ecx, %edi 00000001000099b2 callq _array_get 00000001000099b7 movl (%rax), %eax 00000001000099b9 addq $0xf0, %rsp 00000001000099c0 popq %rbp 00000001000099c1 retq 00000001000099c2 nopw %cs:(%rax,%rax) _strings__levenshtein_distance_percentage: 00000001000099d0 pushq %rbp 00000001000099d1 movq %rsp, %rbp 00000001000099d4 subq $0x30, %rsp 00000001000099d8 movq %rdi, -0x10(%rbp) 00000001000099dc movl %esi, -0x8(%rbp) 00000001000099df movq %rdx, -0x20(%rbp) 00000001000099e3 movl %ecx, -0x18(%rbp) 00000001000099e6 movq -0x10(%rbp), %rdi 00000001000099ea movl -0x8(%rbp), %esi 00000001000099ed movq -0x20(%rbp), %rdx 00000001000099f1 movl -0x18(%rbp), %ecx 00000001000099f4 callq _strings__levenshtein_distance 00000001000099f9 movl %eax, -0x24(%rbp) 00000001000099fc movl -0x8(%rbp), %eax 00000001000099ff cmpl -0x18(%rbp), %eax 0000000100009a02 jl 0x100009a13 0000000100009a08 movl -0x8(%rbp), %eax 0000000100009a0b movl %eax, -0x2c(%rbp) 0000000100009a0e jmp 0x100009a19 0000000100009a13 movl -0x18(%rbp), %eax 0000000100009a16 movl %eax, -0x2c(%rbp) 0000000100009a19 movl -0x2c(%rbp), %eax 0000000100009a1c movsd 0xd24(%rip), %xmm0 0000000100009a24 movsd 0xd24(%rip), %xmm1 0000000100009a2c movl %eax, -0x28(%rbp) 0000000100009a2f movl -0x24(%rbp), %eax 0000000100009a32 cvtsi2ssl %eax, %xmm2 0000000100009a36 movl -0x28(%rbp), %eax 0000000100009a39 cvtsi2ssl %eax, %xmm3 0000000100009a3d divss %xmm3, %xmm2 0000000100009a41 cvtss2sd %xmm2, %xmm2 0000000100009a45 subsd %xmm2, %xmm1 0000000100009a49 mulsd %xmm0, %xmm1 0000000100009a4d cvtsd2ss %xmm1, %xmm0 0000000100009a51 addq $0x30, %rsp 0000000100009a55 popq %rbp 0000000100009a56 retq 0000000100009a57 nopw (%rax,%rax) _strings__dice_coefficient: 0000000100009a60 pushq %rbp 0000000100009a61 movq %rsp, %rbp 0000000100009a64 subq $0xd0, %rsp 0000000100009a6b movq %rdi, -0x18(%rbp) 0000000100009a6f movl %esi, -0x10(%rbp) 0000000100009a72 movq %rdx, -0x28(%rbp) 0000000100009a76 movl %ecx, -0x20(%rbp) 0000000100009a79 cmpl $0x0, -0x10(%rbp) 0000000100009a7d je 0x100009a8d 0000000100009a83 cmpl $0x0, -0x20(%rbp) 0000000100009a87 jne 0x100009a9a 0000000100009a8d xorps %xmm0, %xmm0 0000000100009a90 movss %xmm0, -0x4(%rbp) 0000000100009a95 jmp 0x100009e2e 0000000100009a9a movq -0x18(%rbp), %rdi 0000000100009a9e movl -0x10(%rbp), %esi 0000000100009aa1 movq -0x28(%rbp), %rdx 0000000100009aa5 movl -0x20(%rbp), %ecx 0000000100009aa8 callq _string_eq 0000000100009aad testb $0x1, %al 0000000100009aaf jne 0x100009aba 0000000100009ab5 jmp 0x100009acc 0000000100009aba movss 0xca6(%rip), %xmm0 0000000100009ac2 movss %xmm0, -0x4(%rbp) 0000000100009ac7 jmp 0x100009e2e 0000000100009acc cmpl $0x2, -0x10(%rbp) 0000000100009ad0 jl 0x100009ae0 0000000100009ad6 cmpl $0x2, -0x20(%rbp) 0000000100009ada jge 0x100009aed 0000000100009ae0 xorps %xmm0, %xmm0 0000000100009ae3 movss %xmm0, -0x4(%rbp) 0000000100009ae8 jmp 0x100009e2e 0000000100009aed movl -0x10(%rbp), %eax 0000000100009af0 cmpl -0x20(%rbp), %eax 0000000100009af3 jle 0x100009b0e 0000000100009af9 movq -0x18(%rbp), %rax 0000000100009afd movq %rax, -0x38(%rbp) 0000000100009b01 movq -0x10(%rbp), %rax 0000000100009b05 movq %rax, -0x30(%rbp) 0000000100009b09 jmp 0x100009b1e 0000000100009b0e movq -0x28(%rbp), %rax 0000000100009b12 movq %rax, -0x38(%rbp) 0000000100009b16 movq -0x20(%rbp), %rax 0000000100009b1a movq %rax, -0x30(%rbp) 0000000100009b1e movq -0x38(%rbp), %rdi 0000000100009b22 movl -0x30(%rbp), %esi 0000000100009b25 movq -0x18(%rbp), %rdx 0000000100009b29 movl -0x10(%rbp), %ecx 0000000100009b2c callq _string_eq 0000000100009b31 testb $0x1, %al 0000000100009b33 jne 0x100009b3e 0000000100009b39 jmp 0x100009b53 0000000100009b3e movq -0x28(%rbp), %rax 0000000100009b42 movq %rax, -0x48(%rbp) 0000000100009b46 movq -0x20(%rbp), %rax 0000000100009b4a movq %rax, -0x40(%rbp) 0000000100009b4e jmp 0x100009b63 0000000100009b53 movq -0x18(%rbp), %rax 0000000100009b57 movq %rax, -0x48(%rbp) 0000000100009b5b movq -0x10(%rbp), %rax 0000000100009b5f movq %rax, -0x40(%rbp) 0000000100009b63 leaq -0x60(%rbp), %rdi 0000000100009b67 movl $0x1, %esi 0000000100009b6c movl $0x4, %edx 0000000100009b71 callq _new_map 0000000100009b76 movl $0x0, -0x64(%rbp) 0000000100009b7d movl -0x64(%rbp), %eax 0000000100009b80 movl -0x30(%rbp), %ecx 0000000100009b83 subl $0x1, %ecx 0000000100009b86 cmpl %ecx, %eax 0000000100009b88 jge 0x100009c7f 0000000100009b8e movl -0x64(%rbp), %edx 0000000100009b91 movl -0x64(%rbp), %eax 0000000100009b94 addl $0x2, %eax 0000000100009b97 movq -0x38(%rbp), %rdi 0000000100009b9b movl -0x30(%rbp), %esi 0000000100009b9e movl %eax, %ecx 0000000100009ba0 callq _string_substr 0000000100009ba5 leaq -0x60(%rbp), %rdi 0000000100009ba9 leaq -0x7c(%rbp), %r8 0000000100009bad movq %rax, -0x78(%rbp) 0000000100009bb1 movl %edx, -0x70(%rbp) 0000000100009bb4 movl $0x0, -0x7c(%rbp) 0000000100009bbb movq -0x78(%rbp), %rax 0000000100009bbf movl -0x70(%rbp), %esi 0000000100009bc2 movq (%rdi), %r9 0000000100009bc5 movq %r9, (%rsp) 0000000100009bc9 movq 0x8(%rdi), %r9 0000000100009bcd movq %r9, 0x8(%rsp) 0000000100009bd2 movq 0x10(%rdi), %rdi 0000000100009bd6 movq %rdi, 0x10(%rsp) 0000000100009bdb movq %rax, %rdi 0000000100009bde movq %r8, %rdx 0000000100009be1 callq _map_get 0000000100009be6 leaq -0x60(%rbp), %rdx 0000000100009bea andb $0x1, %al 0000000100009bec movb %al, -0x7d(%rbp) 0000000100009bef movq -0x78(%rbp), %rdi 0000000100009bf3 movl -0x70(%rbp), %esi 0000000100009bf6 movq (%rdx), %r8 0000000100009bf9 movq %r8, (%rsp) 0000000100009bfd movq 0x8(%rdx), %r8 0000000100009c01 movq %r8, 0x8(%rsp) 0000000100009c06 movq 0x10(%rdx), %rdx 0000000100009c0a movq %rdx, 0x10(%rsp) 0000000100009c0f callq _map_exists 0000000100009c14 testb $0x1, %al 0000000100009c16 jne 0x100009c21 0000000100009c1c jmp 0x100009c32 0000000100009c21 movl -0x7c(%rbp), %eax 0000000100009c24 addl $0x1, %eax 0000000100009c27 movl %eax, -0xb4(%rbp) 0000000100009c2d jmp 0x100009c42 0000000100009c32 movl $0x1, %eax 0000000100009c37 movl %eax, -0xb4(%rbp) 0000000100009c3d jmp 0x100009c42 0000000100009c42 movl -0xb4(%rbp), %eax 0000000100009c48 leaq -0x60(%rbp), %rdi 0000000100009c4c leaq -0x88(%rbp), %rcx 0000000100009c53 movl %eax, -0x84(%rbp) 0000000100009c59 movl -0x84(%rbp), %eax 0000000100009c5f movl %eax, -0x88(%rbp) 0000000100009c65 movq -0x78(%rbp), %rsi 0000000100009c69 movl -0x70(%rbp), %edx 0000000100009c6c callq _map_set 0000000100009c71 movl -0x64(%rbp), %eax 0000000100009c74 addl $0x1, %eax 0000000100009c77 movl %eax, -0x64(%rbp) 0000000100009c7a jmp 0x100009b7d 0000000100009c7f movl $0x0, -0x8c(%rbp) 0000000100009c89 movl $0x0, -0x90(%rbp) 0000000100009c93 movl -0x90(%rbp), %eax 0000000100009c99 movl -0x40(%rbp), %ecx 0000000100009c9c subl $0x1, %ecx 0000000100009c9f cmpl %ecx, %eax 0000000100009ca1 jge 0x100009de9 0000000100009ca7 movl -0x90(%rbp), %edx 0000000100009cad movl -0x90(%rbp), %eax 0000000100009cb3 addl $0x2, %eax 0000000100009cb6 movq -0x48(%rbp), %rdi 0000000100009cba movl -0x40(%rbp), %esi 0000000100009cbd movl %eax, %ecx 0000000100009cbf callq _string_substr 0000000100009cc4 leaq -0x60(%rbp), %rdi 0000000100009cc8 leaq -0xa4(%rbp), %r8 0000000100009ccf movq %rax, -0xa0(%rbp) 0000000100009cd6 movl %edx, -0x98(%rbp) 0000000100009cdc movl $0x0, -0xa4(%rbp) 0000000100009ce6 movq -0xa0(%rbp), %rax 0000000100009ced movl -0x98(%rbp), %esi 0000000100009cf3 movq (%rdi), %r9 0000000100009cf6 movq %r9, (%rsp) 0000000100009cfa movq 0x8(%rdi), %r9 0000000100009cfe movq %r9, 0x8(%rsp) 0000000100009d03 movq 0x10(%rdi), %rdi 0000000100009d07 movq %rdi, 0x10(%rsp) 0000000100009d0c movq %rax, %rdi 0000000100009d0f movq %r8, %rdx 0000000100009d12 callq _map_get 0000000100009d17 leaq -0x60(%rbp), %rdx 0000000100009d1b andb $0x1, %al 0000000100009d1d movb %al, -0xa5(%rbp) 0000000100009d23 movq -0xa0(%rbp), %rdi 0000000100009d2a movl -0x98(%rbp), %esi 0000000100009d30 movq (%rdx), %r8 0000000100009d33 movq %r8, (%rsp) 0000000100009d37 movq 0x8(%rdx), %r8 0000000100009d3b movq %r8, 0x8(%rsp) 0000000100009d40 movq 0x10(%rdx), %rdx 0000000100009d44 movq %rdx, 0x10(%rsp) 0000000100009d49 callq _map_exists 0000000100009d4e testb $0x1, %al 0000000100009d50 jne 0x100009d5b 0000000100009d56 jmp 0x100009d6c 0000000100009d5b movl -0xa4(%rbp), %eax 0000000100009d61 movl %eax, -0xb8(%rbp) 0000000100009d67 jmp 0x100009d79 0000000100009d6c xorl %eax, %eax 0000000100009d6e movl %eax, -0xb8(%rbp) 0000000100009d74 jmp 0x100009d79 0000000100009d79 movl -0xb8(%rbp), %eax 0000000100009d7f movl %eax, -0xac(%rbp) 0000000100009d85 cmpl $0x0, -0xac(%rbp) 0000000100009d8c jle 0x100009dd0 0000000100009d92 leaq -0x60(%rbp), %rdi 0000000100009d96 leaq -0xb0(%rbp), %rax 0000000100009d9d movl -0xac(%rbp), %ecx 0000000100009da3 subl $0x1, %ecx 0000000100009da6 movl %ecx, -0xb0(%rbp) 0000000100009dac movq -0xa0(%rbp), %rsi 0000000100009db3 movl -0x98(%rbp), %edx 0000000100009db9 movq %rax, %rcx 0000000100009dbc callq _map_set 0000000100009dc1 movl -0x8c(%rbp), %edx 0000000100009dc7 addl $0x1, %edx 0000000100009dca movl %edx, -0x8c(%rbp) 0000000100009dd0 jmp 0x100009dd5 0000000100009dd5 movl -0x90(%rbp), %eax 0000000100009ddb addl $0x1, %eax 0000000100009dde movl %eax, -0x90(%rbp) 0000000100009de4 jmp 0x100009c93 0000000100009de9 movss 0x973(%rip), %xmm0 0000000100009df1 movsd 0x95f(%rip), %xmm1 0000000100009df9 movl -0x8c(%rbp), %eax 0000000100009dff cvtsi2sdl %eax, %xmm2 0000000100009e03 mulsd %xmm2, %xmm1 0000000100009e07 movl -0x30(%rbp), %eax 0000000100009e0a cvtsi2ssl %eax, %xmm2 0000000100009e0e movl -0x40(%rbp), %eax 0000000100009e11 cvtsi2ssl %eax, %xmm3 0000000100009e15 addss %xmm3, %xmm2 0000000100009e19 subss %xmm0, %xmm2 0000000100009e1d cvtss2sd %xmm2, %xmm0 0000000100009e21 divsd %xmm0, %xmm1 0000000100009e25 cvtsd2ss %xmm1, %xmm0 0000000100009e29 movss %xmm0, -0x4(%rbp) 0000000100009e2e movss -0x4(%rbp), %xmm0 0000000100009e33 addq $0xd0, %rsp 0000000100009e3a popq %rbp 0000000100009e3b retq 0000000100009e3c nopl (%rax) _strings__repeat: 0000000100009e40 pushq %rbp 0000000100009e41 movq %rsp, %rbp 0000000100009e44 subq $0x70, %rsp 0000000100009e48 movb %dil, %al 0000000100009e4b movb %al, -0x11(%rbp) 0000000100009e4e movl %esi, -0x18(%rbp) 0000000100009e51 cmpl $0x0, -0x18(%rbp) 0000000100009e55 jg 0x100009e73 0000000100009e5b leaq 0xb57(%rip), %rdi ## literal pool for: "" 0000000100009e62 callq _tos3 0000000100009e67 movq %rax, -0x10(%rbp) 0000000100009e6b movl %edx, -0x8(%rbp) 0000000100009e6e jmp 0x100009ee9 0000000100009e73 leaq -0x48(%rbp), %rdi 0000000100009e77 movl $0x1, %eax 0000000100009e7c leaq -0x49(%rbp), %r8 0000000100009e80 movb -0x11(%rbp), %cl 0000000100009e83 movb %cl, -0x49(%rbp) 0000000100009e86 movl %eax, %esi 0000000100009e88 movl %eax, %edx 0000000100009e8a movl %eax, %ecx 0000000100009e8c callq _new_array_from_c_array 0000000100009e91 leaq -0x30(%rbp), %rdi 0000000100009e95 leaq -0x48(%rbp), %r8 0000000100009e99 movl -0x18(%rbp), %eax 0000000100009e9c addl $0x1, %eax 0000000100009e9f movq (%r8), %r9 0000000100009ea2 movq %r9, (%rsp) 0000000100009ea6 movq 0x8(%r8), %r9 0000000100009eaa movq %r9, 0x8(%rsp) 0000000100009eaf movq 0x10(%r8), %r8 0000000100009eb3 movq %r8, 0x10(%rsp) 0000000100009eb8 movl %eax, %esi 0000000100009eba callq _array_repeat 0000000100009ebf leaq -0x30(%rbp), %rdi 0000000100009ec3 leaq -0x4a(%rbp), %r8 0000000100009ec7 movl -0x18(%rbp), %esi 0000000100009eca movb $0x0, -0x4a(%rbp) 0000000100009ece movq %r8, %rdx 0000000100009ed1 callq _array_set 0000000100009ed6 movq -0x30(%rbp), %rdi 0000000100009eda movl -0x18(%rbp), %esi 0000000100009edd callq _tos 0000000100009ee2 movq %rax, -0x10(%rbp) 0000000100009ee6 movl %edx, -0x8(%rbp) 0000000100009ee9 movq -0x10(%rbp), %rax 0000000100009eed movl -0x8(%rbp), %edx 0000000100009ef0 addq $0x70, %rsp 0000000100009ef4 popq %rbp 0000000100009ef5 retq 0000000100009ef6 nopw %cs:(%rax,%rax) _strconv__byte_to_lower: 0000000100009f00 pushq %rbp 0000000100009f01 movq %rsp, %rbp 0000000100009f04 movb %dil, %al 0000000100009f07 movb %al, -0x1(%rbp) 0000000100009f0a movzbl -0x1(%rbp), %edi 0000000100009f0e orl $0x20, %edi 0000000100009f11 movb %dil, %al 0000000100009f14 movzbl %al, %eax 0000000100009f17 popq %rbp 0000000100009f18 retq 0000000100009f19 nopl (%rax) _strconv__underscore_ok: 0000000100009f20 pushq %rbp 0000000100009f21 movq %rsp, %rbp 0000000100009f24 subq $0x30, %rsp 0000000100009f28 movq %rdi, -0x18(%rbp) 0000000100009f2c movl %esi, -0x10(%rbp) 0000000100009f2f movb $0x5e, -0x19(%rbp) 0000000100009f33 movl $0x0, -0x20(%rbp) 0000000100009f3a cmpl $0x1, -0x10(%rbp) 0000000100009f3e jl 0x100009f81 0000000100009f44 xorl %edx, %edx 0000000100009f46 movq -0x18(%rbp), %rdi 0000000100009f4a movl -0x10(%rbp), %esi 0000000100009f4d callq _string_at 0000000100009f52 movzbl %al, %edx 0000000100009f55 cmpl $0x2d, %edx 0000000100009f58 je 0x100009f78 0000000100009f5e xorl %edx, %edx 0000000100009f60 movq -0x18(%rbp), %rdi 0000000100009f64 movl -0x10(%rbp), %esi 0000000100009f67 callq _string_at 0000000100009f6c movzbl %al, %edx 0000000100009f6f cmpl $0x2b, %edx 0000000100009f72 jne 0x100009f81 0000000100009f78 movl -0x20(%rbp), %eax 0000000100009f7b addl $0x1, %eax 0000000100009f7e movl %eax, -0x20(%rbp) 0000000100009f81 movb $0x0, -0x21(%rbp) 0000000100009f85 movl -0x10(%rbp), %eax 0000000100009f88 subl -0x20(%rbp), %eax 0000000100009f8b cmpl $0x2, %eax 0000000100009f8e jl 0x10000a05e 0000000100009f94 movl -0x20(%rbp), %edx 0000000100009f97 movq -0x18(%rbp), %rdi 0000000100009f9b movl -0x10(%rbp), %esi 0000000100009f9e callq _string_at 0000000100009fa3 movzbl %al, %edx 0000000100009fa6 cmpl $0x30, %edx 0000000100009fa9 jne 0x10000a05e 0000000100009faf movl -0x20(%rbp), %eax 0000000100009fb2 addl $0x1, %eax 0000000100009fb5 movq -0x18(%rbp), %rdi 0000000100009fb9 movl -0x10(%rbp), %esi 0000000100009fbc movl %eax, %edx 0000000100009fbe callq _string_at 0000000100009fc3 movzbl %al, %edi 0000000100009fc6 callq _strconv__byte_to_lower 0000000100009fcb movzbl %al, %edx 0000000100009fce cmpl $0x62, %edx 0000000100009fd1 je 0x10000a027 0000000100009fd7 movl -0x20(%rbp), %eax 0000000100009fda addl $0x1, %eax 0000000100009fdd movq -0x18(%rbp), %rdi 0000000100009fe1 movl -0x10(%rbp), %esi 0000000100009fe4 movl %eax, %edx 0000000100009fe6 callq _string_at 0000000100009feb movzbl %al, %edi 0000000100009fee callq _strconv__byte_to_lower 0000000100009ff3 movzbl %al, %edx 0000000100009ff6 cmpl $0x6f, %edx 0000000100009ff9 je 0x10000a027 0000000100009fff movl -0x20(%rbp), %eax 000000010000a002 addl $0x1, %eax 000000010000a005 movq -0x18(%rbp), %rdi 000000010000a009 movl -0x10(%rbp), %esi 000000010000a00c movl %eax, %edx 000000010000a00e callq _string_at 000000010000a013 movzbl %al, %edi 000000010000a016 callq _strconv__byte_to_lower 000000010000a01b movzbl %al, %edx 000000010000a01e cmpl $0x78, %edx 000000010000a021 jne 0x10000a05e 000000010000a027 movb $0x30, -0x19(%rbp) 000000010000a02b movl -0x20(%rbp), %eax 000000010000a02e addl $0x1, %eax 000000010000a031 movq -0x18(%rbp), %rdi 000000010000a035 movl -0x10(%rbp), %esi 000000010000a038 movl %eax, %edx 000000010000a03a callq _string_at 000000010000a03f movzbl %al, %edi 000000010000a042 callq _strconv__byte_to_lower 000000010000a047 movzbl %al, %edx 000000010000a04a cmpl $0x78, %edx 000000010000a04d sete %al 000000010000a050 andb $0x1, %al 000000010000a052 movb %al, -0x21(%rbp) 000000010000a055 movl -0x20(%rbp), %edx 000000010000a058 addl $0x2, %edx 000000010000a05b movl %edx, -0x20(%rbp) 000000010000a05e jmp 0x10000a063 000000010000a063 movl -0x20(%rbp), %eax 000000010000a066 cmpl -0x10(%rbp), %eax 000000010000a069 jge 0x10000a168 000000010000a06f movl -0x20(%rbp), %edx 000000010000a072 movq -0x18(%rbp), %rdi 000000010000a076 movl -0x10(%rbp), %esi 000000010000a079 callq _string_at 000000010000a07e movl $0x30, %edx 000000010000a083 movzbl %al, %esi 000000010000a086 cmpl %esi, %edx 000000010000a088 jg 0x10000a0a9 000000010000a08e movl -0x20(%rbp), %edx 000000010000a091 movq -0x18(%rbp), %rdi 000000010000a095 movl -0x10(%rbp), %esi 000000010000a098 callq _string_at 000000010000a09d movzbl %al, %edx 000000010000a0a0 cmpl $0x39, %edx 000000010000a0a3 jle 0x10000a0fd 000000010000a0a9 testb $0x1, -0x21(%rbp) 000000010000a0ad je 0x10000a106 000000010000a0b3 movl -0x20(%rbp), %edx 000000010000a0b6 movq -0x18(%rbp), %rdi 000000010000a0ba movl -0x10(%rbp), %esi 000000010000a0bd callq _string_at 000000010000a0c2 movzbl %al, %edi 000000010000a0c5 callq _strconv__byte_to_lower 000000010000a0ca movl $0x61, %edx 000000010000a0cf movzbl %al, %esi 000000010000a0d2 cmpl %esi, %edx 000000010000a0d4 jg 0x10000a106 000000010000a0da movl -0x20(%rbp), %edx 000000010000a0dd movq -0x18(%rbp), %rdi 000000010000a0e1 movl -0x10(%rbp), %esi 000000010000a0e4 callq _string_at 000000010000a0e9 movzbl %al, %edi 000000010000a0ec callq _strconv__byte_to_lower 000000010000a0f1 movzbl %al, %edx 000000010000a0f4 cmpl $0x66, %edx 000000010000a0f7 jg 0x10000a106 000000010000a0fd movb $0x30, -0x19(%rbp) 000000010000a101 jmp 0x10000a15a 000000010000a106 movl -0x20(%rbp), %edx 000000010000a109 movq -0x18(%rbp), %rdi 000000010000a10d movl -0x10(%rbp), %esi 000000010000a110 callq _string_at 000000010000a115 movzbl %al, %edx 000000010000a118 cmpl $0x5f, %edx 000000010000a11b jne 0x10000a140 000000010000a121 movzbl -0x19(%rbp), %eax 000000010000a125 cmpl $0x30, %eax 000000010000a128 je 0x10000a137 000000010000a12e movb $0x0, -0x1(%rbp) 000000010000a132 jmp 0x10000a178 000000010000a137 movb $0x5f, -0x19(%rbp) 000000010000a13b jmp 0x10000a15a 000000010000a140 movzbl -0x19(%rbp), %eax 000000010000a144 cmpl $0x5f, %eax 000000010000a147 jne 0x10000a156 000000010000a14d movb $0x0, -0x1(%rbp) 000000010000a151 jmp 0x10000a178 000000010000a156 movb $0x21, -0x19(%rbp) 000000010000a15a movl -0x20(%rbp), %eax 000000010000a15d addl $0x1, %eax 000000010000a160 movl %eax, -0x20(%rbp) 000000010000a163 jmp 0x10000a063 000000010000a168 movzbl -0x19(%rbp), %eax 000000010000a16c cmpl $0x5f, %eax 000000010000a16f setne %cl 000000010000a172 andb $0x1, %cl 000000010000a175 movb %cl, -0x1(%rbp) 000000010000a178 movb -0x1(%rbp), %al 000000010000a17b andb $0x1, %al 000000010000a17d movzbl %al, %eax 000000010000a180 addq $0x30, %rsp 000000010000a184 popq %rbp 000000010000a185 retq 000000010000a186 nopw %cs:(%rax,%rax) _strconv__atoi: 000000010000a190 pushq %rbp 000000010000a191 movq %rsp, %rbp 000000010000a194 subq $0x40, %rsp 000000010000a198 xorl %eax, %eax 000000010000a19a movq %rdi, -0x18(%rbp) 000000010000a19e movl %esi, -0x10(%rbp) 000000010000a1a1 cmpl -0x10(%rbp), %eax 000000010000a1a4 jge 0x10000a2c3 000000010000a1aa cmpl $0xa, -0x10(%rbp) 000000010000a1ae jge 0x10000a2c3 000000010000a1b4 xorl %edx, %edx 000000010000a1b6 movl $0x0, -0x1c(%rbp) 000000010000a1bd movq -0x18(%rbp), %rdi 000000010000a1c1 movl -0x10(%rbp), %esi 000000010000a1c4 callq _string_at 000000010000a1c9 movzbl %al, %edx 000000010000a1cc cmpl $0x2d, %edx 000000010000a1cf je 0x10000a1ef 000000010000a1d5 xorl %edx, %edx 000000010000a1d7 movq -0x18(%rbp), %rdi 000000010000a1db movl -0x10(%rbp), %esi 000000010000a1de callq _string_at 000000010000a1e3 movzbl %al, %edx 000000010000a1e6 cmpl $0x2b, %edx 000000010000a1e9 jne 0x10000a218 000000010000a1ef movl -0x1c(%rbp), %eax 000000010000a1f2 addl $0x1, %eax 000000010000a1f5 movl %eax, -0x1c(%rbp) 000000010000a1f8 movl -0x10(%rbp), %eax 000000010000a1fb subl -0x1c(%rbp), %eax 000000010000a1fe cmpl $0x1, %eax 000000010000a201 jge 0x10000a213 000000010000a207 movl $0x0, -0x4(%rbp) 000000010000a20e jmp 0x10000a2e3 000000010000a213 jmp 0x10000a218 000000010000a218 movl $0x0, -0x20(%rbp) 000000010000a21f movl -0x1c(%rbp), %eax 000000010000a222 movl %eax, -0x24(%rbp) 000000010000a225 movl -0x24(%rbp), %eax 000000010000a228 movl %eax, -0x28(%rbp) 000000010000a22b movl -0x28(%rbp), %eax 000000010000a22e cmpl -0x10(%rbp), %eax 000000010000a231 jge 0x10000a28b 000000010000a237 movl -0x28(%rbp), %eax 000000010000a23a movl %eax, -0x2c(%rbp) 000000010000a23d movl -0x2c(%rbp), %edx 000000010000a240 movq -0x18(%rbp), %rdi 000000010000a244 movl -0x10(%rbp), %esi 000000010000a247 callq _string_at 000000010000a24c movzbl %al, %edx 000000010000a24f subl $0x30, %edx 000000010000a252 movb %dl, %al 000000010000a254 movb %al, -0x2d(%rbp) 000000010000a257 movzbl -0x2d(%rbp), %edx 000000010000a25b cmpl $0x9, %edx 000000010000a25e jle 0x10000a270 000000010000a264 movl $0x0, -0x4(%rbp) 000000010000a26b jmp 0x10000a2e3 000000010000a270 imull $0xa, -0x20(%rbp), %eax 000000010000a274 movzbl -0x2d(%rbp), %ecx 000000010000a278 addl %ecx, %eax 000000010000a27a movl %eax, -0x20(%rbp) 000000010000a27d movl -0x28(%rbp), %eax 000000010000a280 addl $0x1, %eax 000000010000a283 movl %eax, -0x28(%rbp) 000000010000a286 jmp 0x10000a22b 000000010000a28b xorl %edx, %edx 000000010000a28d movq -0x18(%rbp), %rdi 000000010000a291 movl -0x10(%rbp), %esi 000000010000a294 callq _string_at 000000010000a299 movzbl %al, %edx 000000010000a29c cmpl $0x2d, %edx 000000010000a29f jne 0x10000a2b2 000000010000a2a5 xorl %eax, %eax 000000010000a2a7 subl -0x20(%rbp), %eax 000000010000a2aa movl %eax, -0x3c(%rbp) 000000010000a2ad jmp 0x10000a2b8 000000010000a2b2 movl -0x20(%rbp), %eax 000000010000a2b5 movl %eax, -0x3c(%rbp) 000000010000a2b8 movl -0x3c(%rbp), %eax 000000010000a2bb movl %eax, -0x4(%rbp) 000000010000a2be jmp 0x10000a2e3 000000010000a2c3 movl $0xa, %edx 000000010000a2c8 xorl %ecx, %ecx 000000010000a2ca movq -0x18(%rbp), %rdi 000000010000a2ce movl -0x10(%rbp), %esi 000000010000a2d1 callq _strconv__parse_int 000000010000a2d6 movq %rax, -0x38(%rbp) 000000010000a2da movq -0x38(%rbp), %rax 000000010000a2de movl %eax, %ecx 000000010000a2e0 movl %ecx, -0x4(%rbp) 000000010000a2e3 movl -0x4(%rbp), %eax 000000010000a2e6 addq $0x40, %rsp 000000010000a2ea popq %rbp 000000010000a2eb retq 000000010000a2ec nopl (%rax) _main__main: 000000010000a2f0 pushq %rbp 000000010000a2f1 movq %rsp, %rbp 000000010000a2f4 subq $0x10, %rsp 000000010000a2f8 leaq 0x7d9(%rip), %rdi ## literal pool for: "Hello V!" 000000010000a2ff callq _tos3 000000010000a304 movq %rax, -0x10(%rbp) 000000010000a308 movl %edx, -0x8(%rbp) 000000010000a30b movq -0x10(%rbp), %rdi 000000010000a30f movl -0x8(%rbp), %esi 000000010000a312 callq _println 000000010000a317 addq $0x10, %rsp 000000010000a31b popq %rbp 000000010000a31c retq 000000010000a31d nopl (%rax) _init: 000000010000a320 pushq %rbp 000000010000a321 movq %rsp, %rbp 000000010000a324 movl $0x3e8, %eax 000000010000a329 movl %eax, %edi 000000010000a32b callq 0x10000a5fe ## symbol stub for: _malloc 000000010000a330 leaq _strconv__max_u64(%rip), %rdi 000000010000a337 leaq _builtin__max_cap(%rip), %rcx 000000010000a33e leaq _builtin__min_cap(%rip), %rdx 000000010000a345 leaq _g_str_buf(%rip), %rsi 000000010000a34c movq %rax, (%rsi) 000000010000a34f movl $0x800, (%rdx) 000000010000a355 movl $0x200000, (%rcx) 000000010000a35b movq $-0x1, (%rdi) 000000010000a362 callq _builtin__init 000000010000a367 popq %rbp 000000010000a368 retq 000000010000a369 nopl (%rax) __STR_TMP: 000000010000a370 pushq %rbp 000000010000a371 movq %rsp, %rbp 000000010000a374 subq $0x1c0, %rsp 000000010000a37b testb %al, %al 000000010000a37d movaps %xmm7, -0x100(%rbp) 000000010000a384 movaps %xmm6, -0x110(%rbp) 000000010000a38b movaps %xmm5, -0x120(%rbp) 000000010000a392 movaps %xmm4, -0x130(%rbp) 000000010000a399 movaps %xmm3, -0x140(%rbp) 000000010000a3a0 movaps %xmm2, -0x150(%rbp) 000000010000a3a7 movaps %xmm1, -0x160(%rbp) 000000010000a3ae movaps %xmm0, -0x170(%rbp) 000000010000a3b5 movq %rdi, -0x178(%rbp) 000000010000a3bc movq %r9, -0x180(%rbp) 000000010000a3c3 movq %r8, -0x188(%rbp) 000000010000a3ca movq %rcx, -0x190(%rbp) 000000010000a3d1 movq %rdx, -0x198(%rbp) 000000010000a3d8 movq %rsi, -0x1a0(%rbp) 000000010000a3df je 0x10000a449 000000010000a3e5 movaps -0x170(%rbp), %xmm0 000000010000a3ec movaps %xmm0, -0xc0(%rbp) 000000010000a3f3 movaps -0x160(%rbp), %xmm1 000000010000a3fa movaps %xmm1, -0xb0(%rbp) 000000010000a401 movaps -0x150(%rbp), %xmm2 000000010000a408 movaps %xmm2, -0xa0(%rbp) 000000010000a40f movaps -0x140(%rbp), %xmm3 000000010000a416 movaps %xmm3, -0x90(%rbp) 000000010000a41d movaps -0x130(%rbp), %xmm4 000000010000a424 movaps %xmm4, -0x80(%rbp) 000000010000a428 movaps -0x120(%rbp), %xmm5 000000010000a42f movaps %xmm5, -0x70(%rbp) 000000010000a433 movaps -0x110(%rbp), %xmm6 000000010000a43a movaps %xmm6, -0x60(%rbp) 000000010000a43e movaps -0x100(%rbp), %xmm7 000000010000a445 movaps %xmm7, -0x50(%rbp) 000000010000a449 movq -0x180(%rbp), %rax 000000010000a450 movq %rax, -0xc8(%rbp) 000000010000a457 movq -0x188(%rbp), %rcx 000000010000a45e movq %rcx, -0xd0(%rbp) 000000010000a465 movq -0x190(%rbp), %rdx 000000010000a46c movq %rdx, -0xd8(%rbp) 000000010000a473 movq -0x198(%rbp), %rsi 000000010000a47a movq %rsi, -0xe0(%rbp) 000000010000a481 movq -0x1a0(%rbp), %rdi 000000010000a488 movq %rdi, -0xe8(%rbp) 000000010000a48f movq -0x178(%rbp), %r8 000000010000a496 movq 0x2b9b(%rip), %r9 ## literal pool symbol address: ___stack_chk_guard 000000010000a49d movq (%r9), %r9 000000010000a4a0 movq %r9, -0x8(%rbp) 000000010000a4a4 movq %r8, -0x38(%rbp) 000000010000a4a8 leaq -0xf0(%rbp), %r8 000000010000a4af movq %r8, -0x10(%rbp) 000000010000a4b3 leaq 0x10(%rbp), %r9 000000010000a4b7 movq %r9, -0x18(%rbp) 000000010000a4bb movl $0x30, -0x1c(%rbp) 000000010000a4c2 movl $0x8, -0x20(%rbp) 000000010000a4c9 movq %r8, -0x10(%rbp) 000000010000a4cd movq %r9, -0x18(%rbp) 000000010000a4d1 movl $0x30, -0x1c(%rbp) 000000010000a4d8 movl $0x8, -0x20(%rbp) 000000010000a4df leaq _g_str_buf(%rip), %r8 000000010000a4e6 movq (%r8), %rdi 000000010000a4e9 movq -0x38(%rbp), %rcx 000000010000a4ed xorl %esi, %esi 000000010000a4ef movq $-0x1, %rdx 000000010000a4f6 leaq -0x20(%rbp), %r9 000000010000a4fa movq %r8, -0x1a8(%rbp) 000000010000a501 movq %r9, %r8 000000010000a504 callq 0x10000a5bc ## symbol stub for: ___vsprintf_chk 000000010000a509 movq -0x1a8(%rbp), %rcx 000000010000a510 movq (%rcx), %rdi 000000010000a513 movl %eax, -0x1ac(%rbp) 000000010000a519 callq _tos2 000000010000a51e movq %rax, -0x30(%rbp) 000000010000a522 movl %edx, -0x28(%rbp) 000000010000a525 movl -0x28(%rbp), %edx 000000010000a528 movq -0x30(%rbp), %rax 000000010000a52c movq 0x2b05(%rip), %rcx ## literal pool symbol address: ___stack_chk_guard 000000010000a533 movq (%rcx), %rcx 000000010000a536 movq -0x8(%rbp), %rdi 000000010000a53a cmpq %rdi, %rcx 000000010000a53d movl %edx, -0x1b0(%rbp) 000000010000a543 movq %rax, -0x1b8(%rbp) 000000010000a54a jne 0x10000a566 000000010000a550 movq -0x1b8(%rbp), %rax 000000010000a557 movl -0x1b0(%rbp), %edx 000000010000a55d addq $0x1c0, %rsp 000000010000a564 popq %rbp 000000010000a565 retq 000000010000a566 callq 0x10000a5b0 ## symbol stub for: ___stack_chk_fail 000000010000a56b ud2 000000010000a56d nopl (%rax) _main: 000000010000a570 pushq %rbp 000000010000a571 movq %rsp, %rbp 000000010000a574 subq $0x10, %rsp 000000010000a578 movl $0x0, -0x4(%rbp) 000000010000a57f movl %edi, -0x8(%rbp) 000000010000a582 movq %rsi, -0x10(%rbp) 000000010000a586 callq _init 000000010000a58b callq _main__main 000000010000a590 xorl %eax, %eax 000000010000a592 addq $0x10, %rsp 000000010000a596 popq %rbp 000000010000a597 retq