; assembly | /* r2dec pseudo code output */ | /* balxml_configschema.t/assume @ 0x40e260 */ | #include | ; (fcn) method.void_BloombergLP::s_baltst::BasicSchemaUtil_ImplUtil::doRemoveAnnotations_BloombergLP::s_baltst.BasicSchemaEnumerationElement__BloombergLP::s_baltst::BasicSchemaEnumerationElement_ () | int64_t method_void_BloombergLP::s_baltst::BasicSchemaUtil_ImplUtil::doRemoveAnnotations_BloombergLP::s_baltst_BasicSchemaEnumerationElement_BloombergLP::s_baltst::BasicSchemaEnumerationElement_ (int64_t arg6, int64_t arg5, int64_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | r9 = arg6; | r8 = arg5; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void BloombergLP::s_baltst::BasicSchemaUtil_ImplUtil::doRemoveAnnotations(BloombergLP::s_baltst::BasicSchemaEnumerationElement*) */ 0x0040e260 push r15 | 0x0040e262 push r14 | 0x0040e264 push r13 | 0x0040e266 push r12 | 0x0040e268 push rbx | 0x0040e269 mov r14, rdi | r14 = rdi; 0x0040e26c mov r12, qword [rdi] | r12 = *(rdi); 0x0040e26f mov r13, qword [rdi + 8] | r13 = *((rdi + 8)); 0x0040e273 mov r15, r12 | r15 = r12; 0x0040e276 cmp r12, r13 | | if (r12 == r13) { 0x0040e279 je 0x40e295 | goto label_2; | } 0x0040e27b mov r15, r12 | r15 = r12; 0x0040e27e nop | | do { 0x0040e280 cmp dword [r15 + 0x40], 0 | | if (*((r15 + 0x40)) == 0) { 0x0040e285 je 0x40e295 | goto label_2; | } 0x0040e287 add r15, 0x50 | r15 += 0x50; 0x0040e28b cmp r13, r15 | 0x0040e28e jne 0x40e280 | | } while (r13 != r15); 0x0040e290 mov r15, r13 | r15 = r13; 0x0040e293 jmp 0x40e2a3 | goto label_0; | label_2: 0x0040e295 cmp r15, r13 | | if (r15 != r13) { 0x0040e298 je 0x40e2a3 | 0x0040e29a lea rbx, [r15 + 0x50] | rbx = r15 + 0x50; 0x0040e29e cmp rbx, r13 | | if (rbx != r13) { 0x0040e2a1 jne 0x40e2f9 | goto label_3; | } | } | label_0: 0x0040e2a3 cmp r15, r12 | | if (r15 != r12) { 0x0040e2a6 jne 0x40e310 | goto label_4; | } 0x0040e2a8 mov r15, qword [r14 + 8] | r15 = *((r14 + 8)); 0x0040e2ac mov rax, r12 | rax = r12; 0x0040e2af cmp r15, r12 | | if (r15 == r12) { 0x0040e2b2 je 0x40e2d5 | goto label_5; | } 0x0040e2b4 mov rbx, r12 | rbx = r12; 0x0040e2b7 nop word [rax + rax] | | do { 0x0040e2c0 mov rdi, rbx | 0x0040e2c3 call 0x42fe60 | BloombergLP::s_baltst::BasicSchemaEnumerationElementChoice::reset() (rbx); 0x0040e2c8 add rbx, 0x50 | rbx += 0x50; 0x0040e2cc cmp r15, rbx | 0x0040e2cf jne 0x40e2c0 | | } while (r15 != rbx); 0x0040e2d1 mov rax, qword [r14 + 8] | rax = *((r14 + 8)); | label_5: 0x0040e2d5 sub r12, r15 | r12 -= r15; 0x0040e2d8 add r12, rax | r12 += rax; 0x0040e2db mov qword [r14 + 8], r12 | *((r14 + 8)) = r12; 0x0040e2df pop rbx | 0x0040e2e0 pop r12 | 0x0040e2e2 pop r13 | 0x0040e2e4 pop r14 | 0x0040e2e6 pop r15 | 0x0040e2e8 ret | return rax; | label_1: 0x0040e2f0 add rbx, 0x50 | rbx += 0x50; 0x0040e2f4 cmp r13, rbx | | if (r13 == rbx) { 0x0040e2f7 je 0x40e2a3 | goto label_0; | } | label_3: 0x0040e2f9 cmp dword [rbx + 0x40], 0 | | if (*((rbx + 0x40)) == 0) { 0x0040e2fd je 0x40e2f0 | goto label_1; | } 0x0040e2ff mov rdi, r15 | 0x0040e302 mov rsi, rbx | 0x0040e305 call 0x42feb0 | BloombergLP::s_baltst::BasicSchemaEnumerationElementChoice::operator=(BloombergLP::s_baltst::BasicSchemaEnumerationElementChoice&&) (r15, rbx); 0x0040e30a add r15, 0x50 | r15 += 0x50; 0x0040e30e jmp 0x40e2f0 | goto label_1; | label_4: 0x0040e310 call 0x404fe0 | rax = BloombergLP::s_baltst::BasicSchemaUtil_ImplUtil::doRemoveAnnotations(BloombergLP::s_baltst::BasicSchemaAnnotationElement*) (rdi, rsi, rdx, rcx, r8, r9); 0x0040e315 mov rdi, rax | rdi = rax; 0x0040e318 call 0x40bdc0 | rax = _clang_call_terminate (); 0x0040e31d nop dword [rax] | | }