; assembly | /* r2dec pseudo code output */ | /* bdlbb_blob.t/assume @ 0x41eb30 */ | #include | ; (fcn) method.BloombergLP::bdlbb::Blob.appendDataBuffer_BloombergLP::bdlbb::BlobBuffer_const_ () | int64_t method_BloombergLP::bdlbb::Blob_appendDataBuffer_BloombergLP::bdlbb::BlobBuffer_const_ (void ** arg2, void ** arg1) { | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlbb::Blob::appendDataBuffer(BloombergLP::bdlbb::BlobBuffer const&) */ 0x0041eb30 push rbp | 0x0041eb31 push r14 | 0x0041eb33 push rbx | 0x0041eb34 mov rcx, rsi | rcx = rsi; 0x0041eb37 mov rbx, rdi | rbx = rdi; 0x0041eb3a mov r14d, dword [rsi + 0x10] | r14d = *((rsi + 0x10)); 0x0041eb3e mov rax, qword [rdi + 0x20] | rax = *((rdi + 0x20)); 0x0041eb42 mov rbp, rax | 0x0041eb45 shr rbp, 0x20 | rbp >>= 0x20; 0x0041eb49 test ebp, ebp | | if (ebp != 0) { 0x0041eb4b je 0x41eb93 | 0x0041eb4d cmp eax, ebp | | if (eax != ebp) { 0x0041eb4f je 0x41eb93 | 0x0041eb51 movsxd rax, dword [rbx + 0x28] | rax = *((rbx + 0x28)); 0x0041eb55 mov rdx, qword [rbx] | rdx = *(rbx); 0x0041eb58 lea rax, [rax + rax*2] | rax *= 3; 0x0041eb5c mov esi, ebp | esi = ebp; 0x0041eb5e sub esi, dword [rbx + 0x2c] | esi -= *((rbx + 0x2c)); 0x0041eb61 mov edi, esi | edi = esi; 0x0041eb63 sub edi, dword [rdx + rax*8 + 0x10] | edi -= *((rdx + rax*8 + 0x10)); 0x0041eb67 mov dword [rdx + rax*8 + 0x10], esi | *((rdx + rax*8 + 0x10)) = esi; 0x0041eb6b add dword [rbx + 0x20], edi | *((rbx + 0x20)) += edi; 0x0041eb6e mov rax, qword [rbx] | rax = *(rbx); 0x0041eb71 movsxd rdx, dword [rbx + 0x28] | rdx = *((rbx + 0x28)); 0x0041eb75 lea rdx, [rdx + rdx*2] | rdx *= 3; 0x0041eb79 lea rsi, [rax + rdx*8 + 0x18] | 0x0041eb7e mov edx, 1 | 0x0041eb83 mov rdi, rbx | 0x0041eb86 call 0x420340 | bsl::vector>::insert(BloombergLP::bdlbb::BlobBufferconst*,unsigned long,BloombergLP::bdlbb::BlobBufferconst&) (rbx, rax + rdx*8 + 0x18, 1, rcx); 0x0041eb8b inc dword [rbx + 0x28] | *((rbx + 0x28))++; 0x0041eb8e mov dword [rbx + 0x2c], ebp | *((rbx + 0x2c)) = ebp; 0x0041eb91 jmp 0x41ebb6 | | } | } else { 0x0041eb93 mov rax, qword [rbx] | rax = *(rbx); 0x0041eb96 movsxd rdx, dword [rbx + 0x28] | rdx = *((rbx + 0x28)); 0x0041eb9a lea rdx, [rdx + rdx*2] | rdx *= 3; 0x0041eb9e lea rsi, [rax + rdx*8 + 0x18] | 0x0041eba3 mov edx, 1 | 0x0041eba8 mov rdi, rbx | 0x0041ebab call 0x420340 | bsl::vector>::insert(BloombergLP::bdlbb::BlobBufferconst*,unsigned long,BloombergLP::bdlbb::BlobBufferconst&) (rbx, rax + rdx*8 + 0x18, 1, rcx); 0x0041ebb0 mov dword [rbx + 0x2c], ebp | *((rbx + 0x2c)) = ebp; 0x0041ebb3 inc dword [rbx + 0x28] | *((rbx + 0x28))++; | } 0x0041ebb6 add dword [rbx + 0x20], r14d | *((rbx + 0x20)) += r14d; 0x0041ebba add dword [rbx + 0x24], r14d | *((rbx + 0x24)) += r14d; 0x0041ebbe pop rbx | 0x0041ebbf pop r14 | 0x0041ebc1 pop rbp | 0x0041ebc2 ret | return rax; | }