; assembly | /* r2dec pseudo code output */ | /* balxml_configschema.t/none @ 0x40e2b0 */ | #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*) */ 0x0040e2b0 push r15 | 0x0040e2b2 push r14 | 0x0040e2b4 push r13 | 0x0040e2b6 push r12 | 0x0040e2b8 push rbx | 0x0040e2b9 mov r14, rdi | r14 = rdi; 0x0040e2bc mov r12, qword [rdi] | r12 = *(rdi); 0x0040e2bf mov r13, qword [rdi + 8] | r13 = *((rdi + 8)); 0x0040e2c3 mov r15, r12 | r15 = r12; 0x0040e2c6 cmp r12, r13 | | if (r12 == r13) { 0x0040e2c9 je 0x40e2e5 | goto label_2; | } 0x0040e2cb mov r15, r12 | r15 = r12; 0x0040e2ce nop | | do { 0x0040e2d0 cmp dword [r15 + 0x40], 0 | | if (*((r15 + 0x40)) == 0) { 0x0040e2d5 je 0x40e2e5 | goto label_2; | } 0x0040e2d7 add r15, 0x50 | r15 += 0x50; 0x0040e2db cmp r13, r15 | 0x0040e2de jne 0x40e2d0 | | } while (r13 != r15); 0x0040e2e0 mov r15, r13 | r15 = r13; 0x0040e2e3 jmp 0x40e2f3 | goto label_0; | label_2: 0x0040e2e5 cmp r15, r13 | | if (r15 != r13) { 0x0040e2e8 je 0x40e2f3 | 0x0040e2ea lea rbx, [r15 + 0x50] | rbx = r15 + 0x50; 0x0040e2ee cmp rbx, r13 | | if (rbx != r13) { 0x0040e2f1 jne 0x40e369 | goto label_3; | } | } | label_0: 0x0040e2f3 cmp r15, r12 | | if (r15 == r12) { 0x0040e2f6 je 0x40e314 | goto label_4; | } 0x0040e2f8 nop dword [rax + rax] | | do { 0x0040e300 cmp dword [r12 + 0x40], 0 | | if (*((r12 + 0x40)) == 0) { 0x0040e306 je 0x40e380 | goto label_5; | } 0x0040e308 add r12, 0x50 | r12 += 0x50; 0x0040e30c cmp r15, r12 | 0x0040e30f jne 0x40e300 | | } while (r15 != r12); 0x0040e311 mov r12, r15 | r12 = r15; | label_4: 0x0040e314 mov r15, qword [r14 + 8] | r15 = *((r14 + 8)); 0x0040e318 mov rax, r12 | rax = r12; 0x0040e31b cmp r15, r12 | | if (r15 == r12) { 0x0040e31e je 0x40e345 | goto label_6; | } 0x0040e320 mov rbx, r12 | rbx = r12; 0x0040e323 nop word cs:[rax + rax] | 0x0040e32d nop dword [rax] | | do { 0x0040e330 mov rdi, rbx | 0x0040e333 call 0x42ff50 | BloombergLP::s_baltst::BasicSchemaEnumerationElementChoice::reset() (rbx); 0x0040e338 add rbx, 0x50 | rbx += 0x50; 0x0040e33c cmp r15, rbx | 0x0040e33f jne 0x40e330 | | } while (r15 != rbx); 0x0040e341 mov rax, qword [r14 + 8] | rax = *((r14 + 8)); | label_6: 0x0040e345 sub r12, r15 | r12 -= r15; 0x0040e348 add r12, rax | r12 += rax; 0x0040e34b mov qword [r14 + 8], r12 | *((r14 + 8)) = r12; 0x0040e34f pop rbx | 0x0040e350 pop r12 | 0x0040e352 pop r13 | 0x0040e354 pop r14 | 0x0040e356 pop r15 | 0x0040e358 ret | return rax; | label_1: 0x0040e360 add rbx, 0x50 | rbx += 0x50; 0x0040e364 cmp r13, rbx | | if (r13 == rbx) { 0x0040e367 je 0x40e2f3 | goto label_0; | } | label_3: 0x0040e369 cmp dword [rbx + 0x40], 0 | | if (*((rbx + 0x40)) == 0) { 0x0040e36d je 0x40e360 | goto label_1; | } 0x0040e36f mov rdi, r15 | 0x0040e372 mov rsi, rbx | 0x0040e375 call 0x42ffa0 | BloombergLP::s_baltst::BasicSchemaEnumerationElementChoice::operator=(BloombergLP::s_baltst::BasicSchemaEnumerationElementChoice&&) (r15, rbx); 0x0040e37a add r15, 0x50 | r15 += 0x50; 0x0040e37e jmp 0x40e360 | goto label_1; | label_5: 0x0040e380 call 0x405020 | rax = BloombergLP::s_baltst::BasicSchemaUtil_ImplUtil::doRemoveAnnotations(BloombergLP::s_baltst::BasicSchemaAnnotationElement*) (rdi, rsi, rdx, rcx, r8, r9); 0x0040e385 mov rdi, rax | rdi = rax; 0x0040e388 call 0x40be00 | rax = _clang_call_terminate (); 0x0040e38d nop dword [rax] | | }