Dump of assembler code for function CoreVsnprintf(CorUnix::CPalThread*, char*, unsigned long, char const*, __va_list_tag*): 1574 { 0x0000000000410bd0 <+0>: push %rbp 0x0000000000410bd1 <+1>: mov %rsp,%rbp 0x0000000000410bd4 <+4>: sub $0x7c0,%rsp 0x0000000000410bdb <+11>: lea -0x430(%rbp),%rax 0x0000000000410be2 <+18>: mov 0x318227(%rip),%r9 # 0x728e10 0x0000000000410be9 <+25>: mov (%r9),%r9 0x0000000000410bec <+28>: mov %r9,-0x8(%rbp) 0x0000000000410bf0 <+32>: mov %rdi,-0x4b0(%rbp) 0x0000000000410bf7 <+39>: mov %rsi,-0x4b8(%rbp) 0x0000000000410bfe <+46>: mov %rdx,-0x4c0(%rbp) 0x0000000000410c05 <+53>: mov %rcx,-0x4c8(%rbp) 0x0000000000410c0c <+60>: mov %r8,-0x4d0(%rbp) 1575 BOOL BufferRanOut = FALSE; 0x0000000000410c13 <+67>: movl $0x0,-0x4d4(%rbp) 1576 CHAR TempBuff[1024]; /* used to hold a single % format string */ 1577 LPSTR BufferPtr = Buffer; 0x0000000000410c1d <+77>: mov -0x4b8(%rbp),%rcx 0x0000000000410c24 <+84>: mov %rcx,-0x460(%rbp) 1578 LPCSTR Fmt = Format; 0x0000000000410c2b <+91>: mov -0x4c8(%rbp),%rcx 0x0000000000410c32 <+98>: mov %rcx,-0x468(%rbp) 1579 LPWSTR TempWStr; 1580 LPSTR TempStr; 1581 WCHAR TempWChar; 1582 INT Flags; 1583 INT Width; 1584 INT Precision; 1585 INT Prefix; 1586 INT Type; 1587 INT Length; 1588 INT TempInt; 1589 int wctombResult; 1590 va_list ap; 1591 1592 va_copy(ap, aparg); 0x0000000000410c39 <+105>: mov -0x4d0(%rbp),%rcx 0x0000000000410c40 <+112>: mov 0x10(%rcx),%rdx 0x0000000000410c44 <+116>: mov %rdx,0x10(%rax) 0x0000000000410c48 <+120>: movups (%rcx),%xmm0 0x0000000000410c4b <+123>: movups %xmm0,(%rax) 1593 1594 while (*Fmt) 0x0000000000410c4e <+126>: mov -0x468(%rbp),%rax 0x0000000000410c55 <+133>: cmpb $0x0,(%rax) 0x0000000000410c58 <+136>: je 0x412341 0x000000000041233c <+5996>: jmpq 0x410c4e 1595 { 1596 if (BufferRanOut || (BufferPtr - Buffer) >= static_cast(Count)) //Count is assumed to be in the range of int 0x0000000000410c5e <+142>: cmpl $0x0,-0x4d4(%rbp) 0x0000000000410c65 <+149>: jne 0x410c91 0x0000000000410c6b <+155>: mov -0x460(%rbp),%rax 0x0000000000410c72 <+162>: mov -0x4b8(%rbp),%rcx 0x0000000000410c79 <+169>: sub %rcx,%rax 0x0000000000410c7c <+172>: mov -0x4c0(%rbp),%rcx 0x0000000000410c83 <+179>: mov %ecx,%edx 0x0000000000410c85 <+181>: movslq %edx,%rcx 0x0000000000410c88 <+184>: cmp %rcx,%rax 0x0000000000410c8b <+187>: jl 0x410ca0 1597 { 1598 BufferRanOut = TRUE; 0x0000000000410c91 <+193>: movl $0x1,-0x4d4(%rbp) 1599 break; 0x0000000000410c9b <+203>: jmpq 0x412341 1600 } 1601 else if(*Fmt == '%' && 0x0000000000410ca0 <+208>: mov -0x468(%rbp),%rax 0x0000000000410ca7 <+215>: movsbl (%rax),%ecx 0x0000000000410caa <+218>: cmp $0x25,%ecx 0x0000000000410cad <+221>: jne 0x412309 0x0000000000410cb3 <+227>: lea -0x468(%rbp),%rsi 0x0000000000410cba <+234>: lea -0x470(%rbp),%rcx 0x0000000000410cc1 <+241>: lea -0x474(%rbp),%r8 0x0000000000410cc8 <+248>: lea -0x478(%rbp),%r9 0x0000000000410ccf <+255>: lea -0x47c(%rbp),%rax 0x0000000000410cd6 <+262>: lea -0x480(%rbp),%rdx 0x0000000000410cdd <+269>: lea -0x410(%rbp),%rdi 0x0000000000410d24 <+340>: jne 0x412309 1602 TRUE == Internal_ExtractFormatA(pthrCurrent, &Fmt, TempBuff, &Flags, 0x0000000000410ce4 <+276>: mov -0x4b0(%rbp),%r10 0x0000000000410ceb <+283>: mov %rdi,-0x540(%rbp) 0x0000000000410cf2 <+290>: mov %r10,%rdi 0x0000000000410cf5 <+293>: mov -0x540(%rbp),%r10 0x0000000000410cfc <+300>: mov %rdx,-0x548(%rbp) 0x0000000000410d03 <+307>: mov %r10,%rdx 0x0000000000410d06 <+310>: mov %rax,(%rsp) 0x0000000000410d0a <+314>: mov -0x548(%rbp),%rax 0x0000000000410d11 <+321>: mov %rax,0x8(%rsp) 0x0000000000410d16 <+326>: callq 0x40e640 0x0000000000410d1b <+331>: mov $0x1,%r11d 0x0000000000410d21 <+337>: cmp %eax,%r11d 1603 &Width, &Precision, 1604 &Prefix, &Type)) 1605 { 1606 if (Prefix == PFF_PREFIX_LONG && Type == PFF_TYPE_STRING) 0x0000000000410d2a <+346>: cmpl $0x2,-0x47c(%rbp) 0x0000000000410d31 <+353>: jne 0x411780 0x0000000000410d37 <+359>: cmpl $0x2,-0x480(%rbp) 0x0000000000410d3e <+366>: jne 0x411780 0x0000000000410d44 <+372>: mov $0xfffffffe,%eax 1607 { 1608 if (WIDTH_STAR == Width) 0x0000000000410d49 <+377>: cmp -0x474(%rbp),%eax 0x0000000000410d4f <+383>: jne 0x410dce 0x0000000000410d55 <+389>: lea -0x430(%rbp),%rax 1609 { 1610 Width = va_arg(ap, INT); 0x0000000000410d5c <+396>: mov -0x430(%rbp),%ecx 0x0000000000410d62 <+402>: cmp $0x28,%ecx 0x0000000000410d65 <+405>: mov %rax,-0x550(%rbp) 0x0000000000410d6c <+412>: mov %ecx,-0x554(%rbp) 0x0000000000410d72 <+418>: ja 0x410d9d 0x0000000000410d78 <+424>: mov -0x554(%rbp),%eax 0x0000000000410d7e <+430>: movslq %eax,%rcx 0x0000000000410d81 <+433>: mov -0x550(%rbp),%rdx 0x0000000000410d88 <+440>: add 0x10(%rdx),%rcx 0x0000000000410d8c <+444>: add $0x8,%eax 0x0000000000410d8f <+447>: mov %eax,(%rdx) 0x0000000000410d91 <+449>: mov %rcx,-0x560(%rbp) 0x0000000000410d98 <+456>: jmpq 0x410dba 0x0000000000410d9d <+461>: mov -0x550(%rbp),%rax 0x0000000000410da4 <+468>: mov 0x8(%rax),%rcx 0x0000000000410da8 <+472>: mov %rcx,%rdx 0x0000000000410dab <+475>: add $0x8,%rcx 0x0000000000410daf <+479>: mov %rcx,0x8(%rax) 0x0000000000410db3 <+483>: mov %rdx,-0x560(%rbp) 0x0000000000410dba <+490>: mov -0x560(%rbp),%rax 0x0000000000410dc1 <+497>: mov (%rax),%ecx 0x0000000000410dc3 <+499>: mov %ecx,-0x474(%rbp) 1611 } 0x0000000000410dc9 <+505>: jmpq 0x410e58 0x0000000000410dce <+510>: mov $0xfffffffd,%eax 1612 else if (WIDTH_INVALID == Width) 0x0000000000410dd3 <+515>: cmp -0x474(%rbp),%eax 0x0000000000410dd9 <+521>: jne 0x410e53 0x0000000000410ddf <+527>: lea -0x430(%rbp),%rax 1613 { 1614 /* both a '*' and a number, ignore, but remove arg */ 1615 TempInt = va_arg(ap, INT); /* value not used */ 0x0000000000410de6 <+534>: mov -0x430(%rbp),%ecx 0x0000000000410dec <+540>: cmp $0x28,%ecx 0x0000000000410def <+543>: mov %rax,-0x568(%rbp) 0x0000000000410df6 <+550>: mov %ecx,-0x56c(%rbp) 0x0000000000410dfc <+556>: ja 0x410e27 0x0000000000410e02 <+562>: mov -0x56c(%rbp),%eax 0x0000000000410e08 <+568>: movslq %eax,%rcx 0x0000000000410e0b <+571>: mov -0x568(%rbp),%rdx 0x0000000000410e12 <+578>: add 0x10(%rdx),%rcx 0x0000000000410e16 <+582>: add $0x8,%eax 0x0000000000410e19 <+585>: mov %eax,(%rdx) 0x0000000000410e1b <+587>: mov %rcx,-0x578(%rbp) 0x0000000000410e22 <+594>: jmpq 0x410e44 0x0000000000410e27 <+599>: mov -0x568(%rbp),%rax 0x0000000000410e2e <+606>: mov 0x8(%rax),%rcx 0x0000000000410e32 <+610>: mov %rcx,%rdx 0x0000000000410e35 <+613>: add $0x8,%rcx 0x0000000000410e39 <+617>: mov %rcx,0x8(%rax) 0x0000000000410e3d <+621>: mov %rdx,-0x578(%rbp) 0x0000000000410e44 <+628>: mov -0x578(%rbp),%rax 0x0000000000410e4b <+635>: mov (%rax),%ecx 0x0000000000410e4d <+637>: mov %ecx,-0x4f0(%rbp) 0x0000000000410e53 <+643>: jmpq 0x410e58 0x0000000000410e58 <+648>: mov $0xfffffffe,%eax 1616 } 1617 1618 if (PRECISION_STAR == Precision) 0x0000000000410e5d <+653>: cmp -0x478(%rbp),%eax 0x0000000000410e63 <+659>: jne 0x410ee2 0x0000000000410e69 <+665>: lea -0x430(%rbp),%rax 1619 { 1620 Precision = va_arg(ap, INT); 0x0000000000410e70 <+672>: mov -0x430(%rbp),%ecx 0x0000000000410e76 <+678>: cmp $0x28,%ecx 0x0000000000410e79 <+681>: mov %rax,-0x580(%rbp) 0x0000000000410e80 <+688>: mov %ecx,-0x584(%rbp) 0x0000000000410e86 <+694>: ja 0x410eb1 0x0000000000410e8c <+700>: mov -0x584(%rbp),%eax 0x0000000000410e92 <+706>: movslq %eax,%rcx 0x0000000000410e95 <+709>: mov -0x580(%rbp),%rdx 0x0000000000410e9c <+716>: add 0x10(%rdx),%rcx 0x0000000000410ea0 <+720>: add $0x8,%eax 0x0000000000410ea3 <+723>: mov %eax,(%rdx) 0x0000000000410ea5 <+725>: mov %rcx,-0x590(%rbp) 0x0000000000410eac <+732>: jmpq 0x410ece 0x0000000000410eb1 <+737>: mov -0x580(%rbp),%rax 0x0000000000410eb8 <+744>: mov 0x8(%rax),%rcx 0x0000000000410ebc <+748>: mov %rcx,%rdx 0x0000000000410ebf <+751>: add $0x8,%rcx 0x0000000000410ec3 <+755>: mov %rcx,0x8(%rax) 0x0000000000410ec7 <+759>: mov %rdx,-0x590(%rbp) 0x0000000000410ece <+766>: mov -0x590(%rbp),%rax 0x0000000000410ed5 <+773>: mov (%rax),%ecx 0x0000000000410ed7 <+775>: mov %ecx,-0x478(%rbp) 1621 } 0x0000000000410edd <+781>: jmpq 0x410f6c 0x0000000000410ee2 <+786>: mov $0xfffffffc,%eax 1622 else if (PRECISION_INVALID == Precision) 0x0000000000410ee7 <+791>: cmp -0x478(%rbp),%eax 0x0000000000410eed <+797>: jne 0x410f67 0x0000000000410ef3 <+803>: lea -0x430(%rbp),%rax 1623 { 1624 /* both a '*' and a number, ignore, but remove arg */ 1625 TempInt = va_arg(ap, INT); /* value not used */ 0x0000000000410efa <+810>: mov -0x430(%rbp),%ecx 0x0000000000410f00 <+816>: cmp $0x28,%ecx 0x0000000000410f03 <+819>: mov %rax,-0x598(%rbp) 0x0000000000410f0a <+826>: mov %ecx,-0x59c(%rbp) 0x0000000000410f10 <+832>: ja 0x410f3b 0x0000000000410f16 <+838>: mov -0x59c(%rbp),%eax 0x0000000000410f1c <+844>: movslq %eax,%rcx 0x0000000000410f1f <+847>: mov -0x598(%rbp),%rdx 0x0000000000410f26 <+854>: add 0x10(%rdx),%rcx 0x0000000000410f2a <+858>: add $0x8,%eax 0x0000000000410f2d <+861>: mov %eax,(%rdx) 0x0000000000410f2f <+863>: mov %rcx,-0x5a8(%rbp) 0x0000000000410f36 <+870>: jmpq 0x410f58 0x0000000000410f3b <+875>: mov -0x598(%rbp),%rax 0x0000000000410f42 <+882>: mov 0x8(%rax),%rcx 0x0000000000410f46 <+886>: mov %rcx,%rdx 0x0000000000410f49 <+889>: add $0x8,%rcx 0x0000000000410f4d <+893>: mov %rcx,0x8(%rax) 0x0000000000410f51 <+897>: mov %rdx,-0x5a8(%rbp) 0x0000000000410f58 <+904>: mov -0x5a8(%rbp),%rax 0x0000000000410f5f <+911>: mov (%rax),%ecx 0x0000000000410f61 <+913>: mov %ecx,-0x4f0(%rbp) 0x0000000000410f67 <+919>: jmpq 0x410f6c 0x0000000000410f6c <+924>: lea -0x430(%rbp),%rax 1626 } 1627 1628 TempWStr = va_arg(ap, LPWSTR); 0x0000000000410f73 <+931>: mov -0x430(%rbp),%ecx 0x0000000000410f79 <+937>: cmp $0x28,%ecx 0x0000000000410f7c <+940>: mov %rax,-0x5b0(%rbp) 0x0000000000410f83 <+947>: mov %ecx,-0x5b4(%rbp) 0x0000000000410f89 <+953>: ja 0x410fb4 0x0000000000410f8f <+959>: mov -0x5b4(%rbp),%eax 0x0000000000410f95 <+965>: movslq %eax,%rcx 0x0000000000410f98 <+968>: mov -0x5b0(%rbp),%rdx 0x0000000000410f9f <+975>: add 0x10(%rdx),%rcx 0x0000000000410fa3 <+979>: add $0x8,%eax 0x0000000000410fa6 <+982>: mov %eax,(%rdx) 0x0000000000410fa8 <+984>: mov %rcx,-0x5c0(%rbp) 0x0000000000410faf <+991>: jmpq 0x410fd1 0x0000000000410fb4 <+996>: mov -0x5b0(%rbp),%rax 0x0000000000410fbb <+1003>: mov 0x8(%rax),%rcx 0x0000000000410fbf <+1007>: mov %rcx,%rdx 0x0000000000410fc2 <+1010>: add $0x8,%rcx 0x0000000000410fc6 <+1014>: mov %rcx,0x8(%rax) 0x0000000000410fca <+1018>: mov %rdx,-0x5c0(%rbp) 0x0000000000410fd1 <+1025>: mov -0x5c0(%rbp),%rax 0x0000000000410fd8 <+1032>: xor %ecx,%ecx 0x0000000000410fda <+1034>: mov $0xffffffff,%edx 0x0000000000410fdf <+1039>: xor %esi,%esi 0x0000000000410fe1 <+1041>: mov %esi,%r8d 0x0000000000410fe4 <+1044>: mov (%rax),%rax 0x0000000000410fe7 <+1047>: mov %rax,-0x4e0(%rbp) 1629 Length = WideCharToMultiByte(CP_ACP, 0, TempWStr, -1, 0, 0x0000000000410fee <+1054>: mov -0x4e0(%rbp),%rax 0x0000000000410ff5 <+1061>: mov %ecx,%edi 0x0000000000410ff7 <+1063>: mov %ecx,%esi 0x0000000000410ff9 <+1065>: mov %edx,-0x5c4(%rbp) 0x0000000000410fff <+1071>: mov %rax,%rdx 0x0000000000411002 <+1074>: mov -0x5c4(%rbp),%r9d 0x0000000000411009 <+1081>: mov %ecx,-0x5c8(%rbp) 0x000000000041100f <+1087>: mov %r9d,%ecx 0x0000000000411012 <+1090>: mov -0x5c8(%rbp),%r9d 0x0000000000411019 <+1097>: movq $0x0,(%rsp) 0x0000000000411021 <+1105>: movq $0x0,0x8(%rsp) 0x000000000041102a <+1114>: callq 0x435a20 0x000000000041102f <+1119>: mov %eax,-0x4ec(%rbp) 1630 0, 0, 0); 1631 if (!Length) 0x0000000000411035 <+1125>: cmpl $0x0,-0x4ec(%rbp) 0x000000000041103c <+1132>: jne 0x4111c8 1632 { 1633 ASSERT("WideCharToMultiByte failed. Error is %d\n", 0x0000000000411042 <+1138>: callq 0x429970 0x0000000000411047 <+1143>: xor %ecx,%ecx 0x0000000000411049 <+1145>: mov %cl,%dl 0x000000000041104b <+1147>: cmp $0x0,%eax 0x000000000041104e <+1150>: mov %dl,-0x5c9(%rbp) 0x0000000000411054 <+1156>: je 0x411099 0x000000000041105a <+1162>: callq 0x4e74f0 0x000000000041105f <+1167>: mov $0x1,%cl 0x0000000000411061 <+1169>: cmp $0x0,%rax 0x0000000000411065 <+1173>: mov %cl,-0x5ca(%rbp) 0x000000000041106b <+1179>: je 0x41108d 0x0000000000411071 <+1185>: callq 0x4e74f0 0x0000000000411076 <+1190>: mov %rax,%rdi 0x0000000000411079 <+1193>: callq 0x4e7520 0x000000000041107e <+1198>: cmp $0x0,%eax 0x0000000000411081 <+1201>: setne %cl 0x0000000000411084 <+1204>: xor $0xff,%cl 0x0000000000411087 <+1207>: mov %cl,-0x5ca(%rbp) 0x000000000041108d <+1213>: mov -0x5ca(%rbp),%al 0x0000000000411093 <+1219>: mov %al,-0x5c9(%rbp) 0x0000000000411099 <+1225>: mov -0x5c9(%rbp),%al 0x000000000041109f <+1231>: lea -0x488(%rbp),%rdi 0x00000000004110a6 <+1238>: and $0x1,%al 0x00000000004110a8 <+1240>: movzbl %al,%esi 0x00000000004110ab <+1243>: callq 0x4e7540 0x00000000004110b0 <+1248>: lea 0x319431(%rip),%rdi # 0x72a4e8 0x00000000004110b7 <+1255>: cmpq $0x0,(%rdi) 0x00000000004110bb <+1259>: je 0x411180 0x00000000004110c1 <+1265>: lea 0x319428(%rip),%rdi # 0x72a4f0 0x00000000004110c8 <+1272>: callq 0x4e7490 ::operator int() const> 0x00000000004110cd <+1277>: mov %eax,-0x5d0(%rbp) 0x00000000004110d3 <+1283>: jmpq 0x4110d8 0x00000000004110d8 <+1288>: mov -0x5d0(%rbp),%eax 0x00000000004110de <+1294>: cmp $0x0,%eax 0x00000000004110e1 <+1297>: je 0x411180 0x00000000004110e7 <+1303>: callq 0x447000 0x00000000004110ec <+1308>: mov %eax,-0x5d4(%rbp) 0x00000000004110f2 <+1314>: jmpq 0x4110f7 0x00000000004110f7 <+1319>: mov %rsp,%rax 0x00000000004110fa <+1322>: mov -0x5d4(%rbp),%ecx 0x0000000000411100 <+1328>: mov %ecx,0x8(%rax) 0x0000000000411103 <+1331>: lea 0xe1d7c(%rip),%rdx # 0x4f2e86 0x000000000041110a <+1338>: mov %rdx,(%rax) 0x000000000041110d <+1341>: lea 0xe235f(%rip),%rcx # 0x4f3473 0x0000000000411114 <+1348>: lea 0xe216e(%rip),%r8 # 0x4f3289 0x000000000041111b <+1355>: xor %esi,%esi 0x000000000041111d <+1357>: mov %sil,%dil 0x0000000000411120 <+1360>: mov $0x7,%esi 0x0000000000411125 <+1365>: mov $0x4,%r9d 0x000000000041112b <+1371>: mov $0x1,%edx 0x0000000000411130 <+1376>: mov $0x662,%r10d 0x0000000000411136 <+1382>: mov %dil,-0x5d5(%rbp) 0x000000000041113d <+1389>: mov %esi,%edi 0x000000000041113f <+1391>: mov %r9d,%esi 0x0000000000411142 <+1394>: mov %r10d,%r9d 0x0000000000411145 <+1397>: mov -0x5d5(%rbp),%al 0x000000000041114b <+1403>: callq 0x4461c0 0x0000000000411150 <+1408>: mov %eax,-0x5dc(%rbp) 0x0000000000411156 <+1414>: jmpq 0x41115b 0x000000000041115b <+1419>: jmpq 0x411180 0x0000000000411160 <+1424>: lea -0x488(%rbp),%rdi 0x0000000000411176 <+1446>: callq 0x4e75b0 0x000000000041117b <+1451>: jmpq 0x4123ee 0x0000000000411180 <+1456>: lea 0x319359(%rip),%rax # 0x72a4e0 0x0000000000411187 <+1463>: cmpl $0x0,(%rax) 0x000000000041118a <+1466>: je 0x41119f 0x0000000000411190 <+1472>: callq 0x420ed0 0x0000000000411195 <+1477>: jmpq 0x41119a 0x000000000041119a <+1482>: jmpq 0x41119f 0x000000000041119f <+1487>: lea -0x488(%rbp),%rdi 0x00000000004111a6 <+1494>: callq 0x4e75b0 0x00000000004111ab <+1499>: lea -0x430(%rbp),%rdi 0x00000000004123ee <+6174>: mov -0x500(%rbp),%rdi 0x00000000004123f5 <+6181>: callq 0x404e00 <_Unwind_Resume@plt> 0x00000000004123fa <+6186>: callq 0x404940 <__stack_chk_fail@plt> 0x00000000004123ff: nop 1634 GetLastError()); 1635 va_end(ap); 1636 return -1; 0x00000000004111b2 <+1506>: movl $0xffffffff,-0x4a4(%rbp) 0x00000000004111bc <+1516>: mov %rdi,-0x5e8(%rbp) 0x00000000004111c3 <+1523>: jmpq 0x4123bf 1637 } 1638 TempStr = (LPSTR) InternalMalloc(Length); 0x00000000004111c8 <+1528>: movslq -0x4ec(%rbp),%rdi 0x00000000004111cf <+1535>: callq 0x406ee0 0x00000000004111d4 <+1540>: mov %rax,-0x4e8(%rbp) 1639 if (!TempStr) 0x00000000004111db <+1547>: cmpq $0x0,-0x4e8(%rbp) 0x00000000004111e3 <+1555>: jne 0x4112a8 0x00000000004111e9 <+1561>: lea 0x3192f8(%rip),%rax # 0x72a4e8 1640 { 1641 ERROR("InternalMalloc failed\n"); 0x00000000004111f0 <+1568>: cmpq $0x0,(%rax) 0x00000000004111f4 <+1572>: je 0x411281 0x00000000004111fa <+1578>: lea 0x3192ef(%rip),%rdi # 0x72a4f0 0x0000000000411201 <+1585>: callq 0x4e7490 ::operator int() const> 0x0000000000411206 <+1590>: cmp $0x0,%eax 0x0000000000411209 <+1593>: je 0x411281 0x000000000041120f <+1599>: lea 0x31926a(%rip),%rax # 0x72a480 0x0000000000411216 <+1606>: mov 0x1c(%rax),%ecx 0x0000000000411219 <+1609>: and $0x8,%ecx 0x000000000041121c <+1612>: cmp $0x0,%ecx 0x000000000041121f <+1615>: je 0x411281 0x0000000000411225 <+1621>: lea 0xe2247(%rip),%rcx # 0x4f3473 0x000000000041122c <+1628>: lea 0xe2056(%rip),%r8 # 0x4f3289 0x0000000000411233 <+1635>: mov $0x669,%r9d 0x0000000000411239 <+1641>: lea 0xe2099(%rip),%rax # 0x4f32d9 0x0000000000411240 <+1648>: movl $0x7,-0x508(%rbp) 0x000000000041124a <+1658>: movl $0x3,-0x50c(%rbp) 0x0000000000411254 <+1668>: movl $0x1,-0x510(%rbp) 0x000000000041125e <+1678>: mov -0x508(%rbp),%edi 0x0000000000411264 <+1684>: mov -0x50c(%rbp),%esi 0x000000000041126a <+1690>: mov -0x510(%rbp),%edx 0x0000000000411270 <+1696>: mov %rax,(%rsp) 0x0000000000411274 <+1700>: mov $0x0,%al 0x0000000000411276 <+1702>: callq 0x4461c0 0x000000000041127b <+1707>: mov %eax,-0x5ec(%rbp) 0x0000000000411281 <+1713>: mov $0x8,%edi 1642 pthrCurrent->SetLastError(ERROR_NOT_ENOUGH_MEMORY); 0x0000000000411286 <+1718>: callq 0x4e7620 0x000000000041128b <+1723>: lea -0x430(%rbp),%rax 1643 va_end(ap); 1644 return -1; 0x0000000000411292 <+1730>: movl $0xffffffff,-0x4a4(%rbp) 0x000000000041129c <+1740>: mov %rax,-0x5f8(%rbp) 0x00000000004112a3 <+1747>: jmpq 0x4123bf 0x00000000004112a8 <+1752>: mov $0xfffffffd,%eax 1645 } 1646 if (PRECISION_DOT == Precision) 0x00000000004112ad <+1757>: cmp -0x478(%rbp),%eax 0x00000000004112b3 <+1763>: jne 0x4112d2 1647 { 1648 /* copy nothing */ 1649 *TempStr = 0; 0x00000000004112b9 <+1769>: mov -0x4e8(%rbp),%rax 0x00000000004112c0 <+1776>: movb $0x0,(%rax) 1650 Length = 0; 0x00000000004112c3 <+1779>: movl $0x0,-0x4ec(%rbp) 1651 } 0x00000000004112cd <+1789>: jmpq 0x41170b 1652 else if (Precision > 0 && Precision < Length - 1) 0x00000000004112d2 <+1794>: cmpl $0x0,-0x478(%rbp) 0x00000000004112d9 <+1801>: jle 0x411511 0x00000000004112df <+1807>: mov -0x478(%rbp),%eax 0x00000000004112e5 <+1813>: mov -0x4ec(%rbp),%ecx 0x00000000004112eb <+1819>: sub $0x1,%ecx 0x00000000004112ee <+1822>: cmp %ecx,%eax 0x00000000004112f0 <+1824>: jge 0x411511 0x00000000004112f6 <+1830>: xor %eax,%eax 0x00000000004112f8 <+1832>: xor %ecx,%ecx 0x00000000004112fa <+1834>: mov %ecx,%edx 1653 { 1654 Length = WideCharToMultiByte(CP_ACP, 0, TempWStr, 0x00000000004112fc <+1836>: mov -0x4e0(%rbp),%rsi 0x0000000000411317 <+1863>: mov %eax,%edi 0x0000000000411319 <+1865>: mov %rsi,-0x600(%rbp) 0x0000000000411320 <+1872>: mov %eax,%esi 0x0000000000411322 <+1874>: mov -0x600(%rbp),%r10 0x0000000000411329 <+1881>: mov %rdx,-0x608(%rbp) 0x0000000000411330 <+1888>: mov %r10,%rdx 0x0000000000411333 <+1891>: movq $0x0,(%rsp) 0x000000000041133b <+1899>: movq $0x0,0x8(%rsp) 0x0000000000411344 <+1908>: callq 0x435a20 0x0000000000411349 <+1913>: mov %eax,-0x4ec(%rbp) 1655 Precision, TempStr, Length, 0x0000000000411303 <+1843>: mov -0x478(%rbp),%ecx 0x0000000000411309 <+1849>: mov -0x4e8(%rbp),%r8 0x0000000000411310 <+1856>: mov -0x4ec(%rbp),%r9d 1656 0, 0); 1657 if (!Length) 0x000000000041134f <+1919>: cmpl $0x0,-0x4ec(%rbp) 0x0000000000411356 <+1926>: jne 0x4114ee 1658 { 1659 ASSERT("WideCharToMultiByte failed. Error is %d\n", 0x000000000041135c <+1932>: callq 0x429970 0x0000000000411361 <+1937>: xor %ecx,%ecx 0x0000000000411363 <+1939>: mov %cl,%dl 0x0000000000411365 <+1941>: cmp $0x0,%eax 0x0000000000411368 <+1944>: mov %dl,-0x609(%rbp) 0x000000000041136e <+1950>: je 0x4113b3 0x0000000000411374 <+1956>: callq 0x4e74f0 0x0000000000411379 <+1961>: mov $0x1,%cl 0x000000000041137b <+1963>: cmp $0x0,%rax 0x000000000041137f <+1967>: mov %cl,-0x60a(%rbp) 0x0000000000411385 <+1973>: je 0x4113a7 0x000000000041138b <+1979>: callq 0x4e74f0 0x0000000000411390 <+1984>: mov %rax,%rdi 0x0000000000411393 <+1987>: callq 0x4e7520 0x0000000000411398 <+1992>: cmp $0x0,%eax 0x000000000041139b <+1995>: setne %cl 0x000000000041139e <+1998>: xor $0xff,%cl 0x00000000004113a1 <+2001>: mov %cl,-0x60a(%rbp) 0x00000000004113a7 <+2007>: mov -0x60a(%rbp),%al 0x00000000004113ad <+2013>: mov %al,-0x609(%rbp) 0x00000000004113b3 <+2019>: mov -0x609(%rbp),%al 0x00000000004113b9 <+2025>: lea -0x490(%rbp),%rdi 0x00000000004113c0 <+2032>: and $0x1,%al 0x00000000004113c2 <+2034>: movzbl %al,%esi 0x00000000004113c5 <+2037>: callq 0x4e7540 0x00000000004113ca <+2042>: lea 0x319117(%rip),%rdi # 0x72a4e8 0x00000000004113d1 <+2049>: cmpq $0x0,(%rdi) 0x00000000004113d5 <+2053>: je 0x41149a 0x00000000004113db <+2059>: lea 0x31910e(%rip),%rdi # 0x72a4f0 0x00000000004113e2 <+2066>: callq 0x4e7490 ::operator int() const> 0x00000000004113e7 <+2071>: mov %eax,-0x610(%rbp) 0x00000000004113ed <+2077>: jmpq 0x4113f2 0x00000000004113f2 <+2082>: mov -0x610(%rbp),%eax 0x00000000004113f8 <+2088>: cmp $0x0,%eax 0x00000000004113fb <+2091>: je 0x41149a 0x0000000000411401 <+2097>: callq 0x447000 0x0000000000411406 <+2102>: mov %eax,-0x614(%rbp) 0x000000000041140c <+2108>: jmpq 0x411411 0x0000000000411411 <+2113>: mov %rsp,%rax 0x0000000000411414 <+2116>: mov -0x614(%rbp),%ecx 0x000000000041141a <+2122>: mov %ecx,0x8(%rax) 0x000000000041141d <+2125>: lea 0xe1a62(%rip),%rdx # 0x4f2e86 0x0000000000411424 <+2132>: mov %rdx,(%rax) 0x0000000000411427 <+2135>: lea 0xe2045(%rip),%rcx # 0x4f3473 0x000000000041142e <+2142>: lea 0xe1e54(%rip),%r8 # 0x4f3289 0x0000000000411435 <+2149>: xor %esi,%esi 0x0000000000411437 <+2151>: mov %sil,%dil 0x000000000041143a <+2154>: mov $0x7,%esi 0x000000000041143f <+2159>: mov $0x4,%r9d 0x0000000000411445 <+2165>: mov $0x1,%edx 0x000000000041144a <+2170>: mov $0x67c,%r10d 0x0000000000411450 <+2176>: mov %dil,-0x615(%rbp) 0x0000000000411457 <+2183>: mov %esi,%edi 0x0000000000411459 <+2185>: mov %r9d,%esi 0x000000000041145c <+2188>: mov %r10d,%r9d 0x000000000041145f <+2191>: mov -0x615(%rbp),%al 0x0000000000411465 <+2197>: callq 0x4461c0 0x000000000041146a <+2202>: mov %eax,-0x61c(%rbp) 0x0000000000411470 <+2208>: jmpq 0x411475 0x0000000000411475 <+2213>: jmpq 0x41149a 0x000000000041147a <+2218>: lea -0x490(%rbp),%rdi 0x0000000000411490 <+2240>: callq 0x4e75b0 0x0000000000411495 <+2245>: jmpq 0x4123ee 0x000000000041149a <+2250>: lea 0x31903f(%rip),%rax # 0x72a4e0 0x00000000004114a1 <+2257>: cmpl $0x0,(%rax) 0x00000000004114a4 <+2260>: je 0x4114b9 0x00000000004114aa <+2266>: callq 0x420ed0 0x00000000004114af <+2271>: jmpq 0x4114b4 0x00000000004114b4 <+2276>: jmpq 0x4114b9 0x00000000004114b9 <+2281>: lea -0x490(%rbp),%rdi 0x00000000004114c0 <+2288>: callq 0x4e75b0 1660 GetLastError()); 1661 InternalFree(TempStr); 0x00000000004114c5 <+2293>: mov -0x4e8(%rbp),%rdi 0x00000000004114cc <+2300>: callq 0x406e80 0x00000000004114d1 <+2305>: lea -0x430(%rbp),%rdi 1662 va_end(ap); 1663 return -1; 0x00000000004114d8 <+2312>: movl $0xffffffff,-0x4a4(%rbp) 0x00000000004114e2 <+2322>: mov %rdi,-0x628(%rbp) 0x00000000004114e9 <+2329>: jmpq 0x4123bf 1664 } 1665 TempStr[Length] = 0; 0x00000000004114ee <+2334>: movslq -0x4ec(%rbp),%rax 0x00000000004114f5 <+2341>: mov -0x4e8(%rbp),%rcx 0x00000000004114fc <+2348>: movb $0x0,(%rcx,%rax,1) 1666 Length = Precision; 0x0000000000411500 <+2352>: mov -0x478(%rbp),%edx 0x0000000000411506 <+2358>: mov %edx,-0x4ec(%rbp) 1667 } 0x000000000041150c <+2364>: jmpq 0x411706 0x0000000000411511 <+2369>: xor %eax,%eax 0x0000000000411513 <+2371>: mov $0xffffffff,%ecx 0x0000000000411518 <+2376>: xor %edx,%edx 0x000000000041151a <+2378>: mov %edx,%esi 1668 /* copy everything */ 1669 else 1670 { 1671 wctombResult = WideCharToMultiByte(CP_ACP, 0, TempWStr, -1, 0x000000000041151c <+2380>: mov -0x4e0(%rbp),%rdx 0x0000000000411531 <+2401>: mov %eax,%edi 0x0000000000411533 <+2403>: mov %rsi,-0x630(%rbp) 0x000000000041153a <+2410>: mov %eax,%esi 0x000000000041153c <+2412>: movq $0x0,(%rsp) 0x0000000000411544 <+2420>: movq $0x0,0x8(%rsp) 0x000000000041154d <+2429>: callq 0x435a20 0x0000000000411552 <+2434>: mov %eax,-0x4f4(%rbp) 1672 TempStr, Length, 0, 0); 0x0000000000411523 <+2387>: mov -0x4e8(%rbp),%r8 0x000000000041152a <+2394>: mov -0x4ec(%rbp),%r9d 1673 if (!wctombResult) 0x0000000000411558 <+2440>: cmpl $0x0,-0x4f4(%rbp) 0x000000000041155f <+2447>: jne 0x4116f7 1674 { 1675 ASSERT("WideCharToMultiByte failed. Error is %d\n", 0x0000000000411565 <+2453>: callq 0x429970 0x000000000041156a <+2458>: xor %ecx,%ecx 0x000000000041156c <+2460>: mov %cl,%dl 0x000000000041156e <+2462>: cmp $0x0,%eax 0x0000000000411571 <+2465>: mov %dl,-0x631(%rbp) 0x0000000000411577 <+2471>: je 0x4115bc 0x000000000041157d <+2477>: callq 0x4e74f0 0x0000000000411582 <+2482>: mov $0x1,%cl 0x0000000000411584 <+2484>: cmp $0x0,%rax 0x0000000000411588 <+2488>: mov %cl,-0x632(%rbp) 0x000000000041158e <+2494>: je 0x4115b0 0x0000000000411594 <+2500>: callq 0x4e74f0 0x0000000000411599 <+2505>: mov %rax,%rdi 0x000000000041159c <+2508>: callq 0x4e7520 0x00000000004115a1 <+2513>: cmp $0x0,%eax 0x00000000004115a4 <+2516>: setne %cl 0x00000000004115a7 <+2519>: xor $0xff,%cl 0x00000000004115aa <+2522>: mov %cl,-0x632(%rbp) 0x00000000004115b0 <+2528>: mov -0x632(%rbp),%al 0x00000000004115b6 <+2534>: mov %al,-0x631(%rbp) 0x00000000004115bc <+2540>: mov -0x631(%rbp),%al 0x00000000004115c2 <+2546>: lea -0x498(%rbp),%rdi 0x00000000004115c9 <+2553>: and $0x1,%al 0x00000000004115cb <+2555>: movzbl %al,%esi 0x00000000004115ce <+2558>: callq 0x4e7540 0x00000000004115d3 <+2563>: lea 0x318f0e(%rip),%rdi # 0x72a4e8 0x00000000004115da <+2570>: cmpq $0x0,(%rdi) 0x00000000004115de <+2574>: je 0x4116a3 0x00000000004115e4 <+2580>: lea 0x318f05(%rip),%rdi # 0x72a4f0 0x00000000004115eb <+2587>: callq 0x4e7490 ::operator int() const> 0x00000000004115f0 <+2592>: mov %eax,-0x638(%rbp) 0x00000000004115f6 <+2598>: jmpq 0x4115fb 0x00000000004115fb <+2603>: mov -0x638(%rbp),%eax 0x0000000000411601 <+2609>: cmp $0x0,%eax 0x0000000000411604 <+2612>: je 0x4116a3 0x000000000041160a <+2618>: callq 0x447000 0x000000000041160f <+2623>: mov %eax,-0x63c(%rbp) 0x0000000000411615 <+2629>: jmpq 0x41161a 0x000000000041161a <+2634>: mov %rsp,%rax 0x000000000041161d <+2637>: mov -0x63c(%rbp),%ecx 0x0000000000411623 <+2643>: mov %ecx,0x8(%rax) 0x0000000000411626 <+2646>: lea 0xe1859(%rip),%rdx # 0x4f2e86 0x000000000041162d <+2653>: mov %rdx,(%rax) 0x0000000000411630 <+2656>: lea 0xe1e3c(%rip),%rcx # 0x4f3473 0x0000000000411637 <+2663>: lea 0xe1c4b(%rip),%r8 # 0x4f3289 0x000000000041163e <+2670>: xor %esi,%esi 0x0000000000411640 <+2672>: mov %sil,%dil 0x0000000000411643 <+2675>: mov $0x7,%esi 0x0000000000411648 <+2680>: mov $0x4,%r9d 0x000000000041164e <+2686>: mov $0x1,%edx 0x0000000000411653 <+2691>: mov $0x68c,%r10d 0x0000000000411659 <+2697>: mov %dil,-0x63d(%rbp) 0x0000000000411660 <+2704>: mov %esi,%edi 0x0000000000411662 <+2706>: mov %r9d,%esi 0x0000000000411665 <+2709>: mov %r10d,%r9d 0x0000000000411668 <+2712>: mov -0x63d(%rbp),%al 0x000000000041166e <+2718>: callq 0x4461c0 0x0000000000411673 <+2723>: mov %eax,-0x644(%rbp) 0x0000000000411679 <+2729>: jmpq 0x41167e 0x000000000041167e <+2734>: jmpq 0x4116a3 0x0000000000411683 <+2739>: lea -0x498(%rbp),%rdi 0x0000000000411699 <+2761>: callq 0x4e75b0 0x000000000041169e <+2766>: jmpq 0x4123ee 0x00000000004116a3 <+2771>: lea 0x318e36(%rip),%rax # 0x72a4e0 0x00000000004116aa <+2778>: cmpl $0x0,(%rax) 0x00000000004116ad <+2781>: je 0x4116c2 0x00000000004116b3 <+2787>: callq 0x420ed0 0x00000000004116b8 <+2792>: jmpq 0x4116bd 0x00000000004116bd <+2797>: jmpq 0x4116c2 0x00000000004116c2 <+2802>: lea -0x498(%rbp),%rdi 0x00000000004116c9 <+2809>: callq 0x4e75b0 1676 GetLastError()); 1677 InternalFree(TempStr); 0x00000000004116ce <+2814>: mov -0x4e8(%rbp),%rdi 0x00000000004116d5 <+2821>: callq 0x406e80 0x00000000004116da <+2826>: lea -0x430(%rbp),%rdi 1678 va_end(ap); 1679 return -1; 0x00000000004116e1 <+2833>: movl $0xffffffff,-0x4a4(%rbp) 0x00000000004116eb <+2843>: mov %rdi,-0x650(%rbp) 0x00000000004116f2 <+2850>: jmpq 0x4123bf 1680 } 1681 --Length; /* exclude null char */ 0x00000000004116f7 <+2855>: mov -0x4ec(%rbp),%eax 0x00000000004116fd <+2861>: add $0xffffffff,%eax 0x0000000000411700 <+2864>: mov %eax,-0x4ec(%rbp) 0x0000000000411706 <+2870>: jmpq 0x41170b 0x000000000041170b <+2875>: lea -0x460(%rbp),%rdi 1682 } 1683 1684 /* do the padding (if needed)*/ 1685 BufferRanOut = !Internal_AddPaddingA(&BufferPtr, 0x000000000041174b <+2939>: mov %r8d,%ecx 0x000000000041174e <+2942>: mov %r9d,%r8d 0x0000000000411751 <+2945>: callq 0x406f40 0x0000000000411756 <+2950>: cmp $0x0,%eax 0x0000000000411759 <+2953>: setne %r10b 0x000000000041175d <+2957>: xor $0xff,%r10b 0x0000000000411761 <+2961>: and $0x1,%r10b 0x0000000000411765 <+2965>: movzbl %r10b,%eax 0x0000000000411769 <+2969>: mov %eax,-0x4d4(%rbp) 1686 Count - (BufferPtr - Buffer), 0x0000000000411712 <+2882>: mov -0x4c0(%rbp),%rax 0x0000000000411719 <+2889>: mov -0x460(%rbp),%rcx 0x0000000000411720 <+2896>: mov -0x4b8(%rbp),%rdx 0x0000000000411727 <+2903>: sub %rdx,%rcx 0x000000000041172a <+2906>: sub %rcx,%rax 0x000000000041172d <+2909>: mov %eax,%esi 1687 TempStr, 0x000000000041172f <+2911>: mov -0x4e8(%rbp),%rdx 1688 Width - Length, 0x0000000000411736 <+2918>: mov -0x474(%rbp),%r8d 0x000000000041173d <+2925>: sub -0x4ec(%rbp),%r8d 1689 Flags); 0x0000000000411744 <+2932>: mov -0x470(%rbp),%r9d 1690 1691 InternalFree(TempStr); 0x000000000041176f <+2975>: mov -0x4e8(%rbp),%rdi 0x0000000000411776 <+2982>: callq 0x406e80 1692 } 0x000000000041177b <+2987>: jmpq 0x412304 1693 else if (Prefix == PFF_PREFIX_LONG && Type == PFF_TYPE_CHAR) 0x0000000000411780 <+2992>: cmpl $0x2,-0x47c(%rbp) 0x0000000000411787 <+2999>: jne 0x411ba5 0x000000000041178d <+3005>: cmpl $0x1,-0x480(%rbp) 0x0000000000411794 <+3012>: jne 0x411ba5 0x000000000041179a <+3018>: mov $0xfffffffe,%eax 1694 { 1695 CHAR TempBuffer[5]; 1696 1697 if (WIDTH_STAR == Width || 0x000000000041179f <+3023>: cmp -0x474(%rbp),%eax 0x00000000004117a5 <+3029>: je 0x4117bc 0x00000000004117ab <+3035>: mov $0xfffffffd,%eax 0x00000000004117b6 <+3046>: jne 0x411830 0x00000000004117bc <+3052>: lea -0x430(%rbp),%rax 1698 WIDTH_INVALID == Width) 0x00000000004117b0 <+3040>: cmp -0x474(%rbp),%eax 1699 { 1700 /* ignore (because it's a char), and remove arg */ 1701 TempInt = va_arg(ap, INT); /* value not used */ 0x00000000004117c3 <+3059>: mov -0x430(%rbp),%ecx 0x00000000004117c9 <+3065>: cmp $0x28,%ecx 0x00000000004117cc <+3068>: mov %rax,-0x658(%rbp) 0x00000000004117d3 <+3075>: mov %ecx,-0x65c(%rbp) 0x00000000004117d9 <+3081>: ja 0x411804 0x00000000004117df <+3087>: mov -0x65c(%rbp),%eax 0x00000000004117e5 <+3093>: movslq %eax,%rcx 0x00000000004117e8 <+3096>: mov -0x658(%rbp),%rdx 0x00000000004117ef <+3103>: add 0x10(%rdx),%rcx 0x00000000004117f3 <+3107>: add $0x8,%eax 0x00000000004117f6 <+3110>: mov %eax,(%rdx) 0x00000000004117f8 <+3112>: mov %rcx,-0x668(%rbp) 0x00000000004117ff <+3119>: jmpq 0x411821 0x0000000000411804 <+3124>: mov -0x658(%rbp),%rax 0x000000000041180b <+3131>: mov 0x8(%rax),%rcx 0x000000000041180f <+3135>: mov %rcx,%rdx 0x0000000000411812 <+3138>: add $0x8,%rcx 0x0000000000411816 <+3142>: mov %rcx,0x8(%rax) 0x000000000041181a <+3146>: mov %rdx,-0x668(%rbp) 0x0000000000411821 <+3153>: mov -0x668(%rbp),%rax 0x0000000000411828 <+3160>: mov (%rax),%ecx 0x000000000041182a <+3162>: mov %ecx,-0x4f0(%rbp) 0x0000000000411830 <+3168>: mov $0xfffffffe,%eax 1702 } 1703 if (PRECISION_STAR == Precision || 0x0000000000411835 <+3173>: cmp -0x478(%rbp),%eax 0x000000000041183b <+3179>: je 0x411852 0x0000000000411841 <+3185>: mov $0xfffffffc,%eax 0x000000000041184c <+3196>: jne 0x4118c6 0x0000000000411852 <+3202>: lea -0x430(%rbp),%rax 1704 PRECISION_INVALID == Precision) 0x0000000000411846 <+3190>: cmp -0x478(%rbp),%eax 1705 { 1706 /* ignore (because it's a char), and remove arg */ 1707 TempInt = va_arg(ap, INT); /* value not used */ 0x0000000000411859 <+3209>: mov -0x430(%rbp),%ecx 0x000000000041185f <+3215>: cmp $0x28,%ecx 0x0000000000411862 <+3218>: mov %rax,-0x670(%rbp) 0x0000000000411869 <+3225>: mov %ecx,-0x674(%rbp) 0x000000000041186f <+3231>: ja 0x41189a 0x0000000000411875 <+3237>: mov -0x674(%rbp),%eax 0x000000000041187b <+3243>: movslq %eax,%rcx 0x000000000041187e <+3246>: mov -0x670(%rbp),%rdx 0x0000000000411885 <+3253>: add 0x10(%rdx),%rcx 0x0000000000411889 <+3257>: add $0x8,%eax 0x000000000041188c <+3260>: mov %eax,(%rdx) 0x000000000041188e <+3262>: mov %rcx,-0x680(%rbp) 0x0000000000411895 <+3269>: jmpq 0x4118b7 0x000000000041189a <+3274>: mov -0x670(%rbp),%rax 0x00000000004118a1 <+3281>: mov 0x8(%rax),%rcx 0x00000000004118a5 <+3285>: mov %rcx,%rdx 0x00000000004118a8 <+3288>: add $0x8,%rcx 0x00000000004118ac <+3292>: mov %rcx,0x8(%rax) 0x00000000004118b0 <+3296>: mov %rdx,-0x680(%rbp) 0x00000000004118b7 <+3303>: mov -0x680(%rbp),%rax 0x00000000004118be <+3310>: mov (%rax),%ecx 0x00000000004118c0 <+3312>: mov %ecx,-0x4f0(%rbp) 0x00000000004118c6 <+3318>: lea -0x430(%rbp),%rax 1708 } 1709 1710 TempWChar = va_arg(ap, int); 0x00000000004118cd <+3325>: mov -0x430(%rbp),%ecx 0x00000000004118d3 <+3331>: cmp $0x28,%ecx 0x00000000004118d6 <+3334>: mov %rax,-0x688(%rbp) 0x00000000004118dd <+3341>: mov %ecx,-0x68c(%rbp) 0x00000000004118e3 <+3347>: ja 0x41190e 0x00000000004118e9 <+3353>: mov -0x68c(%rbp),%eax 0x00000000004118ef <+3359>: movslq %eax,%rcx 0x00000000004118f2 <+3362>: mov -0x688(%rbp),%rdx 0x00000000004118f9 <+3369>: add 0x10(%rdx),%rcx 0x00000000004118fd <+3373>: add $0x8,%eax 0x0000000000411900 <+3376>: mov %eax,(%rdx) 0x0000000000411902 <+3378>: mov %rcx,-0x698(%rbp) 0x0000000000411909 <+3385>: jmpq 0x41192b 0x000000000041190e <+3390>: mov -0x688(%rbp),%rax 0x0000000000411915 <+3397>: mov 0x8(%rax),%rcx 0x0000000000411919 <+3401>: mov %rcx,%rdx 0x000000000041191c <+3404>: add $0x8,%rcx 0x0000000000411920 <+3408>: mov %rcx,0x8(%rax) 0x0000000000411924 <+3412>: mov %rdx,-0x698(%rbp) 0x000000000041192b <+3419>: mov -0x698(%rbp),%rax 0x0000000000411932 <+3426>: xor %ecx,%ecx 0x0000000000411934 <+3428>: lea -0x46a(%rbp),%rdx 0x000000000041193b <+3435>: mov $0x1,%esi 0x0000000000411940 <+3440>: mov $0x5,%r9d 0x0000000000411946 <+3446>: xor %edi,%edi 0x0000000000411948 <+3448>: mov %edi,%r8d 0x000000000041194b <+3451>: lea -0x455(%rbp),%r10 0x0000000000411952 <+3458>: mov (%rax),%edi 0x0000000000411954 <+3460>: mov %di,%r11w 0x0000000000411958 <+3464>: mov %r11w,-0x46a(%rbp) 1711 Length = WideCharToMultiByte(CP_ACP, 0, &TempWChar, 1, 0x0000000000411960 <+3472>: mov %ecx,%edi 0x0000000000411962 <+3474>: mov %esi,-0x69c(%rbp) 0x0000000000411968 <+3480>: mov %ecx,%esi 0x000000000041196a <+3482>: mov -0x69c(%rbp),%ecx 0x0000000000411970 <+3488>: mov %r8,-0x6a8(%rbp) 0x0000000000411977 <+3495>: mov %r10,%r8 0x000000000041197a <+3498>: movq $0x0,(%rsp) 0x0000000000411982 <+3506>: movq $0x0,0x8(%rsp) 0x000000000041198b <+3515>: callq 0x435a20 0x0000000000411990 <+3520>: mov %eax,-0x4ec(%rbp) 1712 TempBuffer, sizeof(TempBuffer), 1713 0, 0); 1714 if (!Length) 0x0000000000411996 <+3526>: cmpl $0x0,-0x4ec(%rbp) 0x000000000041199d <+3533>: jne 0x411b29 1715 { 1716 ASSERT("WideCharToMultiByte failed. Error is %d\n", 0x00000000004119a3 <+3539>: callq 0x429970 0x00000000004119a8 <+3544>: xor %ecx,%ecx 0x00000000004119aa <+3546>: mov %cl,%dl 0x00000000004119ac <+3548>: cmp $0x0,%eax 0x00000000004119af <+3551>: mov %dl,-0x6a9(%rbp) 0x00000000004119b5 <+3557>: je 0x4119fa 0x00000000004119bb <+3563>: callq 0x4e74f0 0x00000000004119c0 <+3568>: mov $0x1,%cl 0x00000000004119c2 <+3570>: cmp $0x0,%rax 0x00000000004119c6 <+3574>: mov %cl,-0x6aa(%rbp) 0x00000000004119cc <+3580>: je 0x4119ee 0x00000000004119d2 <+3586>: callq 0x4e74f0 0x00000000004119d7 <+3591>: mov %rax,%rdi 0x00000000004119da <+3594>: callq 0x4e7520 0x00000000004119df <+3599>: cmp $0x0,%eax 0x00000000004119e2 <+3602>: setne %cl 0x00000000004119e5 <+3605>: xor $0xff,%cl 0x00000000004119e8 <+3608>: mov %cl,-0x6aa(%rbp) 0x00000000004119ee <+3614>: mov -0x6aa(%rbp),%al 0x00000000004119f4 <+3620>: mov %al,-0x6a9(%rbp) 0x00000000004119fa <+3626>: mov -0x6a9(%rbp),%al 0x0000000000411a00 <+3632>: lea -0x4a0(%rbp),%rdi 0x0000000000411a07 <+3639>: and $0x1,%al 0x0000000000411a09 <+3641>: movzbl %al,%esi 0x0000000000411a0c <+3644>: callq 0x4e7540 0x0000000000411a11 <+3649>: lea 0x318ad0(%rip),%rdi # 0x72a4e8 0x0000000000411a18 <+3656>: cmpq $0x0,(%rdi) 0x0000000000411a1c <+3660>: je 0x411ae1 0x0000000000411a22 <+3666>: lea 0x318ac7(%rip),%rdi # 0x72a4f0 0x0000000000411a29 <+3673>: callq 0x4e7490 ::operator int() const> 0x0000000000411a2e <+3678>: mov %eax,-0x6b0(%rbp) 0x0000000000411a34 <+3684>: jmpq 0x411a39 0x0000000000411a39 <+3689>: mov -0x6b0(%rbp),%eax 0x0000000000411a3f <+3695>: cmp $0x0,%eax 0x0000000000411a42 <+3698>: je 0x411ae1 0x0000000000411a48 <+3704>: callq 0x447000 0x0000000000411a4d <+3709>: mov %eax,-0x6b4(%rbp) 0x0000000000411a53 <+3715>: jmpq 0x411a58 0x0000000000411a58 <+3720>: mov %rsp,%rax 0x0000000000411a5b <+3723>: mov -0x6b4(%rbp),%ecx 0x0000000000411a61 <+3729>: mov %ecx,0x8(%rax) 0x0000000000411a64 <+3732>: lea 0xe141b(%rip),%rdx # 0x4f2e86 0x0000000000411a6b <+3739>: mov %rdx,(%rax) 0x0000000000411a6e <+3742>: lea 0xe19fe(%rip),%rcx # 0x4f3473 0x0000000000411a75 <+3749>: lea 0xe180d(%rip),%r8 # 0x4f3289 0x0000000000411a7c <+3756>: xor %esi,%esi 0x0000000000411a7e <+3758>: mov %sil,%dil 0x0000000000411a81 <+3761>: mov $0x7,%esi 0x0000000000411a86 <+3766>: mov $0x4,%r9d 0x0000000000411a8c <+3772>: mov $0x1,%edx 0x0000000000411a91 <+3777>: mov $0x6b5,%r10d 0x0000000000411a97 <+3783>: mov %dil,-0x6b5(%rbp) 0x0000000000411a9e <+3790>: mov %esi,%edi 0x0000000000411aa0 <+3792>: mov %r9d,%esi 0x0000000000411aa3 <+3795>: mov %r10d,%r9d 0x0000000000411aa6 <+3798>: mov -0x6b5(%rbp),%al 0x0000000000411aac <+3804>: callq 0x4461c0 0x0000000000411ab1 <+3809>: mov %eax,-0x6bc(%rbp) 0x0000000000411ab7 <+3815>: jmpq 0x411abc 0x0000000000411abc <+3820>: jmpq 0x411ae1 0x0000000000411ac1 <+3825>: lea -0x4a0(%rbp),%rdi 0x0000000000411ad7 <+3847>: callq 0x4e75b0 0x0000000000411adc <+3852>: jmpq 0x4123ee 0x0000000000411ae1 <+3857>: lea 0x3189f8(%rip),%rax # 0x72a4e0 0x0000000000411ae8 <+3864>: cmpl $0x0,(%rax) 0x0000000000411aeb <+3867>: je 0x411b00 0x0000000000411af1 <+3873>: callq 0x420ed0 0x0000000000411af6 <+3878>: jmpq 0x411afb 0x0000000000411afb <+3883>: jmpq 0x411b00 0x0000000000411b00 <+3888>: lea -0x4a0(%rbp),%rdi 0x0000000000411b07 <+3895>: callq 0x4e75b0 0x0000000000411b0c <+3900>: lea -0x430(%rbp),%rdi 1717 GetLastError()); 1718 va_end(ap); 1719 return -1; 0x0000000000411b13 <+3907>: movl $0xffffffff,-0x4a4(%rbp) 0x0000000000411b1d <+3917>: mov %rdi,-0x6c8(%rbp) 0x0000000000411b24 <+3924>: jmpq 0x4123bf 0x0000000000411b29 <+3929>: lea -0x460(%rbp),%rdi 0x0000000000411b30 <+3936>: lea -0x455(%rbp),%rdx 1720 } 1721 TempBuffer[Length] = 0; 0x0000000000411b37 <+3943>: movslq -0x4ec(%rbp),%rax 0x0000000000411b3e <+3950>: movb $0x0,-0x455(%rbp,%rax,1) 1722 1723 /* do the padding (if needed)*/ 1724 BufferRanOut = !Internal_AddPaddingA(&BufferPtr, 0x0000000000411b79 <+4009>: mov %r8d,%esi 0x0000000000411b7c <+4012>: mov %r9d,%ecx 0x0000000000411b7f <+4015>: mov %r10d,%r8d 0x0000000000411b82 <+4018>: callq 0x406f40 0x0000000000411b87 <+4023>: cmp $0x0,%eax 0x0000000000411b8a <+4026>: setne %r11b 0x0000000000411b8e <+4030>: xor $0xff,%r11b 0x0000000000411b92 <+4034>: and $0x1,%r11b 0x0000000000411b96 <+4038>: movzbl %r11b,%eax 0x0000000000411b9a <+4042>: mov %eax,-0x4d4(%rbp) 1725 Count - (BufferPtr - Buffer), 0x0000000000411b46 <+3958>: mov -0x4c0(%rbp),%rax 0x0000000000411b4d <+3965>: mov -0x460(%rbp),%rcx 0x0000000000411b54 <+3972>: mov -0x4b8(%rbp),%rsi 0x0000000000411b5b <+3979>: sub %rsi,%rcx 0x0000000000411b5e <+3982>: sub %rcx,%rax 0x0000000000411b61 <+3985>: mov %eax,%r8d 1726 TempBuffer, 1727 Width - Length, 0x0000000000411b64 <+3988>: mov -0x474(%rbp),%r9d 0x0000000000411b6b <+3995>: sub -0x4ec(%rbp),%r9d 1728 Flags); 0x0000000000411b72 <+4002>: mov -0x470(%rbp),%r10d 1729 1730 } 0x0000000000411ba0 <+4048>: jmpq 0x4122ff 1731 /* this places the number of bytes written to the buffer in the 1732 next arg */ 1733 else if (Type == PFF_TYPE_N) 0x0000000000411ba5 <+4053>: cmpl $0x6,-0x480(%rbp) 0x0000000000411bac <+4060>: jne 0x411df7 0x0000000000411bb2 <+4066>: mov $0xfffffffe,%eax 1734 { 1735 if (WIDTH_STAR == Width) 0x0000000000411bb7 <+4071>: cmp -0x474(%rbp),%eax 0x0000000000411bbd <+4077>: jne 0x411c37 0x0000000000411bc3 <+4083>: lea -0x430(%rbp),%rax 1736 { 1737 Width = va_arg(ap, INT); 0x0000000000411bca <+4090>: mov -0x430(%rbp),%ecx 0x0000000000411bd0 <+4096>: cmp $0x28,%ecx 0x0000000000411bd3 <+4099>: mov %rax,-0x6d0(%rbp) 0x0000000000411bda <+4106>: mov %ecx,-0x6d4(%rbp) 0x0000000000411be0 <+4112>: ja 0x411c0b 0x0000000000411be6 <+4118>: mov -0x6d4(%rbp),%eax 0x0000000000411bec <+4124>: movslq %eax,%rcx 0x0000000000411bef <+4127>: mov -0x6d0(%rbp),%rdx 0x0000000000411bf6 <+4134>: add 0x10(%rdx),%rcx 0x0000000000411bfa <+4138>: add $0x8,%eax 0x0000000000411bfd <+4141>: mov %eax,(%rdx) 0x0000000000411bff <+4143>: mov %rcx,-0x6e0(%rbp) 0x0000000000411c06 <+4150>: jmpq 0x411c28 0x0000000000411c0b <+4155>: mov -0x6d0(%rbp),%rax 0x0000000000411c12 <+4162>: mov 0x8(%rax),%rcx 0x0000000000411c16 <+4166>: mov %rcx,%rdx 0x0000000000411c19 <+4169>: add $0x8,%rcx 0x0000000000411c1d <+4173>: mov %rcx,0x8(%rax) 0x0000000000411c21 <+4177>: mov %rdx,-0x6e0(%rbp) 0x0000000000411c28 <+4184>: mov -0x6e0(%rbp),%rax 0x0000000000411c2f <+4191>: mov (%rax),%ecx 0x0000000000411c31 <+4193>: mov %ecx,-0x474(%rbp) 0x0000000000411c37 <+4199>: mov $0xfffffffe,%eax 1738 } 1739 if (PRECISION_STAR == Precision) 0x0000000000411c3c <+4204>: cmp -0x478(%rbp),%eax 0x0000000000411c42 <+4210>: jne 0x411cbc 0x0000000000411c48 <+4216>: lea -0x430(%rbp),%rax 1740 { 1741 Precision = va_arg(ap, INT); 0x0000000000411c4f <+4223>: mov -0x430(%rbp),%ecx 0x0000000000411c55 <+4229>: cmp $0x28,%ecx 0x0000000000411c58 <+4232>: mov %rax,-0x6e8(%rbp) 0x0000000000411c5f <+4239>: mov %ecx,-0x6ec(%rbp) 0x0000000000411c65 <+4245>: ja 0x411c90 0x0000000000411c6b <+4251>: mov -0x6ec(%rbp),%eax 0x0000000000411c71 <+4257>: movslq %eax,%rcx 0x0000000000411c74 <+4260>: mov -0x6e8(%rbp),%rdx 0x0000000000411c7b <+4267>: add 0x10(%rdx),%rcx 0x0000000000411c7f <+4271>: add $0x8,%eax 0x0000000000411c82 <+4274>: mov %eax,(%rdx) 0x0000000000411c84 <+4276>: mov %rcx,-0x6f8(%rbp) 0x0000000000411c8b <+4283>: jmpq 0x411cad 0x0000000000411c90 <+4288>: mov -0x6e8(%rbp),%rax 0x0000000000411c97 <+4295>: mov 0x8(%rax),%rcx 0x0000000000411c9b <+4299>: mov %rcx,%rdx 0x0000000000411c9e <+4302>: add $0x8,%rcx 0x0000000000411ca2 <+4306>: mov %rcx,0x8(%rax) 0x0000000000411ca6 <+4310>: mov %rdx,-0x6f8(%rbp) 0x0000000000411cad <+4317>: mov -0x6f8(%rbp),%rax 0x0000000000411cb4 <+4324>: mov (%rax),%ecx 0x0000000000411cb6 <+4326>: mov %ecx,-0x478(%rbp) 1742 } 1743 1744 if (Prefix == PFF_PREFIX_SHORT) 0x0000000000411cbc <+4332>: cmpl $0x1,-0x47c(%rbp) 0x0000000000411cc3 <+4339>: jne 0x411d62 0x0000000000411cc9 <+4345>: lea -0x430(%rbp),%rax 1745 { 1746 *(va_arg(ap, short *)) = BufferPtr - Buffer; 0x0000000000411cd0 <+4352>: mov -0x460(%rbp),%rcx 0x0000000000411cd7 <+4359>: mov -0x4b8(%rbp),%rdx 0x0000000000411cde <+4366>: sub %rdx,%rcx 0x0000000000411ce1 <+4369>: mov %cx,%si 0x0000000000411ce4 <+4372>: mov -0x430(%rbp),%edi 0x0000000000411cea <+4378>: cmp $0x28,%edi 0x0000000000411ced <+4381>: mov %rax,-0x700(%rbp) 0x0000000000411cf4 <+4388>: mov %si,-0x702(%rbp) 0x0000000000411cfb <+4395>: mov %edi,-0x708(%rbp) 0x0000000000411d01 <+4401>: ja 0x411d2c 0x0000000000411d07 <+4407>: mov -0x708(%rbp),%eax 0x0000000000411d0d <+4413>: movslq %eax,%rcx 0x0000000000411d10 <+4416>: mov -0x700(%rbp),%rdx 0x0000000000411d17 <+4423>: add 0x10(%rdx),%rcx 0x0000000000411d1b <+4427>: add $0x8,%eax 0x0000000000411d1e <+4430>: mov %eax,(%rdx) 0x0000000000411d20 <+4432>: mov %rcx,-0x710(%rbp) 0x0000000000411d27 <+4439>: jmpq 0x411d49 0x0000000000411d2c <+4444>: mov -0x700(%rbp),%rax 0x0000000000411d33 <+4451>: mov 0x8(%rax),%rcx 0x0000000000411d37 <+4455>: mov %rcx,%rdx 0x0000000000411d3a <+4458>: add $0x8,%rcx 0x0000000000411d3e <+4462>: mov %rcx,0x8(%rax) 0x0000000000411d42 <+4466>: mov %rdx,-0x710(%rbp) 0x0000000000411d49 <+4473>: mov -0x710(%rbp),%rax 0x0000000000411d50 <+4480>: mov (%rax),%rax 0x0000000000411d53 <+4483>: mov -0x702(%rbp),%cx 0x0000000000411d5a <+4490>: mov %cx,(%rax) 1747 } 0x0000000000411d5d <+4493>: jmpq 0x411df2 0x0000000000411d62 <+4498>: lea -0x430(%rbp),%rax 1748 else 1749 { 1750 *(va_arg(ap, LPLONG)) = BufferPtr - Buffer; 0x0000000000411d69 <+4505>: mov -0x460(%rbp),%rcx 0x0000000000411d70 <+4512>: mov -0x4b8(%rbp),%rdx 0x0000000000411d77 <+4519>: sub %rdx,%rcx 0x0000000000411d7a <+4522>: mov %ecx,%esi 0x0000000000411d7c <+4524>: mov -0x430(%rbp),%edi 0x0000000000411d82 <+4530>: cmp $0x28,%edi 0x0000000000411d85 <+4533>: mov %rax,-0x718(%rbp) 0x0000000000411d8c <+4540>: mov %esi,-0x71c(%rbp) 0x0000000000411d92 <+4546>: mov %edi,-0x720(%rbp) 0x0000000000411d98 <+4552>: ja 0x411dc3 0x0000000000411d9e <+4558>: mov -0x720(%rbp),%eax 0x0000000000411da4 <+4564>: movslq %eax,%rcx 0x0000000000411da7 <+4567>: mov -0x718(%rbp),%rdx 0x0000000000411dae <+4574>: add 0x10(%rdx),%rcx 0x0000000000411db2 <+4578>: add $0x8,%eax 0x0000000000411db5 <+4581>: mov %eax,(%rdx) 0x0000000000411db7 <+4583>: mov %rcx,-0x728(%rbp) 0x0000000000411dbe <+4590>: jmpq 0x411de0 0x0000000000411dc3 <+4595>: mov -0x718(%rbp),%rax 0x0000000000411dca <+4602>: mov 0x8(%rax),%rcx 0x0000000000411dce <+4606>: mov %rcx,%rdx 0x0000000000411dd1 <+4609>: add $0x8,%rcx 0x0000000000411dd5 <+4613>: mov %rcx,0x8(%rax) 0x0000000000411dd9 <+4617>: mov %rdx,-0x728(%rbp) 0x0000000000411de0 <+4624>: mov -0x728(%rbp),%rax 0x0000000000411de7 <+4631>: mov (%rax),%rax 0x0000000000411dea <+4634>: mov -0x71c(%rbp),%ecx 0x0000000000411df0 <+4640>: mov %ecx,(%rax) 1751 } 1752 } 0x0000000000411df2 <+4642>: jmpq 0x4122fa 1753 else if (Type == PFF_TYPE_CHAR && (Flags & PFF_ZERO) != 0) 0x0000000000411df7 <+4647>: cmpl $0x1,-0x480(%rbp) 0x0000000000411dfe <+4654>: jne 0x411f07 0x0000000000411e04 <+4660>: mov -0x470(%rbp),%eax 0x0000000000411e0a <+4666>: and $0x4,%eax 0x0000000000411e0d <+4669>: cmp $0x0,%eax 0x0000000000411e10 <+4672>: je 0x411f07 0x0000000000411e16 <+4678>: lea -0x430(%rbp),%rax 1754 { 1755 // Some versions of sprintf don't support 0-padded chars, 1756 // so we handle them here. 1757 char ch[2]; 1758 1759 ch[0] = (char) va_arg(ap, int); 0x0000000000411e1d <+4685>: mov -0x430(%rbp),%ecx 0x0000000000411e23 <+4691>: cmp $0x28,%ecx 0x0000000000411e26 <+4694>: mov %rax,-0x730(%rbp) 0x0000000000411e2d <+4701>: mov %ecx,-0x734(%rbp) 0x0000000000411e33 <+4707>: ja 0x411e5e 0x0000000000411e39 <+4713>: mov -0x734(%rbp),%eax 0x0000000000411e3f <+4719>: movslq %eax,%rcx 0x0000000000411e42 <+4722>: mov -0x730(%rbp),%rdx 0x0000000000411e49 <+4729>: add 0x10(%rdx),%rcx 0x0000000000411e4d <+4733>: add $0x8,%eax 0x0000000000411e50 <+4736>: mov %eax,(%rdx) 0x0000000000411e52 <+4738>: mov %rcx,-0x740(%rbp) 0x0000000000411e59 <+4745>: jmpq 0x411e7b 0x0000000000411e5e <+4750>: mov -0x730(%rbp),%rax 0x0000000000411e65 <+4757>: mov 0x8(%rax),%rcx 0x0000000000411e69 <+4761>: mov %rcx,%rdx 0x0000000000411e6c <+4764>: add $0x8,%rcx 0x0000000000411e70 <+4768>: mov %rcx,0x8(%rax) 0x0000000000411e74 <+4772>: mov %rdx,-0x740(%rbp) 0x0000000000411e7b <+4779>: mov -0x740(%rbp),%rax 0x0000000000411e82 <+4786>: lea -0x460(%rbp),%rdi 0x0000000000411e89 <+4793>: lea -0x457(%rbp),%rdx 0x0000000000411e90 <+4800>: mov (%rax),%ecx 0x0000000000411e92 <+4802>: mov %cl,%sil 0x0000000000411e95 <+4805>: mov %sil,-0x457(%rbp) 1760 ch[1] = '\0'; 0x0000000000411e9c <+4812>: movb $0x0,-0x456(%rbp) 1761 Length = 1; 0x0000000000411ea3 <+4819>: movl $0x1,-0x4ec(%rbp) 1762 BufferRanOut = !Internal_AddPaddingA(&BufferPtr, 0x0000000000411edf <+4879>: mov %ecx,%esi 0x0000000000411ee1 <+4881>: mov %r10d,%ecx 0x0000000000411ee4 <+4884>: callq 0x406f40 0x0000000000411ee9 <+4889>: cmp $0x0,%eax 0x0000000000411eec <+4892>: setne %r11b 0x0000000000411ef0 <+4896>: xor $0xff,%r11b 0x0000000000411ef4 <+4900>: and $0x1,%r11b 0x0000000000411ef8 <+4904>: movzbl %r11b,%eax 0x0000000000411efc <+4908>: mov %eax,-0x4d4(%rbp) 1763 Count - (BufferPtr - Buffer), 0x0000000000411ead <+4829>: mov -0x4c0(%rbp),%rax 0x0000000000411eb4 <+4836>: mov -0x460(%rbp),%r8 0x0000000000411ebb <+4843>: mov -0x4b8(%rbp),%r9 0x0000000000411ec2 <+4850>: sub %r9,%r8 0x0000000000411ec5 <+4853>: sub %r8,%rax 0x0000000000411ec8 <+4856>: mov %eax,%ecx 1764 ch, 1765 Width - Length, 0x0000000000411eca <+4858>: mov -0x474(%rbp),%r10d 0x0000000000411ed1 <+4865>: sub -0x4ec(%rbp),%r10d 1766 Flags); 0x0000000000411ed8 <+4872>: mov -0x470(%rbp),%r8d 1767 } 0x0000000000411f02 <+4914>: jmpq 0x4122f5 1768 else if (Type == PFF_TYPE_STRING && (Flags & PFF_ZERO) != 0) 0x0000000000411f07 <+4919>: cmpl $0x2,-0x480(%rbp) 0x0000000000411f0e <+4926>: jne 0x412030 0x0000000000411f14 <+4932>: mov -0x470(%rbp),%eax 0x0000000000411f1a <+4938>: and $0x4,%eax 0x0000000000411f1d <+4941>: cmp $0x0,%eax 0x0000000000411f20 <+4944>: je 0x412030 0x0000000000411f26 <+4950>: lea -0x430(%rbp),%rax 1769 { 1770 // Some versions of sprintf don't support 0-padded strings, 1771 // so we handle them here. 1772 char *tempStr; 1773 1774 tempStr = va_arg(ap, char *); 0x0000000000411f2d <+4957>: mov -0x430(%rbp),%ecx 0x0000000000411f33 <+4963>: cmp $0x28,%ecx 0x0000000000411f36 <+4966>: mov %rax,-0x748(%rbp) 0x0000000000411f3d <+4973>: mov %ecx,-0x74c(%rbp) 0x0000000000411f43 <+4979>: ja 0x411f6e 0x0000000000411f49 <+4985>: mov -0x74c(%rbp),%eax 0x0000000000411f4f <+4991>: movslq %eax,%rcx 0x0000000000411f52 <+4994>: mov -0x748(%rbp),%rdx 0x0000000000411f59 <+5001>: add 0x10(%rdx),%rcx 0x0000000000411f5d <+5005>: add $0x8,%eax 0x0000000000411f60 <+5008>: mov %eax,(%rdx) 0x0000000000411f62 <+5010>: mov %rcx,-0x758(%rbp) 0x0000000000411f69 <+5017>: jmpq 0x411f8b 0x0000000000411f6e <+5022>: mov -0x748(%rbp),%rax 0x0000000000411f75 <+5029>: mov 0x8(%rax),%rcx 0x0000000000411f79 <+5033>: mov %rcx,%rdx 0x0000000000411f7c <+5036>: add $0x8,%rcx 0x0000000000411f80 <+5040>: mov %rcx,0x8(%rax) 0x0000000000411f84 <+5044>: mov %rdx,-0x758(%rbp) 0x0000000000411f8b <+5051>: mov -0x758(%rbp),%rax 0x0000000000411f92 <+5058>: lea -0x460(%rbp),%rdi 0x0000000000411f99 <+5065>: mov (%rax),%rax 0x0000000000411f9c <+5068>: mov %rax,-0x518(%rbp) 1775 Length = strlen(tempStr); 0x0000000000411fa3 <+5075>: mov -0x518(%rbp),%rax 0x0000000000411faa <+5082>: mov %rdi,-0x760(%rbp) 0x0000000000411fb1 <+5089>: mov %rax,%rdi 0x0000000000411fb4 <+5092>: callq 0x405050 0x0000000000411fb9 <+5097>: mov %eax,%ecx 0x0000000000411fbb <+5099>: mov %ecx,-0x4ec(%rbp) 1776 BufferRanOut = !Internal_AddPaddingA(&BufferPtr, 0x0000000000411ff8 <+5160>: mov -0x760(%rbp),%rdi 0x0000000000411fff <+5167>: mov %esi,-0x764(%rbp) 0x0000000000412005 <+5173>: mov %ecx,%esi 0x0000000000412007 <+5175>: mov -0x764(%rbp),%ecx 0x000000000041200d <+5181>: callq 0x406f40 0x0000000000412012 <+5186>: cmp $0x0,%eax 0x0000000000412015 <+5189>: setne %r9b 0x0000000000412019 <+5193>: xor $0xff,%r9b 0x000000000041201d <+5197>: and $0x1,%r9b 0x0000000000412021 <+5201>: movzbl %r9b,%eax 0x0000000000412025 <+5205>: mov %eax,-0x4d4(%rbp) 1777 Count - (BufferPtr - Buffer), 0x0000000000411fc1 <+5105>: mov -0x4c0(%rbp),%rax 0x0000000000411fc8 <+5112>: mov -0x460(%rbp),%rdi 0x0000000000411fcf <+5119>: mov -0x4b8(%rbp),%rdx 0x0000000000411fd6 <+5126>: sub %rdx,%rdi 0x0000000000411fd9 <+5129>: sub %rdi,%rax 0x0000000000411fdc <+5132>: mov %eax,%ecx 1778 tempStr, 0x0000000000411fde <+5134>: mov -0x518(%rbp),%rdx 1779 Width - Length, 0x0000000000411fe5 <+5141>: mov -0x474(%rbp),%esi 0x0000000000411feb <+5147>: sub -0x4ec(%rbp),%esi 1780 Flags); 0x0000000000411ff1 <+5153>: mov -0x470(%rbp),%r8d 1781 } 0x000000000041202b <+5211>: jmpq 0x4122f0 1782 else 1783 { 1784 // Types that sprintf can handle 1785 size_t TempCount = Count - (BufferPtr - Buffer); 0x0000000000412030 <+5216>: mov -0x4c0(%rbp),%rax 0x0000000000412037 <+5223>: mov -0x460(%rbp),%rcx 0x000000000041203e <+5230>: mov -0x4b8(%rbp),%rdx 0x0000000000412045 <+5237>: sub %rdx,%rcx 0x0000000000412048 <+5240>: sub %rcx,%rax 0x000000000041204b <+5243>: mov %rax,-0x520(%rbp) 1786 1787 #if !HAVE_LARGE_SNPRINTF_SUPPORT 1788 // Limit TempCount to 0x40000000, which is sufficient 1789 // for platforms on which snprintf fails for very large 1790 // sizes. 1791 if (TempCount > 0x40000000) 1792 { 1793 TempCount = 0x40000000; 1794 } 1795 #endif // HAVE_LARGE_SNPRINTF_SUPPORT 1796 1797 TempInt = 0; 0x0000000000412052 <+5250>: movl $0x0,-0x4f0(%rbp) 1798 // %h (short) doesn't seem to be handled properly by local sprintf, 1799 // so we do the truncation ourselves for some cases. 1800 if (Type == PFF_TYPE_P && Prefix == PFF_PREFIX_SHORT) 0x000000000041205c <+5260>: cmpl $0x5,-0x480(%rbp) 0x0000000000412063 <+5267>: jne 0x41213a 0x0000000000412069 <+5273>: cmpl $0x1,-0x47c(%rbp) 0x0000000000412070 <+5280>: jne 0x41213a 0x0000000000412076 <+5286>: lea -0x430(%rbp),%rax 1801 { 1802 // Convert from pointer -> int -> short to avoid warnings. 1803 long trunc1; 1804 short trunc2; 1805 1806 trunc1 = va_arg(ap, LONG); 0x000000000041207d <+5293>: mov -0x430(%rbp),%ecx 0x0000000000412083 <+5299>: cmp $0x28,%ecx 0x0000000000412086 <+5302>: mov %rax,-0x770(%rbp) 0x000000000041208d <+5309>: mov %ecx,-0x774(%rbp) 0x0000000000412093 <+5315>: ja 0x4120be 0x0000000000412099 <+5321>: mov -0x774(%rbp),%eax 0x000000000041209f <+5327>: movslq %eax,%rcx 0x00000000004120a2 <+5330>: mov -0x770(%rbp),%rdx 0x00000000004120a9 <+5337>: add 0x10(%rdx),%rcx 0x00000000004120ad <+5341>: add $0x8,%eax 0x00000000004120b0 <+5344>: mov %eax,(%rdx) 0x00000000004120b2 <+5346>: mov %rcx,-0x780(%rbp) 0x00000000004120b9 <+5353>: jmpq 0x4120db 0x00000000004120be <+5358>: mov -0x770(%rbp),%rax 0x00000000004120c5 <+5365>: mov 0x8(%rax),%rcx 0x00000000004120c9 <+5369>: mov %rcx,%rdx 0x00000000004120cc <+5372>: add $0x8,%rcx 0x00000000004120d0 <+5376>: mov %rcx,0x8(%rax) 0x00000000004120d4 <+5380>: mov %rdx,-0x780(%rbp) 0x00000000004120db <+5387>: mov -0x780(%rbp),%rax 0x00000000004120e2 <+5394>: lea -0x410(%rbp),%rdx 0x00000000004120e9 <+5401>: movslq (%rax),%rax 0x00000000004120ec <+5404>: mov %rax,-0x528(%rbp) 1807 trunc2 = (short) trunc1; 0x00000000004120f3 <+5411>: mov -0x528(%rbp),%rax 0x00000000004120fa <+5418>: mov %ax,%cx 0x00000000004120fd <+5421>: mov %cx,-0x52a(%rbp) 1808 trunc1 = trunc2; 0x0000000000412104 <+5428>: movswq -0x52a(%rbp),%rax 0x000000000041210c <+5436>: mov %rax,-0x528(%rbp) 1809 1810 TempInt = snprintf(BufferPtr, TempCount, TempBuff, trunc1); 0x0000000000412113 <+5443>: mov -0x460(%rbp),%rdi 0x000000000041211a <+5450>: mov -0x520(%rbp),%rsi 0x0000000000412121 <+5457>: mov -0x528(%rbp),%rcx 0x0000000000412128 <+5464>: mov $0x0,%al 0x000000000041212a <+5466>: callq 0x404cf0 0x000000000041212f <+5471>: mov %eax,-0x4f0(%rbp) 1811 } 0x0000000000412135 <+5477>: jmpq 0x41228c 1812 else if (Type == PFF_TYPE_INT && Prefix == PFF_PREFIX_SHORT) 0x000000000041213a <+5482>: cmpl $0x4,-0x480(%rbp) 0x0000000000412141 <+5489>: jne 0x412210 0x0000000000412147 <+5495>: cmpl $0x1,-0x47c(%rbp) 0x000000000041214e <+5502>: jne 0x412210 1813 { 1814 __asm__ volatile("nop;nop;nop;nop;nop;"); 0x0000000000412154 <+5508>: nop 0x0000000000412155 <+5509>: nop 0x0000000000412156 <+5510>: nop 0x0000000000412157 <+5511>: nop 0x0000000000412158 <+5512>: nop 0x0000000000412159 <+5513>: lea -0x430(%rbp),%rax 1815 // Convert explicitly from int to short to get 1816 // correct sign extension for shorts on all systems. 1817 int n; 1818 short s; 1819 1820 n = va_arg(ap, int); 0x0000000000412160 <+5520>: mov -0x430(%rbp),%ecx 0x0000000000412166 <+5526>: cmp $0x28,%ecx 0x0000000000412169 <+5529>: mov %rax,-0x788(%rbp) 0x0000000000412170 <+5536>: mov %ecx,-0x78c(%rbp) 0x0000000000412176 <+5542>: ja 0x4121a1 0x000000000041217c <+5548>: mov -0x78c(%rbp),%eax 0x0000000000412182 <+5554>: movslq %eax,%rcx 0x0000000000412185 <+5557>: mov -0x788(%rbp),%rdx 0x000000000041218c <+5564>: add 0x10(%rdx),%rcx 0x0000000000412190 <+5568>: add $0x8,%eax 0x0000000000412193 <+5571>: mov %eax,(%rdx) 0x0000000000412195 <+5573>: mov %rcx,-0x798(%rbp) 0x000000000041219c <+5580>: jmpq 0x4121be 0x00000000004121a1 <+5585>: mov -0x788(%rbp),%rax 0x00000000004121a8 <+5592>: mov 0x8(%rax),%rcx 0x00000000004121ac <+5596>: mov %rcx,%rdx 0x00000000004121af <+5599>: add $0x8,%rcx 0x00000000004121b3 <+5603>: mov %rcx,0x8(%rax) 0x00000000004121b7 <+5607>: mov %rdx,-0x798(%rbp) 0x00000000004121be <+5614>: mov -0x798(%rbp),%rax 0x00000000004121c5 <+5621>: lea -0x410(%rbp),%rdx 0x00000000004121cc <+5628>: mov (%rax),%ecx 0x00000000004121ce <+5630>: mov %ecx,-0x530(%rbp) 1821 s = (short) n; 0x00000000004121d4 <+5636>: mov -0x530(%rbp),%ecx 0x00000000004121da <+5642>: mov %cx,%si 0x00000000004121dd <+5645>: mov %si,-0x532(%rbp) 1822 1823 TempInt = snprintf(BufferPtr, TempCount, TempBuff, s); 0x00000000004121e4 <+5652>: mov -0x460(%rbp),%rdi 0x00000000004121eb <+5659>: mov -0x520(%rbp),%rsi 0x00000000004121f2 <+5666>: movswl -0x532(%rbp),%ecx 0x00000000004121f9 <+5673>: mov $0x0,%al 0x00000000004121fb <+5675>: callq 0x404cf0 0x0000000000412200 <+5680>: mov %eax,-0x4f0(%rbp) 1824 __asm__ volatile("nop;nop;nop;nop;nop;"); 0x0000000000412206 <+5686>: nop 0x0000000000412207 <+5687>: nop 0x0000000000412208 <+5688>: nop 0x0000000000412209 <+5689>: nop 0x000000000041220a <+5690>: nop 1825 } 0x000000000041220b <+5691>: jmpq 0x412287 0x0000000000412210 <+5696>: lea -0x450(%rbp),%rax 0x0000000000412217 <+5703>: lea -0x410(%rbp),%rdx 0x000000000041221e <+5710>: lea -0x430(%rbp),%rcx 1826 else 1827 { 1828 va_list apcopy; 1829 va_copy(apcopy, ap); 0x0000000000412225 <+5717>: mov %rax,%rsi 0x0000000000412228 <+5720>: mov 0x10(%rcx),%rdi 0x000000000041222c <+5724>: mov %rdi,0x10(%rsi) 0x0000000000412230 <+5728>: movups (%rcx),%xmm0 0x0000000000412233 <+5731>: movups %xmm0,(%rsi) 1830 TempInt = vsnprintf(BufferPtr, TempCount, TempBuff, apcopy); 0x0000000000412236 <+5734>: mov -0x460(%rbp),%rdi 0x000000000041223d <+5741>: mov -0x520(%rbp),%rsi 0x0000000000412244 <+5748>: mov %rax,%rcx 0x0000000000412247 <+5751>: callq 0x404c20 0x000000000041224c <+5756>: lea -0x430(%rbp),%rdi 0x0000000000412253 <+5763>: lea -0x450(%rbp),%rcx 0x000000000041225a <+5770>: mov %eax,-0x4f0(%rbp) 1831 va_end(apcopy); 1832 PAL_printf_arg_remover(&ap, Width, Precision, Type, Prefix); 0x0000000000412260 <+5776>: mov -0x474(%rbp),%esi 0x0000000000412266 <+5782>: mov -0x478(%rbp),%edx 0x000000000041226c <+5788>: mov -0x480(%rbp),%eax 0x0000000000412272 <+5794>: mov -0x47c(%rbp),%r8d 0x0000000000412279 <+5801>: mov %rcx,-0x7a0(%rbp) 0x0000000000412280 <+5808>: mov %eax,%ecx 0x0000000000412282 <+5810>: callq 0x407260 0x0000000000412287 <+5815>: jmpq 0x41228c 1833 } 1834 1835 if (TempInt < 0 || static_cast(TempInt) >= TempCount) /* buffer not long enough */ 0x000000000041228c <+5820>: cmpl $0x0,-0x4f0(%rbp) 0x0000000000412293 <+5827>: jl 0x4122ad 0x0000000000412299 <+5833>: movslq -0x4f0(%rbp),%rax 0x00000000004122a0 <+5840>: cmp -0x520(%rbp),%rax 0x00000000004122a7 <+5847>: jb 0x4122d1 1836 { 1837 BufferPtr += TempCount; 0x00000000004122ad <+5853>: mov -0x520(%rbp),%rax 0x00000000004122b4 <+5860>: add -0x460(%rbp),%rax 0x00000000004122bb <+5867>: mov %rax,-0x460(%rbp) 1838 BufferRanOut = TRUE; 0x00000000004122c2 <+5874>: movl $0x1,-0x4d4(%rbp) 1839 } 0x00000000004122cc <+5884>: jmpq 0x4122eb 1840 else 1841 { 1842 BufferPtr += TempInt; 0x00000000004122d1 <+5889>: mov -0x4f0(%rbp),%eax 0x00000000004122d7 <+5895>: mov -0x460(%rbp),%rcx 0x00000000004122de <+5902>: movslq %eax,%rdx 0x00000000004122e1 <+5905>: add %rdx,%rcx 0x00000000004122e4 <+5908>: mov %rcx,-0x460(%rbp) 0x00000000004122eb <+5915>: jmpq 0x4122f0 0x00000000004122f0 <+5920>: jmpq 0x4122f5 0x00000000004122f5 <+5925>: jmpq 0x4122fa 0x00000000004122fa <+5930>: jmpq 0x4122ff 0x00000000004122ff <+5935>: jmpq 0x412304 1843 } 1844 } 1845 } 0x0000000000412304 <+5940>: jmpq 0x412337 1846 else 1847 { 1848 *BufferPtr++ = *Fmt++; /* copy regular chars into buffer */ 0x0000000000412309 <+5945>: mov -0x468(%rbp),%rax 0x0000000000412310 <+5952>: mov %rax,%rcx 0x0000000000412313 <+5955>: add $0x1,%rcx 0x0000000000412317 <+5959>: mov %rcx,-0x468(%rbp) 0x000000000041231e <+5966>: mov (%rax),%dl 0x0000000000412320 <+5968>: mov -0x460(%rbp),%rax 0x0000000000412327 <+5975>: mov %rax,%rcx 0x000000000041232a <+5978>: add $0x1,%rcx 0x000000000041232e <+5982>: mov %rcx,-0x460(%rbp) 0x0000000000412335 <+5989>: mov %dl,(%rax) 0x0000000000412337 <+5991>: jmpq 0x41233c 1849 } 1850 } 1851 1852 if (static_cast(Count) > (BufferPtr - Buffer)) //Count is assumed to be in the range of int 0x0000000000412341 <+6001>: mov -0x4c0(%rbp),%rax 0x0000000000412348 <+6008>: mov %eax,%ecx 0x000000000041234a <+6010>: movslq %ecx,%rax 0x000000000041234d <+6013>: mov -0x460(%rbp),%rdx 0x0000000000412354 <+6020>: mov -0x4b8(%rbp),%rsi 0x000000000041235b <+6027>: sub %rsi,%rdx 0x000000000041235e <+6030>: cmp %rdx,%rax 0x0000000000412361 <+6033>: jle 0x412371 1853 { 1854 *BufferPtr = 0; /* end the string */ 0x0000000000412367 <+6039>: mov -0x460(%rbp),%rax 0x000000000041236e <+6046>: movb $0x0,(%rax) 0x0000000000412371 <+6049>: lea -0x430(%rbp),%rax 1855 } 1856 1857 va_end(ap); 1858 1859 if (BufferRanOut) 0x0000000000412378 <+6056>: cmpl $0x0,-0x4d4(%rbp) 0x000000000041237f <+6063>: mov %rax,-0x7a8(%rbp) 0x0000000000412386 <+6070>: je 0x4123a6 1860 { 1861 errno = ERANGE; 0x000000000041238c <+6076>: callq 0x404c50 <__errno@plt> 0x0000000000412391 <+6081>: movl $0x22,(%rax) 1862 return -1; 0x0000000000412397 <+6087>: movl $0xffffffff,-0x4a4(%rbp) 0x00000000004123a1 <+6097>: jmpq 0x4123bf 1863 } 1864 else 1865 { 1866 return BufferPtr - Buffer; 0x00000000004123a6 <+6102>: mov -0x460(%rbp),%rax 0x00000000004123ad <+6109>: mov -0x4b8(%rbp),%rcx 0x00000000004123b4 <+6116>: sub %rcx,%rax 0x00000000004123b7 <+6119>: mov %eax,%edx 0x00000000004123b9 <+6121>: mov %edx,-0x4a4(%rbp) 0x00000000004123bf <+6127>: mov 0x316a4a(%rip),%rax # 0x728e10 1867 } 1868 } 0x0000000000411167 <+1431>: mov %edx,%ecx 0x0000000000411169 <+1433>: mov %rax,-0x500(%rbp) 0x0000000000411170 <+1440>: mov %ecx,-0x504(%rbp) 0x0000000000411481 <+2225>: mov %edx,%ecx 0x0000000000411483 <+2227>: mov %rax,-0x500(%rbp) 0x000000000041148a <+2234>: mov %ecx,-0x504(%rbp) 0x000000000041168a <+2746>: mov %edx,%ecx 0x000000000041168c <+2748>: mov %rax,-0x500(%rbp) 0x0000000000411693 <+2755>: mov %ecx,-0x504(%rbp) 0x0000000000411ac8 <+3832>: mov %edx,%ecx 0x0000000000411aca <+3834>: mov %rax,-0x500(%rbp) 0x0000000000411ad1 <+3841>: mov %ecx,-0x504(%rbp) 0x00000000004123c6 <+6134>: mov -0x4a4(%rbp),%ecx 0x00000000004123cc <+6140>: mov (%rax),%rax 0x00000000004123cf <+6143>: cmp -0x8(%rbp),%rax 0x00000000004123d3 <+6147>: mov %ecx,-0x7ac(%rbp) 0x00000000004123d9 <+6153>: jne 0x4123fa 0x00000000004123df <+6159>: mov -0x7ac(%rbp),%eax 0x00000000004123e5 <+6165>: add $0x7c0,%rsp 0x00000000004123ec <+6172>: pop %rbp 0x00000000004123ed <+6173>: retq End of assembler dump.